/* ============================================================
   PRIMETESTLAB HOME V2
   Light, precise, one accent: the "approved" green.
   Display: Bricolage Grotesque · Body: Inter · Labels: mono
   ============================================================ */

/* ---------- Custom page scrollbar (site-wide) ----------
   NOTE: no `scrollbar-width`/`scrollbar-color` here — setting those makes
   Chromium/Edge ignore the ::-webkit-scrollbar rules (incl. arrow removal). */
/* Overlay the scrollbar over the content (no reserved white gutter next to the dark footer). */
html { overflow-y: overlay; }
::-webkit-scrollbar { width: 11px; height: 11px; background: transparent !important; }
::-webkit-scrollbar-track { background: transparent !important; box-shadow: none; border: 0; }
/* Remove the up/down arrow buttons so the thumb runs the full height. */
::-webkit-scrollbar-button,
::-webkit-scrollbar-button:single-button,
::-webkit-scrollbar-button:vertical:start,
::-webkit-scrollbar-button:vertical:end,
::-webkit-scrollbar-button:vertical:increment,
::-webkit-scrollbar-button:vertical:decrement,
::-webkit-scrollbar-button:horizontal:start,
::-webkit-scrollbar-button:horizontal:end {
    display: none;
    width: 0;
    height: 0;
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: rgba(120, 130, 142, 0.55);  /* semi-transparent: subtle on light AND dark */
    border-radius: 999px;
    border: 3px solid transparent;          /* transparent padding -> slim pill, no track bg */
    background-clip: padding-box;
    transition: background-color .2s ease;
}
::-webkit-scrollbar-thumb:hover { background-color: #0B8A47; } /* green on hover — background-color (not shorthand) keeps the slim padding-box clip */
::-webkit-scrollbar-corner { background: transparent; }

:root {
    --ink:      #0A1017;
    --slate:    #55616D;
    --faint:    #8A94A0;
    --paper:    #FFFFFF;
    --mist:     #F5F7F8;
    --mist-band: #F9FAFB; /* section bands only: a lighter step so white/mist sections differ just slightly (owner, 2026-10-28) */
    --line:     #E6EAEE;
    --go:       #0B8A47;
    --go-deep:  #087038;
    --go-tint:  #E8F5EE;
    --star:     #F0A50A;

    --font-display: "Bricolage Grotesque", "Inter", system-ui, sans-serif;
    --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-mono: ui-monospace, "Cascadia Code", "SF Mono", Menlo, Consolas, monospace;

    --nav-h: 64px;
    --radius: 14px;
}

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.v2 {
    margin: 0;
    overflow-x: clip;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    -webkit-tap-highlight-color: transparent;
}

.v2 :where(h1, h2, h3, p) { margin: 0; }
.v2 a { color: inherit; text-decoration: none; }
.v2 img, .v2 svg { display: block; max-width: 100%; }
.v2 button { font: inherit; background: none; border: 0; cursor: pointer; color: inherit; padding: 0; }
.v2 hr { border: 0; }

.v2 ::selection { background: var(--go-tint); color: var(--ink); }

.v2 :focus-visible {
    outline: 2px solid var(--go);
    outline-offset: 3px;
    border-radius: 4px;
}

.v2 [id] { scroll-margin-top: calc(var(--nav-h) + 20px); }

html.v2-no-scroll { overflow: hidden; }

.v2-container {
    max-width: 1120px;
    margin-inline: auto;
    padding-inline: clamp(20px, 4vw, 32px);
}

/* Inline icon inside buttons/links */
.v2-ic { width: 18px; height: 18px; flex: 0 0 auto; }

/* Mono utility label */
.v2-mono {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}

/* ---------- Buttons ---------- */

.v2 .v2-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    height: 46px;
    padding: 0 22px;
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
    will-change: transform;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease,
                transform .28s cubic-bezier(.22, 1, .36, 1), box-shadow .28s cubic-bezier(.22, 1, .36, 1);
}

.v2 .v2-btn--primary {
    background: var(--go);
    color: #FFFFFF;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.10);
}
.v2 .v2-btn--primary:hover {
    background: var(--go-deep);
    transform: translateY(-3px);
    box-shadow: 0 14px 26px -8px rgba(11, 138, 71, 0.55);
}
.v2 .v2-btn--primary:active { transform: translateY(-1px); box-shadow: 0 3px 8px rgba(10, 16, 23, 0.14); transition-duration: .08s; }

.v2 .v2-btn--ghost {
    background: transparent;
    border: 1px solid var(--line);
    color: var(--ink);
}
.v2 .v2-btn--ghost:hover {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    background: var(--go-tint);
    color: var(--go-deep);
    transform: translateY(-3px);
    box-shadow: 0 12px 22px -10px rgba(11, 138, 71, 0.28);
}
.v2 .v2-btn--ghost:active { transform: translateY(-1px); transition-duration: .08s; }
.v2 .v2-btn--ghost .v2-ic { color: #25D366; } /* WhatsApp glyph keeps its brand green */

.v2 .v2-btn--sm { height: 38px; padding: 0 16px; font-size: 14px; border-radius: 10px; }
.v2 .v2-btn--lg { height: 52px; padding: 0 26px; font-size: 16px; }

/* Keep the CTA buttons smoothly animated even when the OS requests reduced motion. */
.v2 .v2-btn,
.v2 .v2-btn--primary,
.v2 .v2-btn--ghost {
    transition-property: background-color, border-color, color, transform, box-shadow !important;
    transition-duration: .28s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2-btn--primary:active,
.v2 .v2-btn--ghost:active { transition-duration: .08s !important; }

/* Arrow icon slides right on hover (springy) */
.v2 .v2-btn .v2-ic { transition: transform .28s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2 .v2-btn:hover .v2-ic { transform: translateX(-3px); }

/* ---------- Nav ---------- */

.v2-nav {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.82);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color .25s ease, background-color .25s ease;
}
.v2-nav.is-scrolled,
.v2-nav.is-open {
    background: rgba(255, 255, 255, 0.94);
    border-bottom-color: var(--line);
}

.v2-nav__in {
    display: flex;
    align-items: center;
    gap: 32px;
    height: var(--nav-h);
}

.v2-logo { display: inline-flex; align-items: center; gap: 10px; }
/* Logo hover: soft green glow under the tile + a springy dot ping. The letter P never moves.
   (nav + footer; exempt from reduced-motion). */
.v2 .v2-logo__tile::before { transition: box-shadow .35s ease !important; }
.v2 .v2-logo__dot { transition: transform .4s cubic-bezier(.34, 1.56, .64, 1), box-shadow .4s ease !important; }
.v2-logo:hover .v2-logo__tile::before {
    box-shadow: 0 8px 20px -4px color-mix(in srgb, var(--go) 60%, transparent);
}
.v2-logo:hover .v2-logo__dot {
    transform: scale(1.35);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--go) 22%, transparent);
}
.v2-logo__tile {
    position: relative;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
}
.v2-logo__tile::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 9px;
    background: var(--ink);
    z-index: 0;
}
.v2-logo__p {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    line-height: 1;
    color: #FFFFFF;
    display: block;
    transform: translateY(1px);
}
.v2-logo__dot {
    position: absolute;
    z-index: 1;
    left: -2px;
    bottom: -2px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--go);
    border: 2px solid var(--paper);
}
.v2-logo__word {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17.5px;
    letter-spacing: -0.015em;
    color: var(--ink);
    position: relative;
    top: 2px; /* nudge down so it sits centred with the tile */
}

.v2-nav__links {
    display: flex;
    align-items: center;
    gap: 26px;
    margin-inline: auto;
}
.v2-nav__links a {
    position: relative;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--slate);
}
/* Sliding underline that grows from the centre + smooth colour (exempt from reduced-motion). */
.v2 .v2-nav__links a { transition: color .22s ease !important; }
.v2-nav__links a::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: -5px;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
    transform: scaleX(0);
    transform-origin: center;
}
.v2 .v2-nav__links a::after {
    transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-nav__links a:hover { color: var(--ink); }
.v2-nav__links a:hover::after { transform: scaleX(1); }

.v2-nav__actions {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-right: auto;
}
.v2-nav__login {
    position: relative;
    font-size: 14.5px;
    font-weight: 500;
    color: var(--slate);
}
/* Sliding underline from centre + smooth colour (exempt from reduced-motion). */
.v2 .v2-nav__login { transition: color .22s ease !important; }
.v2-nav__login::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: -5px;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
    transform: scaleX(0);
    transform-origin: center;
}
.v2 .v2-nav__login::after {
    transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-nav__login:hover { color: var(--ink); }
.v2-nav__login:hover::after { transform: scaleX(1); }

/* Burger (mobile only) */
.v2-nav__burger {
    display: none;
    position: relative;
    width: 40px;
    height: 40px;
    border-radius: 10px;
}
.v2-nav__burger span {
    position: absolute;
    right: 11px;
    width: 18px;
    height: 2px;
    border-radius: 2px;
    background: var(--ink);
    transition: transform .25s ease, top .25s ease;
}
.v2-nav__burger span:nth-child(1) { top: 16px; }
.v2-nav__burger span:nth-child(2) { top: 22px; }
.v2-nav.is-open .v2-nav__burger span:nth-child(1) { top: 19px; transform: rotate(-45deg); }
.v2-nav.is-open .v2-nav__burger span:nth-child(2) { top: 19px; transform: rotate(45deg); }

/* Mobile sheet */
.v2-nav__sheet[hidden] { display: none; }
.v2-nav__sheet {
    position: fixed;
    top: var(--nav-h);
    right: 0;
    left: 0;
    height: calc(100dvh - var(--nav-h));
    background: var(--paper);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 12px clamp(20px, 4vw, 32px) 28px;
    overflow-y: auto;
}
.v2-nav__sheet-links { display: flex; flex-direction: column; }
.v2-nav__sheet-links a {
    font-size: 17px;
    font-weight: 600;
    padding: 15px 2px;
    border-bottom: 1px solid var(--mist);
    color: var(--ink);
}
.v2-nav__sheet-cta {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 24px;
}
.v2-nav__sheet-cta .v2-btn { width: 100%; }

@media (max-width: 960px) {
    .v2-nav__links, .v2-nav__login { display: none; }
    .v2-nav__burger { display: block; }
    .v2-nav .v2-lang { display: none; }
    .v2-nav__actions { gap: 8px; }
    .v2-nav__in { gap: 16px; }
    .v2 .v2-btn--sm { padding: 0 14px; }
}

/* ---------- Section primitives (shared by all v2 sections) ---------- */

.v2-section { padding-block: clamp(72px, 9vw, 120px); }
.v2-section--mist { background: var(--mist-band); }

.v2-eyebrow {
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--go);
}

.v2-h2 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.85rem, 1.2rem + 2.6vw, 2.8rem);
    line-height: 1.08;
    letter-spacing: -0.022em;
    text-wrap: balance;
}

.v2-lead {
    font-size: 17px;
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}

/* ---------- Hero ---------- */

.v2-hero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(48px, 8vh, 96px));
    padding-bottom: clamp(64px, 9vh, 116px);
    overflow: hidden;
}

.v2-hero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 84% -12%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(40rem 28rem at -12% 112%, rgba(10, 16, 23, 0.04), transparent 62%);
}

.v2-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
    gap: clamp(40px, 6vw, 72px);
    align-items: center;
}

.v2-hero__title {
    margin-top: 18px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.55rem, 1.35rem + 3.6vw, 3.9rem);
    line-height: 1.03;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2-hero__title-go {
    display: block;
    color: var(--go);
}

.v2-hero__sub {
    margin-top: 22px;
    max-width: 54ch;
    font-size: clamp(16px, 1.5vw, 17.5px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}

.v2-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 34px;
}

.v2-hero__fine {
    margin-top: 16px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.04em;
    color: var(--faint);
}
.v2-hero__fine span { white-space: nowrap; }

.v2-hero__trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 18px;
    margin-top: 34px;
    padding-top: 26px;
    border-top: 1px solid var(--line);
}
.v2-stars { display: inline-flex; gap: 2px; color: var(--star); }
.v2-stars svg { width: 15px; height: 15px; }
.v2-hero__trust-item { font-size: 14px; color: var(--slate); }
.v2-hero__trust-item b { color: var(--ink); font-weight: 600; }
.v2-hero__trust-sep {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--line);
}

/* ---------- Track Card (hero signature) ---------- */

.v2-hero__visual {
    position: relative;
    display: flex;
    justify-content: flex-end;
}

.v2-track {
    width: 100%;
    max-width: 470px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(20px, 2.6vw, 28px);
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -20px rgba(10, 16, 23, 0.16);
}

.v2-track__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.v2-track__live {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go);
}
.v2-track__live i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.2s ease-out infinite;
}

.v2-track__app {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
}
.v2-track__tile {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--ink);
    color: #FFFFFF;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-track__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2-track__name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; }
.v2-track__pkg {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2-track__ver {
    margin-right: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
}

.v2-track__hr {
    height: 1px;
    background: var(--line);
    margin: 20px 0;
}

.v2-track__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}
.v2-track__row--days { margin-top: 20px; }
.v2-track__val {
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

.v2-track__avs {
    display: flex;
    gap: 6px;
    margin-top: 12px;
}
.v2-track__av {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #EDF1F4;
    color: var(--slate);
    font-size: 10px;
    font-weight: 600;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-track__av:nth-child(even) { background: #E3E9EE; }

.v2-track__bar {
    height: 8px;
    border-radius: 999px;
    background: var(--mist);
    margin-top: 12px;
    overflow: hidden;
}
.v2-track__bar i {
    display: block;
    height: 100%;
    width: 100%;
    border-radius: inherit;
    background: var(--go);
}

.v2-track__grant {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 14px 16px;
}
.v2-track__grant-ic {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--go);
    color: #FFFFFF;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-track__grant-ic svg { width: 16px; height: 16px; }
.v2-track__grant-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.v2-track__grant-txt b { font-size: 14.5px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2-track__grant-txt span { font-size: 12.5px; color: var(--slate); }

/* ---------- Track Card animation (runs once when .is-play is set) ---------- */

@keyframes v2CardIn {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: none; }
}
@keyframes v2Pop {
    from { opacity: 0; transform: scale(0.3); }
    60%  { transform: scale(1.12); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes v2Fill {
    from { width: 0; }
    to   { width: 100%; }
}
@keyframes v2Rise {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: none; }
}
@keyframes v2Pulse {
    0%   { box-shadow: 0 0 0 0 rgba(11, 138, 71, 0.35); }
    70%  { box-shadow: 0 0 0 9px rgba(11, 138, 71, 0); }
    100% { box-shadow: 0 0 0 0 rgba(11, 138, 71, 0); }
}

.v2-track.is-play { animation: v2CardIn 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2-track.is-play .v2-track__av {
    animation: v2Pop 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
    animation-delay: calc(0.5s + var(--i) * 0.09s);
}
.v2-track.is-play .v2-track__bar i {
    animation: v2Fill 1.1s cubic-bezier(0.22, 0.8, 0.26, 1) 1.75s both;
}

/* Track Card bar (2026-10-13): smooth fill, then a soft shine that keeps sweeping across.
   Set with !important so it still plays when the global reduced-motion rule shortens animations. */
@keyframes v2TrackShine {
    0%   { transform: translateX(100%); }
    60%, 100% { transform: translateX(-100%); }
}
@keyframes v2TrackGlow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(11, 138, 71, 0); }
    50%      { box-shadow: 0 0 10px 0 rgba(11, 138, 71, 0.35); }
}
.v2 .v2-track__bar { box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08); animation: v2TrackGlow 2.8s ease-in-out 3.2s infinite !important; }
.v2 .v2-track__bar i {
    position: relative;
    overflow: hidden;
    background: linear-gradient(-90deg, #0B8A47, #16A35A);
}
.v2 .v2-track.is-play .v2-track__bar i { animation: v2Fill 1.6s cubic-bezier(0.65, 0, 0.35, 1) 1.6s both !important; }
@media (prefers-reduced-motion: reduce) {
    .v2 .v2-track__bar i { animation: v2Fill 1.6s cubic-bezier(0.65, 0, 0.35, 1) 0.4s both !important; }
}
.v2 .v2-track__bar i::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(-100deg, transparent 15%, rgba(255, 255, 255, 0.6) 50%, transparent 85%);
    transform: translateX(100%);
    animation: v2TrackShine 2.8s cubic-bezier(0.45, 0, 0.25, 1) 3.2s infinite !important;
}
.v2-track.is-play .v2-track__grant {
    animation: v2Rise 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) 3.3s both;
}

/* ---------- Hero responsive ---------- */

@media (max-width: 960px) {
    .v2-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 52px; }
    .v2-hero__visual { justify-content: center; }
    .v2-hero__sub { max-width: 60ch; }
}

@media (max-width: 640px) {
    .v2-hero { padding-top: calc(var(--nav-h) + 36px); padding-bottom: 56px; }
    .v2-hero__grid { gap: 44px; }
    .v2-hero__copy { text-align: center; }
    .v2-hero__sub { margin-inline: auto; }
    .v2-hero__cta { justify-content: center; }
    .v2-hero__cta .v2-btn { width: 100%; }
    .v2-hero__trust { justify-content: center; gap: 10px 14px; }
    .v2-hero__trust-sep { display: none; }
    .v2-track { max-width: 440px; }
    .v2-track__avs { gap: 4px; flex-wrap: wrap; }
    .v2-track__av { width: 22px; height: 22px; font-size: 9px; }
}

/* ---------- Proof section ---------- */

.v2-sechead {
    max-width: 660px;
    margin-inline: auto;
    text-align: center;
}
.v2-sechead .v2-h2 { margin-top: 14px; }
.v2-sechead .v2-lead { margin-top: 16px; }

.v2-proof__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    grid-template-areas:
        "head fig"
        "stats fig";
    align-items: start;
    column-gap: clamp(40px, 5vw, 72px);
}
.v2-proof__head { grid-area: head; max-width: 46ch; }
.v2-proof__head .v2-h2 { margin-top: 14px; }
.v2-proof__head .v2-lead { margin-top: 16px; }

.v2-proof__fig {
    grid-area: fig;
    width: 100%;
    max-width: 500px;
    justify-self: end;
    align-self: center;
    margin: 0;
}
.v2-proof__shot {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.04),
        0 24px 48px -20px rgba(10, 16, 23, 0.12);
    will-change: transform;
}
/* Clean lift + zoom on hover (exempt from reduced-motion). */
.v2 .v2-proof__shot {
    transition: transform .4s cubic-bezier(.22, 1, .36, 1),
                box-shadow .4s cubic-bezier(.22, 1, .36, 1),
                border-color .4s ease !important;
}
.v2-proof__shot:hover {
    transform: translateY(-10px) scale(1.015);
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    box-shadow:
        0 3px 6px rgba(10, 16, 23, 0.06),
        0 44px 80px -24px rgba(10, 16, 23, 0.28);
}
.v2-proof__shot:hover {
    box-shadow:
        0 2px 4px rgba(10, 16, 23, 0.05),
        0 32px 60px -20px rgba(10, 16, 23, 0.17);
}

/* Email chrome */
.v2-proof__mailhead {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 18px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-proof__mailav {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-proof__mailav svg { width: 19px; height: 19px; }
.v2-proof__mailwho { display: flex; flex-direction: column; min-width: 0; }
.v2-proof__mailwho b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-proof__mailwho span {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--faint);
    margin-top: 1px;
}
.v2-proof__mailhead .v2-proof__chip { margin-right: auto; }

.v2-proof__imgwrap { position: relative; padding: clamp(10px, 1.8vw, 16px); }
.v2-proof__zoom {
    position: absolute;
    inset: 0;
    z-index: 2;
    cursor: zoom-in;
    border-radius: 8px;
}
.v2-proof__zoomhint {
    position: absolute;
    left: 14px;
    bottom: 14px;
    display: none;
    align-items: center;
    background: rgba(10, 16, 23, 0.6);
    color: #FFFFFF;
    font-size: 9px;
    padding: 5px 9px;
    border-radius: 7px;
    letter-spacing: 0.08em;
}
.v2-proof__imgwrap img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.v2-proof__mark {
    position: absolute;
    right: 5.2%;
    top: 19%;
    width: 84%;
    height: 12.5%;
    border: 2px solid var(--go);
    border-radius: 10px;
    pointer-events: none;
    overflow: hidden;
}
.v2-proof__mark i {
    position: absolute;
    inset: 0;
    background: rgba(11, 138, 71, 0.07);
}

@media (max-width: 480px) {
    .v2-proof__mailhead { padding: 11px 14px; gap: 10px; }
    .v2-proof__mailav { width: 32px; height: 32px; }
    .v2-proof__mailav svg { width: 16px; height: 16px; }
    .v2-proof__mailwho b { font-size: 13px; white-space: nowrap; }
    .v2-proof__mailwho span { font-size: 10px; }
    .v2-proof__mailhead .v2-proof__chip { padding: 4px 9px; font-size: 11px; white-space: nowrap; }
}

/* Arrival + marker sweep (enabled by JS, skipped for reduced motion) */
.v2-anim .v2-proof__fig {
    opacity: 0;
    transform: translateY(26px);
}
.v2-anim.is-in .v2-proof__fig {
    opacity: 1;
    transform: none;
    transition: opacity .7s ease, transform .7s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-anim .v2-proof__mark { opacity: 0; }
.v2-anim.is-in .v2-proof__mark {
    opacity: 1;
    transition: opacity .35s ease .8s;
}
.v2-anim .v2-proof__mark i {
    transform: scaleX(0);
    transform-origin: right center;
}
.v2-anim.is-in .v2-proof__mark i {
    transform: scaleX(1);
    transition: transform .6s cubic-bezier(0.22, 0.8, 0.26, 1) .9s;
}

.v2-proof__cap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 16px;
    padding-inline: 4px;
}
.v2-proof__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 5px 12px;
}
.v2-proof__chip svg { width: 13px; height: 13px; }

/* ---------- Stats band (KPI tiles with micro-viz) ---------- */

.v2-stats {
    grid-area: stats;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 36px 0 0;
}
.v2-stat {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-stat {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .34s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-stat:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.3);
}

.v2-stat__viz {
    height: 48px;
    margin-bottom: 16px;
    display: flex;
    align-items: flex-end;
}

.v2-stat__num {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.65rem, 1.2rem + 1.4vw, 2.2rem);
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-stat__lbl {
    display: block;
    margin-top: 5px;
    font-size: 13.5px;
    color: var(--slate);
}

/* Micro-viz marks: one green, neutral tracks; numbers stay ink */
.vz-bars rect { fill: #E9EDF1; }
.vz-bars rect.is-hot { fill: var(--go); }
.vz-dots circle { fill: var(--go); opacity: 0.9; }
.vz-dots circle.is-dim { fill: #DCE3E9; opacity: 1; }

/* Entrance choreography (JS adds .v2-anim / .is-in; static otherwise) */
.v2-stats.v2-anim .vz-bars rect {
    transform: scaleY(0);
    transform-origin: bottom;
    transform-box: fill-box;
}
.v2-stats.v2-anim.is-in .vz-bars rect {
    transform: none;
    transition: transform .5s cubic-bezier(0.22, 0.8, 0.26, 1) calc(var(--i) * 70ms + 120ms);
}

.v2-stats.v2-anim .vz-ring__arc { stroke-dashoffset: 119.4; }
.v2-stats.v2-anim.is-in .vz-ring__arc {
    stroke-dashoffset: 0.12;
    transition: stroke-dashoffset 1.1s cubic-bezier(0.22, 0.8, 0.26, 1) .15s;
}
.v2-stats.v2-anim .vz-ring path { opacity: 0; }
.v2-stats.v2-anim.is-in .vz-ring path { opacity: 1; transition: opacity .3s ease 1.05s; }

.v2-stats.v2-anim .vz-spark__line { stroke-dasharray: 1; stroke-dashoffset: 1; }
.v2-stats.v2-anim.is-in .vz-spark__line {
    stroke-dashoffset: 0;
    transition: stroke-dashoffset 1s cubic-bezier(0.4, 0, 0.3, 1) .2s;
}
.v2-stats.v2-anim .vz-spark__area { opacity: 0; }
.v2-stats.v2-anim.is-in .vz-spark__area { opacity: 1; transition: opacity .6s ease .85s; }
.v2-stats.v2-anim .vz-spark__dot {
    transform: scale(0);
    transform-origin: center;
    transform-box: fill-box;
}
.v2-stats.v2-anim.is-in .vz-spark__dot {
    transform: scale(1);
    transition: transform .35s cubic-bezier(0.34, 1.56, 0.64, 1) 1.1s;
}

.v2-stats.v2-anim .vz-dots circle { opacity: 0; }
.v2-stats.v2-anim.is-in .vz-dots circle {
    opacity: 0.9;
    transition: opacity .3s ease calc(var(--i) * 22ms + 100ms);
}
.v2-stats.v2-anim.is-in .vz-dots circle.is-dim { opacity: 1; }

@media (max-width: 960px) {
    .v2-proof__grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "head"
            "fig"
            "stats";
    }
    .v2-proof__head { text-align: center; margin-inline: auto; }
    .v2-proof__head .v2-lead { margin-inline: auto; }
    .v2-proof__fig { justify-self: center; margin-top: 34px; }
    .v2-stats { margin-top: 30px; gap: 12px; }
    .v2-proof__zoomhint { display: inline-flex; }
}
@media (max-width: 380px) {
    .v2-stat { padding: 16px 18px; }
}

/* ---------- Pricing ---------- */

.v2-plans {
    display: grid;
    grid-template-columns: 1fr 1.08fr 1fr;
    gap: 22px;
    align-items: stretch;
    max-width: 1020px;
    margin: clamp(44px, 6vw, 64px) auto 0;
}

.v2-plan {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3vw, 30px);
    transition: transform .34s cubic-bezier(.22, 1, .36, 1),
                box-shadow .34s cubic-bezier(.22, 1, .36, 1),
                border-color .34s ease;
    will-change: transform;
}
/* Smooth lift on all pricing cards (kept animated even with OS reduced-motion). */
.v2-plan:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    box-shadow: 0 26px 50px -24px rgba(10, 16, 23, 0.38);
}
.v2 .v2-plan,
.v2 .v2-plan--featured {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .34s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2-plan--featured:hover { transform: translateY(-6px) !important; }

.v2-plan__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 24px;
}
.v2-plan__badge {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #FFFFFF;
    background: var(--go);
    border-radius: 999px;
    padding: 5px 11px;
    white-space: nowrap;
}

.v2-plan__testers {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 24px;
    letter-spacing: -0.02em;
}

.v2-plan__price {
    margin-top: 10px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
}
.v2-plan__amount {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.35rem, 2rem + 1vw, 2.8rem);
    line-height: 1;
    letter-spacing: -0.025em;
    font-variant-numeric: tabular-nums;
}
.v2-plan__cur {
    font-size: 0.55em;
    vertical-align: 0.55em;
    margin-left: 1px;
    font-weight: 700;
}
.v2-plan__meta {
    display: block;
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.03em;
    color: var(--faint);
}
.v2-plan__meta s { text-decoration-thickness: 1.5px; }
.v2-plan__meta b { color: var(--go); font-weight: 700; }

.v2-plan__list {
    list-style: none;
    margin: 20px 0 26px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1;
}
.v2-plan__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-plan__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-plan__list .v2-plan__hl { color: var(--ink); font-weight: 600; }

.v2-plan__cta { width: 100%; }
.v2-plan__more {
    margin-top: 14px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--faint);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--line);
}
/* Smooth colour + underline slide on hover (exempt from reduced-motion). */
.v2 .v2-plan__more {
    transition: color .22s ease, text-decoration-color .22s ease, text-underline-offset .22s ease !important;
}
.v2-plan__more:hover {
    color: var(--go-deep);
    text-decoration-color: var(--go);
    text-underline-offset: 5px;
}

/* Featured (dark) plan */
.v2-plan--featured {
    background: var(--ink);
    border-color: var(--ink);
    box-shadow: 0 32px 64px -28px rgba(10, 16, 23, 0.5);
}
.v2-plan--featured .v2-mono { color: #8FA0AE; }
.v2-plan--featured .v2-plan__testers,
.v2-plan--featured .v2-plan__amount { color: #FFFFFF; }
.v2-plan--featured .v2-plan__price { border-bottom-color: rgba(255, 255, 255, 0.14); }
.v2-plan--featured .v2-plan__meta { color: #8FA0AE; }
.v2-plan--featured .v2-plan__meta b { color: #3ECF81; }
.v2-plan--featured .v2-plan__list li { color: #C2CBD4; }
.v2-plan--featured .v2-plan__list li::before {
    background-color: rgba(62, 207, 129, 0.16);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%233ECF81' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2-plan--featured .v2-plan__list .v2-plan__hl { color: #FFFFFF; }
.v2-plan--featured .v2-plan__more { color: #8FA0AE; text-decoration-color: rgba(255,255,255,.2); }
.v2-plan--featured .v2-plan__more:hover { color: #FFFFFF; }

@media (max-width: 900px) {
    .v2-plans { grid-template-columns: minmax(0, 1fr); max-width: 480px; gap: 18px; }
    .v2-plan__head { justify-content: center; gap: 12px; }
    .v2-plan__testers,
    .v2-plan__price { text-align: center; }
}
@media (max-width: 640px) {
    .v2-plans { gap: 14px; margin-top: 36px; }
    .v2-plan { padding: 22px 20px 20px; border-radius: 18px; }
    .v2-plan__head { min-height: 0; }
    .v2-plan__testers { margin-top: 12px; font-size: 21px; }
    .v2-plan__price { margin-top: 8px; padding-bottom: 16px; }
    .v2-plan__amount { font-size: 2.15rem; }
    .v2-plan__meta { margin-top: 6px; font-size: 11px; }
    .v2-plan__list { margin: 16px 0 20px; gap: 9px; }
    .v2-plan__list li { font-size: 13.5px; padding-right: 24px; }
    .v2-plan__list li::before { width: 15px; height: 15px; top: 2.5px; background-size: 10px; }
    .v2 .v2-plan__cta { height: 48px; }
    .v2-plan__more { margin-top: 10px; font-size: 13px; }
}

/* Guarantee strip */
.v2-guarantee {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 18px 32px;
    max-width: 1020px;
    margin: clamp(28px, 4vw, 40px) auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px clamp(20px, 3vw, 30px);
}
.v2-guarantee__main {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
}
.v2-guarantee__ic {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-guarantee__ic svg { width: 23px; height: 23px; }
.v2-guarantee__txt b {
    display: block;
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-guarantee__txt p {
    margin-top: 3px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-guarantee__pay {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 0 0 auto;
}
.v2-guarantee__logos {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.v2-guarantee__logos img {
    height: 20px;
    width: auto;
    opacity: 0.75;
    filter: grayscale(0.2);
}

@media (max-width: 640px) {
    .v2-guarantee {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 16px;
        padding: 26px 20px;
    }
    .v2-guarantee__main { flex-direction: column; align-items: center; gap: 14px; }
    .v2-guarantee__txt p { margin-inline: auto; max-width: 34ch; }
    .v2-guarantee__pay { flex-direction: column; gap: 10px; }
}

/* ---------- How it works ---------- */

.v2-how__grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, 1fr) max-content;
    gap: 36px;
    max-width: 1020px;
    margin: clamp(48px, 7vw, 72px) auto 0;
}
.v2-how__grid::before {
    content: "";
    position: absolute;
    right: 0;
    left: 6px;
    top: 14px;
    height: 1px;
    background: var(--line);
}

.v2-how__chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    height: 28px;
    padding: 0 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
}

.v2-how__step h3 {
    margin-top: 22px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 19.5px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-how__step p {
    margin-top: 10px;
    font-size: 14.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2-how__step .v2-how__meta {
    margin-top: 14px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2-how__meta b { color: var(--go); font-weight: 700; }

.v2-how__end {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.v2-how__end-node {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--go);
    color: #FFFFFF;
    display: grid;
    place-items: center;
    box-shadow: 0 0 0 5px var(--go-tint);
}
.v2-how__end-node svg { width: 14px; height: 14px; }
.v2-how__end .v2-mono { color: var(--go); font-weight: 700; }

/* Stage artifacts: the real thing you hold at each step */
.v2-how__art {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 14px;
    padding: 7px 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 9px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--slate);
    width: fit-content;
}
.v2-how__art svg { width: 14px; height: 14px; flex: 0 0 auto; }
.v2-how__art--days { gap: 3px; padding: 9px 11px; }
.v2-how__art--days i {
    width: 9px;
    height: 9px;
    border-radius: 2.5px;
    background: var(--go);
}
.v2-how__art--grant {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
    color: var(--go-deep);
    font-weight: 700;
}
.v2-how__art--grant svg { color: var(--go); }

/* Rail fill that draws across the timeline */
.v2-how__railfill {
    position: absolute;
    right: 0;
    left: 6px;
    top: 13.5px;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
    transform-origin: right center;
    z-index: 0;
}

/* Play-through choreography */
.v2-how.v2-anim .v2-how__railfill { transform: scaleX(0); }
.v2-how.v2-anim.is-in .v2-how__railfill {
    transform: scaleX(1);
    transition: transform 1.4s cubic-bezier(0.4, 0, 0.3, 1) .1s;
}
.v2-how.v2-anim .v2-how__chip { opacity: 0; transform: scale(0.7); }
.v2-how.v2-anim.is-in .v2-how__chip {
    opacity: 1;
    transform: none;
    transition: opacity .4s ease, transform .4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.v2-how.v2-anim.is-in .v2-how__step:nth-of-type(1) .v2-how__chip { transition-delay: .12s; }
.v2-how.v2-anim.is-in .v2-how__step:nth-of-type(2) .v2-how__chip { transition-delay: .6s; }
.v2-how.v2-anim.is-in .v2-how__step:nth-of-type(3) .v2-how__chip { transition-delay: 1.1s; }

.v2-how.v2-anim .v2-how__art--file { opacity: 0; transform: translateY(8px); }
.v2-how.v2-anim.is-in .v2-how__art--file {
    opacity: 1;
    transform: none;
    transition: opacity .45s ease .45s, transform .45s cubic-bezier(0.22, 0.8, 0.26, 1) .45s;
}
.v2-how.v2-anim .v2-how__art--days i { background: #E3E9EE; }
.v2-how.v2-anim.is-in .v2-how__art--days i {
    background: var(--go);
    transition: background-color .3s ease calc(.9s + var(--i) * 55ms);
}
.v2-how.v2-anim .v2-how__art--grant { opacity: 0; transform: scale(0.85); }
.v2-how.v2-anim.is-in .v2-how__art--grant {
    opacity: 1;
    transform: none;
    transition: opacity .45s ease 1.75s, transform .5s cubic-bezier(0.34, 1.56, 0.64, 1) 1.75s;
}
.v2-how.v2-anim .v2-how__end-node { opacity: 0; transform: scale(0.5); }
.v2-how.v2-anim.is-in .v2-how__end-node {
    opacity: 1;
    transform: none;
    transition: opacity .4s ease 1.55s, transform .5s cubic-bezier(0.34, 1.56, 0.64, 1) 1.55s;
}
.v2-how.v2-anim .v2-how__end .v2-mono { opacity: 0; }
.v2-how.v2-anim.is-in .v2-how__end .v2-mono { opacity: 1; transition: opacity .4s ease 1.8s; }

.v2-how__cta {
    margin-top: clamp(44px, 6vw, 64px);
    text-align: center;
}
.v2-how__cta-note {
    margin-top: 14px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.04em;
    color: var(--faint);
}

@media (max-width: 900px) {
    .v2-how__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-top: 36px; }
    .v2-how__grid::before { display: none; }
    .v2-how__railfill { display: none; }

    /* Steps become compact cards */
    .v2-how__step {
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "chip meta"
            "title title"
            "body body"
            "art art";
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 18px;
        padding: 18px 18px 16px;
    }
    .v2-how__step::after { display: none; }
    .v2-how__chip { grid-area: chip; justify-self: start; }
    .v2-how__step .v2-how__meta {
        grid-area: meta;
        margin: 0;
        align-self: center;
        justify-self: end;
        font-size: 10px;
        text-align: left;
    }
    .v2-how__step h3 { grid-area: title; margin-top: 14px; font-size: 18px; }
    .v2-how__step p:not(.v2-how__meta) { grid-area: body; margin-top: 8px; font-size: 14px; }
    .v2-how__art { grid-area: art; margin-top: 14px; }

    .v2-how.v2-anim.is-in .v2-how__step:nth-of-type(2) .v2-how__chip { transition-delay: .3s; }
    .v2-how.v2-anim.is-in .v2-how__step:nth-of-type(3) .v2-how__chip { transition-delay: .5s; }
    .v2-how.v2-anim.is-in .v2-how__art--days i { transition-delay: calc(.5s + var(--i) * 45ms); }
    .v2-how.v2-anim.is-in .v2-how__art--grant { transition-delay: 1s; }
    .v2-how.v2-anim.is-in .v2-how__end-node { transition-delay: 1.1s; }
    .v2-how.v2-anim.is-in .v2-how__end .v2-mono { transition-delay: 1.25s; }

    .v2-how__end { flex-direction: row; gap: 12px; margin-top: 10px; justify-content: center; }
}
@media (max-width: 640px) {
    .v2-how__cta .v2-btn { width: 100%; }
}

/* ---------- Reviews (masonry wall) ---------- */

.v2-rwall {
    columns: 3;
    column-gap: 20px;
    max-width: 1060px;
    margin: clamp(40px, 6vw, 56px) auto 0;
}

.v2-rcard {
    break-inside: avoid;
    margin-bottom: 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-rcard {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-rcard:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}

.v2-rcard__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.v2-rcard__head .v2-stars svg { width: 14px; height: 14px; }
.v2-rcard__head .v2-stars svg.is-off { color: #D9DFE5; }
.v2-rcard__geo { font-size: 10px; letter-spacing: 0.1em; }

.v2-rcard__text {
    margin-top: 14px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--ink);
}

.v2-rcard__who {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--mist);
}
.v2-rcard__av {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: #EDF1F4;
    color: var(--slate);
    font-size: 12px;
    font-weight: 600;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-rcard__id { display: flex; flex-direction: column; min-width: 0; }
.v2-rcard__id b {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.v2-rcard__id i {
    font-style: normal;
    font-size: 11.5px;
    color: var(--faint);
    margin-top: 1px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.v2-rcard__id i::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--go);
}

/* First-party cards: the reviewer's own app leads (icon, name, Play facts),
   then stars + date, an optional headline, the review, and the verified
   client row. Fiverr cards keep the plain layout. */
.v2-rcard--own { padding-top: 18px; }

.v2-rcard__app {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--mist);
}
.v2-rcard__appico {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    overflow: hidden;
    display: grid;
    place-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
}
.v2-rcard__appico img { display: block; width: 100%; height: 100%; object-fit: cover; }
.v2-rcard__appini {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--slate);
}
.v2-rcard__appid { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.v2-rcard__appname {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    max-width: 100%;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    letter-spacing: -0.015em;
    line-height: 1.25;
    color: var(--ink);
    text-decoration: none;
}
.v2-rcard__appname > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2-rcard__appname .v2-ic {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    color: var(--faint);
    transition: color .2s ease, transform .2s ease;
}
.v2-rcard__appname:hover { color: var(--go-deep); }
.v2-rcard__appname:hover .v2-ic { color: var(--go); transform: translate(-1px, -1px); }
.v2-rcard__appsub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 3px 7px;
    font-size: 12px;
    line-height: 1.3;
    color: var(--faint);
}
.v2-rcard__appsub b { font-weight: 600; color: var(--ink); }
.v2-rcard__play { display: inline-flex; align-items: center; gap: 4px; }
.v2-rcard__play svg { width: 10px; height: 10px; color: var(--go); }
/* The dot belongs to the item that follows it, so it wraps with it. */
.v2-rcard__appsub > span + span::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #C9D2DA;
    margin-left: 7px;
    vertical-align: middle;
}
.v2-rcard__prate { display: inline-flex; align-items: center; gap: 3px; }
.v2-rcard__prate svg { width: 11px; height: 11px; color: #F5A623; }

.v2-rcard__when { text-transform: uppercase; }
.v2-rcard__title {
    margin: 12px 0 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    letter-spacing: -0.015em;
    line-height: 1.3;
    color: var(--ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.v2-rcard__title + .v2-rcard__text { margin-top: 8px; }

.v2-rcard--own .v2-rcard__id i::before { display: none; }
.v2-rcard__vk { width: 13px; height: 13px; color: var(--go); flex: 0 0 auto; }

@media (max-width: 640px) {
    .v2-rcard__appico { width: 40px; height: 40px; border-radius: 11px; }
    .v2-rcard__appname { font-size: 15px; }
    .v2-rcard__title { font-size: 15.5px; }
}

/* Apps-live strip: reviewers' app icons in a slow marquee above the
   wall. The track holds the list twice; the keyframe moves it by half
   its width, so the loop is seamless. Pauses on hover; under reduced
   motion it is a plain horizontal scroller. */
/* Home reviews headline: the all-platform total leads, set big in brand green
   on its own line (owner, 2026-10-28), like the /reviews hero. */
.v2-reviews__num {
    display: block;
    color: var(--go);
    font-size: clamp(64px, 9vw, 112px);
    line-height: .95;
    letter-spacing: -.04em;
    margin-bottom: .12em;
}
.v2-rapps { margin: clamp(28px, 4vw, 40px) auto 0; max-width: 1060px; }
.v2-rapps__cap {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px 12px;
    margin: 0 0 16px;
    font-size: 13.5px;
    color: var(--slate);
    text-align: center;
}
.v2-rapps__cap b { color: var(--ink); font-weight: 600; }
.v2-rapps__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.v2-rapps__tag::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.2s ease-out infinite;
}
.v2-rapps__tag--lock::before { display: none; }
.v2-rapps__tag--lock svg { width: 11px; height: 11px; }
.v2-rvhero__priv { margin: 24px auto 0; max-width: 760px; font-size: 14px; }
.v2-rvhero__priv + .v2-phero__fine { margin-top: 10px; }
.v2-rapps__viewport {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.v2-rapps__viewport + .v2-rapps__viewport { margin-top: 2px; }
.v2-rapps__track {
    display: flex;
    gap: 14px;
    width: max-content;
    margin: 0;
    padding: 6px 0 10px;
    list-style: none;
    /* --n = tiles per row; constant speed whatever the count */
    animation: v2Marquee calc(var(--n, 40) * 1.75s) linear infinite;
}
.v2-rapps__track--rev { animation-direction: reverse; }
.v2-rapps__viewport:hover .v2-rapps__track { animation-play-state: paused; }
.v2-rapps__item { flex: 0 0 auto; }
.v2-rapps__item a {
    display: block;
    width: 56px;
    height: 56px;
    border-radius: 15px;
    overflow: hidden;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
    transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s ease, border-color .25s ease;
}
.v2-rapps__item a:hover {
    transform: translateY(-4px) scale(1.04);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 14px 24px -14px rgba(10, 16, 23, 0.35);
}
.v2-rapps__item img { display: block; width: 100%; height: 100%; object-fit: cover; }
@keyframes v2Marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(50%); }
}
@media (prefers-reduced-motion: reduce) {
    .v2-rapps__track { animation: none; width: auto; overflow-x: auto; }
    .v2-rapps__viewport { -webkit-mask-image: none; mask-image: none; }
    .v2-rapps__item[aria-hidden="true"] { display: none; }
}
@media (max-width: 640px) {
    .v2-rapps__item a { width: 48px; height: 48px; border-radius: 13px; }
    .v2-rapps__track { gap: 10px; animation-duration: calc(var(--n, 40) * 1.3s); }
    .v2-rapps__cap { font-size: 13px; }
}
.v2-rmore .v2-btn--primary + .v2-btn--ghost { margin-top: -4px; }

/* ---------- /reviews page: filters, count, pagination ---------- */
.v2-rvhero .v2-phero__sub b { color: var(--ink); font-weight: 600; }
.v2-rvwall { padding-top: clamp(28px, 4vw, 40px); }
.v2-rvf {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    max-width: 1060px;
    margin: 0 auto;
}
.v2-rvf__group { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-rvf__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    color: var(--ink);
    font-size: 13.5px;
    font-weight: 500;
    text-decoration: none;
    transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.v2-rvf__chip .v2-mono { font-size: 11px; color: var(--faint); }
.v2-rvf__chip svg { width: 11px; height: 11px; color: var(--go); }
.v2-rvf__chip:hover { border-color: #C9D2DA; }
.v2-rvf__chip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2-rvf__chip.is-on .v2-mono { color: #A9B4BF; }
.v2-rvf__chip.is-on svg { color: #fff; }
.v2-rvwall .v2-rwall { margin-top: 18px; }
.v2-rvf__empty {
    max-width: 1060px;
    margin: 40px auto 0;
    text-align: center;
    color: var(--slate);
}
.v2-rvf__empty a { color: var(--go-deep); font-weight: 600; }
.v2-rvwall .v2-rmore { margin-top: 28px; }
@media (max-width: 640px) {
    .v2-rvf { justify-content: center; }
    .v2-rvf__chip { padding: 7px 11px; font-size: 13px; }
}

/* ---------- /reviews hero: three platform proof cards ---------- */
.v2-rvhero .v2-phero__sub b { color: var(--ink); }
.v2-rvp {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: 1000px;
    margin: clamp(30px, 4vw, 42px) auto 0;
    text-align: right;
}
.v2-rvp__card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 22px 22px 20px;
    border-radius: 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, .05), 0 22px 44px -26px rgba(10, 16, 23, .22);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.v2-rvp__card:hover { border-color: #C9D2DA; box-shadow: 0 1px 2px rgba(10, 16, 23, .05), 0 28px 52px -24px rgba(10, 16, 23, .28); }
.v2-rvp__card--dark { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2-rvp__card--go { background: linear-gradient(-180deg, var(--go-tint), var(--paper) 70%); border-color: color-mix(in srgb, var(--go) 28%, var(--line)); }
.v2-rvp__src {
    align-self: flex-start;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--mist);
    color: var(--slate);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.v2-rvp__card--dark .v2-rvp__src { background: rgba(255, 255, 255, .1); color: #C9D2DA; }
.v2-rvp__card--go .v2-rvp__src { background: var(--paper); color: var(--go-deep); }
.v2-rvp__num {
    margin-top: 10px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(2.3rem, 1.8rem + 1.6vw, 3rem);
    line-height: 1;
    letter-spacing: -.03em;
    color: var(--ink);
}
.v2-rvp__num small { font-size: .42em; font-weight: 600; color: var(--faint); letter-spacing: 0; margin-right: 2px; }
.v2-rvp__card--dark .v2-rvp__num { color: #fff; }
.v2-rvp__card--dark .v2-rvp__num small { color: #A9B4BF; }
.v2-rvp__stars svg { width: 15px; height: 15px; color: #F5A623; }
.v2-rvp__badge {
    margin-top: 10px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.25rem, 1.05rem + .7vw, 1.5rem);
    line-height: 1.15;
    letter-spacing: -.02em;
    color: var(--ink);
}
.v2-rvp__badge svg { width: 22px; height: 22px; color: var(--go); flex: 0 0 auto; }
.v2-rvp__fact { margin: 8px 0 0; font-size: 15px; font-weight: 600; color: var(--ink); }
.v2-rvp__fact b { font-weight: 700; }
.v2-rvp__card--dark .v2-rvp__fact { color: #fff; }
.v2-rvp__note { margin: 0; font-size: 13px; line-height: 1.5; color: var(--slate); }
.v2-rvp__card--dark .v2-rvp__note { color: #A9B4BF; }
.v2-rvp__link {
    margin-top: auto;
    padding-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: none;
}
.v2-rvp__link svg { width: 13px; height: 13px; transition: transform .2s ease; }
.v2-rvp__link:hover svg { transform: translate(-1px, -1px); }
@media (max-width: 860px) {
    .v2-rvp { grid-template-columns: 1fr; max-width: 460px; }
}

/* ---------- /reviews: "elsewhere" (Fiverr stats + Trustpilot mention) ---------- */
.v2-rvx__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 20px;
    max-width: 1060px;
    margin: clamp(32px, 5vw, 48px) auto 0;
}
.v2-rvx__card {
    border-radius: 18px;
    padding: clamp(24px, 3vw, 34px);
    background: var(--paper);
    border: 1px solid var(--line);
}
.v2-rvx__card--fiverr {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.v2-rvx__num {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(3rem, 2rem + 3vw, 4.25rem);
    line-height: 1;
    letter-spacing: -0.03em;
}
.v2-rvx__card--fiverr .v2-stars { margin-top: 12px; }
.v2-rvx__card--fiverr .v2-stars svg { width: 18px; height: 18px; color: #F5A623; }
.v2-rvx__fact { margin: 18px 0 0; font-size: 16px; color: #fff; }
.v2-rvx__fact b { font-weight: 700; }
.v2-rvx__note { margin: 6px 0 0; font-size: 13px; color: #A9B4BF; }
.v2-rvx__src {
    display: inline-block;
    margin-top: 22px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #A9B4BF;
}
.v2-rvx__card--tp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-content: start; }
.v2-rvx__fact--tp { margin: -6px 0 0; color: var(--ink); }
.v2-rvx__fact--tp b { font-weight: 700; }
.v2-rvx__tptitle {
    margin: -8px 0 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(1.2rem, 1rem + 0.8vw, 1.5rem);
    letter-spacing: -0.015em;
    line-height: 1.2;
    color: var(--ink);
}
.v2-rvx__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.v2-rvx__facts li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-rvx__facts li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m6 10.5 2.6 2.6L14.5 7' stroke='%230B8A47' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 14px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-rvx__cta { justify-self: start; }
@media (max-width: 900px) {
    .v2-rvx__grid { grid-template-columns: 1fr; }
}

/* Aggregate tile set into the wall */
.v2-rcard--agg {
    background: var(--ink);
    border-color: var(--ink);
}
.v2-rcard--agg:hover { border-color: var(--ink); }
.v2-rcard__num {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 54px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #FFFFFF;
}
.v2-rcard--agg .v2-stars { margin-top: 12px; }
.v2-rcard--agg .v2-stars svg { width: 15px; height: 15px; }
.v2-rcard--agg p {
    margin-top: 12px;
    font-size: 14px;
    color: #A9B4BF;
}
.v2-rcard--agg p b { color: #FFFFFF; font-weight: 600; }
.v2-rcard__aggnote {
    display: block;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #7A8794;
    font-size: 10px;
}

/* Load more */
.v2-rmore {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    margin-top: 16px;
}
.v2-rmore__count { font-size: 11px; }

/* Arrival + appended-card entrance */
@keyframes v2RiseCard {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: none; }
}
.v2-reviews.v2-anim .v2-rcard { opacity: 0; }
.v2-reviews.v2-anim.is-in .v2-rcard {
    animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}
.v2-rcard--enter {
    animation: v2RiseCard 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}

@media (max-width: 1000px) {
    .v2-rwall { columns: 2; }
}
@media (max-width: 640px) {
    .v2-rwall { columns: 1; margin-top: 32px; }
    .v2-rcard { padding: 16px 16px 14px; margin-bottom: 10px; border-radius: 14px; }
    .v2-rcard__head .v2-stars svg { width: 12.5px; height: 12.5px; }
    .v2-rcard__geo { font-size: 9px; }
    .v2-rcard__text { margin-top: 10px; font-size: 13.5px; line-height: 1.6; }
    .v2-rcard__who { margin-top: 12px; padding-top: 12px; gap: 9px; }
    .v2-rcard__av { width: 26px; height: 26px; font-size: 11px; }
    .v2-rcard__id b { font-size: 13px; }
    .v2-rcard__id i { font-size: 10.5px; }
    .v2-rcard__num { font-size: 44px; }
    .v2-rcard--agg .v2-stars svg { width: 13px; height: 13px; }
    .v2-rcard--agg p { margin-top: 10px; font-size: 13px; }
    .v2-rcard__aggnote { margin-top: 12px; padding-top: 11px; }
    .v2-rmore { margin-top: 14px; gap: 10px; }
    .v2-rmore .v2-btn { width: 100%; height: 48px; }
}

/* ---------- FAQ ---------- */

/* Two-column index: 14 questions at half the height with a
   center hairline, then the human-contact strip as the closer */
.v2-faq__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    margin-top: clamp(32px, 4.5vw, 46px);
}
.v2-faq__col { min-width: 0; }
.v2-faq__col:first-child { padding-left: clamp(26px, 3.5vw, 44px); }
.v2-faq__col:last-child {
    padding-right: clamp(26px, 3.5vw, 44px);
    border-right: 1px solid var(--line);
}

.v2-faq__item { border-bottom: 1px solid var(--line); }
.v2-faq__col .v2-faq__item:first-child { border-top: 1px solid var(--line); }

.v2-faq__item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 2px;
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.35;
    color: var(--ink);
}
.v2-faq__item summary::-webkit-details-marker { display: none; }
.v2-faq__item summary:hover { color: var(--go-deep); }

.v2-faq__ic {
    position: relative;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}
.v2-faq__ic::before,
.v2-faq__ic::after {
    content: "";
    position: absolute;
    right: 50%;
    top: 50%;
    width: 12px;
    height: 2px;
    border-radius: 2px;
    background: var(--faint);
    transform: translate(50%, -50%);
    transition: transform .25s ease, background-color .25s ease;
}
.v2-faq__ic::after { transform: translate(50%, -50%) rotate(-90deg); }
/* Driven by .is-open (toggled at the START of the JS open/close) so the icon
   changes in sync with the list, not after it. */
.v2-faq__item[open] .v2-faq__ic::before,
.v2-faq__item[open] .v2-faq__ic::after,
.v2-faq__item.is-open .v2-faq__ic::before,
.v2-faq__item.is-open .v2-faq__ic::after {
    background: var(--go);
    transform: translate(50%, -50%) rotate(0deg);
}
/* While closing (open attr still set but is-open removed), show the plus again immediately. */
.v2-faq__item[open]:not(.is-open) .v2-faq__ic::before,
.v2-faq__item[open]:not(.is-open) .v2-faq__ic::after { background: var(--faint); }
.v2-faq__item[open]:not(.is-open) .v2-faq__ic::after { transform: translate(50%, -50%) rotate(-90deg); }
/* Smooth plus/minus icon + summary text, kept animated even with OS reduced-motion. */
.v2 .v2-faq__ic::before,
.v2 .v2-faq__ic::after {
    transition-property: transform, background-color !important;
    transition-duration: .3s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2-fold summary .v2-mono,
.v2 .v2-faq__q {
    transition: color .25s ease !important;
}

/* Animated element has NO padding, so max-height:0 collapses it completely (no residual jump). */
.v2-faq__a { padding: 0; }
.v2-faq__a-inner { padding: 1px 2px 17px 30px; }
/* Keep the JS open/close animation working even when the OS requests reduced motion
   (otherwise the global reduced-motion rule forces the transition to 0.01ms). */
.v2 .v2-faq__a {
    transition-property: max-height, opacity !important;
    transition-duration: .22s !important;   /* must finish before the JS close timeout (250ms) */
    transition-timing-function: cubic-bezier(.22, .8, .26, 1) !important;
}
.v2-faq__a p {
    font-size: 14px;
    line-height: 1.66;
    color: var(--slate);
}
.v2-faq__a a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Human strip: photo, promise, alternates, WhatsApp */
.v2-faq__human {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 26px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px 18px 14px 16px;
}
.v2-faq__human > img {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}
.v2-faq__human-t { min-width: 0; }
.v2-faq__human-t b {
    display: block;
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-faq__human-t span {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--slate);
}
.v2-faq__alt {
    margin-right: auto;
    font-size: 13px;
    color: var(--faint);
}
.v2-faq__alt a { color: var(--slate); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.v2 .v2-faq__alt a { transition: color .22s ease, text-decoration-color .22s ease, text-underline-offset .22s ease !important; }
.v2-faq__alt a:hover { color: var(--go-deep); text-decoration-color: var(--go); text-underline-offset: 5px; }
.v2 .v2-faq__wa {
    flex: 0 0 auto;
    height: 44px;
    padding: 0 18px;
    background: #25D366;
    color: #FFFFFF;
}
/* Author card: match the Ask-Me (WhatsApp) button height to the other two buttons. */
.v2 .v2gpr-author__ctas .v2-faq__wa { height: 38px; }
.v2 .v2-faq__wa:hover {
    background: #1EBE5A;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -8px rgba(37, 211, 102, 0.5);
}

@media (max-width: 960px) {
    .v2-faq__alt {
        flex: 1 1 100%;
        order: 4;
        margin-right: 0;
        text-align: center;
    }
    .v2 .v2-faq__wa { margin-right: auto; }
}
@media (max-width: 900px) {
    .v2-faq__cols { grid-template-columns: minmax(0, 1fr); margin-top: 30px; }
    .v2-faq__col:first-child { padding-left: 0; }
    .v2-faq__col:last-child { padding-right: 0; border-right: 0; }
    .v2-faq__col:last-child .v2-faq__item:first-child { border-top: 0; }
}
@media (max-width: 640px) {
    .v2-faq__item summary { padding: 14px 0; font-size: 14.5px; gap: 12px; }
    .v2-faq__a { padding: 0; }
    .v2-faq__a-inner { padding: 0 0 16px 8px; }
    .v2-faq__a p { font-size: 13.5px; }
    .v2-faq__human { padding: 16px; margin-top: 22px; gap: 12px; }
    .v2-faq__human-t b { font-size: 14px; }
    .v2-faq__human-t span { font-size: 12px; }
    .v2 .v2-faq__wa { flex: 1 1 100%; order: 3; height: 48px; margin-right: 0; }
    .v2-faq__alt { font-size: 12.5px; }
}

/* ---------- Final CTA + Footer (dark close) ---------- */

.v2 .v2-btn--ghostdark {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.22);
    color: #FFFFFF;
}
.v2 .v2-btn--ghostdark:hover {
    border-color: rgba(255, 255, 255, 0.5);
    background: rgba(255, 255, 255, 0.06);
    transform: translateY(-1px);
}
.v2 .v2-btn--ghostdark .v2-ic { color: #25D366; }

.v2-cta {
    position: relative;
    background: var(--ink);
    padding: clamp(80px, 11vw, 130px) 0 clamp(72px, 9vw, 110px);
    overflow: hidden;
}
.v2-cta__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(46rem 30rem at 50% -14%, rgba(11, 138, 71, 0.22), transparent 62%);
}
.v2-cta__in {
    position: relative;
    text-align: center;
}
.v2-cta__eyebrow { color: #3ECF81; }
.v2-cta__title {
    margin-top: 18px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.2rem, 1.3rem + 3.4vw, 3.6rem);
    line-height: 1.05;
    letter-spacing: -0.026em;
    color: #FFFFFF;
    text-wrap: balance;
}
.v2-cta__sub {
    margin-top: 16px;
    font-size: 16.5px;
    color: #A9B4BF;
}
.v2-cta__actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}
.v2-cta__fine {
    margin-top: 18px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.04em;
    color: #7A8794;
}
.v2-cta__fine span { white-space: nowrap; }

@media (max-width: 640px) {
    .v2-cta__actions .v2-btn { width: 100%; max-width: 420px; }
}

/* Footer */

.v2-footer {
    position: relative;
    background: var(--ink);
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    padding: clamp(40px, 5vw, 56px) 0 30px;
    overflow: hidden;
}
.v2-footer .v2-container { position: relative; z-index: 1; }

/* Trust strip */
.v2-footer__trust {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px 36px;
    padding-bottom: 26px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}
.v2-footer__fact {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 500;
    color: #A9B4BF;
    position: relative;
    top: 1px; /* nudge the text down to sit centred with the icon */
}
.v2-footer__fact svg { width: 17px; height: 17px; color: #3ECF81; flex: 0 0 auto; position: relative; top: -1px; }
.v2-footer__pay {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-right: auto;
}
.v2-footer__pay img { height: 18px; width: auto; opacity: 0.85; }

/* Main columns */
.v2-footer__grid {
    display: grid;
    grid-template-columns: 1.45fr 1fr 1fr 1.25fr 1fr;
    gap: 40px;
    padding-top: clamp(36px, 4vw, 48px);
}

.v2-footer__about {
    margin-top: 24px;
    max-width: 32ch;
    font-size: 13.5px;
    line-height: 1.65;
    color: #93A0AC;
}
.v2-footer .v2-logo__tile::before { background: #FFFFFF; }
.v2-footer .v2-logo__p { color: var(--ink); }
.v2-footer .v2-logo__dot { border-color: var(--ink); }
.v2-footer .v2-logo__word { color: #FFFFFF; }

.v2-footer__contact {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 24px;
}
.v2-footer__contact a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    color: #A9B4BF;
    width: fit-content;
}
/* Smooth colour + slide, with a little icon pop on hover (exempt from reduced-motion). */
.v2 .v2-footer__contact a {
    transition: color .22s ease, transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-footer__contact a svg { width: 15px; height: 15px; color: #3ECF81; flex: 0 0 auto; }
.v2 .v2-footer__contact a svg { transition: transform .28s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2-footer__contact a:hover { color: #FFFFFF; transform: translateX(-4px); }
.v2-footer__contact a:hover svg { transform: scale(1.18); }
.v2-footer__addr {
    margin-top: 20px;
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.7;
    color: #6E7B88;
}

.v2-footer__col { display: flex; flex-direction: column; gap: 11px; }
.v2-footer__col .v2-mono { color: #6E7B88; margin-bottom: 4px; }
.v2-footer__col .v2-footer__legalhead { margin-top: 14px; }
/* accordion wrappers added by the footer script: invisible to the desktop layout */
.v2-footer__panel,
.v2-footer__panel-in { display: contents; }
.v2-footer__pm { display: none; }
.v2-footer__col a {
    font-size: 13.5px;
    color: #A9B4BF;
    width: fit-content;
    line-height: 1.5;
}
/* Smooth colour + slight slide on hover (exempt from reduced-motion). */
.v2 .v2-footer__col a {
    transition: color .22s ease, transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-footer__col a:hover { color: #FFFFFF; transform: translateX(-5px); }

/* Bottom bar */
.v2-footer__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px 20px;
    margin-top: clamp(36px, 5vw, 52px);
    padding-top: 22px;
    border-top: 1px solid rgba(255, 255, 255, 0.09);
    font-size: 12.5px;
    color: #7A8794;
}
/* Footer language links: smooth colour + sliding underline on hover (scoped to footer
   so it doesn't touch the nav dropdown; exempt from reduced-motion). */
.v2-footer .v2-lang a { position: relative; }
.v2 .v2-footer .v2-lang a { transition: color .22s ease, opacity .22s ease !important; }
.v2-footer .v2-lang a::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: -2px;
    height: 1.5px;
    border-radius: 2px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: center;
}
.v2 .v2-footer .v2-lang a::after { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2-footer .v2-lang a:hover { opacity: 1; color: #FFFFFF; text-decoration: none; }
.v2-footer .v2-lang a:hover::after { transform: scaleX(1); }

.v2-footer__social { display: inline-flex; gap: 10px; }
.v2-footer__social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    box-sizing: border-box;
    color: #A9B4BF;
    will-change: transform;
}
/* Smooth lift + zoom + fill on hover (exempt from reduced-motion). */
.v2 .v2-footer__social a {
    transition: transform .28s cubic-bezier(.34, 1.56, .64, 1),
                color .22s ease, border-color .22s ease, background-color .22s ease !important;
}
.v2-footer__social a svg { width: 15px; height: 15px; display: block; position: relative; right: 0px; top: 0px; }
.v2-footer__social a:hover {
    color: #FFFFFF;
    border-color: var(--go);
    background: color-mix(in srgb, var(--go) 26%, transparent);
    transform: translateY(-4px) scale(1.1);
    box-shadow: 0 10px 20px -8px rgba(11, 138, 71, 0.6);
}
.v2-footer__social a:active { transform: translateY(-1px) scale(1.03); }

/* Ghost wordmark */
.v2-footer__ghost {
    position: absolute;
    right: 50%;
    bottom: -0.32em;
    transform: translateX(50%);
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(96px, 15vw, 210px);
    letter-spacing: -0.04em;
    line-height: 1;
    color: rgba(255, 255, 255, 0.028);
    white-space: nowrap;
    pointer-events: none;
    user-select: none;
    z-index: 0;
}

@media (max-width: 1060px) {
    .v2-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px 40px; }
    .v2-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .v2-footer { padding-top: 30px; padding-bottom: 20px; }

    /* Redundant with the CTA band right above it on phones */
    .v2-footer__trust { display: none; }

    /* Brand block */
    .v2-footer__grid { grid-template-columns: 1fr; gap: 0; padding-top: 0; }
    .v2-footer__brand { grid-column: auto; margin-bottom: 22px; }
    .v2-footer__about { margin-top: 14px; font-size: 13px; max-width: 42ch; }

    /* Contact repositioned as two action pills */
    .v2-footer__contact {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
        margin-top: 18px;
    }
    .v2-footer__contact a {
        justify-content: center;
        height: 44px;
        border: 1px solid rgba(255, 255, 255, 0.14);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.04);
        font-size: 12.5px;
        font-weight: 600;
        color: #C9D2DA;
        width: auto;
        min-width: 0;
        overflow: hidden;
    }
    .v2-footer__contact a:active { background: rgba(255, 255, 255, 0.09); }
    .v2-footer__addr { margin-top: 16px; font-size: 10px; }

    /* Link groups become collapsible rows. The links sit in a panel that grows and shrinks smoothly
       (grid rows 0fr <-> 1fr), and the head shows the same plus/minus as the FAQ (two bars; the
       upright one turns flat when open). !important on the transitions keeps them with OS reduced-motion. */
    .js-acc .v2-footer__col {
        gap: 0;
        border-top: 1px solid rgba(255, 255, 255, 0.09);
    }
    .js-acc .v2-footer__col:last-of-type { border-bottom: 1px solid rgba(255, 255, 255, 0.09); }
    .js-acc .v2-footer__col > .v2-mono {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 15px 2px;
        margin-bottom: 0;
        font-size: 10.5px;
        color: #A9B4BF;
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
        transition: color .25s ease !important;
    }
    .js-acc .v2-footer__col.is-open > .v2-mono { color: #FFFFFF; }
    .js-acc .v2-footer__pm {
        display: block;
        position: relative;
        flex: none;
        width: 20px;
        height: 20px;
    }
    .js-acc .v2-footer__pm::before,
    .js-acc .v2-footer__pm::after {
        content: "";
        position: absolute;
        left: 50%;
        top: 50%;
        width: 12px;
        height: 2px;
        border-radius: 2px;
        background: #6E7B88;
        transform: translate(-50%, -50%);
        transition: transform .3s cubic-bezier(.22, 1, .36, 1), background-color .3s ease !important;
    }
    .js-acc .v2-footer__pm::after { transform: translate(-50%, -50%) rotate(90deg); }
    .js-acc .v2-footer__col.is-open .v2-footer__pm::before,
    .js-acc .v2-footer__col.is-open .v2-footer__pm::after {
        background: #3DDC84;
        transform: translate(-50%, -50%) rotate(0deg);
    }

    .js-acc .v2-footer__panel {
        display: grid;
        grid-template-rows: 0fr;
        opacity: 0;
        visibility: hidden;
        transition: grid-template-rows .38s cubic-bezier(.22, 1, .36, 1), opacity .25s ease, visibility 0s linear .38s !important;
    }
    .js-acc .v2-footer__col.is-open .v2-footer__panel {
        grid-template-rows: 1fr;
        opacity: 1;
        visibility: visible;
        transition: grid-template-rows .38s cubic-bezier(.22, 1, .36, 1), opacity .3s ease .05s, visibility 0s !important;
    }
    .js-acc .v2-footer__panel-in {
        display: flex;
        flex-direction: column;
        min-height: 0;
        overflow: hidden;
    }
    .js-acc .v2-footer__panel-in > a {
        font-size: 14px;
        padding: 6px 2px;
    }
    .js-acc .v2-footer__panel-in > a:last-child { margin-bottom: 12px; }
    .js-acc .v2-footer__panel .v2-footer__legalhead {
        margin: 0;
        padding: 10px 2px 4px;
        font-size: 10.5px;
    }

    /* Slim bottom bar */
    .v2-footer__bar {
        margin-top: 24px;
        padding-top: 18px;
        gap: 12px 16px;
        font-size: 11.5px;
    }
    .v2-footer__social { gap: 8px; }
    .v2-footer__social a { width: 32px; height: 32px; }
    .v2-footer__social a svg { width: 13px; height: 13px; }

    .v2-footer__ghost { font-size: 23vw; }
}

/* Skip link */
.v2-skip {
    position: fixed;
    top: -48px;
    right: 16px;
    z-index: 200;
    background: var(--ink);
    color: #FFFFFF;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 600;
    transition: top .2s ease;
}
.v2-skip:focus-visible { top: 12px; }

/* ---------- Why us (three-way showdown) ---------- */

.v2-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

.v2-ways {
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
    max-width: 1060px;
    margin: clamp(44px, 6vw, 64px) auto 0;
}

.v2-way {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 26px;
}
.v2-way--win {
    border: 2px solid var(--go);
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -26px rgba(11, 138, 71, 0.4);
}

.v2-way__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.v2-way__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2-way__ic svg { width: 22px; height: 22px; }
.v2-way__ic--brand { position: relative; background: var(--ink); }
.v2-way__p {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    line-height: 1;
    color: #FFFFFF;
}
.v2-way__dot {
    position: absolute;
    left: -3px;
    bottom: -3px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--go);
    border: 2px solid var(--paper);
}

.v2-way__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 999px;
    padding: 5px 11px;
    white-space: nowrap;
}
.v2-way__chip svg { width: 12px; height: 12px; }
.v2-way__chip--slow { background: var(--mist); color: var(--slate); border: 1px solid var(--line); }
.v2-way__chip--risk { background: #FDF1F0; color: #B42318; border: 1px solid rgba(180, 35, 24, 0.16); }
.v2-way__chip--rec  { background: var(--go); color: #FFFFFF; }

.v2-way__title {
    margin-top: 18px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 19px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-way__sub {
    margin-top: 5px;
    font-size: 13.5px;
    color: var(--faint);
}

.v2-way__list {
    list-style: none;
    margin: 18px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
    flex: 1;
}
.v2-way__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2-way__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 6.5l7 7m0-7-7 7' stroke='%239AA6B2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    background-size: 10px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-way__list--check li { color: var(--ink); }
.v2-way__list--check li::before {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
}

.v2-way__cost {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.v2-way__cost .v2-mono { font-size: 10px; }
.v2-way__cost b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-way__cost-win { color: var(--go-deep); }

.v2 .v2-way__cta { width: 100%; margin-top: 16px; }

/* VS badges between the columns */
.v2-ways__vs {
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 4px 12px -4px rgba(10, 16, 23, 0.15);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--faint);
    z-index: 2;
}
.v2-ways__vs--a { right: calc((100% - 40px) / 3 + 10px); }
.v2-ways__vs--b { right: calc(((100% - 40px) / 3) * 2 + 30px); }

/* Staggered arrival */
.v2-why.v2-anim .v2-way { opacity: 0; transform: translateY(26px); }
.v2-why.v2-anim.is-in .v2-way {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease, transform .6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-why.v2-anim.is-in .v2-way:nth-of-type(1) { transition-delay: .05s; }
.v2-why.v2-anim.is-in .v2-way:nth-of-type(2) { transition-delay: .17s; }
.v2-why.v2-anim.is-in .v2-way:nth-of-type(3) { transition-delay: .29s; }
.v2-why.v2-anim .v2-ways__vs { opacity: 0; }
.v2-why.v2-anim.is-in .v2-ways__vs { opacity: 1; transition: opacity .45s ease .6s; }

@media (max-width: 980px) {
    .v2-ways { grid-template-columns: minmax(0, 1fr); max-width: 480px; gap: 10px; }
    /* VS badges join the flow between stacked cards */
    .v2-ways__vs {
        position: static;
        transform: none;
        justify-self: center;
        width: 30px;
        height: 30px;
    }
    .v2-ways__vs--a { grid-row: 2; }
    .v2-ways__vs--b { grid-row: 4; }
    .v2-way:nth-of-type(1) { grid-row: 1; }
    .v2-way:nth-of-type(2) { grid-row: 3; }
    .v2-way:nth-of-type(3) { grid-row: 5; }
}
@media (max-width: 640px) {
    .v2-way { padding: 20px 18px 18px; }
    .v2-way__ic { width: 38px; height: 38px; border-radius: 11px; }
    .v2-way__ic svg { width: 20px; height: 20px; }
    .v2-way__p { font-size: 16px; }
    .v2-way__title { margin-top: 14px; font-size: 17.5px; }
    .v2-way__sub { font-size: 13px; }
    .v2-way__list { margin-top: 14px; gap: 9px; }
    .v2-way__list li { font-size: 13.5px; padding-right: 24px; }
    .v2-way__list li::before { width: 15px; height: 15px; top: 2.5px; background-size: 10px; }
    .v2-way__cost { margin-top: 16px; padding-top: 14px; }
    .v2 .v2-way__cta { height: 48px; margin-top: 14px; }
}

/* ---------- Video review ---------- */

.v2-video__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
    gap: clamp(40px, 6vw, 80px);
    align-items: center;
}
/* Pin the copy column to the top so opening/closing the transcript doesn't re-centre
   (and jitter) the text above it. */
.v2-video__copy { align-self: start; }
.v2-video__copy .v2-h2 { margin-top: 14px; }
.v2-video__copy .v2-lead { margin-top: 16px; max-width: 50ch; }

.v2-video__actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px 22px;
    margin-top: 28px;
}
.v2-video__yt { color: #FF0000; }
.v2-video__case {
    font-size: 14px;
    font-weight: 500;
    color: var(--slate);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--line);
    transition: color .15s ease;
}
.v2-video__case:hover { color: var(--ink); }

.v2-video__facts {
    margin-top: 16px;
    font-size: 11.5px;
    letter-spacing: 0.05em;
    color: var(--faint);
}
.v2-video__facts span { white-space: nowrap; }

.v2-video__stage { display: flex; justify-content: center; }

.v2-video__scene { position: relative; }
.v2-video__scene::before {
    content: "";
    position: absolute;
    width: min(150%, 100vw);
    aspect-ratio: 1;
    right: 50%;
    top: 50%;
    transform: translate(50%, -50%);
    background: radial-gradient(closest-side, rgba(11, 138, 71, 0.12), transparent 70%);
    pointer-events: none;
}

.v2-video__notch {
    position: absolute;
    top: 10px;
    right: 50%;
    transform: translateX(50%);
    width: 74px;
    height: 18px;
    border-radius: 999px;
    background: rgba(10, 16, 23, 0.9);
    z-index: 1;
}

.v2-video__cap {
    margin-top: 16px;
    text-align: center;
    font-size: 10.5px;
}

/* Scene choreography */
.v2-video.v2-anim .v2-video__phone { opacity: 0; transform: translateY(22px); }
.v2-video.v2-anim.is-in .v2-video__phone {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease, transform .6s cubic-bezier(0.22, 0.8, 0.26, 1);
}

.v2-video__phone {
    position: relative;
    width: min(300px, 78vw);
    aspect-ratio: 9 / 16;
    background: var(--ink);
    border: 9px solid var(--ink);
    border-radius: 34px;
    overflow: hidden;
    box-shadow:
        0 2px 4px rgba(10, 16, 23, 0.08),
        0 36px 68px -24px rgba(10, 16, 23, 0.35);
}
.v2-video__cover {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 26px;
    overflow: hidden;
    display: block;
}
.v2-video__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.v2-video__cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(-180deg, rgba(10, 16, 23, 0) 55%, rgba(10, 16, 23, 0.45) 100%);
}
.v2-video__playbtn {
    position: absolute;
    right: 50%;
    top: 50%;
    transform: translate(50%, -50%);
    width: 58px;
    height: 58px;
    border-radius: 50%;
    color: var(--ink);
    display: grid;
    place-items: center;
    z-index: 1;
}
/* The white circle lives on ::before, so it can zoom on hover WITHOUT moving the icon. */
.v2-video__playbtn::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.97);
    box-shadow: 0 8px 24px rgba(10, 16, 23, 0.35);
    z-index: -1;
    transform-origin: center center;
}
.v2 .v2-video__playbtn::before {
    transition: transform .28s cubic-bezier(.22, 1, .36, 1),
                box-shadow .28s cubic-bezier(.22, 1, .36, 1),
                background-color .28s ease !important;
    animation: v2Pulse 2.4s ease-out infinite !important;
}
.v2-video__playbtn svg { width: 21px; height: 21px; margin-right: 0px; display: block; } /* never scaled → stays centred */
.v2-video__cover:hover .v2-video__playbtn::before {
    transform: scale(1.1);
    background: #FFFFFF;
    box-shadow: 0 12px 30px rgba(10, 16, 23, 0.45), 0 0 0 6px rgba(255, 255, 255, 0.28);
}
.v2-video__cover:active .v2-video__playbtn::before {
    transform: scale(1.03);
    box-shadow: 0 6px 16px rgba(10, 16, 23, 0.4), 0 0 0 3px rgba(255, 255, 255, 0.22);
}
.v2-video__dur {
    position: absolute;
    right: 14px;
    bottom: 14px;
    z-index: 1;
    color: #FFFFFF;
    background: rgba(10, 16, 23, 0.55);
    border-radius: 8px;
    padding: 4px 9px;
    letter-spacing: 0.08em;
}
.v2-video__iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 26px;
}

@media (max-width: 900px) {
    .v2-video__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .v2-video__copy { text-align: center; }
    .v2-video__copy .v2-lead { margin-inline: auto; }
    .v2-video__actions { justify-content: center; }
}
@media (max-width: 640px) {
    .v2-video__actions { flex-direction: column; gap: 14px; }
    .v2-video__actions .v2-btn { width: 100%; }
}
/* ---------- Reports ---------- */

.v2-reports__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    grid-template-areas:
        "stage head"
        "stage body";
    column-gap: clamp(40px, 6vw, 80px);
    align-items: center;
}
.v2-reports__stage { grid-area: stage; }
.v2-reports__head { grid-area: head; align-self: end; }
.v2-reports__body { grid-area: body; align-self: start; margin-top: 24px; }

.v2-reports__doc {
    position: relative;
    display: block;
    margin: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -22px rgba(10, 16, 23, 0.18);
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-reports__doc {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .34s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-reports__doc:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow:
        0 2px 4px rgba(10, 16, 23, 0.06),
        0 40px 72px -22px rgba(10, 16, 23, 0.26);
}
.v2-reports__doc:hover .v2-reports__open { color: var(--go); }
.v2-reports__doc::before {
    content: "";
    position: absolute;
    inset: 14px -10px -10px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    z-index: -1;
}
.v2-reports__docbar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-reports__docbar > .v2-mono:not(.v2-reports__open) {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    position: relative;
    top: 1px; /* nudge the filename down so it sits centred in the bar */
}
.v2-reports__open {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    white-space: nowrap;
    color: var(--slate);
    font-weight: 700;
    transition: color .15s ease;
}
.v2-reports__open svg { width: 13px; height: 13px; }
.v2-reports__docdot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
}
.v2-reports__doc img {
    width: 100%;
    height: auto;
}

.v2-reports__head .v2-h2 { margin-top: 14px; }
.v2-reports__head .v2-lead { margin-top: 16px; max-width: 46ch; }

.v2-reports__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.v2-reports__list li {
    position: relative;
    padding-right: 30px;
}
.v2-reports__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 12px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-reports__list b {
    display: block;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-reports__list span {
    display: block;
    margin-top: 3px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}

.v2-reports__tiers {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 28px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2-reports__tier {
    padding: 14px 16px;
    border-right: 1px solid var(--line);
}
.v2-reports__tier:first-child { border-right: 0; }
.v2-reports__tier .v2-mono { font-size: 10px; }
.v2-reports__tier b {
    display: block;
    margin-top: 5px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}

.v2-reports__note {
    margin-top: 14px;
    color: var(--go);
    font-weight: 700;
}

@media (max-width: 480px) {
    .v2-reports__tiers { grid-template-columns: 1fr; }
    .v2-reports__tier { border-right: 0; border-top: 1px solid var(--line); }
    .v2-reports__tier:first-child { border-top: 0; }
}

@media (max-width: 900px) {
    .v2-reports__grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas:
            "head"
            "stage"
            "body";
    }
    .v2-reports__head { text-align: center; align-self: auto; }
    .v2-reports__head .v2-lead { margin-inline: auto; }
    .v2-reports__stage { margin-top: 28px; }
    .v2-reports__body { margin-top: 26px; }
    .v2-reports__doc::before { display: none; }

    .v2-reports__list { gap: 14px; }
    .v2-reports__list b { font-size: 14.5px; }
    .v2-reports__list span { font-size: 13px; }
    .v2-reports__tiers { margin-top: 22px; }
    .v2-reports__tier { padding: 12px 14px; }
    .v2-reports__tier b { font-size: 13px; }
    .v2-reports__note {
        margin-top: 12px;
        text-align: center;
        font-size: 10px;
    }
}

/* ============================================================
   SEO migration additions (2026-07-03)
   FAQ h3-in-summary parity, video transcript, how process
   link, guides section. See HOMEPAGE_SEO_MIGRATION_PLAN.md.
============================================================ */

/* FAQ: the question is an h3 for search/AI extractability.
   Renders exactly like the span it replaced. */
.v2-faq__item summary h3 {
    font: inherit;
    letter-spacing: inherit;
    color: inherit;
}

/* How: quiet process link inside the CTA note */
.v2-how__cta-note a {
    color: var(--slate);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-how__cta-note a:hover { color: var(--ink); }

/* Video: collapsed transcript below the actions */
.v2-video__tr {
    margin-top: 26px;
    border-top: 1px solid var(--line);
}
.v2-video__tr summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 0;
    cursor: pointer;
    list-style: none;
}
.v2-video__tr summary::-webkit-details-marker { display: none; }
.v2-video__tr summary:hover .v2-mono { color: var(--ink); }
.v2-video__tr[open] .v2-faq__ic::before,
.v2-video__tr[open] .v2-faq__ic::after {
    background: var(--go);
    transform: translate(50%, -50%) rotate(0deg);
}
/* Stays [open] for the max-height animation, so drive the icon from .is-collapsed. */
.v2-video__tr.is-collapsed .v2-faq__ic::before,
.v2-video__tr.is-collapsed .v2-faq__ic::after { background: var(--faint); }
.v2-video__tr.is-collapsed .v2-faq__ic::after { transform: translate(50%, -50%) rotate(-90deg); }
.v2-video__tr-body { padding: 4px 0 10px; }
.v2-video__tr-body p {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2-video__tr-body p + p { margin-top: 10px; }
.v2-video__tr-body b { color: var(--ink); font-weight: 600; }

/* Guides: editorial index of the top three guides */
.v2-guides__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2-guide {
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
    text-decoration: none;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-guide {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-guide:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.3);
}
.v2-guide__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.v2-guide h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 19px;
    letter-spacing: -0.015em;
    line-height: 1.28;
    color: var(--ink);
}
.v2-guide__dek {
    font-size: 14px;
    line-height: 1.62;
    color: var(--slate);
    flex: 1;
}
.v2-guide__go {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 2px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
}
.v2-guide__go svg { width: 15px; height: 15px; }
.v2 .v2-guide__go { transition: color .22s ease !important; }
.v2 .v2-guide__go svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2-guide:hover .v2-guide__go { color: var(--go); }
.v2-guide:hover .v2-guide__go svg { transform: translateX(-4px); }
.v2-guides__all { text-align: center; margin-top: 36px; }

/* Guides arrival */
.v2-guides.v2-anim .v2-guide { opacity: 0; }
.v2-guides.v2-anim.is-in .v2-guide {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

@media (max-width: 960px) {
    .v2-guides__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        max-width: 560px;
        margin-inline: auto;
    }
}
@media (max-width: 640px) {
    .v2-guide { padding: 18px; border-radius: 16px; gap: 10px; }
    .v2-guide h3 { font-size: 17px; }
    .v2-guide__dek { font-size: 13.5px; }
    .v2-guides__all { margin-top: 26px; }
    .v2 .v2-guides__all .v2-btn { width: 100%; max-width: 420px; height: 48px; }
    .v2-video__tr { margin-top: 20px; }
}

/* Fold: reusable collapsed detail row (How, Reports) */
.v2-fold {
    margin-top: 26px;
    border-top: 1px solid var(--line);
}
.v2-fold summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 0;
    cursor: pointer;
    list-style: none;
}
.v2-fold summary::-webkit-details-marker { display: none; }
.v2-fold summary:hover .v2-mono { color: var(--ink); }
.v2-fold[open] .v2-faq__ic::before,
.v2-fold[open] .v2-faq__ic::after {
    background: var(--go);
    transform: translate(50%, -50%) rotate(0deg);
}
/* The fold stays [open] for animation, so drive the icon from .is-collapsed instead:
   collapsed = plus (faint), expanded = minus (green). */
.v2-fold.is-collapsed .v2-faq__ic::before,
.v2-fold.is-collapsed .v2-faq__ic::after { background: var(--faint); }
.v2-fold.is-collapsed .v2-faq__ic::after { transform: translate(50%, -50%) rotate(-90deg); }
.v2-fold__body { padding: 4px 0 10px; }
/* Smooth open/close via max-height (JS sets the exact value). Kept animated even with OS reduced-motion. */
.v2 .v2-fold__reveal {
    overflow: hidden !important;
    transition: max-height .34s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-fold__body p {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2-fold__body p + p { margin-top: 10px; }
.v2-how__fold {
    max-width: 720px;
    margin: 38px auto 0;
}

/* Explain: the chapter reader. A rail of 13 chapters beside one
   reading pane; every chapter stays in the DOM for search and AI
   systems, only the active one renders. */
.v2-reader {
    display: grid;
    grid-template-columns: 284px minmax(0, 1fr);
    margin-top: clamp(32px, 4.5vw, 48px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 30px 70px -48px rgba(10, 16, 23, 0.25);
}

.v2-reader__rail {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 12px;
    background: var(--mist);
    border-left: 1px solid var(--line);
}

/* Without JS there are no tabs: the rail hides and every
   chapter renders stacked, so nothing is unreachable. */
.v2-reader:not(.is-ready) { grid-template-columns: minmax(0, 1fr); }
.v2-reader:not(.is-ready) .v2-reader__rail { display: none; }
.v2-reader:not(.is-ready) .v2-reader__pane + .v2-reader__pane { border-top: 1px solid var(--line); }
.v2-reader.is-ready .v2-reader__pane { display: none; }
.v2-reader.is-ready .v2-reader__pane.is-active {
    display: block;
    animation: v2PaneIn 0.32s cubic-bezier(0.22, 0.8, 0.26, 1);
}
@keyframes v2PaneIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

.v2 .v2-reader__tab {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 9px 12px;
    border-radius: 10px;
    text-align: right;
    color: var(--slate);
    transition: background-color 0.15s ease, color 0.15s ease;
}
.v2 .v2-reader__tab:hover { color: var(--ink); background: rgba(255, 255, 255, 0.75); }
.v2-reader__num {
    width: 18px;
    flex: 0 0 auto;
    font-size: 10px;
    letter-spacing: 0.08em;
}
.v2-reader__lab {
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.25;
}
.v2 .v2-reader__tab.is-active {
    background: var(--ink);
    color: #FFFFFF;
    box-shadow: 0 12px 24px -14px rgba(10, 16, 23, 0.55);
}
.v2 .v2-reader__tab.is-active .v2-reader__num { color: rgba(255, 255, 255, 0.55); }

.v2-reader__pane {
    min-width: 0;
    padding: clamp(24px, 3.4vw, 36px) clamp(22px, 3.6vw, 42px) clamp(18px, 2.4vw, 26px);
}
/* The pane is focusable (tabindex) for keyboard scrolling, but a
   reading region does not need the ring; deep links would show a
   full-height green outline otherwise. */
.v2 .v2-reader__pane:focus-visible { outline: none; }
.v2-reader__kicker { color: var(--go); }
.v2-reader__title {
    margin: 9px 0 16px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(20px, 2.3vw, 24px);
    letter-spacing: -0.02em;
    line-height: 1.22;
    color: var(--ink);
}

.v2-reader__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    max-width: 64ch;
    margin-top: 24px;
    padding-top: 15px;
    border-top: 1px solid var(--line);
}
.v2 .v2-reader__next {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
}
.v2 .v2-reader__next { transition: color .22s ease !important; }
.v2 .v2-reader__next svg { width: 15px; height: 15px; transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2 .v2-reader__next:hover { color: var(--go); }
.v2 .v2-reader__next:hover svg { transform: translateX(-5px); }

.v2-explain__a {
    max-width: 64ch;
    padding: 0;
}
.v2-explain__a p {
    font-size: 15px;
    line-height: 1.72;
    color: var(--slate);
}
.v2-explain__a p + p,
.v2-explain__a blockquote + p,
.v2-explain__a ol + p { margin-top: 12px; }
.v2-explain__a a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-explain__a b { color: var(--ink); font-weight: 600; }
.v2-explain__quote {
    margin: 16px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 12px;
    padding: 18px 20px;
}
.v2-explain__quote p {
    color: var(--ink);
    font-size: 15.5px;
    line-height: 1.6;
    font-weight: 500;
}
.v2-explain__quote footer { margin-top: 10px; }
.v2-explain__list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
    counter-reset: xrules;
}
.v2-explain__list li {
    counter-increment: xrules;
    position: relative;
    padding: 0 44px 0 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--slate);
}
.v2-explain__list li + li { margin-top: 14px; }
.v2-explain__list li::before {
    content: counter(xrules, decimal-leading-zero);
    position: absolute;
    right: 0;
    top: 2px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 3px 6px;
}

.v2-explain__gloss {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 26px;
    margin: 16px 0 0;
}
.v2-explain__gloss dt {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink);
}
.v2-explain__gloss dd {
    margin: 5px 0 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* Explain arrival */
.v2-explain.v2-anim .v2-reader { opacity: 0; transform: translateY(18px); }
.v2-explain.v2-anim.is-in .v2-reader {
    opacity: 1;
    transform: none;
    transition: opacity 0.65s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.65s cubic-bezier(0.22, 0.8, 0.26, 1);
}

/* Reader on mobile: the rail becomes a scrollable chip row */
@media (max-width: 900px) {
    .v2-reader { grid-template-columns: minmax(0, 1fr); border-radius: 18px; }
    .v2-reader__rail {
        flex-direction: row;
        gap: 6px;
        padding: 12px;
        overflow-x: auto;
        border-left: 0;
        border-bottom: 1px solid var(--line);
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .v2-reader__rail::-webkit-scrollbar { display: none; }
    .v2 .v2-reader__tab {
        flex: 0 0 auto;
        gap: 8px;
        padding: 8px 13px;
        border-radius: 999px;
        background: var(--paper);
        border: 1px solid var(--line);
    }
    .v2 .v2-reader__tab.is-active { border-color: var(--ink); }
    .v2-reader__num { width: auto; }
    .v2-reader__lab { font-size: 12.5px; white-space: nowrap; }
}

@media (max-width: 640px) {
    .v2-reader__pane { padding: 20px 16px 16px; }
    .v2-reader__title { font-size: 19px; margin-bottom: 13px; }
    .v2-explain__a p, .v2-explain__list li { font-size: 14px; }
    .v2-explain__list li { padding-right: 40px; }
    .v2-explain__quote { padding: 15px 16px; }
    .v2-explain__quote p { font-size: 14.5px; }
    .v2-explain__gloss { grid-template-columns: minmax(0, 1fr); gap: 13px; }
    .v2-reader__foot { margin-top: 20px; flex-wrap: wrap; }
    .v2-how__fold { margin-top: 30px; }
}

/* ============================================================
   PRICING V2 PAGE (2026-07-04)
   Sections for /pricing-v2: hero, plan-card per-tester line,
   comparison matrix, included grid, cost showdown. Reuses every
   V2 primitive; tokens/base/primitives stay untouched.
============================================================ */

/* ---------- Pricing hero ---------- */

.v2-phero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(44px, 7vh, 84px));
    padding-bottom: clamp(48px, 7vh, 84px);
    overflow: hidden;
}
.v2-phero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 84% -12%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(40rem 28rem at -12% 112%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2-phero__in {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.v2-phero__title {
    margin-top: 16px;
    max-width: 21ch;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.15rem, 1.2rem + 3.1vw, 3.45rem);
    line-height: 1.06;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2-phero__title-go { display: block; color: var(--go); }
.v2-pricing .v2-phero__title { min-width: 0; max-width: min(21ch, 100%); overflow-wrap: anywhere; }
.v2-pricing__disclosure { max-width: 76ch; margin: 18px auto; font-size: 14px; line-height: 1.65; color: var(--slate); text-align: center; }
.v2-pricing__fee { display: block; margin-top: 10px; font-size: 13px; line-height: 1.6; font-weight: 500; }
.v2-pricing__before { display: block; font-size: 11px; line-height: 1.5; }
.v2-plan--featured .v2-pricing__fee { color: #fff; }
.v2-plan--featured .v2-pricing__before { color: #A9B4BF; }
.v2-pricing .v2-cmp__cta-row .v2-btn { min-height: 44px; height: auto; padding-block: 10px; }
.v2-phero__sub {
    margin-top: 20px;
    max-width: 64ch;
    font-size: clamp(16px, 1.5vw, 17.5px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-phero__cta {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 30px;
}
.v2-phero__fine {
    margin-top: 16px;
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.04em;
    color: var(--faint);
}
.v2-phero__fine span { white-space: nowrap; }

.v2-phero__trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px 16px;
    margin-top: 30px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
    width: min(100%, 780px);
}
.v2-phero__trust-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--slate);
}
.v2-phero__trust-item b { color: var(--ink); font-weight: 600; }
.v2-phero__trust-sep {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--line);
}

.v2-phero__intro {
    margin-top: clamp(34px, 5vw, 46px);
    max-width: 860px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 24px;
    text-align: right;
}
.v2-phero__intro p {
    font-size: 14px;
    line-height: 1.75;
    color: var(--slate);
}
.v2-phero__intro strong { color: var(--ink); font-weight: 600; }
.v2-phero__intro a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 640px) {
    .v2-phero { padding-top: calc(var(--nav-h) + 36px); padding-bottom: 44px; }
    .v2-phero__sub { font-size: 15.5px; }
    .v2-phero__cta { width: 100%; max-width: 420px; margin-top: 26px; }
    .v2 .v2-phero__cta .v2-btn { flex: 1 1 100%; height: 50px; }
    .v2-phero__trust { gap: 9px; margin-top: 26px; padding-top: 22px; }
    .v2-phero__trust-item { font-size: 13.5px; }
    .v2-phero__trust-sep { display: none; }
    .v2-phero__intro { padding: 17px 16px; border-radius: 14px; }
    .v2-phero__intro p { font-size: 13.5px; line-height: 1.7; }
}

/* ---------- Plans: per-tester line (pricing page only) ---------- */

.v2-plan__per {
    display: block;
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.06em;
    color: var(--faint);
}
.v2-plan--featured .v2-plan__per { color: #8FA0AE; }

/* ---------- Comparison matrix ---------- */

.v2-cmp__wrap {
    margin-top: clamp(40px, 5.5vw, 56px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2-cmp__table {
    width: 100%;
    min-width: 720px;
    border-collapse: separate;
    border-spacing: 0;
}
.v2-cmp__table.has-qa { min-width: 860px; } /* 5 columns when Premium QA is enabled */
.v2-cmp__table thead th {
    padding: 20px 16px 16px;
    text-align: center;
    vertical-align: bottom;
    border-bottom: 1px solid var(--line);
}
.v2-cmp__table thead th.v2-cmp__feat {
    width: 30%;
    text-align: right;
}
.v2-cmp__price {
    display: block;
    margin-top: 6px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-cmp__sub {
    display: block;
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.06em;
    color: var(--faint);
}
.v2-cmp__pop {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: #FFFFFF;
    background: var(--go);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}

.v2-cmp__table tbody th {
    padding: 13px 16px;
    text-align: right;
    font-size: 14px;
    font-weight: 500;
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2-cmp__table tbody td {
    padding: 13px 12px;
    text-align: center;
    font-size: 14px;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
}
.v2-cmp__table tbody td b {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16.5px;
    letter-spacing: -0.01em;
}
.v2-cmp__table tbody tr:last-child th,
.v2-cmp__table tbody tr:last-child td { border-bottom: 0; }

/* Featured (Enterprise) column: soft green tint, solid for stickiness.
   Class-based since the Premium QA column joined after Enterprise
   (a :last-child rule would move the highlight to the wrong plan). */
.v2-cmp__table th.is-feat,
.v2-cmp__table td.is-feat {
    background: #F0F8F3;
    box-shadow: inset -1px 0 0 rgba(11, 138, 71, 0.14);
}

.v2-cmp__yes,
.v2-cmp__no {
    display: inline-block;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    vertical-align: middle;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 12px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-cmp__no {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 10h7' fill='none' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

.v2-cmp__cta-row th { background: var(--paper); }
.v2-cmp__cta-row td { padding: 16px 12px 18px; }
.v2 .v2-cmp__cta-row .v2-btn { width: 100%; }

.v2-cmp__note {
    display: none;
    margin-top: 14px;
    text-align: center;
}
.v2-cmp__note span { white-space: nowrap; }

/* Entrance: single rise, no hover transforms on the wrap */
.v2-cmp.v2-anim .v2-cmp__wrap {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s cubic-bezier(0.22, 0.8, 0.26, 1), transform .6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-cmp.v2-anim.is-in .v2-cmp__wrap { opacity: 1; transform: none; }

@media (max-width: 900px) {
    .v2-cmp__table { min-width: 620px; }
    .v2-cmp__table.has-qa { min-width: 740px; }
    .v2-cmp__table thead th.v2-cmp__feat { width: 132px; min-width: 132px; }
    .v2-cmp__table thead th { min-width: 130px; }
    /* Feature column pins left; the plan columns scroll under it.
       (Pinning Enterprise right as well crushed the middle columns
       to slivers at 390px, so only the label column is sticky.) */
    .v2-cmp__table th:first-child,
    .v2-cmp__table td:first-child {
        position: sticky;
        right: 0;
        z-index: 2;
        background: var(--paper);
        box-shadow: inset 1px 0 0 var(--line);
    }
    .v2-cmp__note { display: block; }
}
@media (max-width: 640px) {
    .v2-cmp__wrap { border-radius: 16px; }
    .v2-cmp__table thead th { padding: 16px 12px 13px; min-width: 118px; }
    .v2-cmp__table thead th.v2-cmp__feat { width: 118px; min-width: 118px; }
    .v2-cmp__price { font-size: 19px; }
    .v2-cmp__table tbody th { padding: 11px 12px; font-size: 13px; }
    .v2-cmp__table tbody td { padding: 11px 10px; font-size: 13.5px; }
    .v2-cmp__table tbody td b { font-size: 15.5px; }
}

/* ---------- Included in every plan ---------- */

.v2-inc__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-top: clamp(40px, 5.5vw, 56px);
}
.v2-inc__item {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 20px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-inc__item {
    transition: transform .32s cubic-bezier(.22, 1, .36, 1),
                box-shadow .32s cubic-bezier(.22, 1, .36, 1),
                border-color .32s ease !important;
}
.v2-inc__item:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2 .v2-inc__ic { transition: transform .32s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2-inc__item:hover .v2-inc__ic { transform: scale(1.1); }
.v2-inc__ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    margin-bottom: 14px;
}
.v2-inc__ic svg { width: 22px; height: 22px; }
.v2-inc__item h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    letter-spacing: -0.012em;
    margin-bottom: 7px;
}
.v2-inc__item p {
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}

.v2-inc.v2-anim .v2-inc__item {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity .55s cubic-bezier(0.22, 0.8, 0.26, 1), transform .55s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(var(--i) * 55ms);
}
.v2-inc.v2-anim.is-in .v2-inc__item { opacity: 1; transform: none; }

@media (max-width: 960px) {
    .v2-inc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
}
@media (max-width: 640px) {
    .v2-inc__grid { margin-top: 36px; gap: 11px; }
    .v2-inc__item { padding: 18px 16px; border-radius: 14px; }
    .v2-inc__ic { width: 38px; height: 38px; border-radius: 11px; margin-bottom: 12px; }
    .v2-inc__ic svg { width: 20px; height: 20px; }
    .v2-inc__item h3 { font-size: 15px; }
    .v2-inc__item p { font-size: 13px; }
}
@media (max-width: 400px) {
    .v2-inc__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Cost showdown ---------- */

.v2-cost__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
    margin-top: clamp(40px, 5.5vw, 56px);
}
.v2-cost__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 26px 24px;
}
.v2-cost__card--win {
    border: 2px solid var(--go);
    box-shadow: 0 22px 44px -20px rgba(11, 138, 71, 0.38);
    padding: 25px 23px;
}
.v2-cost__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
.v2-cost__ic {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
}
.v2-cost__ic svg { width: 21px; height: 21px; }
.v2-cost__ic--brand { background: transparent; }
.v2-cost__chip {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
    white-space: nowrap;
}
.v2-cost__chip--risk {
    color: #B42318;
    background: #FDF1F0;
    border-color: rgba(180, 35, 24, 0.16);
}
.v2-cost__chip--win {
    color: #FFFFFF;
    background: var(--go);
    border-color: var(--go);
}
.v2-cost__card h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: -0.014em;
}
.v2-cost__amount {
    margin: 6px 0 16px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 29px;
    line-height: 1;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.v2-cost__amount-note {
    display: block;
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--faint);
}
.v2-cost__list {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.v2-cost__list li {
    position: relative;
    padding-right: 26px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-cost__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-size: 10px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-cost__list--x li::before {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 6.5l7 7m0-7l-7 7' fill='none' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2-cost__list--check li::before {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
}
.v2-cost__foot {
    border-top: 1px solid var(--line);
    padding-top: 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--faint);
}
.v2 .v2-cost__cta { width: 100%; }

.v2-cost__math {
    margin-top: clamp(26px, 4vw, 34px);
    text-align: center;
}
.v2-cost__math span { white-space: nowrap; }
.v2-cost__diy {
    margin-top: 10px;
    text-align: center;
    font-size: 13.5px;
    color: var(--slate);
}
.v2-cost__diy a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-cost.v2-anim .v2-cost__card {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .6s cubic-bezier(0.22, 0.8, 0.26, 1), transform .6s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(var(--i) * 120ms);
}
.v2-cost.v2-anim.is-in .v2-cost__card { opacity: 1; transform: none; }

@media (max-width: 960px) {
    .v2-cost__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; gap: 16px; }
    .v2-cost__math, .v2-cost__diy { padding-inline: 8px; }
}
@media (max-width: 640px) {
    .v2-cost__grid { margin-top: 36px; gap: 14px; }
    .v2-cost__card { padding: 20px 18px; border-radius: 18px; }
    .v2-cost__card--win { padding: 19px 17px; }
    .v2-cost__card h3 { font-size: 17px; }
    .v2-cost__amount { font-size: 25px; margin-bottom: 14px; }
    .v2-cost__list li { font-size: 13px; }
    .v2 .v2-cost__cta { height: 48px; }
    .v2-cost__math { font-size: 10.5px; }
}

/* ============================================================
   SERVICES V2 (/services-v2) - page-specific blocks (2026-07-04)
   Reuses every V2 primitive and the home hero copy-column
   classes; only services-specific structures live here under
   the v2s- prefix. Appended per V2_DESIGN_RULES section 6.3.
   ============================================================ */

/* Breadcrumb (matches the BreadcrumbList schema) */
.v2s-crumbs {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2s-crumbs a { color: var(--faint); transition: color 0.15s ease; }
.v2s-crumbs a:hover { color: var(--ink); }
.v2s-crumbs [aria-current] { color: var(--slate); }

/* Console Card: the Play Console window re-enacting the outcome */
.v2s-console {
    width: min(460px, 100%);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2s-console__bar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
}
.v2s-console__dots { display: flex; gap: 6px; }
.v2s-console__dots i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #D9DFE5;
}
.v2s-console__url {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 1;
    min-width: 0;
    padding: 7px 12px;
    background: var(--mist);
    border-radius: 8px;
    letter-spacing: 0.06em;
    text-transform: none;
    white-space: nowrap;
    overflow: hidden;
}
.v2s-console__url svg { width: 12px; height: 12px; flex: 0 0 auto; color: var(--go); }

.v2s-console__body { padding: 20px; }

.v2s-console__grant {
    display: flex;
    align-items: center;
    gap: 13px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2s-console__grant-ic {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--go);
    color: #FFFFFF;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2s-console__grant-ic svg { width: 19px; height: 19px; }
.v2s-console__grant-txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2s-console__grant-txt b {
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2s-console__grant-txt span { font-size: 13px; color: var(--slate); }

.v2s-console__meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}
.v2s-console__meta > div {
    background: var(--mist);
    border-radius: 12px;
    padding: 12px 13px;
    min-width: 0;
}
.v2s-console__meta .v2-mono { display: block; font-size: 9.5px; }
.v2s-console__meta b {
    display: block;
    margin-top: 6px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
    white-space: nowrap;
}
.v2s-console__zero { color: var(--go-deep); }

/* Console Card entrance (runs once when .is-play is set) */
.v2s-console.is-play { animation: v2CardIn 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2s-console.is-play .v2s-console__grant {
    animation: v2Rise 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) 1.85s both;
}

@media (max-width: 640px) {
    .v2s-crumbs { justify-content: center; }
    .v2s-console__body { padding: 16px; }
    .v2s-console__grant { padding: 14px 15px; gap: 11px; }
    .v2s-console__grant-ic { width: 34px; height: 34px; }
    .v2s-console__grant-ic svg { width: 17px; height: 17px; }
    .v2s-console__grant-txt b { font-size: 15px; }
    .v2s-console__grant-txt span { font-size: 12px; }
    .v2s-console__meta { gap: 8px; }
    .v2s-console__meta > div { padding: 10px 10px; }
    .v2s-console__meta .v2-mono { font-size: 9px; }
    .v2s-console__meta b { font-size: 14.5px; margin-top: 5px; }
}
@media (max-width: 380px) {
    .v2s-console__meta { gap: 6px; }
    .v2s-console__meta > div { padding: 9px 8px; }
    .v2s-console__url { letter-spacing: 0.02em; font-size: 10px; }
}

/* Answer capsule (AEO): the machine-quotable definition, docked
   under the hero as its factual footnote */
.v2s-answer { padding: clamp(4px, 1vw, 12px) 0 clamp(72px, 9vw, 110px); }
.v2s-answer__card {
    max-width: 880px;
    margin-inline: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 22px 28px 24px;
}
.v2s-answer__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 14px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}
.v2s-answer__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 13px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: -0.005em;
}
.v2s-answer__chip svg { width: 13px; height: 13px; flex: 0 0 auto; }
.v2s-answer__card > p {
    font-size: 16.5px;
    line-height: 1.7;
    color: var(--slate);
    text-wrap: pretty;
}
.v2s-answer__card b { color: var(--ink); font-weight: 600; }

/* Answer arrival */
.v2s-answer.v2-anim .v2s-answer__card { opacity: 0; transform: translateY(14px); }
.v2s-answer.v2-anim.is-in .v2s-answer__card {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}

@media (max-width: 640px) {
    .v2s-answer { padding-bottom: 64px; }
    .v2s-answer__card { padding: 18px 18px 20px; border-radius: 14px; }
    .v2s-answer__top { margin-bottom: 10px; }
    .v2s-answer__card > p { font-size: 14.5px; line-height: 1.68; }
}

/* ---------- Services: flagship + continuity simulator ---------- */

.v2s-flag__grid {
    display: grid;
    grid-template-columns: 1.04fr 0.96fr;
    gap: clamp(36px, 5vw, 60px);
    align-items: start;
}
.v2s-flag__copy .v2-h2 { margin-top: 14px; }
.v2s-flag__p {
    margin-top: 16px;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--slate);
}
.v2s-flag__p:first-of-type { margin-top: 20px; font-size: 16.5px; }
.v2s-flag__p b { color: var(--ink); font-weight: 600; }
.v2s-flag__facts {
    list-style: none;
    margin: 24px 0 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.v2s-flag__facts li {
    display: flex;
    gap: 11px;
    align-items: flex-start;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2s-flag__facts svg { width: 19px; height: 19px; flex: 0 0 auto; margin-top: 1px; }
.v2s-flag__facts b { color: var(--ink); font-weight: 600; }

.v2s-sim {
    position: sticky;
    top: calc(var(--nav-h) + 24px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 22px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2s-sim {
    transition: transform .35s cubic-bezier(.22, 1, .36, 1),
                box-shadow .35s cubic-bezier(.22, 1, .36, 1),
                border-color .35s ease !important;
}
.v2s-sim:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 42%, var(--line));
    box-shadow: 0 3px 6px rgba(10, 16, 23, 0.06), 0 44px 78px -22px rgba(10, 16, 23, 0.26);
}
.v2s-sim__tag { display: block; margin-bottom: 14px; }
.v2s-sim__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.v2s-sim__status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
}
.v2s-sim__status b { font-variant-numeric: tabular-nums; }
.v2s-sim__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s infinite;
}
.v2s-sim__status.is-warn { color: #B42318; }
.v2s-sim__status.is-warn .v2s-sim__dot { background: #B42318; animation: none; }
.v2s-sim__day { font-size: 13px; color: var(--slate); }
.v2s-sim__day b {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
}
.v2s-sim__track {
    height: 10px;
    border-radius: 999px;
    background: #E9EDF1;
    overflow: hidden;
    margin-bottom: 8px;
}
.v2s-sim__track i {
    display: block;
    height: 100%;
    width: 0%;
    border-radius: 999px;
    background: var(--go);
    transition: width 0.4s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2s-sim__scale {
    display: flex;
    justify-content: space-between;
    margin-bottom: 16px;
}
.v2s-sim__scale .v2-mono { font-size: 9px; }
.v2s-sim__testers {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}
.v2 .v2s-sim__chip {
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    will-change: transform;
    transition: transform .3s cubic-bezier(.34, 1.56, .64, 1),
                background-color .2s ease, border-color .2s ease, color .2s ease !important;
}
.v2 .v2s-sim__chip:hover {
    transform: translateY(-4px) scale(1.08);
    box-shadow: 0 10px 18px -8px rgba(11, 138, 71, 0.5);
    z-index: 1;
}
.v2 .v2s-sim__chip svg { width: 19px; height: 19px; transition: transform .3s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2 .v2s-sim__chip:hover svg { transform: scale(1.15); }
.v2 .v2s-sim__chip.is-off {
    background: #FDF1F0;
    border-color: rgba(180, 35, 24, 0.16);
    color: #B42318;
}
.v2s-sim__msg {
    min-height: 62px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 11px 13px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    margin-bottom: 14px;
}
.v2s-sim__msg b { color: var(--ink); font-weight: 600; }
.v2s-sim__msg.is-good {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2s-sim__msg.is-good b { color: var(--go-deep); }
.v2s-sim__msg.is-bad {
    background: #FDF1F0;
    border-color: rgba(180, 35, 24, 0.16);
    color: #B42318;
}
.v2s-sim__msg.is-bad b { color: #B42318; }
.v2s-sim__actions { display: flex; gap: 10px; }
.v2s-sim__actions .v2-btn:first-child { flex: 1; }

@keyframes v2sShake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(6px); }
    40%, 80% { transform: translateX(-6px); }
}
.v2s-shake { animation: v2sShake 0.45s ease; }

/* Flagship arrival */
.v2s-flag.v2-anim .v2s-flag__copy,
.v2s-flag.v2-anim .v2s-sim { opacity: 0; transform: translateY(18px); }
.v2s-flag.v2-anim.is-in .v2s-flag__copy,
.v2s-flag.v2-anim.is-in .v2s-sim {
    opacity: 1;
    transform: none;
    transition: opacity 0.65s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.65s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2s-flag.v2-anim.is-in .v2s-sim { transition-delay: 0.12s; }

/* ---------- Services: why DIY fails ---------- */

.v2s-diy__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2s-diy__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 22px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2s-diy__card {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2s-diy__card:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2s-diy__ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    margin-bottom: 16px;
}
.v2s-diy__ic svg { width: 22px; height: 22px; }
.v2s-diy__card h3 {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2s-diy__card p { font-size: 13.5px; line-height: 1.62; color: var(--slate); }

.v2s-note {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin-top: 22px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2s-note__ic {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2s-note__ic svg { width: 20px; height: 20px; }
.v2s-note p { font-size: 14px; line-height: 1.68; color: var(--slate); }
.v2s-note b { color: var(--ink); font-weight: 600; }

.v2s-diy.v2-anim .v2s-diy__card { opacity: 0; }
.v2s-diy.v2-anim.is-in .v2s-diy__card {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Services: what's included ---------- */

.v2s-inc__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2s-inc__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2s-inc__card {
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2s-inc__card:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2s-inc__ic {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--go-tint);
    color: var(--go);
    margin-bottom: 16px;
}
.v2s-inc__ic svg { width: 23px; height: 23px; }
.v2s-inc__card h3 {
    font-family: var(--font-display);
    font-size: 17.5px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2s-inc__card p { font-size: 14px; line-height: 1.65; color: var(--slate); }

.v2s-inc.v2-anim .v2s-inc__card { opacity: 0; }
.v2s-inc.v2-anim.is-in .v2s-inc__card {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Services: plan finder ---------- */

.v2s-finder__card {
    max-width: 860px;
    margin: clamp(36px, 5vw, 52px) auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(22px, 3.4vw, 34px);
}
.v2s-finder__q + .v2s-finder__q { margin-top: 24px; }
.v2s-finder__label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin-bottom: 12px;
}
.v2s-finder__opts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.v2s-finder__opts--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2 .v2s-finder__opt {
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--slate);
    text-align: center;
    will-change: transform;
    transition: transform .28s cubic-bezier(.22, 1, .36, 1),
                border-color .2s ease, background-color .2s ease, color .2s ease, box-shadow .28s ease !important;
}
.v2 .v2s-finder__opt:hover {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    color: var(--ink);
    transform: translateY(-3px);
    box-shadow: 0 12px 22px -12px rgba(10, 16, 23, 0.28);
}
.v2 .v2s-finder__opt:active { transform: translateY(-1px); }
.v2 .v2s-finder__opt.is-sel {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.45);
    color: var(--go-deep);
    box-shadow: inset 0 0 0 1px rgba(11, 138, 71, 0.45);
}
.v2 .v2s-finder__go { width: 100%; margin-top: 26px; height: 50px; }

.v2s-finder__result { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 24px; }
.v2s-finder__result.is-in { animation: v2Rise 0.45s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2s-finder__rec {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px 28px;
    flex-wrap: wrap;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 16px;
    padding: 20px 24px;
}
.v2s-finder__rec-main { min-width: 0; max-width: 460px; }
.v2s-finder__rec-main .v2-mono { color: var(--go-deep); }
.v2s-finder__rec-name {
    display: block;
    margin-top: 4px;
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2s-finder__rec-why { margin-top: 6px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2s-finder__rec-side { text-align: center; }
.v2s-finder__rec-price {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
}
.v2s-finder__rec-price b {
    font-size: 32px;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.v2s-finder__rec-actions { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; justify-content: center; }

.v2s-finder.v2-anim .v2s-finder__card { opacity: 0; transform: translateY(18px); }
.v2s-finder.v2-anim.is-in .v2s-finder__card {
    opacity: 1;
    transform: none;
    transition: opacity 0.65s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.65s cubic-bezier(0.22, 0.8, 0.26, 1);
}

/* ---------- Services: packages (plans reuse .v2-plans) ---------- */

.v2s-plans.v2-anim .v2-plan { opacity: 0; }
.v2s-plans.v2-anim.is-in .v2-plan {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2s-plans.v2-anim.is-in .v2-plan:nth-child(2) { animation-delay: 0.08s; }
.v2s-plans.v2-anim.is-in .v2-plan:nth-child(3) { animation-delay: 0.16s; }

.v2s-tablewrap {
    max-width: 1020px;
    margin: clamp(32px, 4.5vw, 44px) auto 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow-x: auto;
    background: var(--paper);
    -webkit-overflow-scrolling: touch;
}
.v2s-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
}
.v2s-table th,
.v2s-table td {
    padding: 14px 18px;
    text-align: center;
    border-bottom: 1px solid var(--line);
    font-size: 14px;
}
.v2s-table thead th {
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
}
.v2s-table thead th.is-feat,
.v2s-table td.is-feat { background: var(--go-tint); }
.v2s-table thead th.is-feat { color: var(--go-deep); }
.v2s-table tbody th {
    text-align: right;
    font-weight: 500;
    color: var(--slate);
    background: var(--paper);
}
.v2s-table tbody td { font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.v2s-table tr:last-child th,
.v2s-table tr:last-child td { border-bottom: 0; }
.v2s-table__yes { width: 18px; height: 18px; margin-inline: auto; color: var(--go); }
.v2s-table__no { width: 16px; height: 16px; margin-inline: auto; color: #C3CBD3; }

/* ---------- Services: personal vs organization ---------- */

.v2s-pvo__wrap { max-width: 940px; margin: clamp(32px, 4.5vw, 46px) auto 0; }
.v2s-pvo__tabs {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
.v2 .v2s-pvo__tab {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 20px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--paper);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--slate);
    will-change: transform;
    transition: transform .28s cubic-bezier(.22, 1, .36, 1),
                background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .28s ease !important;
}
.v2 .v2s-pvo__tab svg { width: 17px; height: 17px; }
.v2 .v2s-pvo__tab:hover {
    color: var(--ink);
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    transform: translateY(-3px);
    box-shadow: 0 12px 22px -12px rgba(10, 16, 23, 0.28);
}
.v2 .v2s-pvo__tab:active { transform: translateY(-1px); }
.v2 .v2s-pvo__tab.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #FFFFFF;
}
.v2s-pvo__panel.is-active { animation: v2Rise 0.4s cubic-bezier(0.22, 0.8, 0.26, 1); }
.v2s-pvo__card {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 32px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(22px, 3vw, 30px);
}
.v2s-pvo__col h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 13px;
}
.v2s-pvo__col h3 svg { width: 19px; height: 19px; flex: 0 0 auto; color: var(--slate); }
.v2s-pvo__col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.v2s-pvo__col ul li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2s-pvo__col ul li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}
.v2s-pvo__col--slow ul li::before {
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='6.6' stroke='%2355616D' stroke-width='1.8'/%3E%3Cpath d='M10 6.8V10l2.2 1.5' stroke='%2355616D' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/12px 12px no-repeat;
}
.v2s-pvo__verdict {
    grid-column: 1 / -1;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 20px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--ink);
}
.v2s-pvo__verdict svg { width: 19px; height: 19px; flex: 0 0 auto; margin-top: 2px; color: var(--go-deep); }
.v2s-pvo__verdict a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2s-pvo.v2-anim .v2s-pvo__wrap { opacity: 0; transform: translateY(18px); }
.v2s-pvo.v2-anim.is-in .v2s-pvo__wrap {
    opacity: 1;
    transform: none;
    transition: opacity 0.65s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.65s cubic-bezier(0.22, 0.8, 0.26, 1);
}

/* ---------- Services: how it works ---------- */

.v2s-how__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2s-how__step {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
}
.v2s-how__n {
    display: inline-flex;
    padding: 5px 11px;
    border-radius: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    margin-bottom: 16px;
}
.v2s-how__step h3 {
    font-family: var(--font-display);
    font-size: 17.5px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2s-how__step p { font-size: 14px; line-height: 1.68; color: var(--slate); }
.v2s-how__more { text-align: center; margin-top: 30px; }
.v2s-how__more a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2s-how__more svg { width: 16px; height: 16px; }
.v2 .v2s-how__more a { transition: color .22s ease, text-underline-offset .22s ease !important; }
.v2 .v2s-how__more svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2s-how__more a:hover { color: var(--go); text-underline-offset: 5px; }
.v2s-how__more a:hover svg { transform: translateX(-5px); }

.v2s-how.v2-anim .v2s-how__step { opacity: 0; }
.v2s-how.v2-anim.is-in .v2s-how__step {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Services: QA coming soon (dark moment) ---------- */

.v2s-qa__panel {
    position: relative;
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: clamp(28px, 4vw, 44px);
    align-items: center;
    background: var(--ink);
    border-radius: 24px;
    padding: clamp(28px, 4vw, 46px);
    overflow: hidden;
}
.v2s-qa__panel::before {
    content: "";
    position: absolute;
    left: -80px;
    top: -80px;
    width: 340px;
    height: 340px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(62, 207, 129, 0.16), transparent 65%);
    pointer-events: none;
}
.v2s-qa__copy { position: relative; min-width: 0; }
.v2s-qa__chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #A9B4BF;
}
.v2s-qa__chip i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #3ECF81;
    animation: v2Pulse 2.4s infinite;
}
.v2s-qa__copy h2 {
    margin-top: 16px;
    font-family: var(--font-display);
    font-size: clamp(24px, 2.8vw, 30px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: #FFFFFF;
}
.v2s-qa__copy > p {
    margin-top: 12px;
    max-width: 52ch;
    font-size: 15px;
    line-height: 1.7;
    color: #A9B4BF;
}
.v2s-qa__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.v2s-qa__tags span {
    padding: 7px 13px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 12.5px;
    font-weight: 500;
    color: #C7CFD7;
}
.v2s-qa__box {
    position: relative;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 18px;
    padding: 24px;
    text-align: center;
}
.v2s-qa__box h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: #FFFFFF;
}
.v2s-qa__box p { margin-top: 5px; font-size: 13px; color: #93A0AC; }
.v2 .v2s-qa__wa {
    width: 100%;
    margin-top: 16px;
    background: #25D366;
    color: #FFFFFF;
}
.v2 .v2s-qa__wa:hover {
    background: #1EBE5A;
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -8px rgba(37, 211, 102, 0.5);
}
.v2s-qa__box .v2-btn--ghostdark { width: 100%; margin-top: 10px; }

.v2s-qa.v2-anim .v2s-qa__panel { opacity: 0; transform: translateY(18px); }
.v2s-qa.v2-anim.is-in .v2s-qa__panel {
    opacity: 1;
    transform: none;
    transition: opacity 0.65s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.65s cubic-bezier(0.22, 0.8, 0.26, 1);
}

/* ---------- Services: proof (KPIs reuse .v2-stat) ---------- */

.v2s-kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2s-proof__reviews {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(30px, 4vw, 40px);
}
.v2s-review {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2s-review > p {
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.66;
    color: var(--slate);
}
.v2s-review footer {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--mist);
}
.v2s-review__av {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--mist);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--slate);
    flex: 0 0 auto;
}
.v2s-review__id { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.v2s-review__id b { font-size: 13.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.v2s-review__id i { font-style: normal; font-size: 11.5px; color: var(--faint); }
.v2s-proof__ratingline { text-align: center; margin-top: 18px; }

.v2s-eeat {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-top: clamp(30px, 4vw, 40px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 26px 30px;
}
.v2s-eeat__ic {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    flex: 0 0 auto;
    border-radius: 15px;
    background: var(--ink);
    color: #FFFFFF;
}
.v2s-eeat__ic svg { width: 27px; height: 27px; }
.v2s-eeat__body { min-width: 0; }
.v2s-eeat__body h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2s-eeat__body p { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2s-eeat__body a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2s-eeat__links {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-right: auto;
    flex: 0 0 auto;
}
.v2s-eeat__links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--slate);
    white-space: nowrap;
    transition: color 0.15s ease;
}
.v2s-eeat__links a:hover { color: var(--ink); }
.v2s-eeat__links svg { width: 16px; height: 16px; color: var(--go); }

.v2s-proof.v2-anim .v2-stat,
.v2s-proof.v2-anim .v2s-review,
.v2s-proof.v2-anim .v2s-eeat { opacity: 0; }
.v2s-proof.v2-anim.is-in .v2-stat,
.v2s-proof.v2-anim.is-in .v2s-review,
.v2s-proof.v2-anim.is-in .v2s-eeat {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}
.v2s-proof.v2-anim.is-in .v2s-eeat { animation-delay: 0.28s; }

/* ---------- Services: responsive ---------- */

@media (max-width: 960px) {
    .v2s-flag__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .v2s-sim { position: static; max-width: 560px; margin-inline: auto; }
    .v2s-diy__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2s-inc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2s-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2s-proof__reviews { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
    .v2s-qa__panel { grid-template-columns: minmax(0, 1fr); }
    .v2s-eeat { flex-wrap: wrap; }
    .v2s-eeat__links { flex-direction: row; flex-wrap: wrap; gap: 14px; margin-right: 0; width: 100%; }
}
@media (max-width: 900px) {
    .v2s-how__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
    .v2s-pvo__card { grid-template-columns: minmax(0, 1fr); }
    .v2s-table tbody th,
    .v2s-table thead th:first-child {
        position: sticky;
        right: 0;
        z-index: 1;
        background: var(--paper);
        box-shadow: -1px 0 0 var(--line);
    }
    .v2s-table thead th:first-child { background: var(--mist); }
}
@media (max-width: 640px) {
    .v2s-flag__copy .v2-eyebrow,
    .v2s-flag__copy .v2-h2 { text-align: center; }
    .v2s-flag__p { font-size: 14.5px; }
    .v2s-flag__p:first-of-type { font-size: 15px; }
    .v2s-flag__facts li { font-size: 13.5px; }
    .v2s-sim { padding: 18px; border-radius: 18px; }
    .v2s-sim__testers { gap: 7px; }
    .v2s-diy__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; gap: 12px; }
    .v2s-diy__card { padding: 20px 18px; }
    .v2s-note { flex-direction: column; padding: 18px; }
    .v2s-inc__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; gap: 12px; }
    .v2s-inc__card { padding: 20px 18px; }
    .v2s-finder__card { padding: 20px 16px; border-radius: 18px; }
    .v2s-finder__opts,
    .v2s-finder__opts--two { grid-template-columns: minmax(0, 1fr); }
    .v2 .v2s-finder__opt { padding: 12px; }
    .v2 .v2s-finder__go { height: 48px; }
    .v2s-finder__rec { padding: 18px; }
    .v2s-finder__rec-side { width: 100%; }
    .v2s-pvo__card { padding: 18px 16px; gap: 20px; }
    .v2 .v2s-pvo__tab { padding: 10px 15px; font-size: 13px; }
    .v2s-qa__panel { padding: 24px 20px; border-radius: 20px; }
    .v2s-qa__box { padding: 20px 16px; }
    .v2 .v2s-qa__wa,
    .v2s-qa__box .v2-btn--ghostdark { height: 48px; }
    .v2s-kpis { grid-template-columns: minmax(0, 1fr); max-width: 420px; margin-inline: auto; gap: 12px; }
    .v2s-review { padding: 18px; }
    .v2s-eeat { padding: 20px 18px; gap: 14px; }
    .v2s-eeat__links { gap: 10px 16px; }
    .v2s-how__step { padding: 20px 18px; }
}
@media (max-width: 380px) {
    .v2s-sim__head { flex-wrap: wrap; gap: 6px; }
    .v2s-sim__testers { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
    .v2s-finder__rec-actions .v2-btn { width: 100%; }
}

/* ============================================================
   ABOUT US V2 (/about-us) - page-specific blocks (2026-07-04)
   Reuses V2 primitives, the hero copy-column classes, the
   services crumbs/KPI/review blocks; About-specific structures
   live here under the v2a- prefix.
   ============================================================ */

/* Fact Sheet: the company as a checkable document */
.v2a-fact {
    width: min(440px, 100%);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2a-fact__bar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
}
.v2a-fact__bar .v2-mono { letter-spacing: 0.06em; text-transform: none; }
.v2a-fact__dots { display: flex; gap: 6px; }
.v2a-fact__dots i { width: 10px; height: 10px; border-radius: 50%; background: #D9DFE5; }
.v2a-fact__body { padding: 20px; }
.v2a-fact__id {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}
.v2a-fact__name b {
    display: block;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2a-fact__name span { display: block; margin-top: 1px; font-size: 12.5px; color: var(--slate); }
.v2a-fact__rows { margin: 6px 0 0; }
.v2a-fact__rows > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    border-bottom: 1px solid var(--mist);
}
.v2a-fact__rows > div:last-child { border-bottom: 0; }
.v2a-fact__rows dt { flex: 0 0 auto; }
.v2a-fact__rows dd {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    text-align: left;
    font-variant-numeric: tabular-nums;
}
.v2a-fact__foot {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 11px 14px;
    border-radius: 12px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
}
.v2a-fact__foot svg { width: 15px; height: 15px; flex: 0 0 auto; }
.v2a-fact.is-play { animation: v2CardIn 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2a-fact.is-play .v2a-fact__foot { animation: v2Rise 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) 0.7s both; }

/* Story + timeline */
.v2a-story__copy {
    max-width: 720px;
    margin: clamp(30px, 4vw, 40px) auto 0;
}
.v2a-story__copy p {
    font-size: 16px;
    line-height: 1.75;
    color: var(--slate);
}
.v2a-story__copy p + p { margin-top: 16px; }
.v2a-story__copy b { color: var(--ink); font-weight: 600; }

.v2a-line {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin: clamp(40px, 5.5vw, 56px) 0 0;
    padding: 24px 0 0;
    position: relative;
}
.v2a-line::before {
    content: "";
    position: absolute;
    top: 29px;
    right: 4%;
    left: 4%;
    height: 2px;
    background: var(--line);
}
.v2a-line__node { position: relative; text-align: center; padding-top: 22px; }
.v2a-line__dot {
    position: absolute;
    top: -1px;
    right: 50%;
    transform: translateX(50%);
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--paper);
    border: 3px solid #C3CBD3;
}
.v2a-line__dot.is-now { border-color: var(--go); background: var(--go); box-shadow: 0 0 0 4px var(--go-tint); }
.v2a-line__node .v2-mono { display: block; }
.v2a-line__node b {
    display: block;
    margin-top: 7px;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: -0.015em;
    line-height: 1.3;
    color: var(--ink);
}
.v2a-line__sub { display: block; margin-top: 5px; font-size: 12.5px; color: var(--faint); }

.v2a-story.v2-anim .v2a-story__copy,
.v2a-story.v2-anim .v2a-line__node { opacity: 0; transform: translateY(14px); }
.v2a-story.v2-anim.is-in .v2a-story__copy,
.v2a-story.v2-anim.is-in .v2a-line__node {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: var(--d, 0s);
}

/* What we do */
.v2a-what__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2a-what__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2a-what__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 16px 36px -20px rgba(10, 16, 23, 0.2);
}
.v2a-what__ic {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--go-tint);
    color: var(--go);
    margin-bottom: 16px;
}
.v2a-what__ic svg { width: 23px; height: 23px; }
.v2a-what__card h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2a-what__card p { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2a-what__card a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    padding-top: 16px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
}
.v2a-what__card a svg { width: 15px; height: 15px; transition: transform 0.18s ease; }
.v2a-what__card a:hover svg { transform: translateX(-3px); }

.v2a-what.v2-anim .v2a-what__card { opacity: 0; }
.v2a-what.v2-anim.is-in .v2a-what__card {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* Proof: stars viz inside the shared stat tile */
.v2a-stat__stars { display: flex; align-items: center; }
.v2a-stat__stars .v2-stars svg { width: 17px; height: 17px; }

.v2a-proof.v2-anim .v2-stat,
.v2a-proof.v2-anim .v2s-review { opacity: 0; }
.v2a-proof.v2-anim.is-in .v2-stat,
.v2a-proof.v2-anim.is-in .v2s-review {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}
.v2s-proof__ratingline a { color: var(--slate); text-decoration: underline; text-underline-offset: 3px; }
.v2s-proof__ratingline a:hover { color: var(--ink); }
/* About: the 'home page' link under the reviews: green, and an underline that grows in on hover (2026-10-26) */
.v2 .v2a-proof .v2s-proof__ratingline a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: none;
    padding-bottom: 2px;
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
    transition: background-size .35s cubic-bezier(.22, 1, .36, 1), color .2s ease !important;
}
.v2 .v2a-proof .v2s-proof__ratingline a:hover {
    color: var(--go);
    background-size: 100% 1.5px;
}


/* How we work (values) */
.v2a-values__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 940px;
    margin: clamp(36px, 5vw, 52px) auto 0;
}
.v2a-values__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2a-values__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 16px 36px -20px rgba(10, 16, 23, 0.2);
}
.v2a-values__ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    margin-bottom: 15px;
}
.v2a-values__ic svg { width: 22px; height: 22px; }
.v2a-values__card h3 {
    font-family: var(--font-display);
    font-size: 17.5px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2a-values__card p { font-size: 14px; line-height: 1.68; color: var(--slate); }
.v2a-values__card a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2a-values.v2-anim .v2a-values__card { opacity: 0; }
.v2a-values.v2-anim.is-in .v2a-values__card {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* About cards: entrance + hover in the same recipe as the other v2 cards (v2-hcs) (2026-10-26).
   The entrance uses fill "backwards" (not "both"), so once it ends the card's own transform is free
   again and the hover lift works; the old "both" fill kept transform pinned and hover did nothing.
   Hover transitions are !important like the other cards, so they stay smooth with reduced motion. */
@keyframes v2aCardIn {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: none; }
}
@keyframes v2aIconPop {
    from { opacity: 0; transform: scale(0.6); }
    to   { opacity: 1; transform: none; }
}
.v2a-what.v2-anim.is-in .v2a-what__card,
.v2a-values.v2-anim.is-in .v2a-values__card,
.v2a-proof.v2-anim.is-in .v2-stat,
.v2a-proof.v2-anim.is-in .v2s-review {
    opacity: 1;
    animation: v2aCardIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: var(--d, 0s);
}
.v2a-proof.v2-anim.is-in .v2-stat:nth-child(2) { animation-delay: 0.08s; }
.v2a-proof.v2-anim.is-in .v2-stat:nth-child(3) { animation-delay: 0.16s; }
.v2a-proof.v2-anim.is-in .v2-stat:nth-child(4) { animation-delay: 0.24s; }
.v2a-what.v2-anim.is-in .v2a-what__ic,
.v2a-values.v2-anim.is-in .v2a-values__ic {
    animation: v2aIconPop 0.5s cubic-bezier(0.22, 1, 0.36, 1) backwards;
    animation-delay: calc(var(--d, 0s) + 0.2s);
}

/* hover: lift, green border and a green line along the top, icon turns green, arrow slides */
.v2a-what__card,
.v2a-values__card { position: relative; overflow: hidden; will-change: transform; }
.v2 .v2a-what__card,
.v2 .v2a-values__card,
.v2 .v2a-proof .v2s-review {
    transition: transform .32s cubic-bezier(.22, 1, .36, 1),
                box-shadow .32s cubic-bezier(.22, 1, .36, 1),
                border-color .32s ease !important;
}
.v2a-what__card:hover,
.v2a-values__card:hover,
.v2a-proof .v2s-review:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2a-what__card::before,
.v2a-values__card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    background: linear-gradient(-90deg, var(--go), var(--go-deep));
    transform: scaleX(0);
}
.v2 .v2a-what__card::before,
.v2 .v2a-values__card::before { transition: transform .4s cubic-bezier(.22, 1, .36, 1) !important; }
.v2a-what__card:hover::before,
.v2a-values__card:hover::before { transform: scaleX(1); }
.v2 .v2a-what__ic,
.v2 .v2a-values__ic {
    transition: background-color .32s ease, color .32s ease, transform .32s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2a-what__card:hover .v2a-what__ic,
.v2a-values__card:hover .v2a-values__ic {
    background: var(--go);
    color: #fff;
    transform: scale(1.08);
}
.v2 .v2a-what__card a svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2a-what__card:hover a svg { transform: translateX(-5px); }

/* Founder */
.v2a-founder__card {
    display: flex;
    align-items: center;
    gap: clamp(24px, 3.5vw, 40px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3.4vw, 38px);
    max-width: 880px;
    margin-inline: auto;
}
.v2a-founder__photo {
    width: 120px;
    height: 120px;
    border-radius: 24px;
    object-fit: cover;
    flex: 0 0 auto;
    border: 1px solid var(--line);
}
.v2a-founder__body { min-width: 0; }
.v2a-founder__body h2 {
    margin-top: 10px;
    font-family: var(--font-display);
    font-size: clamp(21px, 2.4vw, 26px);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2a-founder__role { display: block; margin-top: 5px; }
.v2a-founder__bio {
    margin-top: 12px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
    max-width: 56ch;
}
.v2a-founder__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.v2a-founder .v2-guarantee { margin-top: clamp(26px, 3.5vw, 36px); }

.v2a-founder.v2-anim .v2a-founder__card,
.v2a-founder.v2-anim .v2-guarantee { opacity: 0; transform: translateY(16px); }
.v2a-founder.v2-anim.is-in .v2a-founder__card,
.v2a-founder.v2-anim.is-in .v2-guarantee {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2a-founder.v2-anim.is-in .v2-guarantee { transition-delay: 0.12s; }

/* About responsive */
@media (max-width: 960px) {
    .v2a-what__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
    .v2a-line { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 18px; padding-top: 0; }
    .v2a-line::before { display: none; }
    .v2a-line__node { text-align: right; padding-top: 0; padding-right: 24px; }
    .v2a-line__dot { right: 0; top: 3px; transform: none; }
}
@media (max-width: 640px) {
    .v2a-story__copy p { font-size: 14.5px; }
    .v2a-line { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 420px; margin-inline: auto; }
    .v2a-what__card { padding: 20px 18px; }
    .v2a-values__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; gap: 12px; }
    .v2a-values__card { padding: 20px 18px; }
    .v2a-founder__card { flex-direction: column; align-items: flex-start; text-align: right; padding: 22px 18px; }
    .v2a-founder__photo { width: 96px; height: 96px; border-radius: 20px; }
    .v2a-founder__actions { width: 100%; }
    .v2a-founder__actions .v2-btn { flex: 1 1 100%; height: 48px; }
    .v2 .v2a-founder__actions .v2-faq__wa { margin-right: 0; }
    .v2a-fact__body { padding: 16px; }
    .v2a-fact__rows dd { font-size: 13px; }
}

/* ============================================================
   REFUND POLICY V2 (/refund-policy) - page blocks (2026-07-04)
   The pre-checkout trust page. Reuses V2 primitives, crumbs,
   and the FAQ recipe; refund-specific structures under v2r-.
   ============================================================ */

/* Hero: centered promise + the two outcome cards */
.v2r-hero__in {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.v2r-hero__crumbs { justify-content: center; }
.v2r-hero__title { max-width: 780px; }
.v2r-hero__sub { max-width: 640px; margin-inline: auto; }
.v2r-hero__options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    width: min(640px, 100%);
    margin-top: 34px;
}
.v2r-opt {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
}
.v2r-opt__ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    margin: 0 auto 12px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
}
.v2r-opt__ic svg { width: 22px; height: 22px; }
.v2r-opt b {
    display: block;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2r-opt p { margin-top: 6px; font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2r-hero__choice { margin-top: 12px; }
.v2r-hero__options.is-play .v2r-opt { animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) 0.25s both; }
.v2r-hero__options.is-play .v2r-opt:last-child { animation-delay: 0.35s; }

.v2r-hero__calm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: min(640px, 100%);
    margin-top: 22px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 14px 18px;
    text-align: right;
}
.v2r-hero__calm svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; }
.v2r-hero__calm p { font-size: 13.5px; line-height: 1.6; color: var(--go-deep); }
.v2r-hero__calm b { color: var(--go-deep); font-weight: 700; }
.v2r-hero__fine { margin-top: 26px; }

/* Flow: the four steps */
.v2r-steps {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin: clamp(36px, 5vw, 52px) 0 0;
    padding: 0;
}
.v2r-step {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 20px;
}
.v2r-step__n {
    display: inline-flex;
    padding: 5px 11px;
    border-radius: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    margin-bottom: 14px;
}
.v2r-step h3 {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.015em;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2r-step p { font-size: 13.5px; line-height: 1.62; color: var(--slate); }
.v2r-step--last { border-color: rgba(11, 138, 71, 0.35); }
.v2r-step--last .v2r-step__n { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2r-step__chips {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 12px;
}
.v2r-step__chips i {
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: -0.005em;
    color: #FFFFFF;
    background: var(--go);
    border-radius: 999px;
    padding: 5px 12px;
}
.v2r-step__chips em {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2r-flow.v2-anim .v2r-step { opacity: 0; }
.v2r-flow.v2-anim.is-in .v2r-step {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* Options in detail */
.v2r-options__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 940px;
    margin: clamp(36px, 5vw, 52px) auto 0;
}
.v2r-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
}
.v2r-card__head {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.v2r-card__ic {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    flex: 0 0 auto;
}
.v2r-card__ic svg { width: 22px; height: 22px; }
.v2r-card__head h3 {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2r-card__chip {
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11px;
    font-weight: 700;
}
.v2r-card__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 10px;
}
.v2r-card__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2r-card__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}
.v2r-card__list b { color: var(--ink); font-weight: 600; }
.v2r-options.v2-anim .v2r-card { opacity: 0; }
.v2r-options.v2-anim.is-in .v2r-card {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2r-options.v2-anim.is-in .v2r-card:last-child { animation-delay: 0.1s; }

/* Shared quiet note (fairness valve, most-choose-retest) */
.v2r-note {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 860px;
    margin: 26px auto 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 20px;
}
.v2r-note svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 2px; color: var(--slate); }
.v2r-note p { font-size: 14px; line-height: 1.68; color: var(--slate); }
.v2r-note b { color: var(--ink); font-weight: 600; }
/* Refund page, Android QA section (2026-10-11): the last section, after the
   closed-testing CTA; the hairline marks its start on any background. */
.v2r-qa { border-top: 1px solid var(--line); }

/* Request: the compose window */
.v2r-mail {
    max-width: 720px;
    margin: clamp(36px, 5vw, 52px) auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2r-mail__bar {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
}
.v2r-mail__dots { display: flex; gap: 6px; }
.v2r-mail__dots i { width: 10px; height: 10px; border-radius: 50%; background: #D9DFE3; }
.v2r-mail__row {
    display: flex;
    align-items: baseline;
    gap: 14px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--mist);
}
.v2r-mail__row .v2-mono { flex: 0 0 56px; }
.v2r-mail__row b { font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); overflow-wrap: anywhere; }
.v2r-mail__body { padding: 20px; }
.v2r-mail__hint { font-size: 13.5px; font-weight: 600; color: var(--ink); margin-bottom: 14px; }
.v2r-mail__body ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 14px;
}
.v2r-mail__body li {
    position: relative;
    padding-right: 28px;
}
.v2r-mail__body li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}
.v2r-mail__body li b { display: block; font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.v2r-mail__body li span { display: block; margin-top: 3px; font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2r-mail__body code { text-transform: none; letter-spacing: 0.04em; background: var(--mist); border-radius: 6px; padding: 2px 7px; color: var(--slate); }
.v2 .v2r-mail__send { width: 100%; margin-top: 18px; height: 48px; }

.v2r-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: 860px;
    margin: 26px auto 0;
}
.v2r-facts__tile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    text-align: center;
}
.v2r-facts__tile > b {
    display: block;
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
}
.v2r-facts__sub { display: block; margin-top: 4px; font-size: 12px; color: var(--faint); }
.v2r-request.v2-anim .v2r-mail,
.v2r-request.v2-anim .v2r-facts__tile { opacity: 0; transform: translateY(16px); }
.v2r-request.v2-anim.is-in .v2r-mail,
.v2r-request.v2-anim.is-in .v2r-facts__tile {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2r-request.v2-anim.is-in .v2r-facts__tile { transition-delay: 0.12s; }

/* Coverage: covered vs not covered */
.v2r-cover__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 1020px;
    margin: clamp(36px, 5vw, 52px) auto 0;
}
.v2r-cover__col {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
}
.v2r-cover__head {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 14px;
}
.v2r-cover__head svg { width: 19px; height: 19px; flex: 0 0 auto; }
.v2r-cover__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 12px;
}
.v2r-cover__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.62;
    color: var(--slate);
}
.v2r-cover__list b { color: var(--ink); font-weight: 600; }
.v2r-cover__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
}
.v2r-cover__list--yes li::before {
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}
.v2r-cover__list--no li::before {
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6.5 6.5l7 7m0-7-7 7' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/9px 9px no-repeat;
}
.v2r-cover.v2-anim .v2r-cover__col { opacity: 0; }
.v2r-cover.v2-anim.is-in .v2r-cover__col {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2r-cover.v2-anim.is-in .v2r-cover__col:last-child { animation-delay: 0.1s; }

/* CTA extras: terms link + legal line */
.v2r-cta__terms { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.v2r-cta__terms:hover { color: #A9B4BF; }
.v2r-cta__legal {
    margin-top: 24px;
    font-size: 10.5px;
    color: #6E7B88;
}
.v2r-cta__legal span { white-space: nowrap; }
.v2r-cta__legal a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Refund responsive */
@media (max-width: 960px) {
    .v2r-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2r-options__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
    .v2r-cover__grid { grid-template-columns: minmax(0, 1fr); max-width: 620px; }
}
@media (max-width: 640px) {
    .v2r-hero__options { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2r-opt { padding: 16px; }
    .v2r-steps { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; gap: 12px; }
    .v2r-step { padding: 18px 16px; }
    .v2r-card { padding: 20px 18px; }
    .v2r-cover__col { padding: 20px 18px; }
    .v2r-facts { grid-template-columns: minmax(0, 1fr); max-width: 420px; }
    .v2r-mail__row { padding: 11px 16px; }
    .v2r-mail__body { padding: 16px; }
    .v2r-hero__calm { padding: 13px 15px; }
    .v2r-cta__legal span { white-space: normal; }
}

/* ============================================================
   LEGAL PAGES V2 (/terms-conditions + /privacy-policy) - shared
   document layout (2026-07-04): centered hero with fact chips,
   sticky scrollspy table of contents beside an always-visible
   numbered document. One v2l- block serves both pages.
   ============================================================ */

/* Hero */
.v2l-hero__in {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
.v2l-hero__crumbs { justify-content: center; }
.v2l-hero__title { max-width: 820px; }
.v2l-hero__sub { max-width: 660px; margin-inline: auto; }
.v2l-hero__chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 28px;
}
.v2l-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 15px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: -0.005em;
}
.v2l-chip svg { width: 15px; height: 15px; flex: 0 0 auto; }
.v2l-hero__fine { margin-top: 24px; }

/* Layout: ToC + document */
.v2l-grid {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    gap: clamp(28px, 4vw, 52px);
    align-items: start;
}
.v2l-toc {
    position: sticky;
    top: calc(var(--nav-h) + 24px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 14px;
    max-height: calc(100vh - var(--nav-h) - 48px);
    overflow-y: auto;
}
.v2l-toc > .v2-mono { display: block; padding: 0 10px 10px; }
.v2l-toc ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.v2l-toc a {
    display: flex;
    align-items: baseline;
    gap: 9px;
    padding: 7px 10px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.005em;
    line-height: 1.3;
    color: var(--slate);
    transition: background-color 0.15s ease, color 0.15s ease;
}
.v2l-toc a .v2-mono { font-size: 9.5px; flex: 0 0 auto; }
.v2l-toc a:hover { color: var(--ink); background: var(--mist); }
.v2l-toc a.is-active {
    background: var(--ink);
    color: #FFFFFF;
    font-weight: 600;
}
.v2l-toc a.is-active .v2-mono { color: rgba(255, 255, 255, 0.55); }

/* Document */
.v2l-doc {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3.6vw, 44px) clamp(20px, 3.6vw, 48px);
}
.v2l-sec { scroll-margin-top: calc(var(--nav-h) + 24px); }
.v2l-sec + .v2l-sec {
    margin-top: clamp(30px, 4vw, 42px);
    padding-top: clamp(28px, 3.6vw, 38px);
    border-top: 1px solid var(--line);
}
.v2l-sec h2 {
    display: flex;
    align-items: baseline;
    gap: 12px;
    font-family: var(--font-display);
    font-size: clamp(19px, 2.1vw, 23px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 14px;
}
.v2l-sec h2 .v2-mono { flex: 0 0 auto; color: var(--go); }
.v2l-sec h3 {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin: 20px 0 8px;
}
.v2l-sec p {
    font-size: 14.5px;
    line-height: 1.72;
    color: var(--slate);
    max-width: 72ch;
}
.v2l-sec p + p { margin-top: 10px; }
.v2l-sec b { color: var(--ink); font-weight: 600; }
.v2l-sec a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2l-sec ul {
    list-style: none;
    margin: 10px 0;
    padding: 0;
    display: grid;
    gap: 8px;
    max-width: 72ch;
}
.v2l-sec ul li {
    position: relative;
    padding-right: 24px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2l-sec ul li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 4px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/9px 9px no-repeat;
}
.v2l-sec ul.v2l-ul--no li::before {
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6.5 6.5l7 7m0-7-7 7' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/8px 8px no-repeat;
}
.v2l-sec code {
    font-family: var(--font-mono);
    font-size: 12px;
    background: var(--mist);
    border-radius: 6px;
    padding: 2px 7px;
    color: var(--slate);
    white-space: nowrap;
}

/* Callouts */
.v2l-call {
    margin: 14px 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 12px;
    padding: 14px 18px;
    max-width: 72ch;
}
.v2l-call p { color: var(--slate); }
.v2l-good {
    margin: 14px 0;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 20px;
    max-width: 72ch;
}
.v2l-good p { color: var(--go-deep); }
.v2l-good b { color: var(--go-deep); }
.v2l-good a { color: var(--go-deep); font-weight: 600; }
.v2l-good ul { margin: 10px 0; }
.v2l-good ul li { color: var(--go-deep); }
.v2l-good ul li::before { background-color: rgba(255, 255, 255, 0.7); }
.v2l-good__head {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: -0.015em;
    margin-bottom: 8px;
}
.v2l-good__head svg { width: 18px; height: 18px; flex: 0 0 auto; }
.v2l-good__note { margin-top: 10px; font-size: 13px; }
.v2l-danger {
    margin: 14px 0;
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-radius: 12px;
    padding: 14px 18px;
    max-width: 72ch;
}
.v2l-danger p { color: #B42318; }
.v2l-danger b { color: #B42318; }
.v2l-danger a { color: #B42318; font-weight: 700; }

/* Facts dl (contact blocks) */
.v2l-facts {
    margin: 14px 0;
    max-width: 560px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 6px 18px;
}
.v2l-facts > div {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 11px 0;
    border-bottom: 1px solid var(--line);
}
.v2l-facts > div:last-child { border-bottom: 0; }
.v2l-facts dt { flex: 0 0 76px; }
.v2l-facts dd {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--ink);
    overflow-wrap: anywhere;
}

/* Cookie tables */
.v2l-tablewrap {
    margin: 12px 0 4px;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2l-table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
}
.v2l-table th,
.v2l-table td {
    padding: 11px 15px;
    text-align: right;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    vertical-align: top;
}
.v2l-table thead th {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
}
.v2l-table tbody td:first-child { color: var(--ink); font-weight: 500; white-space: nowrap; }
.v2l-table tr:last-child td { border-bottom: 0; }

/* Third-party service blocks */
.v2l-svc {
    margin: 14px 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    max-width: 72ch;
}
.v2l-svc h3 { margin: 0 0 8px; }
.v2l-svc__link { font-size: 12.5px; color: var(--faint); margin-top: 10px; }
.v2l-svc__link a { color: var(--slate); }

/* Confirmation + related links */
.v2l-confirm {
    margin-top: 18px;
    font-size: 13.5px;
    color: var(--faint);
}
.v2l-related {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

/* Legal responsive */
@media (max-width: 960px) {
    .v2l-grid { grid-template-columns: minmax(0, 1fr); }
    .v2l-toc {
        position: static;
        max-height: none;
        overflow: visible;
    }
    .v2l-toc ol {
        flex-direction: row;
        flex-wrap: wrap;
        gap: 4px;
    }
    .v2l-toc a {
        padding: 6px 11px;
        border: 1px solid var(--line);
        border-radius: 999px;
        font-size: 12px;
    }
    .v2l-toc a .v2-mono { display: none; }
}
@media (max-width: 640px) {
    .v2l-doc { padding: 20px 16px; border-radius: 18px; }
    .v2l-sec h2 { gap: 9px; }
    .v2l-sec p { font-size: 14px; }
    .v2l-sec ul li { font-size: 13.5px; }
    .v2l-facts { padding: 4px 14px; }
    .v2l-facts dt { flex-basis: 68px; }
    .v2l-svc { padding: 15px 14px; }
    .v2l-related .v2-btn { flex: 1 1 100%; }
    .v2l-hero__chips { gap: 8px; }
    .v2l-chip { padding: 7px 12px; font-size: 11.5px; }
}

/* ============================================================
   HOW IT WORKS V2 PAGE (2026-07-04)
   Sections for /how-it-works-v2: glance rail, four step blocks
   with artifact windows, safety grid. Hero reuses .v2-phero,
   the comparison reuses .v2-cmp, plans reuse .v2-plans.
============================================================ */

/* ---------- Glance rail ---------- */

.v2-hglance {
    position: relative;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
    list-style: none;
    margin: clamp(44px, 6vw, 60px) 0 0;
    padding: 0;
}
.v2-hglance::before {
    content: "";
    position: absolute;
    top: 27px;
    right: 4%;
    left: 4%;
    height: 2px;
    background: var(--line);
    transform-origin: right center;
}
.v2-hglance__node {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 7px;
}
.v2-hglance__node .v2-mono { letter-spacing: 0.1em; }
.v2-hglance__dot {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--paper);
    border: 2.5px solid #C9D2DA;
    flex: 0 0 auto;
}
.v2-hglance__node b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-hglance__t {
    font-size: 12px;
    color: var(--faint);
}
.v2-hglance__node--go .v2-mono { color: var(--go); }
.v2-hglance__node--go .v2-hglance__dot {
    background: var(--go);
    border-color: var(--go);
    box-shadow: 0 0 0 4px var(--go-tint);
}

@media (max-width: 760px) {
    .v2-hglance {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        max-width: 340px;
        margin-inline: auto;
    }
    .v2-hglance::before {
        top: 8px;
        bottom: 8px;
        right: 5px;
        left: auto;
        width: 2px;
        height: auto;
        transform-origin: center top;
    }
    .v2-hglance__node {
        display: grid;
        grid-template-columns: 13px minmax(0, 1fr);
        grid-template-areas: "dot day" "dot label" "dot time";
        column-gap: 14px;
        row-gap: 2px;
        text-align: right;
        align-items: start;
        justify-items: start;
        padding: 9px 0;
    }
    .v2-hglance__node .v2-mono { grid-area: day; }
    .v2-hglance__dot { grid-area: dot; margin-top: 3px; }
    .v2-hglance__node b { grid-area: label; font-size: 13.5px; }
    .v2-hglance__t { grid-area: time; font-size: 11.5px; }
}

/* ---------- Step blocks ---------- */

.v2-hsteps__list { margin-top: clamp(48px, 6.5vw, 76px); }

.v2-hstep {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr);
    gap: clamp(28px, 4.5vw, 60px);
    align-items: center;
}
.v2-hstep + .v2-hstep { margin-top: clamp(52px, 6.5vw, 80px); }
.v2-hstep--flip .v2-hstep__copy { order: 2; }
.v2-hstep--flip .v2-hstep__art { order: 1; }

.v2-hstep__kicker { letter-spacing: 0.1em; }
.v2-hstep__kicker span { white-space: nowrap; }
.v2-hstep__kicker span:first-child { color: var(--go); }

.v2-hstep__copy h3 {
    margin-top: 10px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: clamp(19px, 1.3rem + 0.6vw, 23px);
    letter-spacing: -0.016em;
    text-wrap: balance;
}
.v2-hstep__body {
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-hstep__list {
    list-style: none;
    margin: 15px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.v2-hstep__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-hstep__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2.5px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-hstep__list .v2-hstep__hl { color: var(--ink); font-weight: 600; }

.v2-hstep__art { min-width: 0; }

/* ---------- Artifact windows ---------- */

.v2-hart {
    display: block;
    width: 100%;
    max-width: 440px;
    margin-inline: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -20px rgba(10, 16, 23, 0.14);
}
.v2-hart__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
}
.v2-hart__bar .v2-mono { font-size: 10.5px; }
.v2-hart__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    flex: 0 0 auto;
}
.v2-hart__dot--live { animation: v2Pulse 2.2s infinite; }
.v2-hart__chip {
    margin-right: auto;
    font-size: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.v2-hart__chip--go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2-hart__body {
    padding: 16px 16px 14px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}
.v2-hart__colhead { font-size: 10px; }
.v2-hart__redact {
    display: block;
    height: 12px;
    border-radius: 6px;
    background: #E9EDF1;
}
.v2-hart__foot { margin-top: 5px; font-size: 10px; }

/* Console path rows */
.v2-hpath { gap: 0; padding: 8px 16px 10px; }
.v2-hpath__row {
    position: relative;
    padding: 9px 26px 9px 0;
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--slate);
}
.v2-hpath__row + .v2-hpath__row { border-top: 1px solid var(--mist); }
.v2-hpath__row::before {
    content: "";
    position: absolute;
    right: 0;
    top: 11px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-hpath__row--go { color: var(--ink); font-weight: 600; }

/* Streak card */
.v2-hstreak__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 6px;
}
.v2-hstreak__sq {
    display: block;
    aspect-ratio: 1;
    border-radius: 5px;
    background: #E9EDF1;
}
.v2-hstreak__sq.is-on { background: var(--go); }
.v2-hstreak__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
}
.v2-hstreak__avs { display: flex; align-items: center; }
.v2-hstreak__avs i,
.v2-hstreak__avs b {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--mist);
    border: 2px solid var(--paper);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    font-style: normal;
    color: var(--slate);
}
.v2-hstreak__avs i + i,
.v2-hstreak__avs b { margin-right: -7px; }
.v2-hstreak__avs b { background: var(--go-tint); color: var(--go-deep); }
.v2-hstreak__live {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--slate);
}
.v2-hstreak__live i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.2s infinite;
}

/* Approval email card */
.v2-hmail { position: relative; cursor: zoom-in; }
.v2-hmail img { display: block; width: 100%; height: auto; }
.v2-hmail__av {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--mist);
    display: grid;
    place-items: center;
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 700;
    color: var(--slate);
    flex: 0 0 auto;
}
.v2-hmail__meta { min-width: 0; line-height: 1.2; }
.v2-hmail__meta b {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-hmail__meta .v2-mono { font-size: 9.5px; letter-spacing: 0.06em; }
.v2-hmail__zoom {
    display: none;
    position: absolute;
    left: 10px;
    bottom: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 9.5px;
}
@media (max-width: 960px) {
    .v2-hmail__zoom { display: inline-block; }
}

/* Steps closing CTA */
.v2-hsteps__cta {
    margin-top: clamp(44px, 6vw, 64px);
    text-align: center;
}
.v2-hsteps__note {
    margin-top: 14px;
    font-size: 13.5px;
    color: var(--faint);
}
.v2-hsteps__note a {
    color: var(--slate);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-hsteps__note a:hover { color: var(--ink); }

/* Steps entrances (JS adds .v2-anim on the section, .is-in per step) */
.v2-hsteps.v2-anim .v2-hglance::before { transform: scaleX(0); }
.v2-hsteps.v2-anim.is-in .v2-hglance::before {
    transform: scaleX(1);
    transition: transform 1.1s cubic-bezier(0.22, 0.8, 0.26, 1) 0.1s;
}
.v2-hsteps.v2-anim .v2-hglance__node { opacity: 0; transform: translateY(10px); }
.v2-hsteps.v2-anim.is-in .v2-hglance__node {
    opacity: 1;
    transform: none;
    transition: opacity .5s cubic-bezier(0.22, 0.8, 0.26, 1), transform .5s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-hsteps.v2-anim.is-in .v2-hglance__node:nth-child(1) { transition-delay: .12s; }
.v2-hsteps.v2-anim.is-in .v2-hglance__node:nth-child(2) { transition-delay: .3s; }
.v2-hsteps.v2-anim.is-in .v2-hglance__node:nth-child(3) { transition-delay: .48s; }
.v2-hsteps.v2-anim.is-in .v2-hglance__node:nth-child(4) { transition-delay: .66s; }
.v2-hsteps.v2-anim.is-in .v2-hglance__node:nth-child(5) { transition-delay: .84s; }

.v2-hsteps.v2-anim .v2-hstep {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s cubic-bezier(0.22, 0.8, 0.26, 1), transform .6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-hsteps.v2-anim .v2-hstep.is-in { opacity: 1; transform: none; }

.v2-hsteps.v2-anim .v2-hstreak__sq.is-on { transform: scale(0); }
.v2-hsteps.v2-anim .v2-hstep.is-in .v2-hstreak__sq.is-on {
    transform: scale(1);
    transition: transform .3s cubic-bezier(0.34, 1.56, 0.64, 1);
    transition-delay: calc(var(--s) * 50ms + 0.25s);
}

@media (max-width: 900px) {
    .v2-hstep { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .v2-hstep--flip .v2-hstep__copy { order: 1; }
    .v2-hstep--flip .v2-hstep__art { order: 2; }
    .v2-hstep + .v2-hstep { margin-top: 48px; }
    .v2-hsteps__list { margin-top: 44px; }
}
@media (max-width: 640px) {
    .v2-hstep__copy h3 { font-size: 18.5px; }
    .v2-hstep__body { font-size: 14px; }
    .v2-hstep__list li { font-size: 13.5px; }
    .v2-hart { max-width: 100%; }
    .v2-hstep + .v2-hstep { margin-top: 40px; }
    .v2-hsteps__note { font-size: 12.5px; padding-inline: 8px; }
    .v2 .v2-hsteps__cta .v2-btn { width: 100%; max-width: 420px; }
}

/* ---------- Safety grid ---------- */

.v2-hsafe__quote {
    max-width: 720px;
    margin: clamp(36px, 5vw, 48px) auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 12px;
    padding: 20px 24px;
}
.v2-hsafe__quote blockquote { margin: 0; }
.v2-hsafe__quote blockquote p {
    font-size: 16.5px;
    font-weight: 500;
    line-height: 1.6;
    color: var(--ink);
}
.v2-hsafe__quote figcaption {
    margin-top: 10px;
    font-size: 10.5px;
}
.v2-hsafe__quote figcaption a {
    color: var(--slate);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-hsafe__quote figcaption a:hover { color: var(--ink); }

.v2-hsafe__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(30px, 4.5vw, 40px);
}
.v2-hsafe__item {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2-hsafe__item b {
    position: relative;
    display: block;
    padding-right: 26px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-hsafe__item b::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-hsafe__item p {
    margin-top: 7px;
    padding-right: 26px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2-hsafe__item p a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-hsafe.v2-anim .v2-hsafe__item {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .5s cubic-bezier(0.22, 0.8, 0.26, 1), transform .5s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(var(--i) * 60ms);
}
.v2-hsafe.v2-anim.is-in .v2-hsafe__item { opacity: 1; transform: none; }

@media (max-width: 960px) {
    .v2-hsafe__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
}
@media (max-width: 640px) {
    .v2-hsafe__grid { grid-template-columns: minmax(0, 1fr); gap: 11px; }
    .v2-hsafe__quote { padding: 16px 18px; }
    .v2-hsafe__quote blockquote p { font-size: 15px; }
    .v2-hsafe__item { padding: 16px; border-radius: 14px; }
}

/* Solo-CTA comparison (how-it-works): the only buy button sits in
   the pinned-away green column on mobile, so the row would render
   as an empty band. Hide it there; surrounding CTAs cover it. */
@media (max-width: 900px) {
    .v2-cmp--solo .v2-cmp__cta-row { display: none; }
}

/* ---------- Plans: pricing-page cross link ---------- */

.v2-ppl__more {
    margin-top: 22px;
    text-align: center;
    font-size: 14px;
    color: var(--slate);
}
.v2-ppl__more a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ============================================================
   FAQ V2 PAGE (2026-07-04)
   Page-specific blocks for /faq-v2: hero search + category
   chips, quick-answer cards, category browser (sticky rail +
   accordion groups + live-search empty state). Reuses .v2-phero,
   .v2-faq__item, .v2-guide, .v2-plan, .v2-guarantee primitives.
============================================================ */

/* ---------- FAQ hero: live search ---------- */

.v2-fqsearch {
    margin: 26px auto 0;
    width: min(100%, 660px);
}
.v2-fqsearch__box {
    position: relative;
    display: flex;
    align-items: center;
}
.v2-fqsearch__ic {
    position: absolute;
    right: 18px;
    width: 19px;
    height: 19px;
    color: var(--faint);
    pointer-events: none;
}
.v2 .v2-fqsearch__input {
    width: 100%;
    height: 56px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 0 48px 0 118px;
    font: 500 15.5px/1.2 var(--font-body);
    color: var(--ink);
    text-overflow: ellipsis;
    appearance: none;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 14px 34px -18px rgba(10, 16, 23, 0.14);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2-fqsearch__input::placeholder { color: var(--faint); }
.v2 .v2-fqsearch__input:focus {
    outline: none;
    border-color: var(--go);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14);
}
.v2-fqsearch__count {
    position: absolute;
    left: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 10px;
    white-space: nowrap;
}

.v2-fqchips {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.v2-fqchip {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font: 600 12.5px/1 var(--font-body);
    color: var(--slate);
    text-decoration: none;
    will-change: transform;
}
/* Higher specificity than the reduced-motion rule (.v2 *) so the transition survives. */
.v2 .v2-fqchip {
    transition: transform .26s cubic-bezier(.22, 1, .36, 1),
                border-color .2s ease, color .2s ease, background-color .2s ease, box-shadow .26s ease !important;
}
.v2-fqchip:hover {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    color: var(--go-deep);
    background: var(--go-tint);
    transform: translateY(-3px);
    box-shadow: 0 10px 18px -10px rgba(11, 138, 71, 0.5);
}
.v2-fqchip:active { transform: translateY(-1px); }

/* ---------- FAQ: quick answer cards ---------- */

.v2-fqtop__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.v2-fqcard {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-fqcard {
    transition: transform .32s cubic-bezier(.22, 1, .36, 1),
                box-shadow .32s cubic-bezier(.22, 1, .36, 1),
                border-color .32s ease !important;
}
.v2-fqcard:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2 .v2-fqcard__ic { transition: transform .32s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2-fqcard:hover .v2-fqcard__ic { transform: scale(1.1); }
.v2-fqcard:first-child { grid-column: 1 / -1; }
.v2-fqcard__ic {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2-fqcard__ic svg { width: 22px; height: 22px; }
.v2-fqcard__body { min-width: 0; }
.v2-fqcard__q {
    font: 600 17.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-fqcard__a {
    margin-top: 8px;
    font: 400 14px/1.62 var(--font-body);
    color: var(--slate);
}

/* ---------- FAQ: category browser ---------- */

.v2-fqb__layout {
    display: grid;
    grid-template-columns: 250px minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}
.v2-fqb__rail {
    position: sticky;
    top: calc(var(--nav-h) + 24px);
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.v2-fqb__rail-t { margin-bottom: 8px; }
.v2-fqb__rail-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 11px;
    font: 600 14px/1.2 var(--font-body);
    color: var(--slate);
    text-decoration: none;
    transition: background 0.16s ease, color 0.16s ease;
}
.v2 .v2-fqb__rail-link {
    transition: background .2s ease, color .2s ease,
                padding-right .26s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-fqb__rail-link:hover:not(.is-active) {
    background: var(--mist);
    color: var(--ink);
    padding-right: 19px;
}
.v2 .v2-fqb__rail-n {
    transition: background .2s ease, border-color .2s ease, color .2s ease !important;
}
.v2-fqb__rail-link:hover:not(.is-active) .v2-fqb__rail-n {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: color-mix(in srgb, var(--go) 30%, var(--line));
}
.v2-fqb__rail-link.is-active {
    background: var(--ink);
    color: #FFFFFF;
}
.v2-fqb__rail-n {
    font: 600 10.5px/1 var(--font-mono);
    letter-spacing: 0.08em;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 8px;
}
.v2-fqb__rail-link.is-active .v2-fqb__rail-n {
    background: rgba(255, 255, 255, 0.14);
    border-color: transparent;
    color: #FFFFFF;
}
.v2-fqb__rail-help {
    margin-top: 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px;
}
.v2-fqb__rail-help p {
    font: 400 13px/1.55 var(--font-body);
    color: var(--slate);
    margin-bottom: 12px;
}
.v2-fqb__rail-help b { color: var(--ink); }
.v2-fqb__rail-help .v2-btn { width: 100%; }

.v2-fqb__groups {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 6vw, 56px);
}
.v2-fqtop,
.v2-fqb__group,
.v2-fqcard[id],
.v2-fqb .v2-faq__item {
    scroll-margin-top: calc(var(--nav-h) + 22px);
}
.v2-fqb__ghead {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 6px;
}
.v2-fqb__h2 {
    font: 650 clamp(19px, 1rem + 1vw, 24px)/1.22 var(--font-display);
    letter-spacing: -0.018em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-fqb__gcount { white-space: nowrap; }

/* live-search hide states (hidden attr vs display gotcha) */
.v2-fqtop[hidden],
.v2-fqb__group[hidden],
.v2-fqcard[hidden],
.v2-fqb .v2-faq__item[hidden],
.v2-fqempty[hidden] { display: none; }

.v2-fqempty {
    border: 1px dashed #C9D2DA;
    border-radius: 18px;
    padding: 34px 26px;
    text-align: center;
}
.v2-fqempty svg {
    width: 34px;
    height: 34px;
    color: var(--faint);
    margin-bottom: 12px;
}
.v2-fqempty p {
    font: 400 15px/1.6 var(--font-body);
    color: var(--slate);
    max-width: 460px;
    margin-inline: auto;
}
.v2-fqempty b { color: var(--ink); }
.v2-fqempty__row {
    margin-top: 16px;
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}

.v2-fqb .v2-faq__human { margin-top: clamp(44px, 6vw, 64px); }

/* ---------- FAQ: entrances ---------- */

.v2-fqtop.v2-anim .v2-fqcard {
    opacity: 0;
    transform: translateY(16px);
}
.v2-fqtop.v2-anim.is-in .v2-fqcard {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-fqb.v2-anim .v2-fqb__rail,
.v2-fqb.v2-anim .v2-fqb__groups {
    opacity: 0;
    transform: translateY(16px);
}
.v2-fqb.v2-anim.is-in .v2-fqb__rail,
.v2-fqb.v2-anim.is-in .v2-fqb__groups {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-fqb.v2-anim.is-in .v2-fqb__groups { transition-delay: 0.1s; }

/* ---------- FAQ: mobile ---------- */

@media (max-width: 960px) {
    .v2-fqb__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 22px;
    }
    .v2-fqb__rail {
        top: var(--nav-h);
        z-index: 20;
        flex-direction: row;
        align-items: center;
        gap: 8px;
        background: rgba(255, 255, 255, 0.94);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        border-bottom: 1px solid var(--line);
        margin-inline: calc(-1 * clamp(20px, 4vw, 32px));
        padding: 10px clamp(20px, 4vw, 32px);
        overflow-x: auto;
        scrollbar-width: none;
    }
    .v2-fqb__rail::-webkit-scrollbar { display: none; }
    .v2-fqb__rail-t { display: none; }
    .v2-fqb__rail-help { display: none; }
    .v2-fqb__rail-link {
        flex: 0 0 auto;
        padding: 8px 12px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: var(--paper);
        font-size: 13px;
    }
    .v2-fqb__rail-link:hover { background: var(--paper); }
    .v2-fqb__rail-link.is-active { border-color: var(--ink); }
    .v2-fqb__rail-n { padding: 3px 7px; }
}

@media (max-width: 900px) {
    .v2-fqtop__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .v2-fqcard:first-child { grid-column: auto; }
}

@media (max-width: 640px) {
    .v2 .v2-fqsearch__input {
        height: 52px;
        padding: 0 44px 0 96px;
        font-size: 15px;
    }
    .v2-fqsearch__ic { right: 15px; }
    .v2-fqchip {
        height: 32px;
        padding: 0 12px;
        font-size: 12px;
    }
    .v2-fqcard {
        padding: 18px;
        gap: 13px;
    }
    .v2-fqcard__ic { width: 38px; height: 38px; }
    .v2-fqcard__ic svg { width: 20px; height: 20px; }
    .v2-fqcard__q { font-size: 16.5px; }
    .v2-fqcard__a { font-size: 13.5px; }
    .v2-fqb__ghead {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }
    .v2-fqempty { padding: 28px 18px; }
}

/* ============================================================
   CONTACT V2 PAGE (2026-07-04)
   Page-specific blocks for /contact-v2: channel cards, message
   form (inputs, alerts, honeypot, include-rail), help topics.
   Reuses .v2-phero, .v2-cta, .v2-btn, .v2-sechead primitives.
============================================================ */

/* WhatsApp brand button (channel recognition converts) */
.v2 .v2-btn--wa {
    background: #25D366;
    border-color: #25D366;
    color: #FFFFFF;
}
.v2 .v2-btn--wa:hover {
    background: #1EBE5A;
    border-color: #1EBE5A;
    color: #FFFFFF;
}

/* ---------- Contact: channel cards ---------- */

.v2-ctch__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.v2-ctch__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px;
}
.v2-ctch__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2-ctch__ic svg { width: 22px; height: 22px; }
.v2-ctch__badge {
    position: absolute;
    top: 18px;
    left: 18px;
    background: var(--go);
    color: #FFFFFF;
    font: 700 11px/1 var(--font-body);
    letter-spacing: 0.02em;
    border-radius: 999px;
    padding: 6px 11px;
}
.v2-ctch__title {
    margin-top: 14px;
    font: 600 17.5px/1.25 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ctch__desc {
    margin-top: 8px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-ctch__fact {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    width: 100%;
}
.v2-ctch__fact span { white-space: nowrap; }
.v2 .v2-ctch__act {
    margin-top: 14px;
    width: 100%;
}

/* ---------- Contact: message form ---------- */

.v2-ctf__layout {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
    max-width: 1040px;
    margin-inline: auto;
}

.v2-ctf__alert {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 18px;
    font-size: 14.5px;
    line-height: 1.6;
}
.v2-ctf__alert svg { width: 20px; height: 20px; flex: 0 0 auto; margin-top: 2px; }
.v2-ctf__alert b { color: inherit; }
.v2-ctf__alert--ok {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2-ctf__alert--ok a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-ctf__alert--err {
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    color: #B42318;
}

.v2-ctf__form { display: flex; flex-direction: column; gap: 16px; }
.v2-ctf__row2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.v2-ctf__field { display: flex; flex-direction: column; }
.v2-ctf__field label {
    font: 600 13px/1.3 var(--font-body);
    color: var(--ink);
    margin-bottom: 7px;
}
.v2-ctf__opt {
    font: 600 10.5px/1 var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    margin-right: 4px;
}
.v2 .v2-ctf__field input,
.v2 .v2-ctf__field select,
.v2 .v2-ctf__field textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font: 400 15px/1.45 var(--font-body);
    color: var(--ink);
    appearance: none;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.v2 .v2-ctf__field input,
.v2 .v2-ctf__field select {
    height: 48px;
    padding: 0 14px;
}
.v2 .v2-ctf__field textarea {
    min-height: 150px;
    padding: 12px 14px;
    resize: vertical;
}
.v2 .v2-ctf__field select {
    padding-left: 40px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m6 8 4 4 4-4' stroke='%2355616D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: left 14px center;
    background-size: 16px;
    cursor: pointer;
}
.v2 .v2-ctf__field input::placeholder,
.v2 .v2-ctf__field textarea::placeholder { color: var(--faint); }
.v2 .v2-ctf__field input:focus,
.v2 .v2-ctf__field select:focus,
.v2 .v2-ctf__field textarea:focus {
    outline: none;
    border-color: var(--go);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14);
}
.v2 .v2-ctf__field input.is-err,
.v2 .v2-ctf__field textarea.is-err { border-color: #B42318; }
.v2-ctf__err {
    margin-top: 6px;
    font: 500 12.5px/1.4 var(--font-body);
    color: #B42318;
}

.v2-ctf__hp {
    position: absolute;
    right: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.v2-ctf__foot {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.v2-ctf__note span { white-space: nowrap; }

/* include-this rail */
.v2-ctf__rail { display: flex; flex-direction: column; gap: 16px; }
.v2-ctf__include {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2-ctf__include-t { margin-bottom: 12px; }
.v2-ctf__list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.v2-ctf__list li {
    position: relative;
    padding-right: 26px;
    font: 400 13.5px/1.55 var(--font-body);
    color: var(--slate);
}
.v2-ctf__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6 10.4l2.5 2.5 5.5-6.2' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}
.v2-ctf__code {
    font: 600 12px/1 var(--font-mono);
    letter-spacing: 0.02em;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 3px 7px;
    white-space: nowrap;
}
.v2-ctf__human {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2-ctf__human img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}
.v2-ctf__human p {
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-ctf__railfact { text-align: center; }
.v2-ctf__railfact span { white-space: nowrap; }

/* ---------- Contact: help topics ---------- */

.v2-cttop__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.v2-cttop__tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2-cttop__ic {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
}
.v2-cttop__ic svg { width: 21px; height: 21px; }
.v2-cttop__title {
    margin-top: 13px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-cttop__desc {
    margin-top: 7px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-cttop__link {
    margin-top: auto;
    padding-top: 14px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: 600 13.5px/1 var(--font-body);
    color: var(--go-deep);
    text-decoration: none;
}
.v2-cttop__link svg { width: 15px; height: 15px; transition: transform 0.18s ease; }
.v2-cttop__link:hover svg { transform: translateX(-3px); }

/* ---------- Contact: entrances ---------- */

.v2-ctch.v2-anim .v2-ctch__card,
.v2-cttop.v2-anim .v2-cttop__tile {
    opacity: 0;
    transform: translateY(16px);
}
.v2-ctch.v2-anim.is-in .v2-ctch__card,
.v2-cttop.v2-anim.is-in .v2-cttop__tile {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-ctf.v2-anim .v2-ctf__layout {
    opacity: 0;
    transform: translateY(16px);
}
.v2-ctf.v2-anim.is-in .v2-ctf__layout {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}

/* ---------- Contact: mobile ---------- */

@media (max-width: 1080px) {
    .v2-ctch__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .v2-ctf__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 30px;
    }
    .v2-cttop__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .v2-ctch__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .v2-ctch__card { padding: 18px; }
    .v2-cttop__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
    }
    .v2-cttop__tile { padding: 18px; }
    .v2-ctf__row2 {
        grid-template-columns: minmax(0, 1fr);
    }
    .v2-ctf__include { padding: 18px; }
    .v2-ctf__foot { align-items: stretch; flex-direction: column; }
    .v2 .v2-ctf__foot .v2-btn { width: 100%; }
    .v2-ctf__note { text-align: center; }
}

/* ============================================================
   BOOK A MEETING V2 PAGE (2026-07-04)
   Page-specific blocks for /book-meeting-v2: calendar-invite
   artifact in the hero, lazy Calendly embed card, agenda cards,
   what-happens-next steps. Reuses .v2-phero, .v2-faq, .v2-cta,
   .v2-fqchip primitives.
============================================================ */

/* ---------- Book: calendar-invite artifact ---------- */

.v2-bminvite {
    margin: 34px auto 0;
    width: min(100%, 560px);
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2-bminvite__head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
.v2-bminvite__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2-bminvite__chip {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font: 700 11.5px/1 var(--font-body);
    border-radius: 999px;
    padding: 6px 11px;
}
.v2-bminvite__chip svg { width: 14px; height: 14px; }
.v2-bminvite__title {
    margin-top: 14px;
    font: 600 18.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-bminvite__rows { margin-top: 6px; }
.v2-bminvite__row {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding-block: 9px;
    border-bottom: 1px solid var(--line);
}
.v2-bminvite__row:last-child { border-bottom: 0; }
.v2-bminvite__row dd {
    font: 500 14px/1.5 var(--font-body);
    color: var(--ink);
}
.v2-bminvite__host {
    display: flex;
    align-items: center;
    gap: 9px;
}
.v2-bminvite__host img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}
.v2-bminvite__host span {
    color: var(--slate);
    font-weight: 400;
    font-size: 12.5px;
    white-space: nowrap;
}
.v2-bminvite__foot {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.v2-bminvite__foot span { white-space: nowrap; }

/* ---------- Book: scheduler embed ---------- */

.v2-bmcal__card {
    position: relative;
    margin: clamp(34px, 5vw, 46px) auto 0;
    width: min(100%, 920px);
    height: 720px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
}
.v2-bmcal__skel {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: var(--paper);
}
.v2-bmcal__skel p { animation: v2BmSkel 1.6s ease-in-out infinite; }
@keyframes v2BmSkel {
    50% { opacity: 0.4; }
}
.v2-bmcal__skel[hidden] { display: none; }
.v2-bmcal .calendly-inline-widget {
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
}
.v2-bmcal__alt {
    margin-top: 18px;
    text-align: center;
    font: 400 13.5px/1.7 var(--font-body);
    color: var(--slate);
}
.v2-bmcal__alt a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-bmcal__alt .v2-mono span { white-space: nowrap; }

/* ---------- Book: agenda ---------- */

.v2-bmag__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.v2-bmag__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2-bmag__n {
    color: var(--go);
    font-weight: 700;
}
.v2-bmag__card h3 {
    margin-top: 10px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-bmag__card p {
    margin-top: 7px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-bmag__topics {
    margin-top: 28px;
    text-align: center;
}
.v2-bmag__topics > .v2-mono { margin-bottom: 12px; }
.v2-bmag__chips {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

/* ---------- Book: what happens next ---------- */

.v2-bmnext__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.v2-bmnext__step {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
}
.v2-bmnext__chip {
    display: inline-flex;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    border-radius: 999px;
    padding: 5px 10px;
}
.v2-bmnext__step h3 {
    margin-top: 12px;
    font: 600 17px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-bmnext__step p {
    margin-top: 8px;
    font: 400 13.5px/1.62 var(--font-body);
    color: var(--slate);
}

.v2-bmfaq__alt {
    margin-top: 26px;
    text-align: center;
    font: 400 14px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-bmfaq__alt a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- Book: entrances ---------- */

.v2-bmag.v2-anim .v2-bmag__card,
.v2-bmnext.v2-anim .v2-bmnext__step {
    opacity: 0;
    transform: translateY(16px);
}
.v2-bmag.v2-anim.is-in .v2-bmag__card,
.v2-bmnext.v2-anim.is-in .v2-bmnext__step {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

/* ---------- Book: mobile ---------- */

@media (max-width: 1080px) {
    .v2-bmag__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .v2-bmnext__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

@media (max-width: 640px) {
    .v2-bmag__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-bmag__card { padding: 18px; }
    .v2-bmnext__step { padding: 18px; }
    .v2-bmcal__card { height: 640px; border-radius: 16px; }
}

@media (max-width: 480px) {
    .v2-bminvite { padding: 16px 18px; }
    .v2-bminvite__row { grid-template-columns: 64px minmax(0, 1fr); }
    .v2-bminvite__host span { white-space: normal; }
}

/* ============================================================
   ANDROID APP TESTING SERVICE V2 PAGE (2026-07-04)
   Page-specific blocks for /android-app-testing-service-v2:
   hero plan-card artifact, why/rejections split, included
   tiles, process steps. Reuses .v2-phero, .v2-plan, .v2-ppl,
   .v2-guarantee, .v2-faq, .v2-cta primitives.
============================================================ */

/* ---------- Enterprise page: hero plan card ---------- */

.v2-atcard {
    margin: 34px auto 0;
    width: min(100%, 420px);
    text-align: right;
}
.v2-atcard .v2-plan {
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.28);
}

/* ---------- Enterprise page: why / rejections ---------- */

.v2-atwhy__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 3vw, 40px);
    align-items: start;
}
.v2-atwhy__col {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(20px, 3vw, 28px);
}
.v2-atwhy__h3 {
    font: 600 18px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-atwhy__p {
    margin-top: 10px;
    font: 400 14px/1.65 var(--font-body);
    color: var(--slate);
}
.v2-atwhy__p a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-atwhy__list {
    margin-top: 14px;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 11px;
}
.v2-atwhy__list li {
    position: relative;
    padding-right: 26px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-atwhy__list li b { color: var(--ink); }
.v2-atwhy__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m7 7 6 6m0-6-6 6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/9px 9px no-repeat;
}
.v2-atwhy__math {
    margin-top: 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2-atwhy__mrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
}
.v2-atwhy__mrow:last-child { border-bottom: 0; }
.v2-atwhy__mrow b {
    font: 700 15px/1 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-atwhy__mrow--hl {
    background: var(--go-tint);
}
.v2-atwhy__mrow--hl b { color: var(--go-deep); }
.v2-atwhy__mrow--hl .v2-mono { color: var(--go-deep); }

/* ---------- Enterprise page: included tiles ---------- */

.v2-atinc__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.v2-atinc__tile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2-atinc__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2-atinc__ic svg { width: 22px; height: 22px; }
.v2-atinc__tile h3 {
    margin-top: 13px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-atinc__tile p {
    margin-top: 7px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}

/* ---------- Enterprise page: process steps ---------- */

.v2-athow__grid {
    margin-top: clamp(34px, 5vw, 46px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.v2-athow__step {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2-athow__chip {
    display: inline-flex;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    border-radius: 999px;
    padding: 5px 10px;
}
.v2-athow__step h3 {
    margin-top: 12px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-athow__step p {
    margin-top: 7px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-athow__more {
    margin-top: 26px;
    text-align: center;
    font: 400 14px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-athow__more a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- Enterprise page: entrances ---------- */

.v2-atwhy.v2-anim .v2-atwhy__col,
.v2-atinc.v2-anim .v2-atinc__tile,
.v2-athow.v2-anim .v2-athow__step {
    opacity: 0;
    transform: translateY(16px);
}
.v2-atwhy.v2-anim.is-in .v2-atwhy__col,
.v2-atinc.v2-anim.is-in .v2-atinc__tile,
.v2-athow.v2-anim.is-in .v2-athow__step {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-atwhy.v2-anim.is-in .v2-atwhy__col:last-child { transition-delay: 0.1s; }

/* ---------- Enterprise page: mobile ---------- */

@media (max-width: 1080px) {
    .v2-athow__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
    .v2-atwhy__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-atinc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .v2-atinc__grid,
    .v2-athow__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-atinc__tile,
    .v2-athow__step { padding: 18px; }
    .v2-atwhy__col { padding: 18px; }
}

/* ============================================================
   CASE STUDY V2 (/case-study-v2/...) + CASE STUDIES LISTING V2
   (/case-studies-v2) - page-specific blocks (2026-07-04)
   Reuses primitives: v2-section, v2-sechead, v2-btn, v2-plan*,
   v2-guarantee*, v2-faq*, v2-video*, v2-proof__shot chrome,
   v2-phero (listing hero), v2-cta (listing close).
============================================================ */

/* ---------- Case study: hero ---------- */

.v2-csh {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(40px, 6vh, 72px));
    padding-bottom: clamp(46px, 6vh, 76px);
    overflow: hidden;
}
.v2-csh__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 88% -14%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(38rem 26rem at -10% 116%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2-csh__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: clamp(36px, 5vw, 64px);
    align-items: center;
}
.v2-csh__crumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
}
.v2-csh__crumb a { color: var(--faint); text-decoration: none; }
.v2-csh__crumb a:hover { color: var(--go-deep); }
.v2-csh__crumb span[aria-hidden] { color: #C9D2DA; }
.v2-csh__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 18px;
    padding: 7px 13px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11.5px;
    font-weight: 700;
}
.v2-csh__chip svg { width: 14px; height: 14px; }
.v2-csh__title {
    margin-top: 16px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.9rem, 1.05rem + 2.7vw, 2.95rem);
    line-height: 1.07;
    letter-spacing: -0.026em;
    text-wrap: balance;
    color: var(--ink);
}
.v2-csh__title-go { display: block; color: var(--go); }
.v2-csh__sub {
    margin-top: 18px;
    max-width: 54ch;
    font-size: clamp(15.5px, 1.4vw, 17px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-csh__fine { margin-top: 16px; font-size: 11px; }
.v2-csh__fine span { white-space: nowrap; }
.v2-csh__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 24px;
}

/* Case file card */
.v2-csh__stage { position: relative; }
.v2-csfile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2-csfile__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-csfile__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    position: relative;
    flex-shrink: 0;
}
.v2-csfile__dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid rgba(11, 138, 71, 0.4);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2-csfile__status {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11px;
    font-weight: 700;
}
.v2-csfile__status svg { width: 12px; height: 12px; }
.v2-csfile__row {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr);
    gap: 14px;
    align-items: baseline;
    padding: 11.5px 18px;
}
.v2-csfile__row + .v2-csfile__row { border-top: 1px solid #F0F3F6; }
.v2-csfile__k { font-size: 10px; }
.v2-csfile__v {
    font-size: 13.8px;
    font-weight: 500;
    color: var(--ink);
    line-height: 1.45;
}
.v2-csfile__row--win { background: var(--go-tint); }
.v2-csfile__row--win .v2-csfile__k { color: var(--go-deep); }
.v2-csfile__row--win .v2-csfile__v {
    color: var(--go-deep);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.v2-csfile__row--win .v2-csfile__v svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2-csfile__foot {
    padding: 11px 18px;
    border-top: 1px solid var(--line);
    background: #FBFCFD;
    font-size: 10px;
}
.v2-csfile__foot span { white-space: nowrap; }

/* ---------- Case study: quick answer + index ---------- */

.v2-csqa { padding: clamp(26px, 4vw, 44px) 0 clamp(10px, 2vw, 18px); }
.v2-csqa__card {
    max-width: 860px;
    margin-inline: auto;
    background: linear-gradient(-180deg, #F4FAF7, #FFFFFF 140%);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-right: 4px solid var(--go);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 28px);
}
.v2-csqa__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
}
.v2-csqa__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go-deep);
}
.v2-csqa__chip svg { width: 14px; height: 14px; }
.v2-csqa__card > p {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.75;
    color: var(--ink);
}
.v2-cstoc {
    max-width: 860px;
    margin: 18px auto 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
.v2-cstoc__label { font-size: 10px; margin-left: 4px; }
.v2-cstoc__links { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-cstoc__links a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.18s ease, color 0.18s ease;
}
.v2-cstoc__links a:hover { border-color: #C9D2DA; color: var(--ink); }
.v2-cstoc__links a .v2-mono { font-size: 9.5px; color: var(--go); }

/* ---------- Case study: snapshot ---------- */

.v2-cssnap__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(32px, 5vw, 60px);
    align-items: center;
}
.v2-cssnap__head .v2-h2 { margin-top: 14px; }
.v2-cssnap__head .v2-lead { margin-top: 16px; }
.v2-cssnap__more {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--slate);
}
.v2-cssnap__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.v2-cssnap__stat {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 20px;
}
.v2-cssnap__num {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.v2-cssnap__num svg { width: 20px; height: 20px; color: var(--go); }
.v2-cssnap__lbl {
    display: block;
    margin-top: 9px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--slate);
}
.v2-cssnap__stat--win { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2-cssnap__stat--win .v2-cssnap__lbl { color: var(--go-deep); }

/* ---------- Case study: problem + rule ---------- */

.v2-csfail__in,
.v2-csfix__in,
.v2-csend__in { max-width: 860px; margin-inline: auto; }
.v2-csfail .v2-h2,
.v2-csfix .v2-h2 { margin-top: 12px; }
.v2-csfail__p,
.v2-csfix__p {
    margin-top: 16px;
    font-size: 15.5px;
    line-height: 1.78;
    color: var(--slate);
}
.v2-csfail__p b,
.v2-csfail__p em { color: var(--ink); }
.v2-csfail__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 26px;
}
.v2-csfail__card {
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-radius: 16px;
    padding: 22px;
}
.v2-csfail__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #B42318;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.v2-csfail__tag svg { width: 14px; height: 14px; }
.v2-csfail__card h3 {
    margin-top: 11px;
    font: 600 17px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-csfail__card p {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2-csfail .v2-h2.v2-csfail__h2b { margin-top: clamp(46px, 6vw, 64px); }

.v2-csrule {
    margin-top: 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
}
.v2-csrule__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 18px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-csrule__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    flex-shrink: 0;
}
.v2-csrule__body { padding: 20px 22px 22px; }
.v2-csrule__body h3 {
    font: 600 17.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-csrule__body > p {
    margin-top: 9px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2-csrule__body b { color: var(--ink); }
.v2-csrule__list { list-style: none; margin: 14px 0 0; padding: 0; }
.v2-csrule__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-csrule__list li + li { margin-top: 8px; }
.v2-csrule__list li::before {
    content: '';
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M4.5 10.5l3.5 3.5 7.5-8' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 9px no-repeat;
}
.v2-csrule__body > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 16px;
    color: var(--go-deep);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}
.v2-csrule__body > a:hover { text-decoration: underline; text-underline-offset: 3px; }
.v2-csrule__body > a svg { width: 15px; height: 15px; }

/* ---------- Case study: fix + timeline ---------- */

.v2-csfix__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
}
.v2-csfix__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 20px;
}
.v2-csfix__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
}
.v2-csfix__ic svg { width: 22px; height: 22px; }
.v2-csfix__card h3 {
    margin-top: 14px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-csfix__card p {
    margin-top: 8px;
    font-size: 13.8px;
    line-height: 1.65;
    color: var(--slate);
}
.v2-csfix .v2-h2.v2-csfix__h2b { margin-top: clamp(46px, 6vw, 64px); }

.v2-cstl {
    margin-top: 24px;
    border-right: 2px solid var(--line);
    padding-right: 28px;
}
.v2-cstl__item { position: relative; padding-bottom: 26px; }
.v2-cstl__item:last-child { padding-bottom: 0; }
.v2-cstl__item::before {
    content: '';
    position: absolute;
    right: -35px;
    top: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--paper);
    border: 2.5px solid var(--go);
    box-sizing: border-box;
}
.v2-cstl__item--done::before { background: var(--go); }
.v2-cstl__day {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 7px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 10px;
}
.v2-cstl__item--done .v2-cstl__day {
    background: var(--go);
    border-color: var(--go);
    color: #FFFFFF;
}
.v2-cstl__day svg { width: 12px; height: 12px; }
.v2-cstl__item h3 {
    margin-top: 10px;
    font: 600 16.5px/1.35 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-cstl__item p {
    margin-top: 6px;
    font-size: 14.3px;
    line-height: 1.68;
    color: var(--slate);
    max-width: 62ch;
}

/* ---------- Case study: proof ---------- */

.v2-csproof__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 18px;
    margin-top: clamp(36px, 5vw, 52px);
    align-items: start;
}
.v2-csproof__mail,
.v2-csproof__console { margin: 0; }
.v2-csproof__side { display: grid; gap: 18px; }
.v2-csproof__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-csproof__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    flex-shrink: 0;
}
.v2-csproof__cap {
    display: block;
    margin-top: 10px;
    font-size: 10.5px;
    text-align: center;
}
.v2-csproof__tile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 24px;
    text-align: center;
}
.v2-csproof__num {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 46px;
    line-height: 1;
    letter-spacing: -0.025em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-csproof__lbl {
    display: block;
    margin-top: 8px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
}
.v2-csproof__sub {
    display: block;
    margin-top: 6px;
    font-size: 12.8px;
    line-height: 1.55;
    color: var(--slate);
    max-width: 30ch;
    margin-inline: auto;
}

/* ---------- Case study: quote + legit ---------- */

.v2-csquote {
    max-width: 800px;
    margin: 0 auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(26px, 4vw, 40px);
}
.v2-csquote__mark {
    display: block;
    font-family: var(--font-display);
    font-size: 46px;
    line-height: 0.6;
    color: var(--go);
}
.v2-csquote > p {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(17.5px, 2vw, 21px);
    line-height: 1.5;
    letter-spacing: -0.012em;
    color: var(--ink);
    text-wrap: pretty;
}
.v2-csquote__by {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 20px;
}
.v2-csquote__av {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--ink);
    color: #FFFFFF;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17px;
    flex-shrink: 0;
}
.v2-csquote__who { display: flex; flex-direction: column; }
.v2-csquote__who b { font-size: 14.5px; color: var(--ink); }
.v2-csquote__who span { font-size: 12.5px; color: var(--slate); }
.v2-csquote__chip {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11.5px;
    font-weight: 700;
}
.v2-csquote__chip svg { width: 13px; height: 13px; }

.v2-cslegit__eyebrow { margin-top: clamp(48px, 7vw, 72px); text-align: center; }
.v2-cslegit .v2-h2 { margin-top: 14px; text-align: center; }
.v2-cslegit__p {
    margin-top: 14px;
    text-align: center;
    font-size: 16px;
    color: var(--slate);
}
.v2-cslegit__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: 940px;
    margin: 28px auto 0;
}
.v2-cslegit__card {
    display: flex;
    gap: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px;
}
.v2-cslegit__ic {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--go-tint);
    color: var(--go);
}
.v2-cslegit__ic svg { width: 21px; height: 21px; }
.v2-cslegit__card h3 {
    font: 600 16px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-cslegit__card p {
    margin-top: 6px;
    font-size: 13.8px;
    line-height: 1.62;
    color: var(--slate);
}
.v2-cslegit__rating {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
}
.v2-cslegit__rating b { font-size: 13px; color: var(--ink); }

/* ---------- Case study: bottom line + related ---------- */

.v2-csend__verdict {
    background: linear-gradient(-180deg, #F4FAF7, #FFFFFF 140%);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-right: 4px solid var(--go);
    border-radius: 16px;
    padding: clamp(20px, 3vw, 28px);
}
.v2-csend__vtag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go-deep);
}
.v2-csend__vtag svg { width: 14px; height: 14px; }
.v2-csend__verdict > p {
    margin-top: 12px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--ink);
}
.v2-csend__verdict a {
    color: var(--go-deep);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-csend__author {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 22px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 16px 20px;
}
.v2-csend__author img {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    object-fit: cover;
}
.v2-csend__author-t { display: flex; flex-direction: column; gap: 2px; }
.v2-csend__author-t b { font-size: 15px; color: var(--ink); }
.v2-csend__author-t > span:last-child { font-size: 12.8px; color: var(--slate); }
.v2-csend__author-links { margin-right: auto; display: flex; gap: 16px; }
.v2-csend__author-links a {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-csend__relh {
    margin-top: clamp(36px, 5vw, 52px);
    font: 600 19px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-csend__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}
.v2-csend__rel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 18px;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.25s ease;
}
.v2-csend__rel:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -14px rgba(10, 16, 23, 0.18);
}
.v2-csend__rel .v2-mono { grid-column: 1; font-size: 9.5px; }
.v2-csend__rel-t {
    grid-column: 1;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.v2-csend__rel svg {
    grid-column: 2;
    grid-row: 1 / span 2;
    width: 17px;
    height: 17px;
    color: var(--faint);
    transition: transform 0.18s ease, color 0.18s ease;
}
.v2-csend__rel:hover svg { transform: translateX(-3px); color: var(--go); }
.v2-csend__contact {
    margin-top: 26px;
    text-align: center;
    font-size: 14.5px;
    color: var(--slate);
}
.v2-csend__contact a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- Case studies listing ---------- */

.v2-csl__grid {
    max-width: 900px;
    margin-inline: auto;
    display: grid;
    gap: 16px;
}
.v2-csl__card {
    display: block;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3.5vw, 34px);
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.25s ease;
}
.v2-csl__card:hover {
    border-color: #C9D2DA;
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 24px 48px -20px rgba(10, 16, 23, 0.14);
}
.v2-csl__meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
}
.v2-csl__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--go);
    color: #FFFFFF;
    font-size: 11px;
    font-weight: 700;
}
.v2-csl__badge svg { width: 12px; height: 12px; }
.v2-csl__meta > .v2-mono { font-size: 10.5px; }
.v2-csl__result { margin-right: auto; color: var(--go-deep); font-size: 10.5px; }
.v2-csl__card h2 {
    margin-top: 16px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(19px, 2.4vw, 24px);
    line-height: 1.25;
    letter-spacing: -0.018em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-csl__card > p {
    margin-top: 10px;
    font-size: 14.8px;
    line-height: 1.68;
    color: var(--slate);
    max-width: 72ch;
}
.v2-csl__go {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    color: var(--go-deep);
    font-size: 14.5px;
    font-weight: 600;
}
.v2-csl__go svg { width: 16px; height: 16px; transition: transform 0.18s ease; }
.v2-csl__card:hover .v2-csl__go svg { transform: translateX(-3px); }
.v2-csl__empty { text-align: center; padding: 30px 0 10px; }
.v2-csl__empty h2 { font: 700 22px/1.3 var(--font-display); color: var(--ink); }
.v2-csl__empty p {
    margin-top: 10px;
    font-size: 15px;
    color: var(--slate);
    max-width: 52ch;
    margin-inline: auto;
}
.v2-csl__strip {
    max-width: 900px;
    margin: 30px auto 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.v2-csl__stat {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 14px;
    text-align: center;
}
.v2-csl__num {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 25px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-csl__lbl {
    display: block;
    margin-top: 5px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2-csl__note {
    max-width: 620px;
    margin: 22px auto 0;
    text-align: center;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Case study: entrances ---------- */

.v2-csh.v2-anim .v2-csfile { opacity: 0; transform: translateY(18px); }
.v2-csh.v2-anim .v2-csfile__row { opacity: 0; transform: translateY(8px); }
.v2-csh.v2-anim.is-in .v2-csfile {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-csh.v2-anim.is-in .v2-csfile__row {
    opacity: 1;
    transform: none;
    transition:
        opacity 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) calc(0.15s + var(--i, 0) * 0.07s),
        transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) calc(0.15s + var(--i, 0) * 0.07s);
}
.v2-csqa.v2-anim .v2-csqa__card,
.v2-csend.v2-anim .v2-csend__verdict,
.v2-cslegit.v2-anim .v2-csquote,
.v2-csrule,
.v2-csproof.v2-anim .v2-csproof__grid > * { will-change: auto; }
.v2-csqa.v2-anim .v2-csqa__card,
.v2-csend.v2-anim .v2-csend__verdict,
.v2-cslegit.v2-anim .v2-csquote,
.v2-csproof.v2-anim .v2-csproof__grid > * { opacity: 0; transform: translateY(16px); }
.v2-csqa.v2-anim.is-in .v2-csqa__card,
.v2-csend.v2-anim.is-in .v2-csend__verdict,
.v2-cslegit.v2-anim.is-in .v2-csquote,
.v2-csproof.v2-anim.is-in .v2-csproof__grid > * {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-cssnap.v2-anim .v2-cssnap__stat,
.v2-csfail.v2-anim .v2-csfail__card,
.v2-csfix.v2-anim .v2-csfix__card,
.v2-cslegit.v2-anim .v2-cslegit__card,
.v2-csl.v2-anim .v2-csl__card { opacity: 0; transform: translateY(14px); }
.v2-cssnap.v2-anim.is-in .v2-cssnap__stat,
.v2-csfail.v2-anim.is-in .v2-csfail__card,
.v2-csfix.v2-anim.is-in .v2-csfix__card,
.v2-cslegit.v2-anim.is-in .v2-cslegit__card,
.v2-csl.v2-anim.is-in .v2-csl__card {
    opacity: 1;
    transform: none;
    transition:
        opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) calc(var(--i, 0) * 0.09s),
        transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) calc(var(--i, 0) * 0.09s);
}

/* ---------- Case study: tablet ---------- */

@media (max-width: 960px) {
    .v2-csh__grid { grid-template-columns: minmax(0, 1fr); gap: 34px; }
    .v2-csh__stage { max-width: 560px; width: 100%; margin-inline: auto; }
    .v2-cssnap__grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .v2-csproof__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 900px) {
    .v2-csfix__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-cslegit__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-csend__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-csl__strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Case study: mobile ---------- */

@media (max-width: 640px) {
    .v2-csh { padding-top: calc(var(--nav-h) + 30px); padding-bottom: 40px; }
    .v2-csh__copy { text-align: center; }
    .v2-csh__crumb { justify-content: center; }
    .v2-csh__sub { margin-inline: auto; font-size: 15px; }
    .v2-csh__cta { justify-content: center; }
    .v2-csh__cta .v2-btn { flex: 1 1 100%; width: 100%; }
    .v2-csfile__bar, .v2-csfile__foot { padding: 10px 16px; }
    .v2-csfile__row { grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 10px 16px; }
    .v2-csfile__v { font-size: 13.2px; }

    .v2-cstoc { gap: 6px; }
    .v2-cstoc__links { gap: 6px; }
    .v2-cstoc__links a { font-size: 12px; padding: 6px 10px; }

    .v2-cssnap__stats { gap: 10px; }
    .v2-cssnap__stat { padding: 16px; }
    .v2-cssnap__num { font-size: 27px; }
    .v2-cssnap__lbl { font-size: 12px; margin-top: 7px; }

    .v2-csfail__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-csfail__card { padding: 18px; }
    .v2-csfail__p, .v2-csfix__p { font-size: 14.5px; }
    .v2-csrule__body { padding: 16px 18px 18px; }

    .v2-csfix__card { padding: 18px; }
    .v2-cstl { padding-right: 22px; }
    .v2-cstl__item { padding-bottom: 22px; }
    .v2-cstl__item::before { right: -29px; }

    .v2-csproof__tile { padding: 20px; }
    .v2-csproof__num { font-size: 40px; }

    .v2-csquote { padding: 22px 20px; }
    .v2-csquote__chip { margin-right: 0; }
    .v2-cslegit__card { padding: 16px; }
    .v2-cslegit__p { font-size: 15px; }

    .v2-csend__author { padding: 14px 16px; gap: 12px; }
    .v2-csend__author-links { margin-right: 0; }
    .v2-csend__rel { padding: 13px 15px; }

    .v2-csl__card { padding: 20px; }
    .v2-csl__result { margin-right: 0; }
    .v2-csl__strip { gap: 10px; }
    .v2-csl__stat { padding: 14px 10px; }
    .v2-csl__num { font-size: 21px; }
}

@media (max-width: 480px) {
    .v2-cstoc__label { display: none; }
    .v2-csfile__v { font-size: 13px; }
    .v2-csproof__num { font-size: 38px; }
    .v2-csquote > p { font-size: 16.5px; }
}

/* ============================================================
   GOOGLE PLAY 12 TESTERS V2 PAGE (2026-07-04)
   Page-specific blocks for /google-play-12-testers-v2: split
   hero with the testers-list.csv roster window, requirement
   spec plaques + policy timeline, DIY-vs-managed funnel duel,
   Starter plan sheet. Reuses .v2s-crumbs, .v2s-answer,
   .v2-plans, .v2-plan, .v2-ppl, .v2-guarantee, .v2-rcard,
   .v2-faq, .v2-cta primitives.
============================================================ */

/* ---------- 12T page: split hero ---------- */

.v2-t12hero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(40px, 6.5vh, 76px));
    padding-bottom: clamp(36px, 5vw, 56px);
    overflow: hidden;
}
.v2-t12hero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(50rem 32rem at 88% -10%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(38rem 26rem at -10% 110%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2-t12hero__in {
    position: relative;
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: clamp(28px, 4.5vw, 56px);
    align-items: center;
}
.v2-t12hero__title {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.05rem, 1.05rem + 3vw, 3.3rem);
    line-height: 1.05;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2-t12hero__title-go { display: block; color: var(--go); }
.v2-t12hero__sub {
    margin-top: 18px;
    max-width: 56ch;
    font-size: clamp(15.5px, 1.4vw, 16.5px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-t12hero__sub strong { color: var(--ink); font-weight: 600; }
.v2-t12hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}
.v2-t12hero__fine {
    margin-top: 15px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.04em;
    color: var(--faint);
}
.v2-t12hero__fine span { white-space: nowrap; }
.v2-t12hero__trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px 15px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.v2-t12hero__trust-item {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    color: var(--slate);
    white-space: nowrap;
}
.v2-t12hero__trust-item b { color: var(--ink); font-weight: 600; }
.v2-t12hero__trust-item .v2-stars { margin-left: 7px; }

/* The CSV roster window */
.v2-t12hero__art { min-width: 0; }
.v2-t12csv {
    width: min(100%, 440px);
    margin-right: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.18);
}
.v2-t12csv__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-t12csv__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.v2-t12csv__file {
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--ink);
}
.v2-t12csv__chip {
    margin-right: auto;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2-t12csv__head {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 76px;
    gap: 10px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2-t12csv__rows { list-style: none; }
.v2-t12csv__row {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) 76px;
    gap: 10px;
    align-items: center;
    padding: 7px 16px;
    border-bottom: 1px solid var(--line);
}
.v2-t12csv__row:last-child { border-bottom: 0; }
.v2-t12csv__mail {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.01em;
    color: var(--slate);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v2-t12csv__dev {
    font-size: 11.5px;
    color: var(--slate);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v2-t12csv__ok {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--go-deep);
    white-space: nowrap;
}
.v2-t12csv__ok svg { width: 11px; height: 11px; color: var(--go); flex: 0 0 auto; }
.v2-t12csv__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 16px;
    background: var(--go-tint);
    border-top: 1px solid rgba(11, 138, 71, 0.18);
}
.v2-t12csv__foot b {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -0.01em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-t12csv__foot .v2-mono { color: var(--go-deep); font-size: 9.5px; }
.v2-t12hero__caption {
    margin-top: 10px;
    text-align: center;
    font-size: 10.5px;
}

/* Hero entrance: rows cascade, footer arrives last */
.v2-t12hero.v2-anim .v2-t12csv { opacity: 0; transform: translateY(18px); }
.v2-t12hero.v2-anim.is-in .v2-t12csv {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-t12hero.v2-anim .v2-t12csv__row { opacity: 0; transform: translateX(8px); }
.v2-t12hero.v2-anim.is-in .v2-t12csv__row {
    opacity: 1;
    transform: none;
    transition: opacity 0.45s ease var(--d, 0s), transform 0.45s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-t12hero.v2-anim .v2-t12csv__foot { opacity: 0; }
.v2-t12hero.v2-anim.is-in .v2-t12csv__foot { opacity: 1; transition: opacity 0.5s ease 1s; }

/* ---------- 12T page: requirement spec plaques + policy ---------- */

.v2-t12rule__specs {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.v2-t12rule__spec {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 26px;
}
.v2-t12rule__fig {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 42px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-t12rule__lab { margin-top: 7px; }
.v2-t12rule__spec h3 {
    margin-top: 15px;
    font: 600 17px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12rule__body {
    margin-top: 7px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-t12rule__grid {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.v2-t12rule__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(22px, 3vw, 28px);
}
.v2-t12rule__h3 {
    font: 600 19px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12rule__p {
    margin-top: 11px;
    font: 400 14px/1.7 var(--font-body);
    color: var(--slate);
}
.v2-t12rule__p a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-t12rule__tl {
    list-style: none;
    margin-top: 20px;
    margin-right: 7px;
    padding-right: 20px;
    border-right: 2px solid var(--line);
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.v2-t12rule__node { position: relative; }
.v2-t12rule__node::before {
    content: "";
    position: absolute;
    right: -27px;
    top: 3px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--mist);
    border: 2px solid #C9D2DA;
}
.v2-t12rule__node.is-now::before { background: var(--go); border-color: var(--go); }
.v2-t12rule__node span { display: block; }
.v2-t12rule__node b {
    display: block;
    margin-top: 4px;
    font: 700 16px/1.2 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-t12rule__node.is-now b { color: var(--go-deep); }
.v2-t12rule__node i {
    display: block;
    margin-top: 2px;
    font: 400 12.5px/1.5 var(--font-body);
    font-style: normal;
    color: var(--faint);
}
.v2-t12rule__more { margin-top: 18px; font-size: 13.5px; }
.v2-t12rule__more a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-t12rule__no {
    list-style: none;
    margin-top: 13px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.v2-t12rule__no li {
    position: relative;
    padding-right: 26px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-t12rule__no li b { color: var(--ink); }
.v2-t12rule__no li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m7 7 6 6m0-6-6 6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/9px 9px no-repeat;
}
.v2-t12rule__guides {
    margin-top: 18px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.v2-t12rule.v2-anim .v2-t12rule__spec,
.v2-t12rule.v2-anim .v2-t12rule__card {
    opacity: 0;
    transform: translateY(16px);
}
.v2-t12rule.v2-anim.is-in .v2-t12rule__spec,
.v2-t12rule.v2-anim.is-in .v2-t12rule__card {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-t12rule.v2-anim.is-in .v2-t12rule__card:last-child { transition-delay: 0.1s; }

/* ---------- 12T page: the two paths (funnel duel) ---------- */

.v2-t12how__duel {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: clamp(14px, 2vw, 22px);
    align-items: stretch;
}
.v2-t12how__col {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(22px, 3vw, 28px);
    display: flex;
    flex-direction: column;
}
.v2-t12how__col--go {
    border-color: rgba(11, 138, 71, 0.35);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -18px rgba(11, 138, 71, 0.22);
}
.v2-t12how__vs {
    align-self: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--mist);
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2-t12how__colhead span { display: block; }
.v2-t12how__colhead h3 {
    margin-top: 5px;
    font: 600 19px/1.25 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12how__cap {
    margin-top: 15px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--line);
    font-size: 10px;
}
.v2-t12how__funnel {
    list-style: none;
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 13px;
}
.v2-t12how__frow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 10px;
    align-items: center;
}
.v2-t12how__flab { font-size: 12.5px; color: var(--slate); }
.v2-t12how__frow > b {
    grid-row: 1 / 3;
    grid-column: 2;
    align-self: end;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -0.01em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    text-align: left;
    min-width: 26px;
}
.v2-t12how__fbar {
    display: block;
    height: 8px;
    border-radius: 999px;
    background: #E9EDF1;
    overflow: hidden;
}
.v2-t12how__fbar i {
    display: block;
    height: 100%;
    width: var(--w, 100%);
    border-radius: inherit;
    background: #C3CCD4;
}
.v2-t12how__fbar i.is-go { background: var(--go); }
.v2-t12how__verdict {
    margin-top: 16px;
    border-radius: 12px;
    padding: 12px 14px;
}
.v2-t12how__verdict--no {
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
}
.v2-t12how__verdict--no .v2-t12how__chip { color: #B42318; }
.v2-t12how__verdict--yes {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
}
.v2-t12how__verdict--yes .v2-t12how__chip { color: var(--go-deep); }
.v2-t12how__chip {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.01em;
}
.v2-t12how__verdict p {
    margin-top: 5px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2-t12how__foot {
    margin-top: auto;
    padding-top: 15px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-t12how__foot a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-t12how__col--go .v2-t12how__verdict { margin-bottom: 15px; }
.v2 .v2-t12how__cta { margin-top: auto; width: 100%; }
.v2-t12how__steps {
    list-style: none;
    margin-top: clamp(40px, 5.5vw, 56px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2.5vw, 28px);
}
.v2-t12how__step {
    border-top: 1px solid var(--line);
    padding-top: 16px;
}
.v2-t12how__step > span { color: var(--go-deep); }
.v2-t12how__step b {
    display: block;
    margin-top: 8px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12how__step p {
    margin-top: 6px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-t12how__more {
    margin-top: 26px;
    text-align: center;
    font: 400 14px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-t12how__more a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Funnel entrance: columns rise, bars fill staggered */
.v2-t12how.v2-anim .v2-t12how__col { opacity: 0; transform: translateY(16px); }
.v2-t12how.v2-anim.is-in .v2-t12how__col {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-t12how.v2-anim.is-in .v2-t12how__col--go { transition-delay: 0.12s; }
.v2-t12how.v2-anim .v2-t12how__fbar i { width: 0; }
.v2-t12how.v2-anim.is-in .v2-t12how__fbar i { width: var(--w, 100%); transition: width 0.85s cubic-bezier(0.22, 0.8, 0.26, 1); }
.v2-t12how.v2-anim.is-in .v2-t12how__frow:nth-child(1) .v2-t12how__fbar i { transition-delay: 0.25s; }
.v2-t12how.v2-anim.is-in .v2-t12how__frow:nth-child(2) .v2-t12how__fbar i { transition-delay: 0.42s; }
.v2-t12how.v2-anim.is-in .v2-t12how__frow:nth-child(3) .v2-t12how__fbar i { transition-delay: 0.59s; }

/* ---------- 12T page: Starter plan sheet ---------- */

.v2-t12kit__grid {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: start;
}
.v2-t12kit__sheet {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 24px 48px -20px rgba(10, 16, 23, 0.14);
}
.v2-t12kit__shead {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-t12kit__shead .v2-mono { color: var(--ink); font-weight: 600; }
.v2-t12kit__sdot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
}
.v2-t12kit__rows { padding: 4px 18px 8px; }
.v2-t12kit__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 9.5px 0;
    border-bottom: 1px solid var(--line);
}
.v2-t12kit__row:last-child { border-bottom: 0; }
.v2-t12kit__row dd {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ink);
    text-align: left;
}
.v2-t12kit__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--line);
    background: var(--mist);
}
.v2-t12kit__price {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 23px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-t12kit__price i {
    font-family: var(--font-mono);
    font-style: normal;
    font-weight: 400;
    font-size: 10.5px;
    letter-spacing: 0.04em;
    color: var(--faint);
    margin-right: 7px;
}
.v2-t12kit__price i s { color: var(--faint); }
.v2-t12kit__gnote {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 14px 18px 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-size: 12.5px;
    font-weight: 600;
}
.v2-t12kit__gnote svg { width: 16px; height: 16px; flex: 0 0 auto; }
.v2 .v2-t12kit__cta { display: flex; width: calc(100% - 36px); margin: 12px 18px 18px; }
.v2-t12kit__list {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 17px;
}
.v2-t12kit__item {
    position: relative;
    padding-right: 32px;
}
.v2-t12kit__item::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.6 3.6L15.5 6.5' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px 11px no-repeat;
}
.v2-t12kit__item h3 {
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12kit__item p {
    margin-top: 5px;
    font: 400 13.5px/1.62 var(--font-body);
    color: var(--slate);
}
.v2-t12kit__item p a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-t12kit.v2-anim .v2-t12kit__sheet { opacity: 0; transform: translateY(18px); }
.v2-t12kit.v2-anim.is-in .v2-t12kit__sheet {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-t12kit.v2-anim .v2-t12kit__item { opacity: 0; transform: translateY(14px); }
.v2-t12kit.v2-anim.is-in .v2-t12kit__item {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

/* ---------- 12T page: plans badge + proof + CTA links ---------- */

.v2-t12plans .v2-plan__badge--page {
    background: var(--mist);
    color: var(--slate);
    border: 1px solid var(--line);
    padding: 4px 10px;
}
.v2-t12proof__grid {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.v2-t12proof__line {
    margin-top: 24px;
    text-align: center;
    font-size: 11.5px;
}
.v2-t12proof__line a {
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-t12proof.v2-anim .v2-rcard { opacity: 0; transform: translateY(16px); }
.v2-t12proof.v2-anim.is-in .v2-rcard {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-t12cta__links {
    margin-top: 18px;
    font-size: 13.5px;
    color: #93A0AC;
}
.v2-t12cta__links a {
    color: #E7ECF0;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.v2-t12cta__links a:hover { color: #FFFFFF; }

/* ---------- 12T page: tablet + mobile ---------- */

@media (max-width: 1080px) {
    .v2-t12kit__grid { grid-template-columns: 340px minmax(0, 1fr); }
}

@media (max-width: 960px) {
    .v2-t12hero__in { grid-template-columns: minmax(0, 1fr); }
    .v2-t12hero__copy { text-align: center; }
    .v2-t12hero__copy .v2s-crumbs { justify-content: center; }
    .v2-t12hero__title { margin-inline: auto; }
    .v2-t12hero__sub { margin-inline: auto; }
    .v2-t12hero__cta { justify-content: center; }
    .v2-t12hero__trust { justify-content: center; }
    .v2-t12csv { margin-inline: auto; }
    .v2-t12rule__specs { grid-template-columns: minmax(0, 1fr); }
    .v2-t12rule__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-t12how__duel { grid-template-columns: minmax(0, 1fr); }
    .v2-t12how__vs { margin-block: -4px; }
    .v2-t12how__steps { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .v2-t12kit__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-t12kit__sheet { max-width: 440px; margin-inline: auto; width: 100%; }
    .v2-t12proof__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; margin-inline: auto; }
}

@media (max-width: 640px) {
    .v2-t12hero { padding-top: calc(var(--nav-h) + 32px); }
    .v2-t12hero__sub { font-size: 15px; }
    .v2-t12hero__cta { width: 100%; max-width: 420px; margin-inline: auto; margin-top: 24px; }
    .v2 .v2-t12hero__cta .v2-btn { flex: 1 1 100%; height: 50px; }
    .v2-t12hero__trust { gap: 8px 14px; }
    .v2-t12hero__trust-item { font-size: 12.5px; }
    .v2-t12csv__bar { padding: 11px 13px; }
    .v2-t12csv__head, .v2-t12csv__row { padding-inline: 13px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 62px; gap: 8px; }
    .v2-t12csv__foot { padding: 12px 13px; }
    .v2-t12csv__foot .v2-mono { font-size: 8.5px; }
    .v2-t12rule__spec { padding: 20px; }
    .v2-t12rule__fig { font-size: 36px; }
    .v2-t12rule__card { padding: 20px 18px; }
    .v2-t12how__col { padding: 20px 18px; }
    .v2-t12how__steps { margin-top: 36px; }
    .v2-t12kit__rows { padding-inline: 15px; }
    .v2-t12kit__shead, .v2-t12kit__total { padding-inline: 15px; }
    .v2-t12kit__gnote { margin-inline: 15px; }
    .v2 .v2-t12kit__cta { width: calc(100% - 30px); margin: 12px 15px 15px; }
    .v2-t12kit__item h3 { font-size: 15.5px; }
    .v2-t12cta__links { font-size: 12.5px; line-height: 2; }
}

@media (max-width: 380px) {
    .v2-t12csv__dev { font-size: 10.5px; }
    .v2-t12csv__mail { font-size: 9.5px; }
    .v2-t12csv__head, .v2-t12csv__row { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) 56px; gap: 6px; }
    .v2-t12csv__ok { font-size: 9.5px; }
    .v2-t12csv__foot { flex-direction: column; align-items: flex-start; gap: 3px; }
    .v2-t12csv__foot b { white-space: nowrap; }
}

/* ============================================================
   HELP CENTER (BLOGS) V2 PAGE (2026-07-04)
   Page-specific blocks for /blogs-v2: hero popular-search chips
   + AEO capsule, situation cards, and the guide library (sticky
   category rail + grouped guide cards + service bridges).
   Reuses .v2-phero, .v2-fqsearch, .v2-fqchips, .v2-fqb__rail /
   __layout / __ghead / __gcount, .v2-fqempty, .v2-guide,
   .v2-faq__* and .v2-cta primitives.
============================================================ */

/* ---------- Help Center hero ---------- */

.v2-hch__poplabel { align-self: center; }

/* <button> chips: scoped .v2 .v2-hch__chip so the .v2 button reset
   (0,1,1) cannot outrank them (home-v2 gotcha 2). */
.v2 .v2-hch__chip {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font: 600 12.5px/1 var(--font-body);
    color: var(--slate);
    cursor: pointer;
    will-change: transform;
    transition: transform .26s cubic-bezier(.22, 1, .36, 1),
                border-color .2s ease, color .2s ease, background-color .2s ease, box-shadow .26s ease !important;
}
.v2 .v2-hch__chip:hover {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    color: var(--go-deep);
    background: var(--go-tint);
    transform: translateY(-3px);
    box-shadow: 0 10px 18px -10px rgba(11, 138, 71, 0.5);
}
.v2 .v2-hch__chip:active { transform: translateY(-1px); }

.v2-hch__capsule {
    width: min(100%, 780px);
    margin: 30px auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 20px 24px;
    text-align: right;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 14px 34px -22px rgba(10, 16, 23, 0.12);
}
.v2-hch__capsule-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
}
.v2-hch__capsule-meta .v2-mono span { white-space: nowrap; }
.v2-hch__capsule-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    font: 700 11px/1 var(--font-body);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--go-deep);
}
.v2-hch__capsule-p {
    margin-top: 12px;
    font-size: 15px;
    line-height: 1.68;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-hch__capsule-p strong { color: var(--ink); font-weight: 600; }

/* ---------- Situation cards ---------- */

.v2-hcs[hidden] { display: none; }

.v2-hcs__grid {
    margin-top: clamp(36px, 5vw, 50px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.v2-hcs__card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    text-decoration: none;
    will-change: transform;
}
/* Smooth lift on hover (exempt from reduced-motion). */
.v2 .v2-hcs__card {
    transition: transform .32s cubic-bezier(.22, 1, .36, 1),
                box-shadow .32s cubic-bezier(.22, 1, .36, 1),
                border-color .32s ease !important;
}
.v2-hcs__card:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2-hcs__quote {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18.5px;
    letter-spacing: -0.015em;
    line-height: 1.3;
    color: var(--ink);
    flex: 1;
}
.v2-hcs__dest {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
}
.v2-hcs__dest svg { flex: 0 0 auto; width: 15px; height: 15px; }
.v2 .v2-hcs__dest svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2-hcs__card:hover .v2-hcs__dest svg { transform: translateX(-5px); }

.v2-hcs.v2-anim .v2-hcs__card {
    opacity: 0;
    transform: translateY(16px);
}
.v2-hcs.v2-anim.is-in .v2-hcs__card {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

/* ---------- The library ---------- */

.v2-lib__layout { margin-top: clamp(36px, 5vw, 54px); }

.v2-lib__groups {
    display: flex;
    flex-direction: column;
    gap: 46px;
    min-width: 0;
}
.v2-lib__group { scroll-margin-top: calc(var(--nav-h) + 24px); }
.v2-lib__group[hidden] { display: none; }
.v2-lib__gdesc {
    margin-top: 6px;
    max-width: 640px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-lib__grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.v2-lib__card {
    padding: 0;
    gap: 0;
    overflow: hidden;
}
.v2-lib__card[hidden] { display: none; }
.v2-lib__media {
    display: block;
    aspect-ratio: 16 / 9;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-lib__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.v2-lib__media--empty {
    display: grid;
    place-items: center;
}
.v2-lib__card-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
    padding: 16px 20px 20px;
}
.v2-lib__card .v2-guide__meta {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 10px;
}
.v2-lib__card h3 { font-size: 17.5px; }
.v2-lib__flag {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    font: 700 10.5px/1 var(--font-body);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--go-deep);
}

.v2-lib__bridge {
    margin-top: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 20px;
}
.v2-lib__bridge p {
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2-lib__bridge p b { color: var(--ink); font-weight: 600; }
.v2-lib__bridge-go {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--go-deep);
    text-decoration: none;
    white-space: nowrap;
}
.v2-lib__bridge-go svg { width: 15px; height: 15px; }
.v2 .v2-lib__bridge-go { transition: color .22s ease, text-decoration-color .22s ease !important; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; }
.v2 .v2-lib__bridge-go svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2-lib__bridge-go:hover { color: var(--go); text-decoration-color: var(--go); }
.v2-lib__bridge-go:hover svg { transform: translateX(-5px); }

/* Library arrival (rail + groups rise like the FAQ browser) */
.v2-lib.v2-anim .v2-fqb__rail,
.v2-lib.v2-anim .v2-lib__groups {
    opacity: 0;
    transform: translateY(16px);
}
.v2-lib.v2-anim.is-in .v2-fqb__rail,
.v2-lib.v2-anim.is-in .v2-lib__groups {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-lib.v2-anim.is-in .v2-lib__groups { transition-delay: 0.1s; }

/* ---------- Help Center: mobile ---------- */

@media (max-width: 960px) {
    .v2-hcs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    /* Sticky chip-row rail (from the FAQ browser) sits above the
       groups; give anchored groups room under it. */
    .v2-lib__group { scroll-margin-top: calc(var(--nav-h) + 72px); }
}

@media (max-width: 640px) {
    .v2-hch__capsule { padding: 18px; margin-top: 26px; }
    .v2-hch__capsule-p { font-size: 14px; }
    .v2-hcs__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-hcs__card { padding: 18px; }
    .v2-hcs__quote { font-size: 17.5px; }
    .v2-lib__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 12px;
        margin-top: 14px;
    }
    .v2-lib__card-body { padding: 14px 18px 18px; }
    .v2-lib__card h3 { font-size: 17px; }
    .v2-lib__gdesc { font-size: 13.5px; }
    .v2-lib__groups { gap: 38px; }
    .v2-lib__bridge {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
        padding: 15px 16px;
    }
}

/* ============================================================
   AUTH V2 (/user/login + /user/register + /user/reset-password)
   page-specific blocks (2026-07-04)
   Reuses primitives: v2-logo, v2-btn (scoped .v2 .v2-btn),
   v2-eyebrow, v2-mono, tokens. Everything else is v2-auth__*.
============================================================ */

.v2-authbody { background: var(--paper); }

.v2-auth {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-x: clip;
}
.v2-auth__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 86% -12%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(40rem 28rem at -12% 110%, rgba(10, 16, 23, 0.045), transparent 62%);
}

/* ---------- Auth: top bar + footer ---------- */

.v2-auth__top {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 18px clamp(20px, 4vw, 40px);
}
.v2-auth__switch {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--slate);
}
.v2-auth__switch a {
    color: var(--go-deep);
    font-weight: 600;
}
.v2-auth__foot {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 16px clamp(20px, 4vw, 40px) 20px;
    border-top: 1px solid var(--line);
    font-size: 10.5px;
}
.v2-auth__foot-links { display: flex; gap: 16px; }
.v2-auth__foot-links a {
    position: relative;
    color: var(--faint);
    text-decoration: none;
}
/* Same sliding underline as the top nav (.v2-nav__links a): grows from the centre + smooth colour. */
.v2 .v2-auth__foot-links a { transition: color .22s ease !important; }
.v2-auth__foot-links a::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: -5px;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
    transform: scaleX(0);
    transform-origin: center;
}
.v2 .v2-auth__foot-links a::after {
    transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-auth__foot-links a:hover,
.v2-auth__foot-links a:focus-visible { color: var(--ink); }
.v2-auth__foot-links a:hover::after,
.v2-auth__foot-links a:focus-visible::after { transform: scaleX(1); }

/* ---------- Auth: layout ---------- */

.v2-auth__main {
    position: relative;
    flex: 1;
    width: min(100%, 1120px);
    margin-inline: auto;
    padding: clamp(16px, 4vh, 48px) clamp(20px, 4vw, 32px) clamp(40px, 6vh, 72px);
    display: grid;
    grid-template-columns: minmax(0, 0.98fr) minmax(0, 1.02fr);
    gap: clamp(36px, 6vw, 84px);
    align-items: center;
}
.v2-auth__main--solo {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
}
.v2-auth__main--solo .v2-auth__cardwrap { width: min(100%, 480px); }

/* ---------- Auth: trust rail ---------- */

.v2-auth__title {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.75rem, 1.1rem + 2.1vw, 2.55rem);
    line-height: 1.07;
    letter-spacing: -0.026em;
    text-wrap: balance;
    color: var(--ink);
}
.v2-auth__title-go { display: block; color: var(--go); }
.v2-auth__sub {
    margin-top: 14px;
    max-width: 46ch;
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-auth__list {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
}
.v2-auth__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
    font-weight: 500;
}
.v2-auth__list li + li { margin-top: 10px; }
.v2-auth__list li::before {
    content: '';
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M4.5 10.5l3.5 3.5 7.5-8' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 9px no-repeat;
}
.v2-auth__facts { margin-top: 22px; font-size: 10.5px; }
.v2-auth__facts span { white-space: nowrap; }

/* Mini dashboard artifact (login) */
.v2-auth__peek {
    margin-top: 24px;
    max-width: 380px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 18px 40px -18px rgba(10, 16, 23, 0.14);
}
.v2-auth__peek-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--line);
    background: #FBFCFD;
}
.v2-auth__peek-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    position: relative;
    flex-shrink: 0;
}
.v2-auth__peek-dot::after {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 1px solid rgba(11, 138, 71, 0.4);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2-auth__peek-bar .v2-mono { font-size: 9.5px; }
.v2-auth__peek-day { margin-right: auto; color: var(--go-deep); }
.v2-auth__peek-body { padding: 14px; }
.v2-auth__peek-track {
    height: 8px;
    border-radius: 999px;
    background: #E9EDF1;
    overflow: hidden;
}
.v2-auth__peek-track i {
    position: relative;
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--go);
    overflow: hidden;
}
/* One smooth fill, then it stays put. It waits (empty) until the page has
   loaded and gone idle: the login view adds .v2-peek-go to <html>, so the
   fill never overlaps the heavy page-load scripts that made it stall and
   jump. Slides in from the left inside the rounded, overflow-hidden track.
   !important + .v2 scope = exempt from the global reduced-motion kill
   switch, same as the nav underline. */
.v2 .v2-auth__peek-track i {
    will-change: transform;
    transform: translateX(100%);
}
.v2-peek-go .v2 .v2-auth__peek-track i {
    animation: v2PeekFill 1.4s cubic-bezier(.4, 0, .2, 1) both !important;
}
@keyframes v2PeekFill {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}
.v2-auth__peek-body .v2-mono { margin-top: 9px; font-size: 9.5px; }

/* Customer quote (register) */
.v2-auth__quote {
    margin: 24px 0 0;
    max-width: 400px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
}
.v2-auth__quote > p {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 15.5px;
    line-height: 1.5;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-auth__quote footer {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 12px;
    font-size: 12.5px;
    color: var(--slate);
}
.v2-auth__quote footer b { color: var(--ink); }
.v2-auth__quote-av {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--ink);
    color: #FFFFFF;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12px;
    flex-shrink: 0;
}

/* ---------- Auth: card ---------- */

.v2-auth__cardwrap { position: relative; }
.v2-auth__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3.4vw, 36px);
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -20px rgba(10, 16, 23, 0.16);
    animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2-auth__h2 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 24px;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2-auth__hint {
    margin-top: 7px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-auth__hint b { color: var(--ink); font-weight: 600; }

/* Alerts */
.v2-auth__alert {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
    padding: 13px 15px;
    border-radius: 12px;
    font-size: 13.8px;
    line-height: 1.55;
}
.v2-auth__alert svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; }
.v2-auth__alert p { color: inherit; }
.v2-auth__alert.is-ok {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2-auth__alert.is-err {
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    color: #B42318;
}
.v2-auth__alert a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Fields */
.v2-auth__form { margin-top: 20px; }
.v2-auth__group + .v2-auth__group { margin-top: 15px; }
.v2-auth__label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2-auth__fieldwrap { position: relative; }
.v2-auth__fic {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--faint);
    pointer-events: none;
    transition: color 0.18s ease;
}
.v2-auth__fieldwrap:focus-within .v2-auth__fic { color: var(--go); }
.v2 .v2-auth__input {
    width: 100%;
    height: 48px;
    padding: 0 42px 0 44px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    font: 400 14.5px/1.4 var(--font-body);
    color: var(--ink);
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    appearance: none;
}
.v2 .v2-auth__input::placeholder { color: var(--faint); }
.v2 .v2-auth__input:focus {
    outline: none;
    border-color: var(--go);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14);
}
.v2 .v2-auth__input.is-invalid { border-color: rgba(180, 35, 24, 0.55); }
.v2 .v2-auth__input.is-invalid:focus { box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12); }
.v2-auth__ferr {
    margin-top: 6px;
    font-size: 12.5px;
    line-height: 1.5;
    color: #B42318;
}
.v2 .v2-auth__eye {
    position: absolute;
    left: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    border-radius: 9px;
    color: var(--faint);
    cursor: pointer;
    transition: color 0.18s ease, background-color 0.18s ease;
}
.v2 .v2-auth__eye:hover { color: var(--ink); background: var(--mist); }
.v2 .v2-auth__eye svg { width: 19px; height: 19px; }

/* Remember + forgot row */
.v2-auth__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 15px;
}
.v2-auth__check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    color: var(--slate);
    cursor: pointer;
    user-select: none;
}
/* Plain checkbox, just slightly rounded corners (native ones can't take
   border-radius, so it is redrawn to look like the default). */
.v2 .v2-auth__check input {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    top: -1px;
    flex-shrink: 0;
    width: 17px;
    height: 17px;
    margin: 0;
    background: var(--paper);
    border: 1.5px solid #767676;
    border-radius: 4px;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .25s ease, transform .25s cubic-bezier(.34, 1.56, .64, 1) !important;
}
/* Hover (box or label): border turns green, soft green halo, tiny bounce up */
.v2 .v2-auth__check:hover input {
    border-color: var(--go);
    box-shadow: 0 0 0 4px rgba(11, 138, 71, 0.12);
    transform: scale(1.08);
}
.v2 .v2-auth__check span { transition: color .2s ease !important; }
.v2-auth__check:hover span { color: var(--ink); }
.v2 .v2-auth__check input:checked {
    background: var(--go) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 13px no-repeat;
    border-color: var(--go);
}
.v2 .v2-auth__check:hover input:checked { box-shadow: 0 0 0 4px rgba(11, 138, 71, 0.18); }
.v2 .v2-auth__check input:focus-visible {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}

/* Text links (forgot, create account): faint resting underline + nav-style
   green underline that grows from the centre on hover. */
.v2 .v2-auth__forgot {
    background: none;
    border: none;
    padding: 0;
    font: 600 13.5px/1.4 var(--font-body);
    color: var(--go-deep);
    cursor: pointer;
}
.v2 .v2-auth__forgot,
.v2-auth__switch a,
.v2-auth__alt a {
    position: relative;
    display: inline-block;
    text-decoration: none;
    transition: color .22s ease !important;
}
.v2 .v2-auth__forgot::before,
.v2-auth__switch a::before,
.v2-auth__alt a::before,
.v2 .v2-auth__forgot::after,
.v2-auth__switch a::after,
.v2-auth__alt a::after {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    bottom: -3px;
    height: 2px;
    border-radius: 2px;
}
.v2 .v2-auth__forgot::before,
.v2-auth__switch a::before,
.v2-auth__alt a::before { background: rgba(11, 138, 71, 0.22); }
.v2 .v2-auth__forgot::after,
.v2-auth__switch a::after,
.v2-auth__alt a::after {
    background: var(--go);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2-auth__forgot:hover,
.v2-auth__switch a:hover,
.v2-auth__alt a:hover,
.v2 .v2-auth__forgot:focus-visible,
.v2-auth__switch a:focus-visible,
.v2-auth__alt a:focus-visible { color: var(--go); outline: none; }
.v2 .v2-auth__forgot:hover::after,
.v2-auth__switch a:hover::after,
.v2-auth__alt a:hover::after,
.v2 .v2-auth__forgot:focus-visible::after,
.v2-auth__switch a:focus-visible::after,
.v2-auth__alt a:focus-visible::after { transform: scaleX(1); }

.v2-auth__captcha { margin-top: 16px; }

/* Submit + loading state */
.v2 .v2-auth__submit {
    width: 100%;
    margin-top: 18px;
    position: relative;
}
.v2 .v2-auth__submit.is-loading {
    pointer-events: none;
    opacity: 0.85;
}
.v2-auth__spinner {
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.35);
    border-top-color: #FFFFFF;
    animation: v2AuthSpin 0.7s linear infinite;
}
@keyframes v2AuthSpin { to { transform: rotate(-360deg); } }
.v2-auth__terms {
    margin-top: 12px;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}
.v2-auth__terms a { color: var(--slate); text-decoration: underline; text-underline-offset: 3px; }
.v2-auth__terms a:hover { color: var(--go-deep); }

/* Divider + Google + switch */
.v2-auth__or {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 18px 0;
    color: var(--faint);
    font-size: 12px;
}
.v2-auth__or::before,
.v2-auth__or::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--line);
}
.v2 .v2-auth__google { width: 100%; }
/* Every WhatsApp button (any .v2-btn linking to WhatsApp: hero "Ask a
   question", final CTA, FAQ "Chat on WhatsApp", contact, help centre...):
   the icon doesn't slide right like the arrow icons; it grows and rings
   like an incoming chat. */
.v2 .v2-btn[href*="whatsapp"]:hover .v2-ic,
.v2 .v2-btn[href*="wa.me"]:hover .v2-ic,
.v2 .v2-btn[href*="whatsapp"]:focus-visible .v2-ic,
.v2 .v2-btn[href*="wa.me"]:focus-visible .v2-ic {
    transform: none;
    animation: v2WaRing .9s cubic-bezier(.36, .07, .19, .97) both !important;
}
@keyframes v2WaRing {
    0%   { transform: scale(1) rotate(0); }
    15%  { transform: scale(1.2) rotate(14deg); }
    30%  { transform: scale(1.2) rotate(-12deg); }
    45%  { transform: scale(1.2) rotate(10deg); }
    60%  { transform: scale(1.2) rotate(-6deg); }
    75%  { transform: scale(1.15) rotate(3deg); }
    100% { transform: scale(1.12) rotate(0); }
}

/* Reviews "Show more reviews": the down arrow bobs downward (more below)
   instead of sliding right like the forward arrows. */
.v2 #v2RwallMore:hover .v2-ic,
.v2 #v2RwallMore:focus-visible .v2-ic {
    transform: none;
    animation: v2ArrowDown 1s cubic-bezier(.45, 0, .55, 1) infinite !important;
}
@keyframes v2ArrowDown {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(4px); }
}

/* Google "G" doesn't slide right like the arrow icons: it does one smooth
   spin and grows a touch, then settles back when the pointer leaves. */
.v2 .v2-auth__google .v2-ic {
    transition: transform .6s cubic-bezier(.34, 1.3, .64, 1) !important;
}
.v2 .v2-auth__google:hover .v2-ic,
.v2 .v2-auth__google:focus-visible .v2-ic {
    transform: rotate(-360deg) scale(1.15);
}
.v2-auth__alt {
    margin-top: 18px;
    text-align: center;
    font-size: 14px;
    color: var(--slate);
}
.v2-auth__alt a {
    color: var(--go-deep);
    font-weight: 600;
}
.v2-auth__secure {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    font-size: 10px;
    text-align: center;
}
.v2-auth__secure svg { width: 14px; height: 14px; color: var(--go); }
.v2-auth__secure span { white-space: nowrap; }

/* [hidden] beats base display rules (V2 gotcha 12.3) */
.v2-auth [hidden] { display: none !important; }

/* ---------- Auth: tablet ---------- */

@media (max-width: 960px) {
    .v2-auth__main {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
        align-items: start;
        align-content: start;
        padding-top: 10px;
    }
    /* Card first on mobile: the form is what people came for */
    .v2-auth__cardwrap { order: 1; width: min(100%, 480px); margin-inline: auto; }
    .v2-auth__side { order: 2; width: min(100%, 480px); margin-inline: auto; }
    .v2-auth__title { font-size: clamp(1.5rem, 1.1rem + 2vw, 1.9rem); }
}

/* ---------- Auth: mobile ---------- */

@media (max-width: 640px) {
    .v2-auth__top { padding: 14px 20px; }
    .v2-auth__switch span { display: none; }
    .v2-auth__main { padding-bottom: 34px; }
    .v2-auth__card { padding: 22px 18px; border-radius: 16px; }
    .v2-auth__h2 { font-size: 21px; }
    .v2-auth__hint { font-size: 13.5px; }
    .v2-auth__side { text-align: center; }
    .v2-auth__sub { margin-inline: auto; font-size: 14.5px; }
    .v2-auth__list { display: inline-block; text-align: right; margin-top: 18px; }
    .v2-auth__list li { font-size: 13.8px; }
    .v2-auth__peek, .v2-auth__quote { margin-inline: auto; text-align: right; }
    .v2-auth__facts { margin-top: 18px; }
    .v2-auth__foot { justify-content: center; text-align: center; }
}

@media (max-width: 380px) {
    .v2-auth__card { padding: 20px 15px; }
    .v2-auth__row { flex-wrap: wrap; gap: 8px; }
    .v2-auth__foot-links { gap: 12px; }
}

/* ============================================================
   PREMIUM QA PACKAGE - SHARED GRID BITS (2026-07-04)
   4-card plan grid modifier (Starter / Enterprise featured /
   Professional / Premium QA) + the green-tint "Deep QA" badge.
   Applied wherever a plan grid gained the 4th card.
============================================================ */

.v2-plans--4 {
    grid-template-columns: 1fr 1.06fr 1fr 1fr;
    max-width: none;
    gap: 16px;
}
.v2-plan__badge--tint {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}

@media (max-width: 1100px) {
    .v2-plans--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 720px;
        margin-inline: auto;
    }
}
@media (max-width: 640px) {
    .v2-plans--4 {
        grid-template-columns: minmax(0, 1fr);
        max-width: 480px;
    }
}

/* ============================================================
   PREMIUM QA LANDING PAGE (2026-07-04)
   /google-play-qa-testing-service - page-specific blocks.
   Reuses .v2-phero, .v2-plan/.v2-plans--4, .v2-atinc tiles,
   .v2-faq__*, .v2-guarantee, .v2-cta primitives.
============================================================ */

/* ---------- QA hero: split + report stack card ---------- */

.v2-qhero__grid {
    position: relative;
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
}
.v2-qhero__copy .v2-phero__trust { justify-content: flex-start; }

.v2-qhero__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2-qhero__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2-qhero__card-chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    font: 700 11px/1 var(--font-body);
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--go-deep);
    white-space: nowrap;
}
.v2-qhero__files {
    list-style: none;
    margin: 6px 0 0;
    padding: 0;
}
.v2-qhero__files li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 2px;
    border-bottom: 1px solid var(--line);
}
.v2-qhero__files li:last-child { border-bottom: 0; }
.v2-qhero__file {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font: 600 13px/1.2 var(--font-mono);
    letter-spacing: 0.02em;
    color: var(--ink);
    min-width: 0;
}
.v2-qhero__file svg { flex: 0 0 auto; width: 17px; height: 17px; color: var(--faint); }
.v2-qhero__day {
    flex: 0 0 auto;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 9px;
}
.v2-qhero__day--go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2-qhero__note {
    margin-top: 12px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--faint);
}
.v2-qhero__note a { color: var(--go-deep); font-weight: 600; text-decoration: none; }
.v2-qhero__note a:hover { text-decoration: underline; }
.v2-qhero__buy {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.v2-qhero__amount {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 30px;
    letter-spacing: -0.025em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-qhero__cur { font-size: 0.62em; vertical-align: 0.28em; margin-left: 1px; }
.v2-qhero__pmeta {
    display: block;
    margin-top: 2px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2-qhero__pmeta b { color: var(--go-deep); }
.v2 .v2-qhero__cta { flex: 0 0 auto; }

/* ---------- 25 + 5 split cards ---------- */

.v2-qam__grid {
    margin-top: clamp(36px, 5vw, 50px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.v2-qam__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(22px, 3vw, 28px);
}
.v2-qam__card--qa { border-color: rgba(11, 138, 71, 0.3); }
.v2-qam__head {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
}
.v2-qam__num {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 44px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-qam__num--go { color: var(--go); }
.v2-qam__title h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18.5px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-qam__title .v2-mono { display: block; margin-top: 4px; }
.v2-qam__list {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 11px;
}
.v2-qam__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2-qam__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10.5px no-repeat;
}
.v2-qam__foot {
    margin: 26px auto 0;
    max-width: 720px;
    text-align: center;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-qam__foot b { color: var(--ink); }

.v2-qam.v2-anim .v2-qam__card {
    opacity: 0;
    transform: translateY(16px);
}
.v2-qam.v2-anim.is-in .v2-qam__card {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-qam.v2-anim.is-in .v2-qam__card--qa { transition-delay: 0.12s; }

/* ---------- Reports: real doc + cadence ---------- */

.v2-qar__grid {
    margin-top: clamp(36px, 5vw, 50px);
    display: grid;
    grid-template-columns: 1.02fr 0.98fr;
    gap: clamp(24px, 4vw, 44px);
    align-items: start;
}
.v2-qar__doc {
    display: block;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    text-decoration: none;
    cursor: zoom-in;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}
.v2-qar__doc:hover {
    border-color: #C9D2DA;
    box-shadow: 0 16px 36px -20px rgba(10, 16, 23, 0.2);
}
.v2-qar__doc-bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--mist);
}
.v2-qar__doc-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
}
.v2-qar__doc-open { margin-right: auto; color: var(--go-deep); }
.v2-qar__doc img { display: block; width: 100%; height: auto; }
.v2-qar__doc-foot {
    display: block;
    padding: 11px 16px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    color: var(--faint);
}
.v2-qar__h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 19px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-qar__list {
    list-style: none;
    margin: 16px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.v2-qar__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-qar__list li b { color: var(--ink); }
.v2-qar__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10.5px no-repeat;
}
.v2-qar__timeline {
    margin-top: 24px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2-qar__tl-t { margin-bottom: 14px; }
.v2-qar__tl {
    position: relative;
    display: flex;
    justify-content: space-between;
}
.v2-qar__tl::before {
    content: "";
    position: absolute;
    right: 8px;
    left: 8px;
    top: 7px;
    height: 2px;
    background: #E0E6EB;
}
.v2-qar__tl-stop {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
}
.v2-qar__tl-stop i {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid #C6CFD8;
}
.v2-qar__tl-stop--go i {
    border-color: var(--go);
    background: var(--go);
    box-shadow: 0 0 0 3px var(--go-tint);
}
.v2-qar__tl-note {
    margin-top: 14px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--faint);
}

.v2-qar.v2-anim .v2-qar__doc,
.v2-qar.v2-anim .v2-qar__side {
    opacity: 0;
    transform: translateY(16px);
}
.v2-qar.v2-anim.is-in .v2-qar__doc,
.v2-qar.v2-anim.is-in .v2-qar__side {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-qar.v2-anim.is-in .v2-qar__side { transition-delay: 0.1s; }

/* ---------- Premium QA landing: mobile ---------- */

@media (max-width: 960px) {
    .v2-qhero__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 34px;
    }
    .v2-qhero__copy { text-align: center; }
    .v2-qhero__copy .v2-phero__title,
    .v2-qhero__copy .v2-phero__sub { margin-inline: auto; }
    .v2-qhero__copy .v2-phero__trust { justify-content: center; }
    .v2-qhero__card { max-width: 520px; margin-inline: auto; width: 100%; }
    .v2-qam__grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .v2-qar__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-qar__doc { max-width: 560px; margin-inline: auto; }
}

@media (max-width: 640px) {
    .v2-qhero__card { padding: 16px; border-radius: 18px; }
    .v2-qhero__file { font-size: 11.5px; gap: 7px; }
    .v2-qhero__file svg { width: 15px; height: 15px; }
    .v2-qhero__day { font-size: 9.5px; padding: 3px 7px; }
    .v2-qhero__buy {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
        gap: 10px;
    }
    .v2 .v2-qhero__cta { width: 100%; height: 48px; }
    .v2-qam__card { padding: 20px 18px; }
    .v2-qam__num { font-size: 38px; }
    .v2-qam__list li { font-size: 13.5px; }
    .v2-qar__tl-stop .v2-mono { font-size: 9px; }
    .v2-qar__timeline { padding: 15px 14px; }
}

/* ============================================================
   CHECKOUT V2 (/checkout/view) - page blocks (2026-07-04)
   Distraction-free money page: minimal top bar, order column +
   sticky payment rail, mobile pay bar, guest modal, V2 toast.
   Reuses .v2-logo, .v2-btn, .v2-eyebrow, .v2-mono primitives.
============================================================ */

.v2-ckbody { background: var(--paper); }
/* Kill every UA list/definition default in one place: the base reset
   only covers headings and paragraphs, and these bit us one by one
   (ol/ul 40px indent, figure/blockquote 1em 40px, dd 40px). Declared
   FIRST so the per-component rules below still win on margins. */
.v2-ck__items, .v2-ck__addonlist, .v2-ck__steps, .v2-ck__stats,
.v2-ck__savelist, .v2-ck__vault-list, .v2-ck__sum, .v2-ck__orderline {
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2-ck__sumrow dd, .v2-ck__minirev, .v2-ck__minirev blockquote { margin: 0; }
.v2-ck {
    position: relative;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    overflow: clip;
}
.v2-ck__wash {
    position: absolute;
    inset: 0 0 auto 0;
    height: 420px;
    pointer-events: none;
    background:
        radial-gradient(46rem 26rem at 92% -20%, rgba(11, 138, 71, 0.06), transparent 62%),
        radial-gradient(34rem 22rem at -8% -30%, rgba(10, 16, 23, 0.04), transparent 62%);
}

/* ---------- Checkout: head + layout ---------- */

.v2-ck__main {
    position: relative;
    width: 100%;
    padding-top: calc(var(--nav-h) + clamp(28px, 4.5vw, 52px));
    padding-bottom: clamp(48px, 7vw, 80px);
}
.v2-ck__head { margin-bottom: clamp(26px, 4vw, 40px); text-align: center; }
.v2-ck__headchip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 10.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 999px;
    padding: 6px 12px;
    white-space: nowrap;
}
.v2-ck__headchip svg { width: 13px; height: 13px; }
.v2-ck__title {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.85rem, 1.15rem + 2.2vw, 2.7rem);
    line-height: 1.06;
    letter-spacing: -0.025em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-ck__sub {
    margin: 10px auto 0;
    max-width: 58ch;
    font-size: 15px;
    line-height: 1.6;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-ck__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    grid-template-rows: auto 1fr;
    grid-template-areas:
        "cola rail"
        "colb rail";
    gap: 16px clamp(18px, 2.5vw, 30px);
    align-items: start;
}
.v2-ck__col--a { grid-area: cola; }
.v2-ck__col--b { grid-area: colb; }
.v2-ck__col { min-width: 0; }
.v2-ck__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(20px, 2.6vw, 26px);
}
.v2-ck__col .v2-ck__card { margin-bottom: 16px; }
.v2-ck__col .v2-ck__card:last-child { margin-bottom: 0; }
.v2-ck__cardhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.v2-ck__h2 {
    font: 600 18.5px/1.25 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ck__addmore {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--go-deep);
}
.v2-ck__addmore:hover { text-decoration: underline; text-underline-offset: 3px; }
.v2-ck__addmore svg { width: 14px; height: 14px; }

/* ---------- Checkout: order items ---------- */

.v2-ck__items { list-style: none; margin-top: 6px; }
.v2-ck__item {
    display: grid;
    grid-template-columns: 44px minmax(0, 1.5fr) auto auto 30px;
    grid-template-areas: "icon main qty price remove";
    gap: 8px 14px;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px solid var(--line);
}
.v2-ck__item:last-child { border-bottom: 0; }
.v2-ck__item-ic {
    grid-area: icon;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2-ck__item-ic svg { width: 22px; height: 22px; }
.v2-ck__item-main { grid-area: main; min-width: 0; }
.v2-ck__item-id { display: flex; align-items: center; gap: 8px; }
.v2-ck__savechip {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 2px 8px;
    white-space: nowrap;
}
.v2-ck__item-name {
    margin-top: 5px;
    font: 600 15px/1.35 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-ck__item-name i {
    display: block;
    margin-top: 2px;
    font: 400 12.5px/1.5 var(--font-body);
    font-style: normal;
    color: var(--faint);
}
.v2-ck__item-qty { grid-area: qty; display: flex; flex-direction: column; gap: 5px; }
.v2-ck__item-qty > .v2-mono { font-size: 9.5px; }
.v2-ck__stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    background: var(--paper);
}
.v2 .v2-ck__step {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    color: var(--slate);
    background: var(--paper);
    transition: background 0.15s ease, color 0.15s ease;
}
.v2 .v2-ck__step:hover { background: var(--mist); color: var(--ink); }
.v2 .v2-ck__step svg { width: 13px; height: 13px; }
.v2-ck__qty {
    min-width: 34px;
    text-align: center;
    font: 700 15px/1 var(--font-display);
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-ck__item-price { grid-area: price; text-align: left; }
.v2-ck__item-unit { font-size: 10px; color: var(--faint); }
.v2-ck__item-unit s { color: var(--faint); margin-left: 3px; }
.v2-ck__item-total {
    margin-top: 3px;
    font: 700 17px/1 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2 .v2-ck__remove {
    grid-area: remove;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    min-width: 28px;
    border-radius: 8px;
    background: var(--mist);
    color: var(--faint);
    transition: background 0.15s ease, color 0.15s ease;
}
.v2 .v2-ck__remove:hover { background: #E8EDF1; color: var(--ink); }
.v2 .v2-ck__remove svg { width: 13px; height: 13px; }
.v2-ck__remove-confirm { display: none; font-size: 11.5px; font-weight: 700; padding: 0 10px; white-space: nowrap; }
/* Armed remove: red danger fill, white X, tooltip below (avoids price column at 390px). */
.v2 .v2-ck__remove.is-arm {
    position: relative;
    background: #DC2626;
    color: #FFFFFF;
}
.v2 .v2-ck__remove.is-arm:hover { background: #B91C1C; color: #FFFFFF; }
.v2 .v2-ck__remove.is-arm .v2-ck__remove-x { display: inline-flex; color: #FFFFFF; }
.v2 .v2-ck__remove.is-arm .v2-ck__remove-x svg { stroke: #FFFFFF; color: #FFFFFF; }
.v2 .v2-ck__remove.is-arm .v2-ck__remove-confirm { display: none; }
.v2 .v2-ck__remove.is-arm::after {
    content: "Tap again to remove";
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: auto;
    z-index: 6;
    padding: 5px 8px;
    border-radius: 6px;
    background: #DC2626;
    color: #FFFFFF;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 4px 12px rgba(16, 24, 40, .2);
}
.v2-ck__orderline { margin-top: 14px; font-size: 11px; }
.v2-ck__orderline b { color: var(--ink); }
.v2-ck__orderline span { white-space: nowrap; }

/* ---------- Checkout: add-ons ---------- */

.v2 .v2-ck__addons-head {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    text-align: right;
    cursor: default;
}
.v2-ck__cardhead-t { display: flex; align-items: center; gap: 10px; }
.v2-ck__optchip {
    font-size: 9.5px;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
}
.v2-ck__addons-chev { display: none; width: 18px; height: 18px; color: var(--faint); transition: transform 0.2s ease; }
.v2-ck__addons-body { margin-top: 14px; }
.v2-ck__addonlist { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.v2-ck__addon {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 13px 15px;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.v2-ck__addon:hover { border-color: #C9D2DA; box-shadow: 0 6px 18px -8px rgba(10, 16, 23, 0.14); }
.v2-ck__addon-ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
    transition: background 0.15s ease, color 0.15s ease;
}
.v2-ck__addon-ic svg { width: 20px; height: 20px; }
.v2-ck__addon-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}
.v2-ck__addon-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 62px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    padding: 3.5px 11px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--slate);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.v2-ck__addon:hover .v2-ck__addon-pill { border-color: var(--ink); background: var(--ink); color: #FFFFFF; }
.v2-ck__addon-pill-added { display: none; align-items: center; gap: 4px; }
.v2-ck__addon-pill-added svg { width: 11px; height: 11px; }
.v2-ck__addon.addon-selected { border-color: rgba(11, 138, 71, 0.45); background: #F6FBF8; }
.v2-ck__addon.addon-selected .v2-ck__addon-ic { background: var(--go-tint); color: var(--go-deep); }
.v2-ck__addon.addon-selected .v2-ck__addon-pill { background: var(--go); border-color: var(--go); color: #FFFFFF; }
.v2-ck__addon.addon-selected .v2-ck__addon-pill-add { display: none; }
.v2-ck__addon.addon-selected .v2-ck__addon-pill-added { display: inline-flex; }
.v2-ck__addon-t { min-width: 0; }
.v2-ck__addon-t b {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
}
.v2-ck__addon-t i {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.5;
    color: var(--slate);
}
.v2-ck__bundlechip {
    font-size: 10px;
    font-weight: 700;
    color: #FFFFFF;
    background: var(--go);
    border-radius: 999px;
    padding: 2.5px 8px;
    white-space: nowrap;
}
.v2-ck__addon-price {
    font: 700 14.5px/1.2 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    text-align: left;
    white-space: nowrap;
}
.v2-ck__addon-price s {
    display: block;
    font: 400 10.5px/1.2 var(--font-mono);
    color: var(--faint);
}

/* ---------- Checkout: what happens next ---------- */

.v2-ck__steps {
    list-style: none;
    margin-top: 16px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 22px;
}
.v2-ck__stepitem {
    position: relative;
    background: var(--mist);
    border-radius: 14px;
    padding: 16px 54px 16px 18px;
}
.v2-ck__steppip {
    position: absolute;
    right: 16px;
    top: 17px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.25);
    display: grid;
    place-items: center;
    font: 700 12.5px/1 var(--font-display);
    color: var(--go-deep);
    font-variant-numeric: tabular-nums;
}
.v2-ck__stepitem > .v2-mono { color: var(--go-deep); font-size: 10px; }
.v2-ck__stepitem b {
    display: block;
    margin-top: 4px;
    font: 600 15px/1.3 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-ck__stepitem p { margin-top: 4px; font-size: 12.5px; line-height: 1.55; color: var(--slate); }

/* ---------- Checkout: payment rail ---------- */

.v2-ck__rail { grid-area: rail; position: sticky; top: calc(var(--nav-h) + 16px); min-width: 0; }
.v2-ck__pay {
    padding: 0;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 24px 48px -20px rgba(10, 16, 23, 0.16);
}
.v2-ck__payhead {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 13px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-ck__payhead .v2-mono { color: var(--ink); font-weight: 600; }
.v2-ck__payhead svg { width: 15px; height: 15px; margin-right: auto; color: var(--faint); }
.v2-ck__paydot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.v2-ck__paybody { padding: clamp(18px, 2.4vw, 22px); }
.v2-ck__alert {
    display: flex;
    gap: 9px;
    align-items: flex-start;
    border-radius: 12px;
    padding: 11px 13px;
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.5;
}
.v2-ck__alert svg { width: 16px; height: 16px; flex: 0 0 auto; margin-top: 1px; }
.v2-ck__alert.is-ok { background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2-ck__alert.is-err { background: #FDF1F0; border: 1px solid rgba(180, 35, 24, 0.16); color: #B42318; }
.v2-ck__alert p { color: inherit; }

.v2-ck__sum { margin-top: 0; }
.v2-ck__sumrow {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    font-size: 14px;
}
.v2-ck__sumrow dt { color: var(--slate); }
.v2-ck__sumrow dd { color: var(--ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.v2-ck__sumrow--save dt, .v2-ck__sumrow--save dd { color: var(--go-deep); }
.v2-ck__sumrow--save dd { font-weight: 700; }
.v2-ck__sumrow--total {
    margin-top: 10px;
    padding: 12px 14px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-radius: 12px;
    align-items: center;
}
.v2-ck__sumrow--total dt { color: var(--ink); font-weight: 700; font-size: 15.5px; }
.v2-ck__sumrow--total dd {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 25px;
    letter-spacing: -0.02em;
}

.v2-ck__who { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.v2-ck__label {
    display: block;
    margin: 13px 0 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}
.v2-ck__who .v2-ck__label:first-child, .v2-ck__method .v2-ck__label { margin-top: 0; }
.v2-ck__fieldwrap { position: relative; }
.v2-ck__fic {
    position: absolute;
    right: 13px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--faint);
    pointer-events: none;
}
.v2-ck__input {
    width: 100%;
    height: 46px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    padding: 0 40px 0 42px;
    font: 400 14.5px/1 var(--font-body);
    color: var(--ink);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.v2-ck__input::placeholder { color: var(--faint); }
.v2-ck__input:focus {
    outline: none;
    border-color: var(--go);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14);
}
.v2-ck__input.is-invalid { border-color: #B42318; }
.v2-ck__fieldwrap > .v2-ck__input:only-child { padding: 0 14px; }
.v2-ck__input--mono { font-family: var(--font-mono); font-size: 12.5px; }
.v2 .v2-ck__eye {
    position: absolute;
    left: 7px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    color: var(--faint);
}
.v2 .v2-ck__eye:hover { color: var(--ink); background: var(--mist); }
.v2 .v2-ck__eye svg { width: 18px; height: 18px; }
.v2-ck__ferr { margin-top: 5px; font-size: 12px; color: #B42318; }
.v2-ck__fstatus { margin-top: 5px; font-size: 12px; }
.v2-ck__fstatus.is-checking { color: var(--faint); }
.v2-ck__fstatus.is-existing, .v2-ck__fstatus.is-new { color: var(--go-deep); font-weight: 500; }
.v2-ck__note {
    margin-top: 12px;
    background: var(--go-tint);
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--go-deep);
}
.v2-ck__note a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.v2-ck__asline {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    font-size: 11px;
}
.v2-ck__asline b { color: var(--ink); }

.v2-ck__method { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.v2-ck__methodrow {
    display: flex;
    align-items: center;
    gap: 9px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    padding: 11px 14px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
}
.v2-ck__methodrow .v2-ic { width: 17px; height: 17px; color: var(--slate); }
.v2-ck__methodrow i { font-style: normal; font-weight: 400; color: var(--slate); }
.v2-ck__methodrow-logos { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; }
.v2-ck__methodrow-logos img { display: block; }
.v2-ck__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 8px; }
.v2 .v2-ck__tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 44px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.v2 .v2-ck__tab:hover { border-color: #C9D2DA; }
.v2 .v2-ck__tab.is-on { background: var(--ink); border-color: var(--ink); color: #FFFFFF; }
.v2 .v2-ck__tab .v2-ic { width: 16px; height: 16px; }
.v2 .v2-ck__tab i { font-size: 9.5px; color: inherit; opacity: 0.75; }
.v2-ck__tab-logos { display: inline-flex; align-items: center; gap: 4px; }
.v2-ck__tab-logos img { display: block; }
.v2 .v2-ck__tab:not(.is-on) .v2-ck__tab-logos { opacity: 0.75; }

#stripe-payment-section, #crypto-payment-section { margin-top: 14px; }
.v2 .v2-ck__paybtn { position: relative; width: 100%; height: 52px; margin-top: 2px; }
.v2 .v2-ck__paybtn.is-loading { opacity: 0.85; cursor: wait; }
.v2-ck__paylabel b { font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-ck__spinner {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #FFFFFF;
    animation: v2CkSpin 0.7s linear infinite;
}
@keyframes v2CkSpin { to { transform: rotate(-360deg); } }
.v2-ck__paynote {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: 11px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--faint);
    text-align: center;
}
.v2-ck__paynote img { display: block; }

/* Crypto panel */
.v2-ck__wallet { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.v2-ck__wallet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-ck__wallet-head b { font: 600 14px/1.2 var(--font-body); color: var(--ink); }
.v2-ck__wallet-addr { display: flex; align-items: center; gap: 8px; padding: 11px 14px; }
.v2-ck__wallet-addr input {
    flex: 1;
    min-width: 0;
    border: none;
    background: transparent;
    font: 500 11.5px/1.3 var(--font-mono);
    color: var(--ink);
}
.v2-ck__wallet-addr input:focus { outline: none; }
.v2-ck__cryptowarn {
    margin-top: 12px;
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-radius: 12px;
    padding: 11px 13px;
    font-size: 12.5px;
    line-height: 1.55;
    color: #8A4540;
}
.v2-ck__cryptowarn b { color: #B42318; }
.v2-ck__filedrop {
    display: block;
    margin: 12px 0 14px;
    border: 1.5px dashed #C9D2DA;
    border-radius: 12px;
    padding: 14px;
    text-align: center;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease;
}
.v2-ck__filedrop:hover { border-color: var(--go); background: #F6FBF8; }
.v2-ck__filedrop input { display: none; }
.v2-ck__filedrop span { font-size: 13px; color: var(--slate); }
.v2-ck__filedrop span i, .v2-ck__filedrop span b { display: block; font-style: normal; }
.v2-ck__filedrop span i { margin-top: 2px; font-size: 11px; color: var(--faint); }
.v2-ck__filedrop span b { color: var(--ink); }

/* Payment protection vault: the rail's dark moment */
.v2-ck__vault {
    margin-top: 16px;
    background: var(--ink);
    border-radius: 14px;
    padding: 15px 16px 12px;
}
.v2-ck__vault-stripe {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}
.v2-ck__vault-stripe img {
    display: block;
    margin-right: auto;
    filter: brightness(0) invert(1);
    opacity: 0.92;
}
.v2-ck__vault-t { min-width: 0; }
.v2-ck__vault-t b {
    display: block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    color: #FFFFFF;
}
.v2-ck__vault-t i {
    display: block;
    margin-top: 2px;
    font-size: 11.5px;
    font-style: normal;
    line-height: 1.5;
    color: #A9B4BF;
}
.v2-ck__vault-t a {
    color: #3ECF81;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.v2-ck__vault-list {
    list-style: none;
    padding: 13px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}
.v2-ck__vault-list li { display: flex; align-items: flex-start; gap: 10px; }
.v2-ck__vault-check {
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    margin-top: 1px;
    border-radius: 50%;
    background: rgba(62, 207, 129, 0.16);
    color: #3ECF81;
    display: grid;
    place-items: center;
}
.v2-ck__vault-check svg { width: 12px; height: 12px; }
.v2-ck__vault-foot {
    padding-top: 10px;
    text-align: center;
    font-size: 9.5px;
    color: #7A8794;
}
.v2-ck__vault-foot span { white-space: nowrap; }
.v2-ck__secureline { margin-top: 14px; text-align: center; font-size: 10.5px; }
.v2-ck__secureline span { white-space: nowrap; }

/* ---------- Checkout: guarantee strip + empty state ---------- */

.v2-ck__gwrap { margin-top: clamp(20px, 3vw, 30px); }

.v2-ck__empty { text-align: center; padding: clamp(48px, 9vw, 100px) 0; }
.v2-ck__empty-ic {
    width: 72px;
    height: 72px;
    margin: 0 auto;
    border-radius: 50%;
    background: var(--mist);
    display: grid;
    place-items: center;
    color: var(--faint);
}
.v2-ck__empty-ic svg { width: 30px; height: 30px; }
.v2-ck__empty-title {
    margin-top: 20px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.1rem);
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2-ck__empty-sub { margin-top: 10px; font-size: 15px; color: var(--slate); }
.v2-ck__empty-cta { margin-top: 22px; }

/* ---------- Checkout: mobile pay bar ---------- */

.v2-ck__mbar {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: 60;
    background: var(--paper);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 30px rgba(10, 16, 23, 0.08);
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    transition: transform 0.25s ease;
}
.v2-ck__mbar[hidden] { display: none !important; }
.v2-ck__mbar.is-off { transform: translateY(110%); }
.v2-ck__mbar-in {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    max-width: 560px;
    margin-inline: auto;
}
.v2-ck__mbar-total { display: flex; flex-direction: column; }
.v2-ck__mbar-total i {
    font: 600 9.5px/1 var(--font-mono);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-style: normal;
    color: var(--faint);
}
.v2-ck__mbar-total b {
    margin-top: 3px;
    font: 800 19px/1 var(--font-display);
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2 .v2-ck__mbar-btn { height: 46px; padding: 0 24px; flex: 0 0 auto; }
@media (min-width: 961px) {
    .v2-ck__mbar { display: none !important; }
}

/* ---------- Checkout: guest modal + toasts ---------- */

.v2-ck__modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(10, 16, 23, 0.55);
    backdrop-filter: blur(4px);
}
.v2-ck__modal[hidden] { display: none !important; }
.v2-ck__modal-card {
    position: relative;
    width: min(440px, 100%);
    max-height: min(88vh, 640px);
    overflow-y: auto;
    background: var(--paper);
    border-radius: 20px;
    padding: 26px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.08), 0 40px 80px -24px rgba(10, 16, 23, 0.4);
}
.v2 .v2-ck__modal-x {
    position: absolute;
    top: 14px;
    left: 14px;
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--mist);
    color: var(--slate);
}
.v2 .v2-ck__modal-x:hover { background: var(--ink); color: #FFFFFF; }
.v2 .v2-ck__modal-x svg { width: 14px; height: 14px; }
.v2-ck__modal-title {
    margin-top: 10px;
    font: 700 22px/1.15 var(--font-display);
    letter-spacing: -0.02em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-ck__modal-sub { margin: 8px 0 6px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2-ck__modal-alt { margin-top: 14px; text-align: center; font-size: 13px; color: var(--slate); }
.v2-ck__modal-alt a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.v2-ck__modal .v2-ck__paybtn { margin-top: 16px; }
.v2-ck__modal .v2-ck__secureline { margin-top: 12px; }

.v2-ck__toasts {
    position: fixed;
    bottom: 18px;
    right: 50%;
    transform: translateX(50%);
    z-index: 120;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}
.v2-ck__toast {
    background: var(--ink);
    color: #FFFFFF;
    border-radius: 999px;
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 500;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    max-width: min(92vw, 480px);
    text-align: center;
}
.v2-ck__toast.is-in { opacity: 1; transform: none; }
.v2-ck__toast.is-err { background: #B42318; }

/* ---------- Checkout: persuasion layer ---------- */

.v2-ck__stats {
    list-style: none;
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 22px auto 0;
    max-width: 720px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    overflow: hidden;
}
.v2-ck__stats li {
    flex: 1 1 0;
    min-width: 130px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 13px 10px;
    border-left: 1px solid var(--line);
}
.v2-ck__stats li:last-child { border-left: 0; }
.v2-ck__stats b {
    font: 700 19px/1.1 var(--font-display);
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-ck__stats span {
    font: 600 9.5px/1.3 var(--font-mono);
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2-ck__proof-grid {
    margin-top: 16px;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 16px;
    align-items: start;
}
.v2-ck__evd {
    display: block;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
    cursor: zoom-in;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.v2-ck__evd:hover { border-color: #C9D2DA; box-shadow: 0 10px 26px -12px rgba(10, 16, 23, 0.2); }
.v2-ck__evd-bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 13px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-ck__evd-av {
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--ink);
    color: #FFFFFF;
    display: grid;
    place-items: center;
    font: 700 13px/1 var(--font-display);
}
.v2-ck__evd-from { min-width: 0; }
.v2-ck__evd-from b { display: block; font-size: 12px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.v2-ck__evd-from i {
    display: block;
    font-size: 9px;
    font-style: normal;
    color: var(--faint);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v2-ck__evd-chip {
    margin-right: auto;
    flex: 0 0 auto;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 3px 8px;
    white-space: nowrap;
}
.v2-ck__evd img { display: block; width: 100%; height: auto; }
.v2-ck__evd-cap {
    display: block;
    padding: 8px 13px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 9.5px;
    color: var(--faint);
}
.v2-ck__proof-side { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.v2-ck__minirev {
    margin: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px;
    background: var(--paper);
}
.v2-ck__minirev blockquote {
    margin: 8px 0 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--ink);
}
.v2-ck__minirev figcaption { margin-top: 8px; font-size: 11.5px; color: var(--faint); }
.v2-ck__minirev figcaption b { color: var(--slate); font-weight: 600; }
.v2-ck__proof-line { text-align: center; font-size: 10.5px; margin-top: 2px; }
.v2-ck__proof-line span { white-space: nowrap; }

/* Mini FAQ + human strip */
.v2-ck__qas { margin-top: 14px; border-top: 1px solid var(--line); }
.v2-ck__qa { border-bottom: 1px solid var(--line); }
.v2-ck__qa summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 2px;
    cursor: pointer;
    list-style: none;
}
.v2-ck__qa summary::-webkit-details-marker { display: none; }
.v2-ck__qa h3 { font: 600 14px/1.35 var(--font-body); color: var(--ink); }
.v2-ck__qa-ic {
    position: relative;
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
}
.v2-ck__qa-ic::before, .v2-ck__qa-ic::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    background: var(--faint);
    border-radius: 2px;
    transition: transform 0.2s ease, background 0.2s ease;
}
.v2-ck__qa-ic::before { width: 12px; height: 2px; }
.v2-ck__qa-ic::after { width: 2px; height: 12px; }
.v2-ck__qa[open] .v2-ck__qa-ic::after { transform: rotate(-90deg); background: var(--go); }
.v2-ck__qa[open] .v2-ck__qa-ic::before { background: var(--go); }
.v2-ck__qa > p {
    padding: 0 2px 14px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-ck__qa > p a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.v2-ck__human {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 13px 15px;
}
.v2-ck__human img { border-radius: 50%; flex: 0 0 auto; }
.v2-ck__human-t { min-width: 0; flex: 1; }
.v2-ck__human-t b { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink); }
.v2-ck__human-t i { display: block; margin-top: 1px; font-size: 11.5px; font-style: normal; color: var(--slate); }
.v2 .v2-ck__human-wa {
    flex: 0 0 auto;
    height: 40px;
    padding: 0 16px;
    background: #25D366;
    color: #FFFFFF;
    border-radius: 11px;
    font-weight: 600;
}
.v2 .v2-ck__human-wa:hover { background: #1FB558; color: #FFFFFF; }

/* Exit-intent save modal */
.v2-ck__savelist {
    list-style: none;
    margin: 16px 0 4px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.v2-ck__savelist li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2-ck__savelist li b { color: var(--ink); font-weight: 600; }
.v2-ck__savelist .v2-ck__vault-check { background: var(--go-tint); color: var(--go); }
.v2 .v2-ck__savewa { width: 100%; margin-top: 8px; }

/* ---------- Checkout: tablet + mobile ---------- */

@media (max-width: 1100px) {
    .v2-ck__grid { grid-template-columns: minmax(0, 1fr) 360px; }
}

@media (max-width: 960px) {
    .v2-ck__grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        grid-template-areas:
            "cola"
            "rail"
            "colb";
    }
    .v2-ck__rail { position: static; }
    .v2-ck__steps { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-ckbody .v2-footer { padding-bottom: 84px; }
    .v2-ck__sub { margin-inline: auto; }
    .v2-ck__addons-chev { display: block; }
    .v2 .v2-ck__addons-head { cursor: pointer; }
    .v2-ck__addons.is-collapsed .v2-ck__addons-body { display: none; }
    .v2-ck__addons.is-collapsed .v2-ck__addons-chev { transform: rotate(0deg); }
    .v2-ck__addons:not(.is-collapsed) .v2-ck__addons-chev { transform: rotate(-180deg); }
    .v2-ck__main { padding-bottom: 96px; }
}

@media (max-width: 640px) {
    .v2-ck__main { padding-top: calc(var(--nav-h) + 22px); }
    .v2-ck__card { padding: 18px 16px; border-radius: 16px; }
    .v2-ck__pay { padding: 0; }
    .v2-ck__paybody { padding: 16px; }
    .v2-ck__item {
        position: relative;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "main main"
            "qty price";
        gap: 12px;
        align-items: center;
    }
    .v2-ck__item-ic { position: absolute; right: 0; top: 15px; width: 40px; height: 40px; border-radius: 12px; }
    .v2-ck__item-ic svg { width: 20px; height: 20px; }
    .v2-ck__item-main { padding-right: 52px; padding-left: 36px; min-height: 42px; }
    .v2 .v2-ck__remove { position: absolute; top: 15px; left: 0; }
    .v2-ck__item-qty { flex-direction: row; align-items: center; gap: 8px; }
    .v2-ck__item-qty > .v2-mono { display: none; }
    .v2-ck__item-price { align-self: center; }
    .v2-ck__addon { padding: 12px 13px; gap: 6px 10px; grid-template-columns: 36px minmax(0, 1fr) auto; }
    .v2-ck__addon-ic { width: 36px; height: 36px; border-radius: 10px; grid-column: 1; grid-row: 1; }
    .v2-ck__addon-ic svg { width: 18px; height: 18px; }
    /* Description drops to its own full-width line so cards stay short */
    .v2-ck__addon-t { display: contents; }
    .v2-ck__addon-t b { grid-column: 2; grid-row: 1; align-self: center; }
    .v2-ck__addon-t i { grid-column: 1 / -1; grid-row: 2; margin-top: 0; font-size: 11.5px; }
    .v2-ck__addon-right { grid-column: 3; grid-row: 1; align-items: flex-end; gap: 4px; }
    .v2-ck__addon-price s { display: none; }
    .v2-ck__sumrow--total dd { font-size: 23px; }
    .v2-ck__modal-card { padding: 22px 18px; }
    .v2-ck__steps { grid-template-columns: minmax(0, 1fr); }
    .v2-ck__stats { max-width: 100%; }
    .v2-ck__stats li { min-width: 0; flex: 1 1 40%; padding: 11px 8px; }
    .v2-ck__stats li:nth-child(2) { border-left: 0; }
    .v2-ck__stats li:nth-child(1), .v2-ck__stats li:nth-child(2) { border-bottom: 1px solid var(--line); }
    .v2-ck__stats b { font-size: 17px; }
    .v2-ck__proof-grid { grid-template-columns: minmax(0, 1fr); }
    .v2-ck__human { flex-wrap: wrap; }
    .v2-ck__human-t { flex: 1 1 calc(100% - 56px); }
    .v2 .v2-ck__human-wa { flex: 1 1 100%; height: 46px; justify-content: center; margin-top: 4px; }
}

@media (max-width: 380px) {
    .v2-ck__addon-price s { display: none; }
    .v2-ck__item-total { font-size: 16px; }
    .v2-ck__addon-pill { min-width: 54px; padding: 3px 8px; font-size: 10px; }
}

/* ============================================================
   CLOSED TESTING SERVICE V2 (/google-play-closed-testing-service)
   Page blocks (2026-07-04): monitoring-log hero artifact,
   You-do/We-do ledger + vetting checklist, 20-dot buffer board,
   real-report window, 3-step strip. Reuses .v2s-crumbs,
   .v2s-answer, .v2-plans/.v2-plan, .v2-ppl, .v2-guarantee,
   .v2-faq, .v2-cta primitives. Prefix: v2-cts*.
============================================================ */

/* Gotcha 19: kill UA list/figure defaults up front */
.v2-ctslog__rows, .v2-ctssvc__list, .v2-ctssvc__checks,
.v2-cts20__dots, .v2-ctsinc__list, .v2-ctshow__steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- CTS: split hero + monitoring log ---------- */

.v2-ctshero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(40px, 6.5vh, 76px));
    padding-bottom: clamp(36px, 5vw, 56px);
    overflow: hidden;
}
.v2-ctshero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(50rem 32rem at 88% -10%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(38rem 26rem at -10% 110%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2-ctshero__in {
    position: relative;
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: clamp(28px, 4.5vw, 56px);
    align-items: center;
}
.v2-ctshero__title {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.05rem, 1.05rem + 3vw, 3.3rem);
    line-height: 1.05;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2-ctshero__title-go { display: block; color: var(--go); }
.v2-ctshero__sub {
    margin-top: 18px;
    max-width: 56ch;
    font-size: clamp(15.5px, 1.4vw, 16.5px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2-ctshero__sub strong { color: var(--ink); font-weight: 600; }
.v2-ctshero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 26px;
}
.v2-ctshero__fine {
    margin-top: 15px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.04em;
    color: var(--faint);
}
.v2-ctshero__fine span { white-space: nowrap; }
.v2-ctshero__trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 9px 15px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.v2-ctshero__trust-item {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    color: var(--slate);
    white-space: nowrap;
}
.v2-ctshero__trust-item b { color: var(--ink); font-weight: 600; }
.v2-ctshero__trust-item .v2-stars { margin-left: 7px; }

.v2-ctshero__art { min-width: 0; }
.v2-ctslog {
    width: min(100%, 460px);
    margin-right: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.18);
}
.v2-ctslog__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-ctslog__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
.v2-ctslog__file {
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--ink);
}
.v2-ctslog__chip {
    margin-right: auto;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 9.5px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2-ctslog__row {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    padding: 11.5px 16px;
    border-bottom: 1px solid var(--line);
}
.v2-ctslog__row:last-child { border-bottom: 0; }
.v2-ctslog__row > .v2-mono { font-size: 9.5px; color: var(--faint); }
.v2-ctslog__row p { font-size: 13px; line-height: 1.5; color: var(--slate); }
.v2-ctslog__row p b { color: var(--ink); font-weight: 600; }
.v2-ctslog__row--drop p b { color: #B42318; }
.v2-ctslog__row--fix > .v2-mono, .v2-ctslog__row--done > .v2-mono { color: var(--go-deep); }
.v2-ctslog__row--fix p b, .v2-ctslog__row--done p b { color: var(--go-deep); }
.v2-ctslog__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 16px;
    background: var(--go-tint);
    border-top: 1px solid rgba(11, 138, 71, 0.18);
}
.v2-ctslog__foot b {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14.5px;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-ctslog__foot .v2-mono { color: var(--go-deep); font-size: 9.5px; }
.v2-ctshero__caption {
    margin-top: 10px;
    text-align: center;
    font-size: 10.5px;
}

.v2-ctshero.v2-anim .v2-ctslog { opacity: 0; transform: translateY(18px); }
.v2-ctshero.v2-anim.is-in .v2-ctslog {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-ctshero.v2-anim .v2-ctslog__row { opacity: 0; transform: translateX(8px); }
.v2-ctshero.v2-anim.is-in .v2-ctslog__row {
    opacity: 1;
    transform: none;
    transition: opacity 0.45s ease var(--d, 0s), transform 0.45s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-ctshero.v2-anim .v2-ctslog__foot { opacity: 0; }
.v2-ctshero.v2-anim.is-in .v2-ctslog__foot { opacity: 1; transition: opacity 0.5s ease 1.1s; }

/* ---------- CTS: ledger + vetting checklist ---------- */

.v2-ctssvc__ledger {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 14px;
    align-items: start;
}
.v2-ctssvc__side {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(20px, 3vw, 26px);
}
.v2-ctssvc__side--we { border-color: rgba(11, 138, 71, 0.35); }
.v2-ctssvc__sidehead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
.v2-ctssvc__sidehead h3 {
    font: 600 19px/1.2 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ctssvc__time {
    font-size: 9.5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}
.v2-ctssvc__time--go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2-ctssvc__list {
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.v2-ctssvc__list li {
    position: relative;
    padding-right: 26px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-ctssvc__list li b { color: var(--ink); font-weight: 600; }
.v2-ctssvc__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
}
.v2-ctssvc__list--you li::before {
    background: var(--mist) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='2.6' fill='%2355616D'/%3E%3C/svg%3E") center/16px 16px no-repeat;
}
.v2-ctssvc__list--we li::before {
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.2 3.2L15 7' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;
}

.v2-ctssvc__vet {
    margin-top: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(22px, 3vw, 28px);
}
.v2-ctssvc__h3 {
    font: 600 19px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ctssvc__p {
    margin-top: 10px;
    font: 400 14px/1.65 var(--font-body);
    color: var(--slate);
}
.v2-ctssvc__checks {
    margin-top: 16px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 22px;
}
.v2-ctssvc__checks li {
    position: relative;
    padding-right: 28px;
}
.v2-ctssvc__checks li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.2 3.2L15 7' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px 11px no-repeat;
}
.v2-ctssvc__checks b {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.v2-ctssvc__checks i {
    display: block;
    margin-top: 1px;
    font-size: 12.5px;
    font-style: normal;
    line-height: 1.55;
    color: var(--slate);
}
.v2-ctssvc__more {
    margin-top: 18px;
    font-size: 13.5px;
    color: var(--slate);
}
.v2-ctssvc__more a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-ctssvc.v2-anim .v2-ctssvc__side,
.v2-ctssvc.v2-anim .v2-ctssvc__vet {
    opacity: 0;
    transform: translateY(16px);
}
.v2-ctssvc.v2-anim.is-in .v2-ctssvc__side,
.v2-ctssvc.v2-anim.is-in .v2-ctssvc__vet {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}
.v2-ctssvc.v2-anim.is-in .v2-ctssvc__side--we { transition-delay: 0.1s; }
.v2-ctssvc.v2-anim.is-in .v2-ctssvc__vet { transition-delay: 0.2s; }

/* ---------- CTS: the 20-dot buffer board ---------- */

.v2-cts20__board {
    margin-top: clamp(36px, 5vw, 52px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(22px, 3vw, 30px);
}
.v2-cts20__dots {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
.v2-cts20__dot {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
}
.v2-cts20__dot svg { width: 19px; height: 19px; }
.v2-cts20__dot.is-buffer {
    background: var(--go-tint);
    color: var(--go-deep);
    border: 1px solid rgba(11, 138, 71, 0.25);
}
.v2-cts20__line {
    position: relative;
    width: 2px;
    height: 46px;
    border-radius: 2px;
    background: var(--ink);
    margin: 0 6px;
}
.v2-cts20__line i {
    position: absolute;
    top: -22px;
    right: 50%;
    transform: translateX(50%);
    font-size: 8.5px;
    font-style: normal;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2.5px 8px;
    white-space: nowrap;
}
.v2-cts20__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 22px;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}
.v2-cts20__legend span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: var(--slate);
}
.v2-cts20__key {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2-cts20__key--buffer {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.35);
}
.v2-cts20__cols {
    margin-top: clamp(28px, 4vw, 40px);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(20px, 3vw, 40px);
}
.v2-cts20__col h3 {
    font: 600 17.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-cts20__col p {
    margin-top: 8px;
    font: 400 14px/1.65 var(--font-body);
    color: var(--slate);
}
.v2-cts20__col p a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-cts20.v2-anim .v2-cts20__dot { opacity: 0; transform: scale(0.6); }
.v2-cts20.v2-anim.is-in .v2-cts20__dot {
    opacity: 1;
    transform: none;
    transition: opacity 0.4s ease var(--d, 0s), transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) var(--d, 0s);
}

/* ---------- CTS: included + real report window ---------- */

.v2-ctsinc__grid {
    margin-top: clamp(36px, 5vw, 52px);
    display: grid;
    grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: start;
}
.v2-ctsinc__doc {
    display: block;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    cursor: zoom-in;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.v2-ctsinc__doc:hover { border-color: #C9D2DA; box-shadow: 0 12px 30px -12px rgba(10, 16, 23, 0.2); }
.v2-ctsinc__doc-bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    min-width: 0;
}
.v2-ctsinc__doc-bar .v2-mono {
    font-size: 10px;
    color: var(--ink);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v2-ctsinc__doc-dot {
    width: 8px;
    height: 8px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--go);
}
.v2-ctsinc__doc-chip {
    margin-right: auto;
    flex: 0 0 auto;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 3px 8px;
    white-space: nowrap;
}
.v2-ctsinc__doc img { display: block; width: 100%; height: auto; }
.v2-ctsinc__doc-cap {
    display: block;
    padding: 9px 14px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 9.5px;
    color: var(--faint);
}
.v2-ctsinc__list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.v2-ctsinc__list li {
    position: relative;
    padding-right: 32px;
}
.v2-ctsinc__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.6 3.6L15.5 6.5' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px 11px no-repeat;
}
.v2-ctsinc__list h3 {
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ctsinc__list p {
    margin-top: 5px;
    font: 400 13.5px/1.62 var(--font-body);
    color: var(--slate);
}
.v2-ctsinc__list p a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.v2-ctsinc.v2-anim .v2-ctsinc__doc { opacity: 0; transform: translateY(18px); }
.v2-ctsinc.v2-anim.is-in .v2-ctsinc__doc {
    opacity: 1;
    transform: none;
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-ctsinc.v2-anim .v2-ctsinc__list li { opacity: 0; transform: translateY(14px); }
.v2-ctsinc.v2-anim.is-in .v2-ctsinc__list li {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

/* ---------- CTS: steps + plans badge + CTA links ---------- */

.v2-ctshow__steps {
    margin-top: clamp(36px, 5vw, 48px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2.5vw, 28px);
}
.v2-ctshow__step {
    border-top: 1px solid var(--line);
    padding-top: 16px;
}
.v2-ctshow__step > span { color: var(--go-deep); }
.v2-ctshow__step b {
    display: block;
    margin-top: 8px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-ctshow__step p {
    margin-top: 6px;
    font: 400 13.5px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-ctshow__more {
    margin-top: 26px;
    text-align: center;
    font: 400 14px/1.6 var(--font-body);
    color: var(--slate);
}
.v2-ctshow__more a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2-ctshow.v2-anim .v2-ctshow__step { opacity: 0; transform: translateY(14px); }
.v2-ctshow.v2-anim.is-in .v2-ctshow__step {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

.v2-ctsplans .v2-plan__badge--page {
    background: var(--mist);
    color: var(--slate);
    border: 1px solid var(--line);
    padding: 4px 10px;
}
.v2-ctscta__links {
    margin-top: 18px;
    font-size: 13.5px;
    color: #93A0AC;
}
.v2-ctscta__links a {
    color: #E7ECF0;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.v2-ctscta__links a:hover { color: #FFFFFF; }

/* ---------- CTS: tablet + mobile ---------- */

@media (max-width: 960px) {
    .v2-ctshero__in { grid-template-columns: minmax(0, 1fr); }
    .v2-ctshero__copy { text-align: center; }
    .v2-ctshero__copy .v2s-crumbs { justify-content: center; }
    .v2-ctshero__title { margin-inline: auto; }
    .v2-ctshero__sub { margin-inline: auto; }
    .v2-ctshero__cta { justify-content: center; }
    .v2-ctshero__trust { justify-content: center; }
    .v2-ctslog { margin-inline: auto; }
    .v2-ctssvc__ledger { grid-template-columns: minmax(0, 1fr); }
    .v2-ctssvc__checks { grid-template-columns: minmax(0, 1fr); }
    .v2-cts20__cols { grid-template-columns: minmax(0, 1fr); }
    .v2-ctsinc__grid { grid-template-columns: minmax(0, 1fr); }
    .v2-ctsinc__doc { max-width: 460px; margin-inline: auto; }
    .v2-ctshow__steps { grid-template-columns: minmax(0, 1fr); gap: 18px; }
}

@media (max-width: 640px) {
    .v2-ctshero { padding-top: calc(var(--nav-h) + 32px); }
    .v2-ctshero__sub { font-size: 15px; }
    .v2-ctshero__cta { width: 100%; max-width: 420px; margin-inline: auto; margin-top: 24px; }
    .v2 .v2-ctshero__cta .v2-btn { flex: 1 1 100%; height: 50px; }
    .v2-ctshero__trust { gap: 8px 14px; }
    .v2-ctshero__trust-item { font-size: 12.5px; }
    .v2-ctslog__row { padding: 10px 13px; grid-template-columns: 46px minmax(0, 1fr); gap: 9px; }
    .v2-ctslog__bar { padding: 11px 13px; }
    .v2-ctslog__foot { padding: 12px 13px; flex-direction: column; align-items: flex-start; gap: 3px; }
    .v2-ctssvc__side { padding: 18px 16px; }
    .v2-ctssvc__vet { padding: 20px 16px; }
    .v2-cts20__board { padding: 20px 14px; }
    .v2-cts20__dots { gap: 8px; }
    .v2-cts20__dot { width: 30px; height: 30px; }
    .v2-cts20__dot svg { width: 15px; height: 15px; }
    .v2-cts20__line { height: 30px; margin: 0 4px; }
    .v2-cts20__line i { display: none; }
    .v2-ctsinc__list h3 { font-size: 15.5px; }
    .v2-ctscta__links { font-size: 12.5px; line-height: 2; }
}

/* ============================================================
   AUTHOR PAGE V2 (/about/kefayat)
   E-E-A-T author page (2026-07-04): dossier profile card hero,
   expertise tiles, KPI track record + evidence links, editorial
   standards rows, guides index (reuses .v2-guide cards + grid),
   direct-line card. Reuses .v2-sechead, .v2-guides__grid,
   .v2-guide, .v2-faq__wa, .v2-cta primitives. Prefix: v2-au*.
============================================================ */

/* Gotcha 19: kill UA dl/dd defaults up front */
.v2-auh__rows, .v2-auh__rows dd { margin: 0; padding: 0; }

/* ---------- Hero: copy + dossier card ---------- */
.v2-auh { padding: calc(var(--nav-h) + clamp(44px, 7vw, 84px)) 0 clamp(64px, 8vw, 104px); }
.v2-auh__grid {
    display: grid;
    grid-template-columns: 1.06fr 0.94fr;
    gap: clamp(36px, 5vw, 72px);
    align-items: center;
}
.v2-auh__title {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.35rem, 1.3rem + 3.4vw, 3.7rem);
    line-height: 1.04;
    letter-spacing: -0.026em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-auh__role { margin-top: 12px; font-size: 11.5px; letter-spacing: 0.1em; }
.v2-auh__role span { white-space: nowrap; }
.v2-auh__lead { margin-top: 18px; max-width: 54ch; }
.v2-auh__facts { margin-top: 22px; font-size: 11.5px; letter-spacing: 0.05em; }
.v2-auh__facts span { white-space: nowrap; }
.v2-auh__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 26px; }

.v2-auh__stage { display: flex; justify-content: flex-end; }
.v2-auh__card {
    width: 100%;
    max-width: 430px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -20px rgba(10, 16, 23, 0.16);
    overflow: hidden;
}
.v2-auh__cardhead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 20px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2-auh__cardtag { display: inline-flex; align-items: center; gap: 8px; font-size: 10.5px; }
.v2-auh__cardtag i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s infinite;
}
.v2-auh__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: -0.005em;
}
.v2-auh__chip svg { width: 13px; height: 13px; }
.v2-auh__id { display: flex; align-items: center; gap: 16px; padding: 20px 22px 14px; }
.v2-auh__id img {
    width: 84px;
    height: 84px;
    border-radius: 14px;
    object-fit: cover;
    object-position: top;
    border: 1px solid var(--line);
}
.v2-auh__id-t b {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-auh__id-t .v2-mono { display: block; margin-top: 5px; }
.v2-auh__rows { padding: 0 22px 8px; }
.v2-auh__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding: 10.5px 0;
    border-top: 1px solid var(--line);
}
.v2-auh__row dt { font-size: 10.5px; }
.v2-auh__row dd { font-size: 14px; font-weight: 600; color: var(--ink); text-align: left; }
.v2-auh__cardfoot { display: flex; gap: 10px; padding: 14px 22px 20px; border-top: 1px solid var(--line); }
.v2-auh__cardfoot a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1;
    height: 40px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    will-change: transform;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease,
                transform .28s cubic-bezier(.34, 1.56, .64, 1), box-shadow .26s ease;
}
.v2 .v2-auh__cardfoot a {
    transition: border-color .2s ease, background-color .2s ease, color .2s ease,
                transform .28s cubic-bezier(.34, 1.56, .64, 1), box-shadow .26s ease !important;
}
.v2-auh__cardfoot a:hover {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    background: var(--go-tint);
    color: var(--go-deep);
    transform: translateY(-3px);
    box-shadow: 0 12px 22px -12px rgba(11, 138, 71, 0.32);
}
.v2-auh__cardfoot a:active { transform: translateY(-1px); }
.v2-auh__cardfoot svg { width: 15px; height: 15px; color: var(--slate); transition: color .2s ease; }
.v2-auh__cardfoot a:hover svg { color: var(--go-deep); }

/* Hero arrival: copy rises, card rises, rows stagger in */
.v2-auh.v2-anim .v2-auh__copy,
.v2-auh.v2-anim .v2-auh__card,
.v2-auh.v2-anim .v2-auh__row { opacity: 0; }
.v2-auh.v2-anim.is-in .v2-auh__copy { animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2-auh.v2-anim.is-in .v2-auh__card { animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2-auh.v2-anim.is-in .v2-auh__row {
    animation: v2RiseCard 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Expertise tiles ---------- */
.v2-aux__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2-aux__tile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 22px;
}
.v2 .v2-aux__tile {
    will-change: transform;
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-aux__tile:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2-aux__ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
}
.v2 .v2-aux__ic {
    transition: transform .3s cubic-bezier(.34, 1.56, .64, 1), background .25s ease, color .25s ease !important;
}
.v2-aux__tile:hover .v2-aux__ic {
    transform: translateY(-3px) scale(1.06);
    background: var(--go);
    color: #FFFFFF;
}
.v2-aux__ic svg { width: 22px; height: 22px; }
.v2-aux__tile h3 {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17.5px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-aux__tile p { margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2-aux.v2-anim .v2-aux__tile { opacity: 0; }
.v2-aux.v2-anim.is-in .v2-aux__tile {
    animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Track record: KPIs + evidence links ---------- */
.v2-aut__kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(36px, 5vw, 52px);
}
.v2-aut__kpi {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 18px 20px;
    text-align: center;
}
.v2 .v2-aut__kpi {
    will-change: transform;
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-aut__kpi:hover {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2-aut__kpi b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(28px, 3vw, 38px);
    letter-spacing: -0.025em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2-aut__kpi .v2-mono { display: block; margin-top: 8px; }
.v2-aut__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 18px;
}
.v2-aut__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    text-decoration: none;
    transition: border-color 0.22s ease, box-shadow 0.22s ease;
}
.v2 .v2-aut__link {
    will-change: transform;
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .3s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-aut__link:hover {
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 20px 38px -20px rgba(10, 16, 23, 0.26);
    transform: translateY(-4px);
}
.v2-aut__link .v2-mono { grid-column: 1; }
.v2-aut__link-t { grid-column: 1; font-size: 14.5px; font-weight: 600; letter-spacing: -0.01em; color: var(--ink); }
.v2-aut__link svg {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    margin-top: 2px; /* line up with the top label, not centred */
    width: 16px;
    height: 16px;
    color: var(--faint);
}
.v2 .v2-aut__link svg { transition: transform .26s cubic-bezier(.34, 1.56, .64, 1), color .2s ease !important; }
.v2-aut__link:hover svg { transform: translateX(-4px); color: var(--go-deep); }
.v2-aut.v2-anim .v2-aut__kpi { opacity: 0; }
.v2-aut.v2-anim.is-in .v2-aut__kpi {
    animation: v2RiseCard 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Editorial standards ---------- */
.v2-aus__list {
    max-width: 760px;
    margin: clamp(36px, 5vw, 52px) auto 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 6px 26px;
}
.v2-aus__row {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 16px;
    padding: 20px 0;
    border-top: 1px solid var(--line);
}
.v2-aus__row:first-child { border-top: 0; }
.v2-aus__num { font-size: 12px; padding-top: 3px; }
.v2-aus__body h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-aus__body p { margin-top: 6px; font-size: 14px; line-height: 1.62; color: var(--slate); }
.v2-aus.v2-anim .v2-aus__row { opacity: 0; }
.v2-aus.v2-anim.is-in .v2-aus__row {
    animation: v2RiseCard 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}

/* ---------- Guides: featured cards reuse .v2-guide; compact index ---------- */
.v2-aug.v2-anim .v2-guide { opacity: 0; }
.v2-aug.v2-anim.is-in .v2-guide {
    animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: var(--d, 0s);
}
.v2-aug__idxh { margin-top: clamp(36px, 5vw, 48px); font-size: 11px; }
.v2-aug__idx {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 44px;
    margin-top: 6px;
}
.v2-aug__row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 13px 12px 13px 14px;
    border-top: 1px solid var(--line);
    text-decoration: none;
    border-radius: 10px;
    position: relative;
}
.v2 .v2-aug__row { transition: background .22s ease !important; }
.v2-aug__row:hover { background: var(--mist); }
.v2-aug__idx .v2-aug__row:nth-child(1),
.v2-aug__idx .v2-aug__row:nth-child(2) { border-top: 0; }
.v2-aug__row-in { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.v2-aug__row-in b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.35;
    color: var(--ink);
}
.v2 .v2-aug__row-in b { transition: color .2s ease !important; }
.v2-aug__row:hover .v2-aug__row-in b { color: var(--go-deep); }
.v2-aug__row-in .v2-mono { font-size: 10px; }
.v2-aug__row svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    color: var(--faint);
    align-self: flex-start;
    margin-top: 3px; /* line up with the title, not centred between the two lines */
}
.v2 .v2-aug__row svg { transition: transform .24s cubic-bezier(.34, 1.56, .64, 1), color .2s ease !important; }
.v2-aug__row:hover svg { transform: translateX(-4px); color: var(--go-deep); }

/* ---------- Direct line card ---------- */
.v2-auc__card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(22px, 3vw, 34px);
    align-items: start;
    max-width: 860px;
    margin-inline: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(24px, 3.5vw, 40px);
}
.v2-auc__photo {
    width: 96px;
    height: 96px;
    border-radius: 16px;
    object-fit: cover;
    object-position: top;
    border: 1px solid var(--line);
}
.v2-auc__body h2 {
    margin-top: 12px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(22px, 2.6vw, 28px);
    letter-spacing: -0.02em;
    color: var(--ink);
    text-wrap: balance;
}
.v2-auc__txt { margin-top: 10px; font-size: 14.5px; line-height: 1.65; color: var(--slate); max-width: 56ch; }
.v2-auc__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 20px; }
.v2-auc__fine { margin-top: 14px; font-size: 10.5px; }
.v2-auc__fine span { white-space: nowrap; }
.v2-auc.v2-anim .v2-auc__card { opacity: 0; }
.v2-auc.v2-anim.is-in .v2-auc__card { animation: v2RiseCard 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }

/* ---------- Author page mobile ---------- */
@media (max-width: 960px) {
    .v2-auh { padding-top: calc(var(--nav-h) + 36px); }
    .v2-auh__grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
    .v2-auh__copy { text-align: center; }
    .v2-auh__lead { margin-inline: auto; }
    .v2-auh__actions { justify-content: center; }
    .v2-auh__stage { justify-content: center; }
    .v2-auh__card { max-width: 460px; }
    /* neutralize the FAQ WhatsApp auto-margin inside author action rows */
    .v2 .v2-auh__actions .v2-faq__wa,
    .v2 .v2-auc__actions .v2-faq__wa { margin-right: 0; }
    .v2-aux__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .v2-aut__kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .v2-aut__links { grid-template-columns: minmax(0, 1fr); gap: 10px; max-width: 560px; margin-inline: auto; margin-top: 14px; }
}

@media (max-width: 640px) {
    .v2-auh__role { font-size: 10.5px; }
    .v2-auh__actions { flex-direction: column; }
    .v2 .v2-auh__actions .v2-btn { width: 100%; max-width: 420px; height: 48px; justify-content: center; }
    .v2-auh__id { padding: 16px 18px 12px; }
    .v2-auh__id img { width: 68px; height: 68px; border-radius: 12px; }
    .v2-auh__id-t b { font-size: 17px; }
    .v2-auh__rows { padding: 0 18px 6px; }
    .v2-auh__cardfoot { padding: 12px 18px 16px; }
    .v2-aux__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; max-width: 480px; margin-inline: auto; }
    .v2-aux__tile { padding: 20px 18px; }
    .v2-aux__tile h3 { font-size: 17px; }
    .v2-aut__kpi { padding: 18px 12px 16px; }
    .v2-aut__kpi b { font-size: 26px; }
    .v2-aus__list { padding: 4px 18px; }
    .v2-aus__row { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; padding: 16px 0; }
    .v2-aus__body h3 { font-size: 16px; }
    .v2-aus__body p { font-size: 13.5px; }
    .v2-aug__idx { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
    .v2-aug__idx .v2-aug__row:nth-child(2) { border-top: 1px solid var(--line); }
    .v2-auc__card { grid-template-columns: minmax(0, 1fr); text-align: center; }
    .v2-auc__photo { margin-inline: auto; width: 84px; height: 84px; }
    .v2-auc__txt { margin-inline: auto; }
    .v2-auc__actions { flex-direction: column; }
    .v2 .v2-auc__actions .v2-btn { width: 100%; max-width: 420px; height: 48px; justify-content: center; margin-inline: auto; }
    /* the FAQ block's mobile rule sets order: 3 on .v2-faq__wa, which would
       drop WhatsApp below the email button here - keep DOM order */
    .v2 .v2-auh__actions .v2-faq__wa,
    .v2 .v2-auc__actions .v2-faq__wa { order: 0; }
}

@media (max-width: 480px) {
    .v2-auh__facts { font-size: 10.5px; }
    .v2-auh__row dd { font-size: 13px; }
    .v2-auh__cardfoot { flex-direction: column; }
    .v2-aut__kpi b { font-size: 24px; }
    .v2-aut__kpi .v2-mono { font-size: 9.5px; }
    .v2-aug__row-in b { font-size: 13.5px; }
}

/* ============================================================
   FLOATING RESUME-CHECKOUT BAR (2026-07-04)
   Fixed bottom-left card shown only when the visitor has a
   package in the cart. Bottom-right belongs to the live chat.
============================================================ */

.v2-resume {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 940;
    display: flex;
    align-items: center;
    gap: 13px;
    max-width: min(430px, calc(100vw - 96px));
    padding: 13px 15px 13px 14px;
    background: var(--ink);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 16px;
    box-shadow: 0 8px 18px rgba(10, 16, 23, 0.18), 0 24px 48px -12px rgba(10, 16, 23, 0.35);
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.35s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.35s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2-resume[hidden] { display: none; }
.v2-resume.is-up { opacity: 1; transform: none; }

.v2-resume__ic {
    position: relative;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(62, 207, 129, 0.14);
    color: #3ECF81;
}
.v2-resume__ic svg { width: 20px; height: 20px; }
.v2-resume__ic b {
    position: absolute;
    top: -5px;
    left: -5px;
    min-width: 17px;
    height: 17px;
    padding: 0 4px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: var(--go);
    color: #FFFFFF;
    font: 700 10.5px/1 var(--font-body);
    border: 2px solid var(--ink);
    box-sizing: content-box;
}
.v2-resume__txt {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.v2-resume__txt b {
    color: #FFFFFF;
    font: 600 14px/1.25 var(--font-body);
    letter-spacing: -0.01em;
}
.v2-resume__txt span {
    color: #93A0AC;
    font: 400 12px/1.35 var(--font-body);
}
.v2 .v2-resume__go { flex: 0 0 auto; }
.v2 .v2-resume__x {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #7A8794;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}
.v2 .v2-resume__x:hover { color: #FFFFFF; background: rgba(255, 255, 255, 0.08); }
.v2 .v2-resume__x svg { width: 15px; height: 15px; }

@media (max-width: 640px) {
    /* One compact line across the phone width (clear of the chat bubble):
       icon + count, headline, small button, dismiss. Reworked 2026-10-15
       after the card took three lines and 72px at 390px. */
    .v2-resume {
        right: 12px;
        left: 84px;
        bottom: 12px;
        max-width: none;
        gap: 8px;
        padding: 7px 14px 7px 8px;
        border-radius: 999px;
    }
    .v2-resume__ic { display: none; } /* the headline needs the width more than the cart icon */
    .v2-resume__ic svg { width: 16px; height: 16px; }
    .v2-resume__ic b { top: -4px; left: -4px; min-width: 15px; height: 15px; font-size: 9.5px; }
    .v2-resume__txt { flex: 1 1 auto; }
    .v2-resume__txt span { display: none; } /* headline + button only on phones */
    .v2-resume__txt b { font-size: 12px; line-height: 1.15; } /* may wrap to two short lines; the bar stays button-height */
    .v2 .v2-resume__go { height: 32px; padding-inline: 10px; font-size: 12px; border-radius: 999px; }
    .v2 .v2-resume__x { width: 24px; height: 24px; }
}

/* ============================================================
   BLOG ARTICLE V2 (/blog/google-play-publishing-requirements-2026)
   Long-form article layer: reading layout with sticky TOC rail,
   mobile section chips + progress, and V2 restylings of every
   feature block from the old post (pipeline, capsules, advisor,
   timelines, gantt, readiness checklist, FAQ, sticky CTA).
   Prefix: v2gpr-. Two dark moments: quick answer + final CTA.
   One rose moment: the "Opted In Is Not Added" danger card.
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2gpr-prose ul, .v2gpr-prose ol, .v2gpr-prose figure, .v2gpr-prose figcaption,
.v2gpr-toc__grid, .v2gpr-rail__list, .v2gpr-gate ul, .v2gpr-icon__txt ul,
.v2gpr-q3__card ul, .v2gpr-dd__col ul, .v2gpr-pitfalls, .v2gpr-cover {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Mobile section chips + reading progress ---------- */

.v2gpr-chips {
    position: fixed;
    top: var(--nav-h);
    right: 0;
    left: 0;
    z-index: 55;
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--line);
    transform: translateY(-10px);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.3s cubic-bezier(0.22, 0.8, 0.26, 1), opacity 0.3s ease;
}
.v2gpr-chips.is-on {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.v2gpr-chips__row {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: 9px 16px;
}
.v2gpr-chips__row::-webkit-scrollbar { display: none; }
.v2gpr-chip {
    flex-shrink: 0;
    font-size: 10px;
    padding: 7px 12px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.v2gpr-chip.is-active {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}
.v2gpr-chips__track {
    position: relative;
    height: 2px;
    margin-top: -1px;
}
.v2gpr-chips__track i {
    display: block;
    height: 2px;
    width: 0;
    background: var(--go);
    transition: width 0.15s linear;
}
@media (min-width: 961px) {
    .v2gpr-chips { display: none; }
}

/* ---------- Hero ---------- */

.v2gpr-hero {
    background: var(--paper);
    padding: calc(var(--nav-h) + clamp(30px, 4.5vw, 52px)) 0 clamp(8px, 1.5vw, 16px);
}
.v2gpr-crumbs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: var(--faint);
    margin-bottom: clamp(22px, 3vw, 34px);
}
.v2gpr-crumbs a {
    color: var(--slate);
    text-decoration: none;
}
.v2 .v2gpr-crumbs a {
    background-image: linear-gradient(var(--go), var(--go));
    background-size: 0% 1.5px;
    background-position: 100% 100%;
    background-repeat: no-repeat;
    transition: background-size .28s cubic-bezier(.22, 1, .36, 1), color .2s ease !important;
}
.v2gpr-crumbs a:hover { color: var(--go-deep); background-size: 100% 1.5px; }
.v2gpr-crumbs__here { color: var(--faint); }
.v2gpr-hero__head { max-width: 830px; }
.v2gpr-hero__head .v2-eyebrow svg { display: inline-block; vertical-align: -3px; } /* keep the icon on the same line as the eyebrow text */
.v2gpr-hero__title {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.95rem, 1.25rem + 2.7vw, 3.1rem);
    line-height: 1.06;
    letter-spacing: -0.025em;
    color: var(--ink);
    text-wrap: balance;
    margin-top: 14px;
}
.v2gpr-hero__lead {
    margin-top: 18px;
    max-width: 780px;
}
.v2gpr-byline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 22px;
    margin-top: 24px;
}
.v2gpr-byline__who {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}
.v2gpr-byline__who img {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    object-fit: cover;
    object-position: top;
    border: 1px solid var(--line);
    display: block;
}
.v2gpr-byline__who span { font-size: 14px; color: var(--slate); }
.v2gpr-byline__who b { color: var(--ink); font-weight: 650; }
/* Smooth author byline hover: avatar pops + name goes green + underline (exempt from reduced-motion). */
.v2 .v2gpr-byline__who img { transition: transform .3s cubic-bezier(.34, 1.56, .64, 1), border-color .25s ease, box-shadow .3s ease !important; }
.v2 .v2gpr-byline__who b { transition: color .22s ease !important; }
.v2gpr-byline__who:hover img {
    transform: scale(1.08);
    border-color: var(--go);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--go) 20%, transparent);
}
.v2gpr-byline__who:hover b { color: var(--go-deep); text-decoration: underline; text-underline-offset: 3px; }
.v2gpr-byline__meta { font-size: 10.5px; color: var(--faint); }
.v2gpr-byline__meta span { white-space: nowrap; }
.v2gpr-byline__fresh {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 5px 11px;
    white-space: nowrap;
}
.v2gpr-byline__fresh svg { width: 13px; height: 13px; position: relative; top: -1px; } /* nudge onto the text's optical centre */
.v2gpr-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: clamp(24px, 3.5vw, 34px);
    max-width: 830px;
}
.v2gpr-fact {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px;
}
.v2gpr-fact b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 20px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2gpr-fact .v2-mono { display: block; margin-top: 5px; font-size: 9.5px; }
.v2gpr-cover { margin: clamp(28px, 4vw, 42px) 0 0; }
.v2gpr-cover img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 18px;
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 24px 48px -22px rgba(10, 16, 23, 0.14);
}
/* Cover that shares its hero with a width-capped signature board (adv, apk).
   The plain .v2gpr-cover fills the 1120px container, so on those posts the
   image overhangs the 830px facts row and the 900-920px board and the hero
   reads as three different columns. --v2coverw is set inline per post to
   that post's board width. */
.v2gpr-cover--fit { max-width: var(--v2coverw, 900px); }
/* Hero entrance */
.v2gpr-hero.v2-anim .v2-eyebrow,
.v2gpr-hero.v2-anim .v2gpr-hero__title,
.v2gpr-hero.v2-anim .v2gpr-hero__lead,
.v2gpr-hero.v2-anim .v2gpr-byline,
.v2gpr-hero.v2-anim .v2gpr-cover {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gpr-hero.v2-anim .v2gpr-hero__title { transition-delay: 0.06s; }
.v2gpr-hero.v2-anim .v2gpr-hero__lead { transition-delay: 0.12s; }
.v2gpr-hero.v2-anim .v2gpr-byline { transition-delay: 0.18s; }
.v2gpr-hero.v2-anim .v2gpr-cover { transition-delay: 0.3s; }
.v2gpr-hero.v2-anim .v2gpr-fact {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(0.18s + var(--d, 0s));
}
.v2gpr-hero.is-in .v2-eyebrow,
.v2gpr-hero.is-in .v2gpr-hero__title,
.v2gpr-hero.is-in .v2gpr-hero__lead,
.v2gpr-hero.is-in .v2gpr-byline,
.v2gpr-hero.is-in .v2gpr-cover,
.v2gpr-hero.is-in .v2gpr-fact {
    opacity: 1;
    transform: none;
}

/* ---------- Reading layout: rail + article ---------- */

.v2gpr-zone { padding: clamp(26px, 4vw, 44px) 0 clamp(56px, 7vw, 88px); }
.v2gpr-layout {
    display: grid;
    grid-template-columns: 264px minmax(0, 1fr);
    gap: clamp(36px, 5vw, 60px);
    align-items: start;
}
.v2gpr-rail__stick {
    position: sticky;
    top: calc(var(--nav-h) + 24px);
    padding-bottom: 6px;
}
.v2gpr-rail__label { margin-bottom: 10px; }
.v2gpr-rail__list li a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.45;
    color: var(--slate);
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2gpr-rail__list li a .v2-mono {
    font-size: 9.5px;
    width: 18px;
    flex-shrink: 0;
}
.v2gpr-rail__list li a { position: relative; }
.v2 .v2gpr-rail__list li a {
    transition: color .2s ease, background-color .26s ease, padding-right .26s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2gpr-rail__list li a::before {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: 3px;
    height: 0;
    border-radius: 3px;
    background: var(--go);
    transform: translateY(-50%);
    transition: height .3s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2gpr-rail__list li a:hover {
    color: var(--ink);
    background: var(--mist);
    padding-right: 15px;
}
.v2gpr-rail__list li a:hover::before { height: 58%; }
.v2gpr-rail__list li a:hover .v2-mono { color: var(--go-deep); }
.v2gpr-rail__list li a.is-active {
    background: var(--mist);
    color: var(--ink);
    font-weight: 600;
}
.v2gpr-rail__list li a.is-active .v2-mono { color: var(--go-deep); }
.v2gpr-rail__cta {
    margin-top: 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px;
}
.v2gpr-rail__cta p { margin-bottom: 7px; font-size: 9.5px; }
.v2gpr-rail__cta b {
    display: block;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.45;
    margin-bottom: 10px;
}
.v2gpr-rail__cta a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
}
.v2gpr-rail__cta a .v2-ic { width: 15px; height: 15px; }
.v2gpr-rail__cta a:hover { text-decoration: underline; }

/* Hover animation for the rail CTA card (reduced-motion-exempt via .v2 specificity) */
.v2 .v2gpr-rail__cta {
    will-change: transform;
    transition-property: transform, box-shadow, border-color !important;
    transition-duration: .32s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2gpr-rail__cta:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--go) 40%, var(--line));
    box-shadow: 0 22px 42px -22px rgba(10, 16, 23, 0.28);
}
.v2 .v2gpr-rail__cta a .v2-ic {
    transition: transform .28s cubic-bezier(.34, 1.56, .64, 1) !important;
}
.v2gpr-rail__cta a:hover .v2-ic { transform: translateX(-3px); }

/* ---------- Article prose ---------- */

.v2gpr-article { min-width: 0; counter-reset: gprsec; }
.v2gpr-prose > p {
    font-size: 16.5px;
    line-height: 1.85;
    color: var(--slate);
    margin: 18px 0;
    text-wrap: pretty;
}
.v2gpr-prose strong, .v2gpr-prose b { color: var(--ink); font-weight: 650; }
.v2gpr-prose a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(11, 138, 71, 0.3);
    text-underline-offset: 3px;
}
.v2 .v2gpr-prose a { transition: color .2s ease, text-decoration-color .22s ease, text-underline-offset .22s ease !important; }
.v2gpr-prose a:hover { color: var(--go); text-decoration-color: var(--go); text-underline-offset: 5px; }
/* CTA buttons rendered inside the prose must keep the FULL button transition
   (transform + box-shadow), not the prose-link transition that resets them. */
.v2 .v2gpr-prose a.v2-btn {
    text-decoration: none;
    transition-property: background-color, border-color, color, transform, box-shadow !important;
    transition-duration: .28s !important;
    transition-timing-function: cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2gpr-prose a.v2-btn:active { transition-duration: .08s !important; }
/* Keep the primary button text white on hover (the prose a:hover turns links green). */
.v2 .v2gpr-prose a.v2-btn--primary,
.v2 .v2gpr-prose a.v2-btn--primary:hover { color: #FFFFFF; }
.v2gpr-prose code {
    font-family: var(--font-mono);
    font-size: 0.82em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 2px 7px;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.v2gpr-h2 {
    counter-increment: gprsec;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.48rem, 1.2rem + 1.1vw, 1.9rem);
    line-height: 1.16;
    letter-spacing: -0.018em;
    color: var(--ink);
    text-wrap: balance;
    margin: 58px 0 18px;
    padding-top: 30px;
    border-top: 1px solid var(--line);
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2gpr-h2::before {
    content: counter(gprsec, decimal-leading-zero);
    display: block;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    color: var(--faint);
    margin-bottom: 12px;
}
.v2gpr-h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 19.5px;
    letter-spacing: -0.014em;
    line-height: 1.3;
    color: var(--ink);
    margin: 36px 0 12px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2gpr-prose > ul:not([class]) {
    margin: 16px 0;
}
.v2gpr-prose > ul:not([class]) > li {
    position: relative;
    padding-right: 22px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--slate);
    margin: 10px 0;
}
.v2gpr-prose > ul:not([class]) > li::before {
    content: '';
    position: absolute;
    right: 3px;
    top: 10px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: #C9D2DA;
}
.v2gpr-prose figcaption {
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
    margin: 10px 4px 0;
}

/* Marker dots used across lists and chips */
.v2gpr-mk {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    border-radius: 50%;
    background-color: var(--mist);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 9px;
    vertical-align: -3px;
}
.v2gpr-mk.is-check {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2gpr-mk.is-cross {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 3l6 6M9 3l-6 6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2gpr-mk.is-alert {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M6 2.6v4.2M6 9.2v.2' stroke='%230A1017' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2gpr-mk.is-info {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M6 5.4v4M6 2.6v.2' stroke='%2355616D' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Pipeline artifact ---------- */

.v2gpr-pipe {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px 18px;
    margin: 8px 0 26px;
}
.v2gpr-pipe__label {
    display: flex;
    align-items: center;
    gap: 8px;
}
.v2gpr-pipe__label svg { width: 15px; height: 15px; color: var(--slate); }
.v2gpr-pipe__flow {
    display: flex;
    align-items: stretch;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: 18px 0 6px;
}
.v2gpr-pipe__flow::-webkit-scrollbar { display: none; }
.v2gpr-pipe__step {
    flex: 1 0 0;
    min-width: 98px;
    text-align: center;
    position: relative;
    padding: 0 6px;
}
.v2gpr-pipe__step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 21px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: var(--line);
    z-index: 0;
}
.v2gpr-pipe__dot {
    position: relative;
    z-index: 1;
    width: 42px;
    height: 42px;
    margin: 0 auto 10px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2gpr-pipe__dot svg { width: 20px; height: 20px; }
.v2gpr-pipe__step.is-key .v2gpr-pipe__dot {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.35);
    color: var(--go);
    box-shadow: 0 0 0 4px rgba(11, 138, 71, 0.08);
}
.v2gpr-pipe__n { display: block; font-size: 9px; margin-bottom: 3px; }
.v2gpr-pipe__t {
    display: block;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2gpr-pipe__step.is-key .v2gpr-pipe__t { color: var(--go-deep); }
.v2gpr-pipe__s { display: block; font-size: 10.5px; color: var(--faint); margin-top: 3px; }
.v2gpr-pipe__foot {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2gpr-pipe__foot svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 3px; color: var(--faint); }
.v2gpr-pipe.v2-anim .v2gpr-pipe__step {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: var(--d, 0s);
}
.v2gpr-pipe.is-in .v2gpr-pipe__step { opacity: 1; transform: none; }

/* ---------- Quick answer (dark moment #1) ---------- */

.v2gpr-qa {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 26px 0;
}
.v2gpr-qa__tag {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #3ECF81;
    margin-bottom: 13px;
}
.v2gpr-qa__tag i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #3ECF81;
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2gpr-qa__text {
    color: #E7EDF2;
    font-size: 16.5px;
    line-height: 1.8;
    font-weight: 450;
}
.v2gpr-qa__text strong { color: #fff; font-weight: 700; }
.v2gpr-qa__text strong.is-go { color: #3ECF81; }

/* ---------- Table of contents card ---------- */

.v2gpr-toc {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px;
    margin: 28px 0;
}
.v2gpr-toc__label { margin-bottom: 12px; }
/* An inline icon in the TOC label has no intrinsic size, so without this it
   renders at its viewBox aspect against the container width - a giant grey
   hamburger above "What this post covers". Each post used to re-scope this
   for itself (.v2rr-toc, .v2api-toc, .v2adv-toc) and every new post that
   forgot shipped the bug, so the rule now lives on the shared primitive and
   covers every post automatically. Those per-post copies are redundant. */
.v2gpr-toc .v2gpr-toc__label { display: flex; align-items: center; gap: 8px; }
.v2gpr-toc .v2gpr-toc__label svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2gpr-toc__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px 20px;
}
.v2gpr-toc__grid a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 8px;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--slate);
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2gpr-toc__grid a:hover { background: var(--paper); color: var(--ink); }
.v2gpr-toc__grid a .v2-mono { font-size: 9.5px; width: 18px; flex-shrink: 0; }

/* ---------- Step ledger (sequence + policy breakdown) ---------- */

.v2gpr-seq { margin: 22px 0; }
.v2gpr-seq__item {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 16px;
    padding: 16px 0;
    border-top: 1px solid var(--line);
}
.v2gpr-seq__item:first-child { border-top: none; padding-top: 4px; }
.v2gpr-seq__num {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    color: var(--ink);
}
.v2gpr-seq__item.is-key .v2gpr-seq__num {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2gpr-seq__num.is-ic { color: var(--slate); }
.v2gpr-seq__num.is-ic svg { width: 19px; height: 19px; }
.v2gpr-seq__body h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin-bottom: 6px;
    line-height: 1.35;
}
.v2gpr-seq__body p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }

/* ---------- Callout family: tip / note / warn / danger ---------- */

.v2gpr-tip, .v2gpr-note, .v2gpr-warn, .v2gpr-danger {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    border-radius: 14px;
    padding: 18px 20px;
    margin: 22px 0;
}
.v2gpr-tip__ic, .v2gpr-note__ic, .v2gpr-warn__ic, .v2gpr-danger__ic {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2gpr-tip__ic svg, .v2gpr-note__ic svg, .v2gpr-warn__ic svg, .v2gpr-danger__ic svg {
    width: 20px;
    height: 20px;
}
.v2gpr-tip__label, .v2gpr-note__label, .v2gpr-warn__label, .v2gpr-danger__label { margin-bottom: 6px; }
.v2gpr-tip p, .v2gpr-note p, .v2gpr-warn p, .v2gpr-danger p {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2gpr-tip {
    background: var(--paper);
    border: 1px solid var(--line);
}
.v2gpr-tip__ic { background: var(--go-tint); color: var(--go); }
.v2gpr-tip__label { color: var(--go-deep); }
.v2gpr-note {
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2gpr-note__ic { background: var(--paper); color: var(--slate); border: 1px solid var(--line); }
.v2gpr-note__label { color: var(--ink); }
.v2gpr-warn {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
}
.v2gpr-warn__ic { background: var(--mist); color: var(--ink); }
.v2gpr-warn__label { color: var(--ink); }
.v2gpr-danger {
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-right: 3px solid #B42318;
}
.v2gpr-danger__ic { background: rgba(180, 35, 24, 0.08); color: #B42318; }
.v2gpr-danger__label { color: #B42318; }

/* ---------- $25 fee plaque ---------- */

.v2gpr-fee {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 26px;
    align-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 28px;
    margin: 24px 0;
}
.v2gpr-fee__num { text-align: center; }
.v2gpr-fee__num b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 50px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
}
.v2gpr-fee__num .v2-mono { display: block; margin-top: 7px; }
.v2gpr-fee__txt { border-right: 1px solid var(--line); padding-right: 26px; }
.v2gpr-fee__txt p { font-size: 15px; line-height: 1.7; color: var(--slate); }

/* ---------- Payment methods ---------- */

.v2gpr-pay {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}
.v2gpr-pay__box {
    border-radius: 14px;
    padding: 18px 20px;
    border: 1px solid var(--line);
}
.v2gpr-pay__box.is-ok {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2gpr-pay__box.is-no { background: var(--mist); }
.v2gpr-pay__box > .v2-mono { display: block; margin-bottom: 12px; }
.v2gpr-pay__box.is-ok > .v2-mono { color: var(--go-deep); }
.v2gpr-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 11px;
    margin: 0 0 6px 6px;
}
.v2gpr-chip::before {
    content: '';
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 8px;
}
.v2gpr-chip.is-ok::before {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2gpr-chip.is-no { color: var(--slate); }
.v2gpr-chip.is-no::before {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 3l6 6M9 3l-6 6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Personal vs organization cards ---------- */

.v2gpr-acct {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 28px 0 24px;
}
.v2gpr-acct__card {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 22px 20px;
}
.v2gpr-acct__tag {
    position: absolute;
    top: -11px;
    right: 18px;
    background: var(--ink);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 9.5px;
}
.v2gpr-acct__card h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2gpr-acct__card h3 svg { width: 18px; height: 18px; color: var(--slate); flex-shrink: 0; }
.v2gpr-acct__who { font-size: 13px; color: var(--faint); margin-bottom: 10px; }
.v2gpr-acct__row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 0;
    border-top: 1px solid #EFF2F4;
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2gpr-acct__row:first-of-type { border-top: none; }
.v2gpr-acct__row .v2gpr-mk { margin-top: 3px; }
.v2gpr-acct__row.is-win strong { color: var(--go-deep); }

/* ---------- Interactive tool shells (advisor) ---------- */

.v2gpr-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 28px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -20px rgba(10, 16, 23, 0.14);
}
.v2gpr-tool__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 22px 26px;
}
.v2gpr-tool__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 5px 11px;
    font-size: 9.5px;
}
.v2gpr-tool__tag svg { width: 13px; height: 13px; }
.v2gpr-tool__head h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 13px 0 5px;
}
.v2gpr-tool__head p { font-size: 14px; color: var(--slate); }
.v2gpr-tool__body { padding: 22px 26px; }
.v2gpr-tool__label { display: block; margin-bottom: 8px; }
.v2gpr-select { position: relative; }
.v2gpr-select::after {
    content: '';
    position: absolute;
    left: 19px;
    top: 44%;
    width: 9px;
    height: 9px;
    border-left: 2px solid var(--slate);
    border-bottom: 2px solid var(--slate);
    transform: translateY(-50%) rotate(-45deg);
    pointer-events: none;
}
.v2 .v2gpr-select select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    padding: 13px 16px 13px 44px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.v2 .v2gpr-select select:hover { border-color: #C9D2DA; }
.v2 .v2gpr-select select:focus {
    outline: none;
    border-color: var(--go);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--go-tint);
}
.v2gpr-tool__result { margin-top: 16px; }
.v2gpr-tool__empty {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 12px;
    color: var(--slate);
    font-size: 14px;
}
.v2gpr-tool__empty svg { width: 17px; height: 17px; color: var(--faint); flex-shrink: 0; }
.v2gpr-rc {
    display: none;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
}
.v2gpr-rc.show { display: block; animation: v2gprIn 0.35s ease; }
@keyframes v2gprIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}
.v2gpr-rc__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.v2gpr-rc__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2gpr-rc__ic svg { width: 21px; height: 21px; }
.v2gpr-rc__head h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2gpr-rc__tag {
    display: inline-block;
    font-size: 9px;
    border-radius: 6px;
    padding: 3px 8px;
}
.v2gpr-rc__tag.is-go {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2gpr-rc__tag.is-must {
    color: #fff;
    background: var(--ink);
}
.v2gpr-rc p { font-size: 14px; line-height: 1.7; color: var(--slate); margin-bottom: 10px; }
.v2gpr-rc p:last-child { margin-bottom: 0; }

/* ---------- Claim vs fact split (5-day myth) ---------- */

.v2gpr-myth {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 24px 0;
}
.v2gpr-myth__side { padding: 20px 22px; }
.v2gpr-myth__side.is-wrong {
    background: var(--mist);
    border-left: 1px solid var(--line);
}
.v2gpr-myth__side.is-right { background: var(--go-tint); }
.v2gpr-myth__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.v2gpr-myth__side.is-right .v2gpr-myth__tag { color: var(--go-deep); }
.v2gpr-myth__side h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15.5px;
    color: var(--ink);
    margin: 11px 0 7px;
    line-height: 1.35;
}
.v2gpr-myth__side p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Two-layer gates ---------- */

.v2gpr-gates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2gpr-gate {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
}
.v2gpr-gate__num {
    display: inline-block;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    border-radius: 6px;
    padding: 3px 10px;
    font-size: 9.5px;
    margin-bottom: 12px;
}
.v2gpr-gate h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2gpr-gate > p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin-bottom: 10px; }
.v2gpr-gate ul li {
    position: relative;
    padding-right: 17px;
    font-size: 13px;
    line-height: 1.7;
    color: var(--slate);
    margin-bottom: 4px;
}
.v2gpr-gate ul li::before {
    content: '';
    position: absolute;
    right: 3px;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #C9D2DA;
}

/* ---------- Malware bars ---------- */

.v2gpr-bars {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    margin: 24px 0;
}
.v2gpr-bars__title { display: flex; align-items: center; gap: 8px; }
.v2gpr-bars__title svg { width: 15px; height: 15px; color: var(--slate); }
.v2gpr-bars__sub { font-size: 13px; color: var(--slate); margin: 6px 0 18px; }
.v2gpr-bars__row { margin-bottom: 14px; }
.v2gpr-bars__row:last-of-type { margin-bottom: 0; }
.v2gpr-bars__lab {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13.5px;
    margin-bottom: 7px;
}
.v2gpr-bars__lab span { font-weight: 600; color: var(--slate); }
.v2gpr-bars__lab b.is-bad {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 14.5px;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2gpr-bars__lab b.is-good { font-size: 10px; color: var(--go-deep); font-weight: 600; }
.v2gpr-bars__track {
    height: 18px;
    background: #E9EDF1;
    border-radius: 9px;
    overflow: hidden;
}
.v2gpr-bars__fill {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 100%;
    border-radius: 9px;
    padding-left: 9px;
    font-style: normal;
    font-size: 10px;
    font-weight: 700;
}
.v2gpr-bars__fill.is-bad { background: var(--ink); color: rgba(255, 255, 255, 0.85); }
.v2gpr-bars__fill.is-good { background: var(--go); }
.v2gpr-bars.is-in .v2gpr-bars__fill { animation: v2gprBar 0.9s cubic-bezier(0.22, 0.8, 0.26, 1); }
@keyframes v2gprBar { from { width: 0; } }
.v2gpr-bars__note {
    margin-top: 16px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- Rollout timeline (vertical) ---------- */

.v2gpr-vtl { margin: 24px 0 30px; padding-right: 6px; }
.v2gpr-vtl__item {
    position: relative;
    padding: 0 32px 22px 0;
    border-right: 2px solid #E9EDF1;
}
.v2gpr-vtl__item:last-child { border-right-color: transparent; padding-bottom: 0; }
.v2gpr-vtl__dot {
    position: absolute;
    right: -10px;
    top: 0;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--paper);
    border: 3px solid #D6DDE3;
}
.v2gpr-vtl__item.is-now .v2gpr-vtl__dot {
    border-color: var(--go);
    box-shadow: 0 0 0 4px var(--go-tint);
}
.v2gpr-vtl__item.is-enforce .v2gpr-vtl__dot {
    background: var(--ink);
    border-color: var(--ink);
    box-shadow: 0 0 0 4px rgba(10, 16, 23, 0.1);
}
.v2gpr-vtl__date {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gpr-vtl__pill {
    font-size: 8.5px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    padding: 2px 8px;
}
.v2gpr-vtl__pill.is-now {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2gpr-vtl__pill.is-enforce { color: #fff; background: var(--ink); }
.v2gpr-vtl__item h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gpr-vtl__item > p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Distribution cards ---------- */

.v2gpr-dist {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin: 24px 0;
}
.v2gpr-dist__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
}
.v2gpr-dist__card.is-free {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2gpr-dist__card h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    color: var(--ink);
}
.v2gpr-dist__card h3 svg { width: 18px; height: 18px; color: var(--slate); flex-shrink: 0; }
.v2gpr-dist__card.is-free h3 svg { color: var(--go); }
.v2gpr-dist__price { margin: 10px 0 8px; }
.v2gpr-dist__price b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2gpr-dist__price small { font-size: 13px; color: var(--slate); margin-right: 7px; }
.v2gpr-dist__row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 8px 0;
    border-top: 1px solid rgba(10, 16, 23, 0.06);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2gpr-dist__row:first-of-type { border-top: none; }
.v2gpr-dist__row .v2gpr-mk { margin-top: 2px; }
.v2gpr-dist__card.is-free .v2gpr-mk.is-check { background-color: #fff; }
.v2gpr-dist__card.is-free .v2gpr-mk.is-info { background-color: #fff; }

/* ---------- Inline fact strip ---------- */

.v2gpr-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0;
}
.v2gpr-statc {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 15px 12px;
    text-align: center;
}
.v2gpr-statc b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 21px;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.v2gpr-statc b .is-go { color: var(--go); }
.v2gpr-statc > span {
    display: block;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--slate);
    margin-top: 7px;
}

/* ---------- API level milestones ---------- */

.v2gpr-api {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 26px 20px 20px;
    margin: 24px 0;
}
.v2gpr-api__track {
    position: relative;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding-top: 30px;
}
.v2gpr-api__track::before {
    content: '';
    position: absolute;
    top: 37px;
    right: 7%;
    left: 7%;
    height: 3px;
    border-radius: 2px;
    background: linear-gradient(-90deg, var(--go) 0%, var(--go) 34%, #BBE3CD 34%, #BBE3CD 66%, #E9EDF1 66%, #E9EDF1 100%);
}
.v2gpr-api__mil {
    position: relative;
    flex: 1;
    text-align: center;
    z-index: 1;
}
.v2gpr-api__badge {
    position: absolute;
    top: -30px;
    right: 50%;
    transform: translateX(50%);
    font-size: 8.5px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2gpr-api__badge.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2gpr-api__badge.is-next {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}
.v2gpr-api__dot {
    display: block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    margin: 0 auto 12px;
    background: #E9EDF1;
    border: 3px solid var(--paper);
    box-shadow: 0 0 0 2px #E9EDF1;
}
.v2gpr-api__mil.is-done .v2gpr-api__dot {
    background: var(--go);
    box-shadow: 0 0 0 2px var(--go);
}
.v2gpr-api__mil.is-next .v2gpr-api__dot {
    background: var(--paper);
    box-shadow: 0 0 0 2px var(--ink);
}
.v2gpr-api__mil b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 15px;
    color: var(--ink);
}
.v2gpr-api__os { display: block; font-size: 11.5px; color: var(--slate); margin-top: 2px; }
.v2gpr-api__date { display: block; font-size: 9px; margin-top: 5px; }

/* ---------- Asset spec cards ---------- */

.v2gpr-asset {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2gpr-asset__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2gpr-asset__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.18);
}
.v2gpr-asset__card h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 10px;
}
.v2gpr-asset__card h4 svg { width: 18px; height: 18px; color: var(--slate); flex-shrink: 0; }
.v2gpr-spec {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    padding: 7px 0;
    border-top: 1px dashed #E9EDF1;
    font-size: 13px;
}
.v2gpr-spec:first-of-type { border-top: none; }
.v2gpr-spec .k { color: var(--slate); }
.v2gpr-spec .v { color: var(--ink); font-weight: 650; text-align: left; }

/* ---------- Evidence screenshot frame ---------- */

.v2gpr-shot { margin: 28px 0; }
.v2gpr-shot > a {
    display: block;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    cursor: zoom-in;
    text-decoration: none;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2gpr-shot > a:hover {
    border-color: #C9D2DA;
    box-shadow: 0 16px 36px -20px rgba(10, 16, 23, 0.2);
}
.v2gpr-shot__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2gpr-shot__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
    flex-shrink: 0;
}
.v2gpr-shot__bar > .v2-mono { font-size: 9.5px; }
.v2gpr-shot__zoom {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 9.5px;
    color: var(--slate);
    white-space: nowrap;
}
.v2gpr-shot__zoom svg { width: 13px; height: 13px; }
.v2gpr-shot img { display: block; width: 100%; height: auto; }

/* ---------- Icon safe-zone mockup ---------- */

.v2gpr-icon {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 26px;
    align-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 26px;
    margin: 24px 0;
}
.v2gpr-icon__stage {
    width: 150px;
    height: 150px;
    border-radius: 16px;
    background: repeating-conic-gradient(#E5E9EC 0% 25%, #F4F6F8 0% 50%) 0 0 / 24px 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2gpr-icon__mask {
    position: relative;
    width: 150px;
    height: 150px;
    border-radius: 30%;
    background: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px -10px rgba(10, 16, 23, 0.35);
}
.v2gpr-icon__corner {
    position: absolute;
    top: 7px;
    left: 7px;
    font-size: 7.5px;
    color: rgba(255, 255, 255, 0.75);
    background: rgba(255, 255, 255, 0.14);
    padding: 2px 6px;
    border-radius: 5px;
}
.v2gpr-icon__safe {
    position: absolute;
    inset: 16%;
    border: 2px dashed rgba(255, 255, 255, 0.55);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.v2gpr-icon__safe svg { width: 40px; height: 40px; }
.v2gpr-icon__txt h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    color: var(--ink);
    margin-bottom: 9px;
}
.v2gpr-icon__txt ul li {
    position: relative;
    padding-right: 16px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
    margin-bottom: 5px;
}
.v2gpr-icon__txt ul li::before {
    content: '';
    position: absolute;
    right: 2px;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #C9D2DA;
}

/* ---------- Do / don't columns ---------- */

.v2gpr-dd {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2gpr-dd__col {
    border-radius: 14px;
    padding: 20px 22px;
    border: 1px solid var(--line);
}
.v2gpr-dd__col.is-no { background: var(--mist); }
.v2gpr-dd__col.is-yes {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2gpr-dd__col > .v2-mono { display: block; margin-bottom: 12px; }
.v2gpr-dd__col.is-yes > .v2-mono { color: var(--go-deep); }
.v2gpr-dd__col li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    margin-bottom: 9px;
}
.v2gpr-dd__col li:last-child { margin-bottom: 0; }
.v2gpr-dd__col li .v2gpr-mk { margin-top: 2px; }
.v2gpr-dd__col.is-yes .v2gpr-mk.is-check { background-color: #fff; }

/* ---------- Declaration cards ---------- */

.v2gpr-decl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2gpr-decl__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2gpr-decl__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.18);
}
.v2gpr-decl__ic {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--mist);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}
.v2gpr-decl__ic svg { width: 20px; height: 20px; }
.v2gpr-decl__card h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14.5px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gpr-decl__card p { font-size: 12.5px; line-height: 1.6; color: var(--slate); }
.v2gpr-decl__req {
    display: inline-block;
    margin-top: 10px;
    font-size: 8.5px;
    letter-spacing: 0.1em;
    border-radius: 5px;
    padding: 3px 8px;
    background: var(--ink);
    color: #fff;
}
.v2gpr-decl__req.is-cond {
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}

/* ---------- Testing tracks ---------- */

.v2gpr-tracks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 28px 0 24px;
}
.v2gpr-track {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 18px 14px;
}
.v2gpr-track.is-key {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25), 0 14px 30px -18px rgba(11, 138, 71, 0.35);
}
.v2gpr-track__badge {
    position: absolute;
    top: -11px;
    right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    font-size: 9px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    padding: 4px 11px;
    white-space: nowrap;
}
/* 2026-08-16: the tt track cards promoted their headings from h4 to
   h3 (an h4 sat directly under an h2 with no h3 between them, which
   left a hole in the document outline). Both selectors are listed so
   any card still using h4 renders identically. */
.v2gpr-track h4,
.v2gpr-track h3.v2gpr-track__h {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2gpr-track h4 svg,
.v2gpr-track h3.v2gpr-track__h svg { width: 17px; height: 17px; color: var(--slate); flex-shrink: 0; }
.v2gpr-track.is-key h4 svg { color: var(--go); }
.v2gpr-track__cap { font-size: 12.5px; color: var(--faint); margin-bottom: 10px; }
.v2gpr-track__row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 5px 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}
.v2gpr-track__row .v2gpr-mk { margin-top: 2px; }
.v2gpr-track__foot {
    margin-top: 12px;
    padding: 11px 0 4px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 9.5px;
}
.v2gpr-track__foot.is-yes { color: var(--go-deep); }
.v2gpr-track__foot.is-no { color: var(--slate); }
.v2gpr-track__foot.is-after { color: var(--faint); }

/* ---------- How-to-pass capsule (speakable) ---------- */

.v2gpr-pass {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 22px 26px;
    margin: 24px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 12px 28px -20px rgba(10, 16, 23, 0.14);
}
.v2gpr-pass__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 12px;
}
.v2gpr-pass__tag svg { width: 16px; height: 16px; color: var(--go); }
.v2gpr-pass__text { font-size: 15.5px; line-height: 1.8; color: var(--slate); }

/* ---------- Questionnaire parts ---------- */

.v2gpr-q3 {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2gpr-q3__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 18px;
}
.v2gpr-q3__n {
    display: inline-block;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 6px;
    padding: 3px 9px;
    font-size: 9.5px;
    margin-bottom: 10px;
}
.v2gpr-q3__card h3,
.v2gpr-q3__card h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2gpr-q3__card ul li {
    position: relative;
    padding-right: 16px;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
    margin-bottom: 5px;
}
.v2gpr-q3__card ul li::before {
    content: '';
    position: absolute;
    right: 2px;
    top: 8px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #C9D2DA;
}

/* ---------- Gantt ---------- */

.v2gpr-gantt {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    margin: 24px 0;
    overflow-x: auto;
}
.v2gpr-gantt__inner { min-width: 560px; }
.v2gpr-gantt__scale {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 14px;
    margin-bottom: 12px;
}
.v2gpr-gantt__weeks {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
    border-bottom: 1px dashed var(--line);
    padding-bottom: 6px;
}
.v2gpr-gantt__row {
    display: grid;
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 10px;
}
.v2gpr-gantt__lab {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
}
.v2gpr-gantt__lab small {
    display: block;
    font-size: 10.5px;
    font-weight: 500;
    color: var(--faint);
    margin-top: 1px;
}
.v2gpr-gantt__track {
    position: relative;
    height: 26px;
    background: #F1F4F6;
    border-radius: 7px;
}
.v2gpr-gantt__bar {
    position: absolute;
    top: 0;
    height: 26px;
    border-radius: 7px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    font-style: normal;
    font-size: 10px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.3);
    color: var(--go-deep);
}
.v2gpr-gantt__bar.is-key {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2gpr-gantt.is-in .v2gpr-gantt__bar {
    animation: v2gprBar 0.8s cubic-bezier(0.22, 0.8, 0.26, 1) backwards;
    animation-delay: var(--d, 0s);
}
.v2gpr-gantt__total {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    color: var(--slate);
}
.v2gpr-gantt__total svg { width: 15px; height: 15px; color: var(--go); flex-shrink: 0; margin-top: 3px; }

/* A bar's width encodes its DURATION, so a label longer than its own bar was
   cut mid-word - 3 of 5 bars clipped in English, 4 of 5 once translated.
   _s_timeline.blade.php moves such a label out of the bar into this sibling
   and positions it beside the bar, which fixes every language at once. */
.v2gpr-gantt__out {
    position: absolute;
    top: 0;
    height: 26px;
    display: flex;
    align-items: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--slate);
    white-space: nowrap;
    pointer-events: none;
}

/* ---------- Pitfall list ---------- */

.v2gpr-pitfalls { margin: 16px 0 22px; }
.v2gpr-pitfalls li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--slate);
    padding: 8px 0;
}
.v2gpr-pitfalls li .v2gpr-mk { margin-top: 4px; }

/* ---------- Readiness checklist ---------- */

.v2gpr-ready {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 28px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -20px rgba(10, 16, 23, 0.14);
}
.v2gpr-ready__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 20px 24px;
}
.v2gpr-ready__head h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin-bottom: 14px;
}
.v2gpr-ready__head h3 svg { width: 19px; height: 19px; color: var(--slate); flex-shrink: 0; }
.v2gpr-ready__bar {
    height: 10px;
    border-radius: 999px;
    background: #E4E9ED;
    overflow: hidden;
}
.v2gpr-ready__fill {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--go);
    transition: width 0.4s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gpr-ready__pct { margin-top: 9px; font-size: 10px; }
.v2gpr-ready__pct b { color: var(--go-deep); }
.v2gpr-ready__body { padding: 8px 18px 12px; }
.v2gpr-ck {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 12px 8px;
    border-bottom: 1px solid #F0F3F5;
    cursor: pointer;
    border-radius: 8px;
    transition: background 0.18s ease;
}
.v2gpr-ck:last-child { border-bottom: none; }
.v2 .v2gpr-ck {
    transition: background .2s ease, padding-right .26s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2gpr-ck:hover { background: var(--mist); padding-right: 13px; }
.v2 .v2gpr-ck__box {
    transition: border-color .2s ease, background .2s ease, transform .28s cubic-bezier(.34, 1.56, .64, 1) !important;
}
.v2gpr-ck:hover .v2gpr-ck__box { border-color: var(--go); transform: scale(1.08); }
.v2gpr-ck input { display: none; }
.v2gpr-ck__box {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    border: 2px solid #C9D2DA;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin-top: 1px;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.v2gpr-ck__box svg {
    width: 12px;
    height: 12px;
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 0.2s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.v2gpr-ck input:checked + .v2gpr-ck__box {
    background: var(--go);
    border-color: var(--go);
}
.v2gpr-ck input:checked + .v2gpr-ck__box svg { opacity: 1; transform: scale(1); }
.v2gpr-ck__txt { font-size: 14px; line-height: 1.55; color: var(--slate); }
.v2gpr-ck__txt b { color: var(--ink); font-weight: 700; }
.v2gpr-ck input:checked ~ .v2gpr-ck__txt {
    color: var(--faint);
    text-decoration: line-through;
}
.v2gpr-ck input:checked ~ .v2gpr-ck__txt b { color: var(--faint); }
.v2gpr-ready__msg {
    margin: 2px 18px 18px;
    padding: 13px 16px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2gpr-ready__msg b { color: var(--ink); }
.v2gpr-ready__msg.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2gpr-ready__msg.is-done b { color: var(--go-deep); }

/* ---------- 2026 change cards ---------- */

.v2gpr-changes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2gpr-change {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2gpr-change:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16);
}
.v2gpr-change__ic {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--mist);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2gpr-change__ic svg { width: 19px; height: 19px; }
.v2gpr-change h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14px;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2gpr-change p { font-size: 12.5px; line-height: 1.55; color: var(--slate); }
.v2gpr-change__date {
    display: inline-block;
    margin-top: 8px;
    font-size: 8.5px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    border-radius: 5px;
    padding: 2px 8px;
}

/* ---------- Video card (click-to-play) ---------- */

.v2gpr-video {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0 28px;
}
.v2gpr-video__head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}
.v2gpr-video__ic {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2gpr-video__ic svg { width: 20px; height: 20px; }
.v2gpr-video__head h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 2px;
}
.v2gpr-video__head p { font-size: 13px; line-height: 1.5; color: var(--slate); }
.v2gpr-video__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--ink);
    cursor: pointer;
}
.v2gpr-video__frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0.88;
}
.v2gpr-video__play {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--go);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: v2Pulse 2.4s ease-out infinite;
    transition: transform 0.2s ease;
}
.v2gpr-video__frame:hover .v2gpr-video__play { transform: translate(50%, -50%) scale(1.06); }
.v2gpr-video__play svg { width: 26px; height: 26px; margin-right: 3px; }
.v2gpr-video__dur {
    position: absolute;
    bottom: 10px;
    left: 12px;
    font-size: 9px;
    color: rgba(255, 255, 255, 0.85);
    background: rgba(0, 0, 0, 0.45);
    padding: 3px 8px;
    border-radius: 6px;
}
.v2gpr-video__frame.is-playing { cursor: default; }
.v2gpr-video__frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
.v2gpr-video__tip {
    display: flex;
    gap: 10px;
    padding: 14px 18px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2gpr-video__tip svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; color: var(--slate); }

/* ---------- PTL highlights + plan cards ---------- */

.v2gpr-hl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0;
}
.v2gpr-hl__item {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
}
.v2gpr-hl__ic {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--go-tint);
    color: var(--go);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2gpr-hl__ic svg { width: 18px; height: 18px; }
.v2gpr-hl__item div b { display: block; font-size: 14px; font-weight: 700; color: var(--ink); }
.v2gpr-hl__item div span { display: block; font-size: 12px; color: var(--slate); margin-top: 1px; }
.v2gpr-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0 8px;
}
.v2gpr-plan {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 20px 20px;
    text-align: center;
    display: flex;
    flex-direction: column;
}
.v2gpr-plan.is-featured {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25), 0 16px 34px -20px rgba(11, 138, 71, 0.35);
}
.v2gpr-plan__badge {
    position: absolute;
    top: -11px;
    right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 12px;
    white-space: nowrap;
}
.v2gpr-plan__name { font-size: 10px; margin-bottom: 8px; }
.v2gpr-plan__testers {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    color: var(--ink);
}
.v2gpr-plan__price {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 30px;
    letter-spacing: -0.025em;
    color: var(--ink);
    margin: 6px 0 14px;
    font-variant-numeric: tabular-nums;
}
.v2gpr-plan__list {
    text-align: right;
    margin: 0 auto 18px;
    display: grid;
    gap: 3px;
}
.v2gpr-plan__list div {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    padding: 3px 0;
}
.v2gpr-plan__list .v2gpr-mk { margin-top: 2px; }
.v2gpr-plan .v2-btn { width: 100%; margin-top: auto; }

/* ---------- FAQ accordion ---------- */

.v2gpr-faq { margin: 20px 0 8px; }
.v2gpr-faq__item {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    margin-bottom: 10px;
    overflow: hidden;
    transition: border-color 0.2s ease;
}
.v2gpr-faq__item[open] { border-color: #C9D2DA; }
.v2gpr-faq__item summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 15px 18px;
}
.v2gpr-faq__item summary::-webkit-details-marker { display: none; }
.v2gpr-faq__item .gpc-faq-q,
.v2gpr-faq__item .b12-faq-q {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    letter-spacing: -0.01em;
    line-height: 1.45;
    color: var(--ink);
}
.v2gpr-faq__plus {
    position: relative;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
    border-radius: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2gpr-faq__plus i {
    position: absolute;
    top: 50%;
    right: 50%;
    width: 11px;
    height: 2px;
    border-radius: 2px;
    background: var(--slate);
    transform: translate(50%, -50%);
    transition: transform 0.25s ease, background 0.2s ease;
}
.v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
.v2 .v2gpr-faq__plus i { transition: transform .25s cubic-bezier(.22, 1, .36, 1), background .2s ease !important; }
.v2gpr-faq__item[open] .v2gpr-faq__plus i { background: var(--go); }
.v2gpr-faq__item[open] .v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(0deg); }
/* This blog's FAQ drives the icon from .is-open so it syncs with the animated open/close. */
#apkFaqList .v2gpr-faq__item.is-open .v2gpr-faq__plus i { background: var(--go); }
#apkFaqList .v2gpr-faq__item.is-open .v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(0deg); }
#apkFaqList .v2gpr-faq__item[open]:not(.is-open) .v2gpr-faq__plus i { background: var(--slate); }
#apkFaqList .v2gpr-faq__item[open]:not(.is-open) .v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
/* Site-wide accordion (home_v2/_accordion): flip back to plus as soon as an
   item starts closing, not when the close animation ends. */
.v2gpr-faq__item.is-closing .v2gpr-faq__plus i { background: var(--slate); }
.v2gpr-faq__item.is-closing .v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
/* Animated element (padding-free vertically) so max-height collapses fully; bottom space on the inner. */
.v2gpr-faq__a { padding: 0 18px; }
.v2gpr-faq__a > :last-child { padding-bottom: 16px; margin-bottom: 0; }
#apkFaqList .v2gpr-faq__a {
    transition-property: max-height, opacity !important;
    transition-duration: .22s !important;
    transition-timing-function: cubic-bezier(.22, .8, .26, 1) !important;
}
.v2gpr-faq__a p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }

/* ---------- Bottom line + official docs ---------- */

.v2gpr-bottom {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 18px;
    padding: 24px 28px;
    margin: 24px 0;
}
.v2gpr-bottom__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 12px;
}
.v2gpr-bottom__tag svg { width: 16px; height: 16px; color: var(--go); }
.v2gpr-bottom__text {
    font-size: 16px;
    line-height: 1.8;
    font-weight: 450;
    color: var(--ink);
}
.v2gpr-bottom__text strong { font-weight: 700; }
.v2gpr-docs {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
    margin: 28px 0 8px;
}
.v2gpr-docs__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
}
.v2gpr-docs__label svg { width: 16px; height: 16px; color: var(--slate); }
/* Inline "See pricing plans" CTA: real SVG arrow, smooth colour + arrow slide + underline. */
.v2apk-inline-cta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
    white-space: nowrap;
}
.v2apk-inline-cta span { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; }
.v2apk-inline-cta svg { width: 15px; height: 15px; flex: 0 0 auto; }
.v2 .v2apk-inline-cta { transition: color .22s ease !important; }
.v2 .v2apk-inline-cta span { transition: text-decoration-color .22s ease !important; }
.v2 .v2apk-inline-cta svg { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2apk-inline-cta:hover { color: var(--go); }
.v2apk-inline-cta:hover span { text-decoration-color: var(--go); }
.v2apk-inline-cta:hover svg { transform: translateX(-5px); }

.v2gpr-docs__list { display: grid; gap: 2px; }
.v2gpr-docs__list a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 8px;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: none;
    transition: background 0.18s ease;
}
.v2gpr-docs__list a:hover { background: var(--paper); }
.v2gpr-docs__list a svg { width: 14px; height: 14px; flex-shrink: 0; }

/* ---------- Author band ---------- */

.v2gpr-author {
    max-width: 880px;
    margin: 0 auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 28px 30px;
}
.v2gpr-author__main {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}
.v2gpr-author__photo { flex-shrink: 0; display: block; }
.v2gpr-author__photo img {
    width: 76px;
    height: 76px;
    border-radius: 16px;
    object-fit: cover;
    object-position: top;
    border: 1px solid var(--line);
    display: block;
}
.v2gpr-author__kicker { margin-bottom: 6px; }
.v2gpr-author__body h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.015em;
}
.v2gpr-author__body h4 a { color: var(--ink); text-decoration: none; }
.v2 .v2gpr-author__body h4 a {
    background-image: linear-gradient(var(--go), var(--go));
    background-size: 0% 2px;
    background-position: 100% 100%;
    background-repeat: no-repeat;
    transition: background-size .3s cubic-bezier(.22, 1, .36, 1), color .2s ease !important;
}
.v2gpr-author__body h4 a:hover { color: var(--go-deep); background-size: 100% 2px; }
.v2gpr-author__role {
    font-size: 13px;
    font-weight: 600;
    color: var(--go-deep);
    margin-top: 3px;
}
.v2gpr-author__bio {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
    margin-top: 10px;
}
.v2gpr-author__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.v2gpr-author__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 14px;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.v2gpr-author__stat { text-align: center; }
.v2gpr-author__stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 750;
    font-size: 18px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2gpr-author__stat .v2-mono { display: block; font-size: 9px; margin-top: 4px; }

/* ---------- Related resources ---------- */

.v2gpr-related__title {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 22px;
    letter-spacing: -0.016em;
    color: var(--ink);
    text-align: center;
    margin-bottom: 22px;
}
.v2gpr-related__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    max-width: 980px;
    margin: 0 auto;
}
.v2gpr-rel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px;
    text-decoration: none;
    will-change: transform;
}
/* Smooth lift + arrow slide on hover (exempt from reduced-motion). */
.v2 .v2gpr-rel {
    transition: transform .3s cubic-bezier(.22, 1, .36, 1),
                box-shadow .3s cubic-bezier(.22, 1, .36, 1),
                border-color .3s ease !important;
}
.v2gpr-rel:hover {
    transform: translateY(-4px);
    border-color: color-mix(in srgb, var(--go) 42%, var(--line));
    box-shadow: 0 18px 34px -20px rgba(10, 16, 23, 0.28);
}
.v2gpr-rel span {
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.v2gpr-rel .v2-ic { width: 15px; height: 15px; color: var(--faint); flex-shrink: 0; }
.v2 .v2gpr-rel .v2-ic { transition: color .2s ease, transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2gpr-rel:hover .v2-ic { color: var(--go); transform: translateX(-4px); }
.v2gpr-related__foot { text-align: center; margin-top: 26px; }
.v2gpr-related__foot p { font-size: 13.5px; color: var(--slate); margin-bottom: 8px; }
.v2gpr-related__foot a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
}
.v2 .v2gpr-related__foot a { transition: color .22s ease !important; }
.v2gpr-related__foot a:hover { text-decoration: underline; text-underline-offset: 3px; color: var(--go); }
.v2gpr-related__foot a .v2-ic { width: 15px; height: 15px; }
.v2 .v2gpr-related__foot a .v2-ic { transition: transform .28s cubic-bezier(.22, 1, .36, 1) !important; }
.v2gpr-related__foot a:hover .v2-ic { transform: translateX(-5px); }

/* ---------- Final CTA additions ---------- */

.v2gpr-cta__price {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 21px;
    letter-spacing: -0.02em;
    color: #3ECF81;
    margin-top: 14px;
}
.v2gpr-cta__join {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6E7B88;
    margin-top: 16px;
}

/* ---------- Sticky mobile CTA ---------- */

.v2gpr-scta {
    position: fixed;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 60;
    display: none;
    gap: 10px;
    background: var(--paper);
    border-top: 1px solid var(--line);
    box-shadow: 0 -10px 30px rgba(10, 16, 23, 0.12);
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    transform: translateY(110%);
    visibility: hidden;
    transition: transform 0.35s cubic-bezier(0.22, 0.8, 0.26, 1), visibility 0s 0.35s;
}
.v2gpr-scta.is-on {
    transform: translateY(0);
    visibility: visible;
    transition: transform 0.35s cubic-bezier(0.22, 0.8, 0.26, 1), visibility 0s 0s;
}
.v2 .v2gpr-scta .v2-btn--primary { flex: 1; min-width: 0; }
/* flex, not just flex-shrink: the FAQ block's mobile rule sets
   `flex: 1 1 100%` on .v2-faq__wa, and overriding only the shrink
   component left basis at 100% of the bar, so the WhatsApp button
   ran ~40px past a 390px viewport and squeezed the primary button to
   44px. body.v2 has overflow-x: clip, which hid it from scrollWidth.
   Found by hit-testing the rebuilt closed-testing-rejection post,
   2026-09-11; the rule is already scoped to .v2gpr-scta, so this
   fixes the same bar on every V2 article that uses it. */
.v2 .v2gpr-scta .v2-faq__wa {
    flex: 0 0 auto;
    margin-right: 0;
    order: 0;
}

/* ---------- Blog article: responsive ---------- */

@media (max-width: 960px) {
    .v2gpr-layout { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-rail { display: none; }
    .v2gpr-h2, .v2gpr-h3 { scroll-margin-top: calc(var(--nav-h) + 62px); }
    .v2gpr-hero { padding-top: calc(var(--nav-h) + 30px); }
    .v2 .v2gpr-author__ctas .v2-faq__wa { margin-right: 0; }
}

@media (max-width: 900px) {
    .v2gpr-tracks { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .v2gpr-track.is-key { margin-top: 14px; }
    .v2gpr-q3 { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .v2gpr-myth { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-myth__side.is-wrong {
        border-left: none;
        border-bottom: 1px solid var(--line);
    }
    .v2gpr-icon { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
    .v2gpr-icon__txt ul { text-align: right; }
    .v2gpr-decl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .v2gpr-acct { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .v2gpr-gates { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-dist { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-changes { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-hl { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2gpr-plans { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .v2gpr-plan { max-width: 420px; width: 100%; margin: 0 auto; }
    .v2gpr-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
    .v2gpr-hero { padding-top: calc(var(--nav-h) + 26px); }
    .v2gpr-byline { gap: 10px 16px; margin-top: 20px; }
    .v2gpr-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .v2gpr-fact { padding: 12px 14px; }
    .v2gpr-fact b { font-size: 18px; }
    .v2gpr-cover img { border-radius: 14px; }
    .v2gpr-zone { padding-top: 18px; }

    .v2gpr-prose > p { font-size: 15.5px; line-height: 1.8; margin: 16px 0; }
    .v2gpr-h2 { margin: 46px 0 16px; padding-top: 26px; }
    .v2gpr-h3 { font-size: 18px; margin: 30px 0 10px; }
    .v2gpr-prose > ul > li { font-size: 14.5px; }

    .v2gpr-pipe { padding: 18px 16px 14px; }
    .v2gpr-pipe__step { min-width: 88px; }
    .v2gpr-pipe__dot { width: 38px; height: 38px; }
    .v2gpr-pipe__dot svg { width: 18px; height: 18px; }
    .v2gpr-pipe__step:not(:last-child)::after { top: 19px; }
    .v2gpr-pipe__t { font-size: 11.5px; }
    .v2gpr-pipe__s { font-size: 10px; }

    .v2gpr-qa { padding: 20px 20px; border-radius: 18px; }
    .v2gpr-qa__text { font-size: 15px; line-height: 1.75; }

    .v2gpr-toc { padding: 18px 16px; }
    .v2gpr-toc__grid { grid-template-columns: minmax(0, 1fr); gap: 1px; }

    .v2gpr-seq__item { grid-template-columns: 34px minmax(0, 1fr); gap: 13px; padding: 14px 0; }
    .v2gpr-seq__num { width: 32px; height: 32px; border-radius: 9px; font-size: 13.5px; }
    .v2gpr-seq__num.is-ic svg { width: 17px; height: 17px; }
    .v2gpr-seq__body h3 { font-size: 15.5px; }
    .v2gpr-seq__body p { font-size: 14px; }

    .v2gpr-tip, .v2gpr-note, .v2gpr-warn, .v2gpr-danger {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 12px;
        padding: 15px 16px;
    }
    .v2gpr-tip__ic, .v2gpr-note__ic, .v2gpr-warn__ic, .v2gpr-danger__ic { width: 34px; height: 34px; }
    .v2gpr-tip p, .v2gpr-note p, .v2gpr-warn p, .v2gpr-danger p { font-size: 13.5px; }

    .v2gpr-fee { grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 20px 18px; text-align: center; }
    .v2gpr-fee__num b { font-size: 42px; }
    .v2gpr-fee__txt { border-right: none; border-top: 1px solid var(--line); padding: 14px 0 0; }
    .v2gpr-fee__txt p { font-size: 14px; }

    .v2gpr-pay { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2gpr-pay__box { padding: 16px; }

    .v2gpr-acct__card { padding: 24px 18px 16px; }
    .v2gpr-acct__row { font-size: 13.5px; }

    .v2gpr-tool__head { padding: 18px; }
    .v2gpr-tool__head h3 { font-size: 17px; }
    .v2gpr-tool__body { padding: 18px 16px; }
    .v2 .v2gpr-select select { font-size: 14.5px; padding: 12px 14px 12px 40px; }
    .v2gpr-rc { padding: 17px 16px; }

    .v2gpr-myth__side { padding: 17px 16px; }

    .v2gpr-gate { padding: 17px 16px; }
    .v2gpr-bars { padding: 18px 16px; }
    .v2gpr-bars__fill { font-size: 9px; padding-left: 7px; }
    .v2gpr-vtl__item { padding-right: 28px; padding-bottom: 20px; }
    .v2gpr-vtl__item h4 { font-size: 14.5px; }
    .v2gpr-vtl__item > p:last-child { font-size: 13px; }
    .v2gpr-dist__card { padding: 18px; }
    .v2gpr-dist__price b { font-size: 23px; }

    .v2gpr-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .v2gpr-statc { padding: 13px 10px; }
    .v2gpr-statc b { font-size: 19px; }
    .v2gpr-statc > span { font-size: 11px; }

    .v2gpr-api { padding: 24px 10px 16px; }
    .v2gpr-api__track { gap: 4px; }
    .v2gpr-api__track::before { right: 9%; left: 9%; }
    .v2gpr-api__mil b { font-size: 13px; }
    .v2gpr-api__os { font-size: 10.5px; }
    .v2gpr-api__date { font-size: 8px; }
    .v2gpr-api__badge { font-size: 7.5px; padding: 2px 6px; }

    .v2gpr-asset { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2gpr-asset__card { padding: 16px; }

    .v2gpr-shot__bar { padding: 9px 12px; gap: 8px; }
    .v2gpr-shot__zoom svg { width: 12px; height: 12px; }

    .v2gpr-icon { padding: 20px 16px; gap: 18px; }

    .v2gpr-dd { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2gpr-dd__col { padding: 17px 16px; }
    .v2gpr-dd__col li { font-size: 13px; }

    .v2gpr-decl { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2gpr-decl__card { padding: 16px; }

    .v2gpr-pass { padding: 18px 18px; }
    .v2gpr-pass__text { font-size: 14.5px; }

    .v2gpr-gantt { padding: 18px 14px; }
    .v2gpr-gantt__inner { min-width: 470px; }
    .v2gpr-gantt__scale, .v2gpr-gantt__row { grid-template-columns: 118px minmax(0, 1fr); gap: 10px; }
    .v2gpr-gantt__lab { font-size: 11.5px; }
    .v2gpr-gantt__lab small { font-size: 10px; }
    .v2gpr-gantt__bar { font-size: 9px; padding: 0 7px; }
    .v2gpr-gantt__out { font-size: 9px; }
    .v2gpr-gantt__total { font-size: 12.5px; }

    .v2gpr-pitfalls li { font-size: 14px; }

    .v2gpr-ready__head { padding: 17px 16px; }
    .v2gpr-ready__head h3 { font-size: 16.5px; }
    .v2gpr-ready__body { padding: 6px 12px 10px; }
    .v2gpr-ck { padding: 11px 6px; gap: 11px; }
    .v2gpr-ck__txt { font-size: 13.5px; }
    .v2gpr-ready__msg { margin: 2px 12px 14px; padding: 12px 14px; font-size: 13px; }

    .v2gpr-change { padding: 14px 15px; gap: 11px; }
    .v2gpr-change__ic { width: 34px; height: 34px; }
    .v2gpr-change h4 { font-size: 13.5px; }
    .v2gpr-change p { font-size: 12px; }

    .v2gpr-video__head { padding: 15px 16px; }
    .v2gpr-video__play { width: 54px; height: 54px; }
    .v2gpr-video__play svg { width: 22px; height: 22px; }
    .v2gpr-video__tip { padding: 12px 16px; font-size: 12.5px; }

    .v2gpr-faq__item summary { padding: 13px 14px; }
    .v2gpr-faq__item .gpc-faq-q { font-size: 14.5px; }
    .v2gpr-faq__a { padding: 0 14px 14px; }
    .v2gpr-faq__a p { font-size: 14px; }

    .v2gpr-bottom { padding: 20px 18px; }
    .v2gpr-bottom__text { font-size: 15px; }
    .v2gpr-docs { padding: 17px 14px; }
    .v2gpr-docs__list a { font-size: 13px; align-items: flex-start; }
    .v2gpr-docs__list a svg { margin-top: 3px; }

    .v2gpr-author { padding: 22px 18px; }
    .v2gpr-author__main { flex-direction: column; align-items: center; text-align: center; }
    .v2gpr-author__ctas { justify-content: center; }
    .v2 .v2gpr-author__ctas .v2-faq__wa { order: 0; margin-right: 0; }
    .v2gpr-related__grid { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-related__title { font-size: 20px; }

    .v2gpr-scta { display: flex; }
    .v2 .v2gpr-scta .v2-faq__wa { order: 0; margin-right: 0; }
}

@media (max-width: 480px) {
    .v2gpr-hero__title { font-size: clamp(1.7rem, 1.2rem + 3.4vw, 2rem); }
    .v2gpr-byline__fresh { font-size: 10.5px; padding: 4px 9px; }
    .v2gpr-fact b { font-size: 16.5px; }
    .v2gpr-pipe__step { min-width: 82px; }
    .v2gpr-pipe__dot { width: 34px; height: 34px; border-radius: 10px; }
    .v2gpr-icon__stage, .v2gpr-icon__mask { width: 132px; height: 132px; }
    .v2gpr-gantt__scale, .v2gpr-gantt__row { grid-template-columns: 98px minmax(0, 1fr); }
    .v2gpr-fee__num b { font-size: 38px; }
    .v2gpr-statc b { font-size: 17px; }
    .v2gpr-author__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Blog article richness pass (user round 2) ---------- */

/* Pipeline -> console-window artifact */
.v2gpr-pipe { padding: 0; overflow: hidden; }
.v2gpr-pipe__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2gpr-pipe__dots { display: flex; gap: 5px; flex-shrink: 0; }
.v2gpr-pipe__dots i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid #CDD6DD;
}
.v2gpr-pipe__bar > .v2-mono { font-size: 9.5px; }
.v2gpr-pipe__count {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 9px;
    color: var(--go-deep);
    white-space: nowrap;
}
.v2gpr-pipe__count i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2gpr-pipe__flow { padding: 20px 20px 8px; }
.v2gpr-pipe__foot { margin: 0 20px 16px; }

/* Quick-answer key-fact chips */
.v2gpr-qa__strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: -14px 0 26px;
}
.v2gpr-qa__strip .v2-mono {
    font-size: 9px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
    white-space: nowrap;
}

/* Registration receipt artifact */
.v2gpr-receipt {
    width: 290px;
    max-width: 100%;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 12px 26px -18px rgba(10, 16, 23, 0.18);
}
.v2gpr-receipt__head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2gpr-receipt__head > .v2-mono { font-size: 8.5px; }
.v2gpr-receipt__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
    flex-shrink: 0;
}
.v2gpr-receipt__stamp {
    margin-right: auto;
    font-size: 8px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.3);
    border-radius: 6px;
    padding: 2px 8px;
    transform: rotate(3deg);
    white-space: nowrap;
}
.v2gpr-receipt__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 14px;
    font-size: 13px;
    color: var(--slate);
}
.v2gpr-receipt__row + .v2gpr-receipt__row { border-top: 1px dashed #E5EAEF; }
.v2gpr-receipt__row b {
    color: var(--ink);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.v2gpr-receipt__row b.is-zero { color: var(--go-deep); font-weight: 650; }
.v2gpr-receipt__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    background: var(--mist);
    border-top: 1px solid var(--line);
}
.v2gpr-receipt__total .v2-mono { font-size: 8.5px; }
.v2gpr-receipt__total b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 17px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2gpr-fee { align-items: center; }

/* VS pips (account cards + testing tracks) */
.v2gpr-acct, .v2gpr-tracks { position: relative; }
.v2gpr-vs {
    position: absolute;
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    z-index: 2;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 4px 12px -4px rgba(10, 16, 23, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    color: var(--slate);
}
.v2gpr-tracks .v2gpr-vs.is-a { right: 33.4%; }
.v2gpr-tracks .v2gpr-vs.is-b { right: 66.6%; }

/* Gate headers */
.v2gpr-gate__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.v2gpr-gate__head .v2gpr-gate__num { margin-bottom: 0; }
.v2gpr-gate__ic {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2gpr-gate__ic svg { width: 18px; height: 18px; }

/* Myth / fact stamps */
.v2gpr-myth__side { position: relative; }
.v2gpr-myth__stamp {
    position: absolute;
    top: 14px;
    left: 14px;
    font-size: 9px;
    letter-spacing: 0.16em;
    padding: 3px 10px;
    border-radius: 6px;
    border: 1.5px solid #B4BEC8;
    color: var(--faint);
    transform: rotate(-5deg);
    background: rgba(255, 255, 255, 0.55);
}
.v2gpr-myth__stamp.is-fact {
    border-color: rgba(11, 138, 71, 0.45);
    color: var(--go-deep);
    transform: rotate(5deg);
}

/* Bars: percentage grid ticks */
.v2gpr-bars__track {
    background-image: repeating-linear-gradient(-90deg, transparent 0, transparent calc(25% - 1px), #DFE6EB calc(25% - 1px), #DFE6EB 25%);
}

/* Rollout timeline cards */
.v2gpr-vtl__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 16px;
    margin-top: 2px;
}
.v2gpr-vtl__card p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2gpr-vtl__card h4 { margin-bottom: 5px; }
.v2gpr-vtl__item.is-now .v2gpr-vtl__card {
    border-color: rgba(11, 138, 71, 0.32);
    box-shadow: 0 8px 20px -14px rgba(11, 138, 71, 0.35);
}
.v2gpr-vtl__item.is-enforce .v2gpr-vtl__card {
    border-color: #C4CDD5;
    box-shadow: 0 0 0 1px rgba(10, 16, 23, 0.05);
}

/* Free-tier "new" chip */
.v2gpr-dist__card { position: relative; }
.v2gpr-dist__new {
    position: absolute;
    top: -10px;
    left: 14px;
    font-size: 8.5px;
    color: #fff;
    background: var(--go);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}

/* Fact-strip glyphs */
.v2gpr-statc__g {
    display: block;
    width: 17px;
    height: 17px;
    margin: 0 auto 7px;
    color: var(--faint);
}

/* API timeline: TODAY marker */
.v2gpr-api { position: relative; }
.v2gpr-api__track { position: relative; }
.v2gpr-api__today i {
    position: absolute;
    right: 44%;
    top: 34px;
    width: 8px;
    height: 8px;
    margin-right: -4px;
    background: var(--ink);
    border: 2px solid var(--paper);
    border-radius: 2.5px;
    transform: rotate(-45deg);
    z-index: 2;
}
.v2gpr-api__today .v2-mono {
    position: absolute;
    top: -18px;
    left: -6px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 8px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.v2gpr-api__today .v2-mono::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--ink);
    transform: rotate(-45deg);
}

/* Icon mockup annotations */
.v2gpr-icon__stagewrap { text-align: center; }
.v2gpr-icon__safe { position: relative; }
.v2gpr-icon__zonetag {
    position: absolute;
    top: -9px;
    right: 50%;
    transform: translateX(50%);
    font-size: 7px;
    color: var(--ink);
    background: rgba(255, 255, 255, 0.92);
    border-radius: 4px;
    padding: 2px 6px;
    white-space: nowrap;
}
.v2gpr-icon__caption {
    display: block;
    margin-top: 10px;
    font-size: 8.5px;
    color: var(--faint);
}

/* Declaration index chips */
.v2gpr-decl__card { position: relative; }
.v2gpr-decl__idx {
    position: absolute;
    top: 14px;
    left: 14px;
    font-size: 9px;
    color: #C2CBD3;
}

/* Questionnaire flow arrows */
.v2gpr-q3 { position: relative; }
.v2gpr-q3__arrow {
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    z-index: 2;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 4px 12px -4px rgba(10, 16, 23, 0.16);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--faint);
}
.v2gpr-q3__arrow svg { width: 13px; height: 13px; }
.v2gpr-q3__arrow.is-a { right: 33.4%; }
.v2gpr-q3__arrow.is-b { right: 66.6%; }

/* Gantt: week gridlines + total lives outside the scroller */
.v2gpr-gantt__track {
    background-image: repeating-linear-gradient(-90deg, transparent 0, transparent calc(20% - 1px), #E4EAEF calc(20% - 1px), #E4EAEF 20%);
}
.v2gpr-gantt__total { margin-top: 16px; }

/* Readiness ring */
.v2gpr-ready__toprow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}
.v2gpr-ready__toprow h3 { margin-bottom: 0; }
.v2gpr-ready__ring { width: 48px; height: 48px; flex-shrink: 0; }
.v2gpr-ready__ringbg { fill: none; stroke: #E4E9ED; stroke-width: 4; }
.v2gpr-ready__ringfg {
    fill: none;
    stroke: var(--go);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-dasharray: 119.4;
    stroke-dashoffset: 119.4;
    transform: rotate(90deg);
    transform-origin: 50% 50%;
    transition: stroke-dashoffset 0.45s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gpr-ready__ring text {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    fill: var(--ink);
    text-anchor: middle;
}

/* Plan-grid reassurance line */
.v2gpr-plans__fine {
    text-align: center;
    font-size: 9.5px;
    color: var(--faint);
    margin: 16px 0 6px;
}
.v2gpr-plans__fine span { white-space: nowrap; }

@media (max-width: 900px) {
    .v2gpr-tracks .v2gpr-vs, .v2gpr-q3__arrow { display: none; }
}
@media (max-width: 820px) {
    .v2gpr-acct .v2gpr-vs { display: none; }
}
@media (max-width: 640px) {
    .v2gpr-pipe { padding: 0; }
    .v2gpr-pipe__flow { padding: 16px 14px 6px; }
    .v2gpr-pipe__foot { margin: 0 14px 14px; }
    .v2gpr-pipe__step { min-width: 96px; }
    .v2gpr-qa__strip { margin: -12px 0 22px; }
    .v2gpr-receipt { margin: 0 auto; }
    .v2gpr-receipt__row span { text-align: right; }
    .v2gpr-fee__txt { text-align: right; }
    .v2gpr-api__today .v2-mono { top: -16px; left: -2px; }
    .v2gpr-ready__ring { width: 44px; height: 44px; }
    .v2gpr-myth__stamp { top: 12px; left: 12px; }
}
@media (max-width: 480px) {
    .v2gpr-pipe__step { min-width: 90px; }
    .v2gpr-pipe__bar { padding: 9px 12px; gap: 8px; }
}

/* ============================================================
   BLOG GPR V2 - 2026-09-11 REBUILD LAYER
   Components added when the publishing-requirements article was
   rebuilt to the deep-research audit's structure. The audit's
   §12 asked for semantic tables instead of visually-tabular div
   grids, an applicability/evidence treatment on every gate, and
   a readiness tool that can say "this does not apply to you".
   Everything below is that. Prefix stays v2gpr-.
   ============================================================ */

/* Invisible anchor: keeps deep links to retired section ids
   (gpr-sequence, gpr-identity) landing in the right place. */
.v2gpr-alias {
    display: block;
    height: 0;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}

/* ---------- Hero: direct answer + scope line ---------- */

.v2gpr-qa--hero { margin: clamp(24px, 3.4vw, 32px) 0 0; }
.v2gpr-qa__scope {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: #93A5B4;
    font-size: 13px;
    line-height: 1.65;
}

/* ---------- Scope / orientation callout ---------- */

.v2gpr-scope {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 19px;
    margin: 24px 0;
}
.v2gpr-scope__ic {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2gpr-scope__ic svg { width: 17px; height: 17px; }
.v2gpr-scope__label { margin-bottom: 5px; }
.v2gpr-scope p { font-size: 14px; line-height: 1.72; color: var(--slate); }
.v2gpr-scope a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Semantic tables ----------
   .v2gpr-tw is the scroll container: wide tables scroll inside
   themselves rather than pushing the page sideways. Below 760px
   each row becomes a card and the data-l attribute supplies the
   column label, so the relationships survive the reflow. */

.v2gpr-tw {
    margin: 24px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
}
.v2gpr-tw__cap {
    caption-side: top;
    text-align: right;
    padding: 14px 18px 12px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    border-bottom: 1px solid var(--line);
}
.v2gpr-matrix {
    width: 100%;
    min-width: 680px;
    border-collapse: collapse;
    font-size: 13.5px;
    line-height: 1.62;
}
.v2gpr-matrix--3 { min-width: 600px; }
.v2gpr-matrix--api { min-width: 480px; }
.v2gpr-matrix--spec { min-width: 420px; }
.v2gpr-matrix--dates { min-width: 700px; }
.v2gpr-matrix thead th {
    text-align: right;
    vertical-align: bottom;
    padding: 12px 16px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2gpr-matrix tbody tr + tr th,
.v2gpr-matrix tbody tr + tr td { border-top: 1px solid var(--line); }
.v2gpr-matrix tbody th,
.v2gpr-matrix tbody td {
    text-align: right;
    vertical-align: top;
    padding: 14px 16px;
    color: var(--slate);
    font-weight: 400;
}
.v2gpr-matrix tbody th {
    color: var(--ink);
    font-weight: 650;
    width: 27%;
}
.v2gpr-matrix tbody tr:hover th,
.v2gpr-matrix tbody tr:hover td { background: #FBFCFD; }
.v2gpr-matrix tbody tr.is-key th,
.v2gpr-matrix tbody tr.is-key td { background: var(--go-tint); }
.v2gpr-matrix tbody tr.is-key th { color: var(--go-deep); }
.v2gpr-matrix tbody tr.is-live th { background: #FFFBEB; }
.v2gpr-matrix a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2gpr-matrix code {
    font-family: var(--font-mono);
    font-size: 0.88em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
}

/* Cell accents */
.v2gpr-pill {
    display: inline-block;
    margin-right: 7px;
    font-size: 8.5px;
    color: var(--star);
    background: #FFFBEB;
    border: 1px solid rgba(240, 165, 10, 0.3);
    border-radius: 5px;
    padding: 2px 6px;
    vertical-align: 2px;
    white-space: nowrap;
}
.v2gpr-where {
    font-family: var(--font-mono);
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--ink);
}
.v2gpr-lvl {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 3px 9px;
    white-space: nowrap;
}
.is-key .v2gpr-lvl { background: var(--paper); border-color: rgba(11, 138, 71, 0.3); color: var(--go-deep); }
.v2gpr-when {
    font-size: 10.5px;
    color: var(--ink);
    white-space: nowrap;
}
.is-live .v2gpr-when { color: #92400E; }
.v2gpr-yn {
    display: inline-block;
    font-weight: 650;
    font-size: 12.5px;
}
.v2gpr-yn.is-yes { color: var(--go-deep); }
.v2gpr-yn.is-no { color: var(--faint); }
/* Per-cell column label. Hidden on desktop, where <thead> names the columns;
   shown in card mode, where <thead> is removed. Real DOM text rather than a
   ::before, so assistive tech announces it. */
.v2gpr-lb { display: none; }

@media (max-width: 760px) {
    .v2gpr-tw { overflow-x: visible; border: 0; background: none; border-radius: 0; }
    /* The table is display:block in card mode, which shrink-wraps a
       table-caption to its longest word. Force it back to full width. */
    .v2gpr-tw__cap { display: block; width: 100%; padding: 0 0 10px; border-bottom: 0; }
    .v2gpr-matrix,
    .v2gpr-matrix--3,
    .v2gpr-matrix--api,
    .v2gpr-matrix--spec,
    .v2gpr-matrix--dates { min-width: 0; display: block; }
    .v2gpr-matrix thead { display: none; }
    .v2gpr-matrix tbody { display: block; }
    .v2gpr-matrix tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        padding: 6px 14px;
        margin-bottom: 10px;
    }
    .v2gpr-matrix tbody tr.is-key { border-color: rgba(11, 138, 71, 0.35); }
    .v2gpr-matrix tbody th,
    .v2gpr-matrix tbody td {
        display: block;
        width: auto;
        padding: 9px 0;
        background: none !important;
    }
    .v2gpr-matrix tbody tr + tr th,
    .v2gpr-matrix tbody tr + tr td { border-top: 0; }
    .v2gpr-matrix tbody td { border-top: 1px solid var(--line) !important; }
    .v2gpr-matrix tbody th { font-size: 14.5px; }
    .v2gpr-lb {
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 4px;
    }
}

/* ---------- Applicability + completion evidence ----------
   These are <p> children of .v2gpr-prose, so they have to be
   qualified: a bare class loses to `.v2gpr-prose > p`. */

.v2gpr-prose > p.v2gpr-applies,
.v2gpr-prose > p.v2gpr-evi {
    display: block;
    font-size: 14.5px;
    line-height: 1.72;
    border-radius: 12px;
    padding: 14px 18px;
    margin: 20px 0;
}
.v2gpr-prose > p.v2gpr-applies {
    background: #FFFBEB;
    border: 1px solid rgba(240, 165, 10, 0.28);
    color: #6B4B0A;
}
.v2gpr-prose > p.v2gpr-applies b { color: #6B4B0A; }
.v2gpr-prose > p.v2gpr-applies a { color: #7A5406; }
.v2gpr-prose > p.v2gpr-evi {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2gpr-prose > p.v2gpr-evi b {
    color: var(--go-deep);
    font-weight: 700;
}

/* ---------- Inline primary-source citation ---------- */

.v2 .v2gpr-cite {
    display: inline-block;
    margin-right: 6px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 10px;
    text-decoration: none;
    vertical-align: 1px;
    transition: border-color 0.18s ease, color 0.18s ease;
}
.v2 .v2gpr-cite::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    margin-left: 6px;
    border-radius: 50%;
    background: #C2CBD3;
    vertical-align: 1px;
}
.v2 .v2gpr-cite:hover {
    color: var(--go-deep);
    border-color: rgba(11, 138, 71, 0.35);
}
.v2 .v2gpr-cite:hover::before { background: var(--go); }
.v2gpr-matrix .v2gpr-cite { margin-right: 0; margin-top: 6px; }

/* ---------- Numbered stage list (the one roadmap) ---------- */

.v2gpr-stages {
    counter-reset: gprstage;
    display: grid;
    gap: 8px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
}
.v2gpr-stages > li { counter-increment: gprstage; }
.v2gpr-stages > li > a {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 14px;
    align-items: baseline;
    padding: 15px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    text-decoration: none;
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.v2gpr-stages > li > a::before {
    content: counter(gprstage, decimal-leading-zero);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--faint);
}
.v2gpr-stages > li > a:hover {
    border-color: #C9D2DA;
    transform: translateX(-2px);
    box-shadow: 0 10px 24px -18px rgba(10, 16, 23, 0.3);
}
.v2gpr-stages > li.is-cond > a { border-style: dashed; }
.v2gpr-stages__t {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15.5px;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2gpr-stages__d {
    display: block;
    font-size: 13px;
    line-height: 1.62;
    color: var(--slate);
}

/* ---------- Ordered flow (release submission) ---------- */

.v2gpr-flow {
    counter-reset: gprflow;
    display: grid;
    gap: 2px;
    margin: 24px 0;
    padding: 0;
    list-style: none;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--line);
}
.v2gpr-flow > li {
    counter-increment: gprflow;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 13px;
    align-items: baseline;
    background: var(--paper);
    padding: 15px 18px;
}
.v2gpr-flow > li::before {
    content: counter(gprflow);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--mist);
    border: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--slate);
    align-self: start;
}
.v2gpr-flow > li b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2gpr-flow > li span {
    display: block;
    font-size: 13.5px;
    line-height: 1.68;
    color: var(--slate);
}

/* ---------- Source-conflict block ----------
   Used once, for the 16 KB page-size dates. The audit was
   explicit that neither date should be published as settled,
   so the component shows both and refuses to pick. */

.v2gpr-conflict {
    border: 1px solid rgba(240, 165, 10, 0.3);
    background: #FFFDF6;
    border-radius: 16px;
    padding: 20px 22px;
    margin: 24px 0;
}
.v2gpr-conflict__label { color: #92400E; margin-bottom: 14px; }
.v2gpr-conflict__cols {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.v2gpr-conflict__cols > div {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px;
}
.v2gpr-conflict__cols .v2-mono { font-size: 9px; margin-bottom: 6px; }
.v2gpr-conflict__cols b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 17px;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin-bottom: 6px;
    font-variant-numeric: tabular-nums;
}
.v2gpr-conflict__cols p { font-size: 13px; line-height: 1.62; color: var(--slate); }
.v2gpr-conflict__out {
    margin-top: 14px;
    font-size: 14.5px;
    line-height: 1.74;
    color: var(--slate);
}
.v2gpr-conflict__out a:not(.v2gpr-cite) {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 640px) {
    .v2gpr-conflict__cols { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-conflict { padding: 17px 16px; }
}

/* ---------- H4 sub-subheading ---------- */

.v2gpr-h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin: 26px 0 8px;
}

/* ---------- Account cards: h4 title (was h3) ---------- */

.v2gpr-acct__card h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 4px;
}

/* ---------- Advisor tool: two questions, hidden results ----------
   The old result cards were display:none + a .show class, and the
   empty state was display:flex, so toggling [hidden] left the
   placeholder stacked above the answer. These two rules make
   el.hidden the single switch. */

.v2gpr-tool__qs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}
.v2gpr-tool__q { min-width: 0; }
.v2 .v2gpr-tool__empty[hidden] { display: none !important; }
.v2 .v2gpr-tool__result .v2gpr-rc[hidden] { display: none !important; }
.v2 .v2gpr-tool__result .v2gpr-rc:not([hidden]) { display: block; }
.v2gpr-rc__tag.is-check {
    color: #92400E;
    background: #FFFBEB;
    border: 1px solid rgba(240, 165, 10, 0.3);
}
.v2gpr-rc a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 640px) {
    .v2gpr-tool__qs { grid-template-columns: minmax(0, 1fr); gap: 12px; }
}

/* ---------- Declaration cards without a leading icon ---------- */

.v2gpr-decl__card { padding-left: 46px; }
@media (max-width: 640px) {
    .v2gpr-decl__card { padding-left: 44px; }
}

/* ============================================================
   STAGE-AWARE READINESS CHECKLIST
   Replaces the eight-box tool that counted submitted work as
   complete and announced production readiness to every reader.
   Items that do not apply sink to the bottom of the list and
   leave the count rather than inflating it.
   ============================================================ */

.v2gpr-chk {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 26px 0;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 18px 40px -30px rgba(10, 16, 23, 0.4);
}
.v2gpr-chk__head {
    padding: 20px 24px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2gpr-chk__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gpr-chk__head p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }

.v2gpr-chk__filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 18px 24px;
    border-bottom: 1px solid var(--line);
}
.v2gpr-chk__f { min-width: 0; }
.v2 .v2gpr-chk__f[hidden] { display: none; }
.v2gpr-chk__f .v2gpr-select select { font-size: 14px; padding: 11px 13px 11px 38px; }

.v2gpr-chk__meter { padding: 18px 24px 0; }
.v2gpr-chk__meterlab { margin-bottom: 9px; }
.v2gpr-chk__bar {
    height: 8px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    overflow: hidden;
}
.v2gpr-chk__bar i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--go);
    transition: width 0.35s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gpr-chk__count {
    margin-top: 9px;
    font-size: 10px;
    color: var(--slate);
    font-variant-numeric: tabular-nums;
}

.v2gpr-chk__list {
    display: flex;
    flex-direction: column;
    margin: 0;
    padding: 10px 14px 6px;
    list-style: none;
}
.v2gpr-chk__item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 4px 4px 4px 10px;
    border-radius: 11px;
    transition: background 0.18s ease, opacity 0.18s ease;
}
.v2gpr-chk__item:hover { background: var(--mist); }
/* Non-applicable items fall to the bottom of the flex list. */
.v2gpr-chk__item.is-off,
.v2gpr-chk__item.is-na { order: 2; opacity: 0.5; }
.v2gpr-chk__item.is-later.is-off { order: 1; opacity: 0.72; }
.v2gpr-chk__item.is-off .v2gpr-chk__lab,
.v2gpr-chk__item.is-na .v2gpr-chk__lab { cursor: default; }
.v2gpr-chk__item.is-off input,
.v2gpr-chk__item.is-na input { pointer-events: none; }
.v2gpr-chk__item.is-off .v2gpr-chk__box,
.v2gpr-chk__item.is-na .v2gpr-chk__box { border-style: dashed; }
/* Three states. "Required later" is deliberately styled apart from "does not
   apply to you": the first is work the reader still owes, the second is work
   that will never reach them, and collapsing the two was a real defect. */
.v2gpr-chk__tag { display: none; }
.v2gpr-chk__item.is-later .v2gpr-chk__tag.is-later,
.v2gpr-chk__item.is-na .v2gpr-chk__tag.is-na,
.v2gpr-chk__item.is-off:not(.is-later) .v2gpr-chk__tag.is-na {
    display: block;
    flex-shrink: 0;
    align-self: center;
    font-size: 8.5px;
    color: var(--faint);
    white-space: nowrap;
}
.v2gpr-chk__item.is-later .v2gpr-chk__tag.is-na { display: none; }
.v2gpr-chk__item.is-later {
    order: 1;
    opacity: 0.72;
}
.v2gpr-chk__item.is-later .v2gpr-chk__tag.is-later { color: var(--star); }
.v2gpr-chk__item.is-later .v2gpr-chk__box { border-style: solid; border-color: #DCE3E9; }

.v2gpr-chk__lab {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    flex: 1 1 auto;
    min-width: 0;
    padding: 9px 0;
    cursor: pointer;
}
.v2gpr-chk__lab input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}
.v2gpr-chk__box {
    width: 21px;
    height: 21px;
    flex-shrink: 0;
    margin-top: 1px;
    border: 1.6px solid #C9D2DA;
    border-radius: 7px;
    background: var(--paper);
    color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.v2gpr-chk__box svg { width: 13px; height: 13px; }
.v2gpr-chk__lab input:checked ~ .v2gpr-chk__box {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2gpr-chk__lab input:focus-visible ~ .v2gpr-chk__box {
    outline: 2px solid var(--go);
    outline-offset: 3px;
}
.v2gpr-chk__txt {
    font-size: 14.5px;
    line-height: 1.62;
    color: var(--slate);
    min-width: 0;
}
.v2gpr-chk__txt strong { color: var(--ink); font-weight: 650; }
.v2gpr-chk__lab input:checked ~ .v2gpr-chk__txt { color: var(--faint); text-decoration: line-through; text-decoration-thickness: 1px; }
.v2gpr-chk__if {
    display: block;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--star);
    margin-top: 4px;
}
.v2 .v2gpr-chk__na {
    flex-shrink: 0;
    align-self: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 12px;
    min-height: 36px;
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2gpr-chk__na:hover { color: var(--slate); border-color: #C9D2DA; }
.v2 .v2gpr-chk__na[aria-pressed="true"] {
    color: var(--ink);
    background: var(--mist);
    border-color: #C9D2DA;
}

.v2gpr-chk__status {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.v2gpr-chk__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px 24px 18px;
    border-top: 1px solid var(--line);
}
.v2gpr-chk__disclaim {
    flex: 1 1 320px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}
.v2 .v2gpr-chk__reset {
    flex-shrink: 0;
    font-size: 12.5px;
    font-weight: 650;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 9px 14px;
    min-height: 38px;
    cursor: pointer;
    transition: color 0.18s ease, border-color 0.18s ease;
}
.v2 .v2gpr-chk__reset:hover { color: var(--ink); border-color: #C9D2DA; }

.v2gpr-chk__done {
    background: var(--go-tint);
    border-top: 1px solid rgba(11, 138, 71, 0.22);
    padding: 18px 24px 20px;
}
.v2 .v2gpr-chk__done[hidden] { display: none !important; }
.v2gpr-chk__done_t {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15.5px;
    color: var(--go-deep);
    margin-bottom: 6px;
}
.v2gpr-chk__done_d {
    font-size: 14px;
    line-height: 1.7;
    color: var(--ink);
    margin-bottom: 13px;
}

@media (max-width: 760px) {
    .v2gpr-chk__filters { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 16px 16px; }
    .v2gpr-chk__head { padding: 17px 16px 14px; }
    .v2gpr-chk__meter { padding: 16px 16px 0; }
    .v2gpr-chk__list { padding: 8px 8px 4px; }
    .v2gpr-chk__foot { padding: 13px 16px 16px; }
    .v2gpr-chk__done { padding: 16px 16px 18px; }
    .v2gpr-chk__txt { font-size: 14px; }
    .v2 .v2gpr-chk__na { min-height: 44px; padding: 8px 13px; }
}

/* FIX: the shared .v2-faq__wa recipe resolves to flex: 1 0 100% inside the
   sticky bar, so the WhatsApp button ran past a 390px viewport and squashed
   the primary button to ~44px. body.v2 has overflow-x: clip, so it never
   showed up as a horizontal scrollbar. Scoped to this post's bar rather than
   .v2gpr-scta, which 40 other articles share. */
.v2gpr-scta--fit { gap: 8px; }
.v2 .v2gpr-scta--fit .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    padding-inline: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2 .v2gpr-scta--fit .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    margin-right: 0;
    padding-inline: 14px;
}

/* ============================================================
   SOURCE DIRECTORY + CHANGELOG
   §13: a source list is only evidence if it says which claim it
   supports, and a revision is only verifiable if it says what
   it changed.
   ============================================================ */

.v2gpr-srcs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2px;
    margin: 22px 0;
    padding: 2px;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2gpr-src {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3px;
    background: var(--paper);
    padding: 12px 15px;
}
.v2gpr-src__for { font-size: 9px; }
.v2 .v2gpr-src a {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--go-deep);
    text-decoration: none;
}
.v2 .v2gpr-src a:hover { text-decoration: underline; text-underline-offset: 3px; }

.v2gpr-log {
    margin: 22px 0 8px;
    padding: 0;
    display: grid;
    gap: 2px;
}
.v2gpr-log__row {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    gap: 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 16px 18px;
}
.v2gpr-log dt {
    font-size: 10px;
    color: var(--ink);
}
.v2gpr-log dd {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.72;
    color: var(--slate);
}
.v2gpr-log dd strong { color: var(--ink); font-weight: 650; }

@media (max-width: 760px) {
    .v2gpr-srcs { grid-template-columns: minmax(0, 1fr); }
    .v2gpr-log__row { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

/* ============================================================
   BLOG ARTICLE V2 - 7 LEGIT WAYS (/blog/7-legit-ways-to-get-
   12-testers-for-google-play). Reuses the v2gpr-* article layer;
   page-unique components below. Prefix: v2g7-.
   One rose moment: Method 3 "Hidden Risk". Two dark moments:
   quick answer + final CTA.
   ============================================================ */

.v2g7-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 640px; }

/* Answer capsules under each method H2 (AEO) */
.v2gpr-prose > p.v2g7-ans {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 12px;
    padding: 15px 19px;
    font-size: 15.5px;
    line-height: 1.7;
    margin: 0 0 20px;
}

/* Signature 7-method comparison table */
.v2g7-tbl {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 26px 0 0;
}
.v2g7-tbl__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2g7-tbl__bar > .v2-mono { font-size: 9.5px; }
.v2g7-tbl__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
    flex-shrink: 0;
}
.v2g7-tbl__hint { margin-right: auto; font-size: 9px; color: var(--go-deep); white-space: nowrap; }
.v2g7-tbl__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2g7-tbl table { width: 100%; min-width: 620px; border-collapse: collapse; }
.v2g7-tbl th {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2g7-tbl td {
    padding: 12px 14px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2g7-tbl tbody tr:last-child td { border-bottom: none; }
.v2g7-tbl td strong { color: var(--ink); font-weight: 650; }
.v2g7-tbl td b.is-free, .v2g7-tbl td b.is-go { color: var(--go-deep); font-weight: 700; }
.v2g7-tbl tr.is-win { background: var(--go-tint); }
.v2g7-tbl tr.is-win td { border-color: rgba(11, 138, 71, 0.14); }
.v2g7-rel {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    white-space: nowrap;
}
.v2g7-rel.is-low { color: var(--faint); }
.v2g7-rel.is-var { background: var(--paper); border-style: dashed; color: var(--faint); }
.v2g7-rel.is-high {
    background: #fff;
    border-color: rgba(11, 138, 71, 0.35);
    color: var(--go-deep);
}
.v2gpr-prose > p.v2g7-tblnote { font-size: 14px; color: var(--faint); margin: 12px 0 26px; }

/* Requirement tiles */
.v2g7-req {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0;
}
.v2g7-req__card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 15px 16px;
}
.v2g7-req__card.is-paper { background: var(--paper); }
.v2g7-req__ic {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2g7-req__card.is-paper .v2g7-req__ic { background: var(--mist); }
.v2g7-req__ic svg { width: 18px; height: 18px; }
.v2g7-req__card b { display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.v2g7-req__card span { display: block; font-size: 13px; line-height: 1.55; color: var(--slate); }

/* Google quote */
.v2g7-quote {
    position: relative;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 24px;
    margin: 22px 0;
}
.v2g7-quote__mark {
    position: absolute;
    top: 14px;
    right: 16px;
    color: #CBD5DD;
}
.v2g7-quote__mark svg { width: 24px; height: 24px; }
.v2g7-quote blockquote {
    font-size: 15.5px;
    font-style: italic;
    line-height: 1.7;
    color: var(--ink);
    padding-right: 38px;
    margin-bottom: 10px;
}
.v2g7-quote figcaption {
    font-size: 9.5px;
    color: var(--faint);
    padding-right: 38px;
    margin: 0;
}

/* Positive (green) note variant */
.v2gpr-note.is-go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2gpr-note.is-go .v2gpr-note__ic { background: #fff; color: var(--go); border-color: rgba(11, 138, 71, 0.22); }

/* 2026 deadlines card */
.v2g7-deadlines {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    margin: 26px 0;
}
.v2g7-deadlines h4 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2g7-deadlines h4 svg { width: 17px; height: 17px; color: var(--slate); flex-shrink: 0; }
.v2g7-deadlines__sub { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin-bottom: 14px; }
.v2g7-deadlines .v2g7-req { margin: 0; }

/* Method cards */
.v2g7-method {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 26px;
    margin: 0 0 22px;
    overflow: hidden;
}
.v2g7-method.is-key {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25), 0 18px 40px -24px rgba(11, 138, 71, 0.35);
}
.v2g7-method__num {
    position: absolute;
    top: -16px;
    left: 8px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 96px;
    line-height: 1;
    color: rgba(10, 16, 23, 0.05);
    pointer-events: none;
}
.v2g7-method.is-key .v2g7-method__num { color: rgba(11, 138, 71, 0.08); }
.v2g7-method__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--go);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    border-radius: 999px;
    padding: 5px 12px;
    margin-bottom: 14px;
}
.v2g7-method__badge svg { width: 12px; height: 12px; }
.v2g7-method > p { font-size: 14.5px; line-height: 1.7; color: var(--slate); margin: 0 0 14px; }
.v2g7-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 16px;
}
.v2g7-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    white-space: nowrap;
}
.v2g7-pill svg { width: 13px; height: 13px; flex-shrink: 0; }
.v2g7-pill.is-free {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2g7-sub {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    color: var(--ink);
    margin: 18px 0 10px;
}
.v2g7-cmpsub { font-size: 13px !important; color: var(--faint) !important; margin-bottom: 10px !important; }

/* Where-to-post cards */
.v2g7-where {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 4px 0 16px;
}
.v2g7-where__card {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 14px;
}
.v2g7-where__ic {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2g7-where__ic svg { width: 15px; height: 15px; }
.v2g7-where__card b { display: block; font-size: 13.5px; font-weight: 650; color: var(--ink); }
.v2g7-where__card span { display: block; font-size: 11.5px; line-height: 1.45; color: var(--faint); margin-top: 1px; }

/* Numbered / icon step rows */
.v2g7-steps { display: grid; gap: 8px; margin: 4px 0 16px; }
.v2g7-steps__row {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--mist);
    border-radius: 8px;
    padding: 10px 13px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2g7-steps__num {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2g7-steps__ic { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; color: var(--slate); flex-shrink: 0; }
.v2g7-steps__ic svg { width: 15px; height: 15px; }

/* Pros/cons inside method cards */
.v2g7-method .v2g7-pc { margin: 16px 0; }
.v2g7-method .v2gpr-dd__col { padding: 16px 18px; }

/* Verdict strip */
.v2g7-verdict {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 18px;
    margin-top: 16px;
}
.v2g7-verdict__label {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--ink);
}
.v2g7-verdict__label svg { width: 14px; height: 14px; color: var(--go); flex-shrink: 0; }
.v2g7-verdict p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 6px 0 0; }

/* Method-7 pricing plaques (reuse v2gpr-plan) */
.v2g7-plans { margin: 18px 0; }
.v2g7-plans .v2gpr-plan { padding: 22px 16px 18px; }
.v2g7-plan__was {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--faint);
    text-decoration: line-through;
    margin-bottom: 2px;
}
.v2g7-plans .v2gpr-plan__price { margin: 0 0 6px; }
.v2g7-plan__off {
    display: inline-block;
    font-size: 8.5px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 5px;
    padding: 2px 7px;
    margin-bottom: 8px;
}
.v2g7-plans .v2gpr-plan__testers { font-size: 15px; }
.v2g7-plan__tag { font-size: 12px; color: var(--faint); margin-top: 5px; }

/* DIY vs managed table */
.v2g7-cmp {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 14px;
    margin: 6px 0 4px;
}
.v2g7-cmp table { width: 100%; min-width: 560px; border-collapse: collapse; }
.v2g7-cmp th {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    text-align: right;
    padding: 11px 14px;
    background: var(--mist);
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2g7-cmp th.is-go { background: var(--go); color: #fff; }
.v2g7-cmp td {
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2g7-cmp tbody tr:last-child td { border-bottom: none; }
.v2g7-cmp td:first-child { font-weight: 600; color: var(--ink); background: var(--mist); }
.v2g7-cmp td.is-go { background: var(--go-tint); color: var(--go-deep); font-weight: 500; }
.v2g7-honest { font-size: 13px !important; color: var(--faint) !important; font-style: italic; margin: 12px 0 4px !important; }

/* Fiverr comparison box */
.v2g7-green {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 18px 22px;
    margin: 18px 0;
}
.v2g7-green h4 {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--go-deep);
    margin-bottom: 8px;
}
.v2g7-green h4 svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2g7-green p { font-size: 13.5px; line-height: 1.7; color: var(--slate); }

/* When-it-makes-sense checklist */
.v2g7-fits { list-style: none; margin: 4px 0 16px; padding: 0; }
.v2g7-fits li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 7px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2g7-fits li .v2gpr-mk { margin-top: 2px; }

/* Quick links strip */
.v2g7-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}

/* Mistake cards */
.v2g7-mistakes { margin: 22px 0; }
.v2g7-mistake {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
    margin-bottom: 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2g7-mistake:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16);
}
.v2g7-mistake__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.v2g7-mistake__num {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 13.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2g7-mistake__head h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.35;
    color: var(--ink);
}
.v2g7-mistake > p { font-size: 14px; line-height: 1.7; color: var(--slate); }

/* ---------- 7-legit-ways: responsive ---------- */

@media (max-width: 640px) {
    .v2gpr-prose > p.v2g7-ans { font-size: 14.5px; padding: 13px 15px; }

    /* Comparison table -> stacked method cards */
    .v2g7-tbl { background: none; border: none; border-radius: 0; overflow: visible; }
    .v2g7-tbl__bar {
        background: var(--mist);
        border: 1px solid var(--line);
        border-radius: 10px;
        margin-bottom: 12px;
    }
    .v2g7-tbl__scroll { overflow: visible; }
    .v2g7-tbl table, .v2g7-tbl tbody { display: block; }
    .v2g7-tbl thead { display: none; }
    .v2g7-tbl tbody { display: flex; flex-direction: column; gap: 12px; }
    .v2g7-tbl tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 12px;
        padding: 14px 16px;
    }
    .v2g7-tbl tbody tr.is-win {
        background: var(--go-tint);
        border-color: rgba(11, 138, 71, 0.3);
    }
    .v2g7-tbl td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        padding: 3px 0;
        border: none;
        font-size: 13px;
    }
    .v2g7-tbl td:first-child { display: block; font-size: 15px; padding-bottom: 7px; }
    .v2g7-tbl td[data-th]::before {
        content: attr(data-th);
        font-family: var(--font-mono);
        font-size: 8.5px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.09em;
        color: var(--faint);
        flex-shrink: 0;
    }
    .v2g7-tbl td:last-child {
        display: block;
        margin-top: 7px;
        padding-top: 8px;
        border-top: 1px solid #F0F3F5;
        font-size: 12.5px;
        color: var(--slate);
    }
    .v2g7-tbl tr.is-win td:last-child { border-top-color: rgba(11, 138, 71, 0.18); }
    .v2g7-tbl td:last-child::before { display: block; margin-bottom: 3px; }

    .v2g7-req { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2g7-quote { padding: 17px 16px; }
    .v2g7-quote blockquote, .v2g7-quote figcaption { padding-right: 32px; }
    .v2g7-deadlines { padding: 18px 16px; }

    .v2g7-method { padding: 19px 16px; }
    .v2g7-method__num { font-size: 68px; top: -10px; left: 6px; }
    .v2g7-method > p { font-size: 14px; }
    .v2g7-where { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .v2g7-verdict { padding: 13px 15px; }
    .v2g7-green { padding: 16px 16px; }
    .v2g7-mistake { padding: 17px 15px; }
    .v2g7-mistake__head h4 { font-size: 15px; }
    .v2g7-mistake > p { font-size: 13.5px; }

    /* DIY vs managed: pin the criteria column while the rest scrolls */
    .v2g7-cmp table { min-width: 520px; }
    .v2g7-cmp th:first-child, .v2g7-cmp td:first-child {
        position: sticky;
        right: 0;
        z-index: 1;
        min-width: 128px;
        max-width: 150px;
        box-shadow: -1px 0 0 var(--line);
    }
    .v2g7-cmp th:first-child { background: var(--mist); }
}

/* ---------- 7-legit-ways: 2026-09-05 rebuild components ----------
   Evidence labels, disclosure, methodology, timeline, hero route map,
   preflight checklist, scenario picker, message generator, 14-day
   plan, tracker and vetting list. Gotcha 19: one reset first for
   every list/figure/pre this block introduces, declared at (0,1,0)
   so the per-component margins below still win. */

.v2g7-time, .v2g7-phase, .v2g7-ask, .v2g7-pf__list, .v2g7-map,
.v2g7-msg__text, .v2g7-rail__sub {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Evidence labels ---------- */

.v2g7-lbl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1;
    padding: 6px 11px;
    border-radius: 999px;
    margin: 22px 0 10px;
}
.v2g7-lbl.is-rule { background: var(--ink); color: #fff; }
.v2g7-lbl.is-guide { background: var(--mist); border: 1px solid var(--line); color: var(--slate); }
.v2g7-lbl.is-ptl { background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2g7-lbl.is-report { background: var(--paper); border: 1px dashed #C9D2DA; color: var(--faint); }

/* ---------- Commercial disclosure ---------- */

.v2g7-disc {
    display: flex;
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    margin: 20px 0 22px;
}
.v2g7-disc__ic {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 9px;
    background: var(--mist);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2g7-disc__ic svg { width: 17px; height: 17px; }
.v2gpr-prose .v2g7-disc__label { color: var(--faint); margin-bottom: 5px; }
.v2gpr-prose .v2g7-disc p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Methodology note under the comparison ---------- */

.v2g7-meth {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 18px;
    margin: 14px 0 30px;
}
.v2gpr-prose .v2g7-meth__label { color: var(--faint); margin-bottom: 6px; }
.v2gpr-prose .v2g7-meth p:last-child { font-size: 13px; line-height: 1.7; color: var(--slate); margin: 0; }
.v2gpr-prose > p.v2g7-subnote { font-size: 14px; color: var(--slate); margin: -6px 0 16px; }
.v2gpr-prose .v2g7-caveat { font-size: 13.5px !important; color: var(--faint) !important; }

/* ---------- Four-stage timeline ---------- */

.v2g7-time { margin: 4px 0 30px; }
.v2g7-time li {
    position: relative;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: start;
    gap: 14px;
    padding: 0 0 18px 0;
}
.v2g7-time li:last-child { padding-bottom: 0; }
.v2g7-time li::before {
    content: "";
    position: absolute;
    right: 12.5px;
    top: 26px;
    bottom: 4px;
    width: 1px;
    background: var(--line);
}
.v2g7-time li:last-child::before { display: none; }
.v2g7-time__num {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-size: 10.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 1;
}
.v2g7-time li.is-rule .v2g7-time__num { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); color: var(--go-deep); }
.v2g7-time__body b { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); margin-bottom: 2px; }
.v2g7-time__body span { display: block; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2g7-time__dur {
    flex-shrink: 0;
    font-size: 9.5px;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    white-space: nowrap;
    margin-top: 2px;
}
.v2g7-time li.is-rule .v2g7-time__dur { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go-deep); }

/* ---------- Evidence ledger ---------- */

.v2g7-evi {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 16px 0 26px;
}
.v2g7-evi__row { padding: 15px 18px; border-bottom: 1px solid var(--line); }
.v2g7-evi__row:last-child { border-bottom: none; }
.v2g7-evi__row:nth-child(odd) { background: var(--paper); }
.v2g7-evi__row:nth-child(even) { background: #FBFCFD; }
.v2g7-evi .v2g7-lbl { margin: 0 0 8px; }
.v2gpr-prose .v2g7-evi p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Hero route map ---------- */

.v2g7-map {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 22px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -24px rgba(10, 16, 23, 0.14);
}
.v2g7-map__label { color: var(--faint); margin-bottom: 14px; }
.v2g7-map__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) auto minmax(0, 1fr) auto minmax(0, 0.92fr);
    align-items: stretch;
    gap: 12px;
}
.v2g7-map__step {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
}
.v2g7-map__step.is-end {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.24);
    text-align: center;
}
.v2g7-map__num {
    display: inline-block;
    font-size: 9px;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2g7-map__step.is-end .v2g7-map__num { color: var(--go-deep); }
.v2g7-map__title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14.5px;
    line-height: 1.35;
    letter-spacing: -0.012em;
    color: var(--ink);
}
.v2g7-map__step.is-end .v2g7-map__title { color: var(--go-deep); }
.v2g7-map__routes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 11px; }
.v2g7-map__routes span {
    font-size: 11.5px;
    font-weight: 500;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}
.v2g7-map__track { display: flex; gap: 3px; margin: 13px 0 8px; }
.v2g7-map__track i {
    flex: 1 1 0;
    height: 9px;
    border-radius: 2px;
    background: var(--go);
    transform-origin: right center;
}
.v2g7-map__day { display: block; font-size: 9px; color: var(--go-deep); }
.v2g7-map__seal {
    display: inline-flex;
    width: 34px;
    height: 34px;
    color: var(--go);
    margin-bottom: 8px;
}
.v2g7-map__seal svg { width: 34px; height: 34px; }
.v2g7-map__note { font-size: 11.5px; line-height: 1.55; color: var(--slate); margin-top: 8px; }
.v2g7-map__arrow { align-self: center; color: #C2CBD4; }
.v2g7-map__arrow svg { width: 22px; height: 22px; display: block; }
.v2g7-map__cap {
    font-size: 12px;
    line-height: 1.6;
    color: var(--faint);
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

.v2gpr-hero.v2-anim .v2g7-map__track i { transform: scaleX(0); }
.v2gpr-hero.v2-anim.is-in .v2g7-map__track i {
    transform: scaleX(1);
    transition: transform 0.32s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(0.5s + var(--i) * 0.045s);
}
.v2gpr-hero.v2-anim .v2g7-map__step { opacity: 0; transform: translateY(14px); }
.v2gpr-hero.v2-anim.is-in .v2g7-map__step {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d), transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d);
}

/* ---------- Preflight checklist (interactive) ---------- */

.v2g7-pf {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px 18px;
    margin: 6px 0 22px;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.v2g7-pf.is-done {
    border-color: rgba(11, 138, 71, 0.34);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.14);
}
.v2g7-pf__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.v2gpr-prose .v2g7-pf__title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    color: var(--ink);
    margin: 0;
    margin-left: auto;
}
.v2gpr-prose .v2g7-pf__count { font-size: 10px; color: var(--faint); margin: 0; }
.v2g7-pf__count b { color: var(--ink); font-size: 12px; }
.v2g7-pf.is-done .v2g7-pf__count b { color: var(--go-deep); }
.v2 .v2g7-pf__reset {
    background: none;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--faint);
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease;
}
.v2 .v2g7-pf__reset:hover { border-color: #C9D2DA; color: var(--slate); }
.v2g7-pf__track {
    height: 5px;
    border-radius: 999px;
    background: var(--mist);
    overflow: hidden;
    margin: 14px 0 4px;
}
.v2g7-pf__track i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--go);
    transition: width 0.3s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2g7-pf__list { margin-top: 6px; }
.v2g7-pf__list li { border-bottom: 1px solid #F0F3F5; }
.v2g7-pf__list li:last-child { border-bottom: none; }
.v2g7-pf__list label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 2px;
    cursor: pointer;
}
.v2g7-pf__list input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2g7-pf__box {
    flex-shrink: 0;
    width: 21px;
    height: 21px;
    margin-top: 1px;
    border: 1.5px solid #C9D2DA;
    border-radius: 7px;
    background: var(--paper);
    color: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.v2g7-pf__box svg { width: 14px; height: 14px; }
.v2g7-pf__list label:hover .v2g7-pf__box { border-color: var(--go); }
.v2g7-pf__list input:checked + .v2g7-pf__box {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2g7-pf__list input:focus-visible + .v2g7-pf__box { outline: 2px solid var(--go); outline-offset: 2px; }
.v2g7-pf__txt { font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2g7-pf__txt b { color: var(--ink); font-weight: 600; }
.v2g7-pf__list input:checked ~ .v2g7-pf__txt { color: var(--faint); }
.v2gpr-prose .v2g7-pf__done {
    display: none;
    align-items: center;
    gap: 8px;
    margin: 14px 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(11, 138, 71, 0.2);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
}
.v2g7-pf__done svg { width: 18px; height: 18px; flex-shrink: 0; }
.v2gpr-prose .v2g7-pf.is-done .v2g7-pf__done { display: flex; }

/* ---------- Labelled community claim ---------- */

.v2g7-claim {
    background: var(--paper);
    border: 1px dashed #D5DCE3;
    border-radius: 14px;
    padding: 15px 18px;
    margin: 16px 0;
}
.v2g7-claim .v2g7-lbl { margin: 0 0 8px; }
.v2gpr-prose .v2g7-claim p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Scenario picker ---------- */

.v2g7-pick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 24px;
}
.v2g7-pick__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2g7-pick__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16);
}
.v2g7-pick__card:last-child { grid-column: 1 / -1; }
.v2gpr-prose .v2g7-pick__title {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    line-height: 1.3;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 0 0 7px;
}
.v2gpr-prose .v2g7-pick__route {
    display: inline-block;
    font-size: 9.5px;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 999px;
    padding: 5px 10px;
    margin: 0 0 10px;
}
.v2gpr-prose .v2g7-pick__body { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Copy button (shared) ---------- */

.v2 .v2g7-copy {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.v2 .v2g7-copy:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2g7-copy svg { width: 14px; height: 14px; }
.v2 .v2g7-copy.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.24);
    color: var(--go-deep);
}

/* ---------- Recruitment message generator ---------- */

.v2g7-msg { margin: 6px 0 26px; }
.v2g7-msg__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.v2g7-msg__field { display: block; }
.v2g7-msg__field > span { display: block; color: var(--faint); margin-bottom: 6px; }
.v2 .v2g7-msg__field input {
    width: 100%;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    padding: 0 13px;
    font-family: var(--font-body);
    font-size: 14px;
    color: var(--ink);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2 .v2g7-msg__field input:focus {
    outline: none;
    border-color: var(--go);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.12);
}
.v2g7-msg__paper {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--paper);
}
.v2g7-msg__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2g7-msg__bar > .v2-mono { color: var(--faint); margin-left: auto; }
.v2gpr-prose .v2g7-msg__text {
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--slate);
    white-space: pre-wrap;
    word-break: break-word;
    padding: 18px 20px;
    margin: 0;
    background: none;
    border: none;
}
.v2g7-msg__text [data-g7-app], .v2g7-msg__text [data-g7-what] {
    background: var(--go-tint);
    color: var(--go-deep);
    font-weight: 600;
    border-radius: 3px;
    padding: 1px 2px;
}
.v2gpr-prose .v2g7-msg__note { font-size: 12.5px; line-height: 1.6; color: var(--faint); margin: 11px 0 0; }

/* ---------- 14-day phase plan ---------- */

.v2g7-phase {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 8px 0 26px;
}
.v2g7-phase li {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2g7-phase__when {
    display: inline-block;
    font-size: 9px;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 999px;
    padding: 4px 10px;
    margin-bottom: 9px;
}
.v2g7-phase__body b { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); margin-bottom: 3px; }
.v2g7-phase__body span { display: block; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

/* ---------- Tester tracker ---------- */

.v2g7-trk {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 16px 0 10px;
    background: var(--paper);
}
.v2g7-trk__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2g7-trk__bar > .v2-mono { color: var(--faint); margin-left: auto; }
.v2g7-trk__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2g7-trk table { width: 100%; min-width: 720px; border-collapse: collapse; }
.v2g7-trk th {
    font-family: var(--font-mono);
    font-size: 8.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    text-align: right;
    padding: 11px 12px;
    color: var(--faint);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2g7-trk td {
    padding: 11px 12px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
    border-bottom: 1px solid #F2F5F7;
    vertical-align: top;
}
.v2g7-trk tbody tr:last-child td { border-bottom: none; }
.v2g7-trk td:first-child { font-weight: 600; color: var(--ink); white-space: nowrap; }
.v2gpr-prose > p.v2g7-trk__note { font-size: 12.5px; line-height: 1.65; color: var(--faint); margin: 0 0 26px; }

/* ---------- Vetting questions ---------- */

.v2g7-ask { margin: 16px 0 22px; }
.v2g7-ask li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid #F0F3F5;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2g7-ask li:last-child { border-bottom: none; }
.v2g7-ask li > .v2-mono {
    flex-shrink: 0;
    font-size: 10px;
    color: var(--faint);
    padding-top: 3px;
    min-width: 18px;
}

/* This post numbers its sections in the rail (11 top-level rows with the
   seven methods nested), so the shared per-H2 counter would print a second,
   different number beside every heading. Audit UX 6: one numbering system. */
.v2g7-article .v2gpr-h2::before { content: none; }
.v2g7-article .v2gpr-h2 { padding-top: 26px; margin-top: 52px; }
.v2g7-article .v2gpr-h3 { margin-top: 34px; }

/* Six-column comparison table: tighter cells so it fits the article column */
.v2g7-tbl td { padding: 12px 11px; }
.v2g7-tbl th { padding: 10px 11px; }
.v2g7-rel { font-size: 9px; padding: 4px 8px; }

/* ---------- Sticky mobile CTA repair (scoped to this post) ----------
   Same shared-furniture bug the 16 KB, Test on Screen and paid-services posts
   already repair locally: the FAQ block's <=768px rule sets
   .v2-faq__wa { flex: 1 1 100% }, the shared .v2gpr-scta override only resets
   flex-shrink, so at 390px the WhatsApp button runs off-screen and the primary
   button collapses to an unreadable stub. Repaired here rather than in the
   shared rule, which six other posts render against. */

.v2 .v2g7-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2g7-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    overflow: hidden;
    text-overflow: ellipsis;
}
@media (max-width: 390px) {
    .v2 .v2g7-scta { gap: 8px; padding-right: 11px; padding-left: 11px; }
    .v2 .v2g7-scta .v2-btn { font-size: 13px; }
}

/* ---------- Two-level rail + tweaks to existing pieces ---------- */

.v2g7-rail__sub {
    margin: 6px 14px 4px 0;
    padding-right: 11px;
    border-right: 1px solid var(--line);
}
.v2g7-rail__sub li { margin: 0; }
.v2g7-rail__sub a {
    display: flex;
    gap: 8px;
    padding: 3px 0;
    font-size: 12.5px;
    color: var(--faint);
    text-decoration: none;
    transition: color 0.2s ease;
}
.v2g7-rail__sub a:hover { color: var(--slate); }
.v2g7-rail__sub a.is-active { color: var(--go-deep); font-weight: 600; }
.v2g7-rail__sub a > .v2-mono { font-size: 9px; min-width: 9px; padding-top: 2px; }

.v2g7-mistake__head h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 0;
}
.v2g7-cmp__tag {
    display: inline-block;
    font-size: 8px;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px 7px;
    margin-right: 6px;
    vertical-align: middle;
    white-space: nowrap;
}
a.v2g7-tbl__hint { text-decoration: none; }
a.v2g7-tbl__hint:hover { text-decoration: underline; }
.v2g7-method__badge.is-quiet { background: var(--mist); color: var(--slate); }
.v2g7-related__svclabel { color: var(--faint); margin: 30px 0 12px; }
.v2gpr-rel.is-svc { background: var(--mist); }

/* ---------- responsive ---------- */

@media (max-width: 900px) {
    .v2g7-map__grid { grid-template-columns: minmax(0, 1fr); }
    .v2g7-map__arrow { justify-self: center; transform: rotate(-90deg); }
}

@media (max-width: 640px) {
    .v2g7-map { padding: 16px; border-radius: 16px; }
    .v2g7-map__routes span { font-size: 11px; padding: 3px 9px; }
    .v2g7-map__cap { font-size: 11.5px; }

    .v2g7-lbl { font-size: 8.5px; padding: 5px 10px; }
    .v2g7-disc, .v2g7-meth, .v2g7-claim { padding: 14px 15px; }
    .v2g7-evi__row { padding: 13px 15px; }

    .v2g7-time li { grid-template-columns: 24px minmax(0, 1fr); gap: 11px; }
    .v2g7-time li::before { right: 11.5px; }
    .v2g7-time__num { width: 24px; height: 24px; }
    .v2g7-time__dur { grid-column: 2; justify-self: start; margin-top: 8px; }

    .v2g7-pf { padding: 17px 16px 15px; }
    .v2gpr-prose .v2g7-pf__title { font-size: 15px; width: 100%; margin-left: 0; }
    .v2g7-pf__txt { font-size: 13.5px; }

    .v2g7-pick { grid-template-columns: minmax(0, 1fr); }
    .v2g7-pick__card { padding: 16px 16px; }
    .v2gpr-prose .v2g7-pick__title { font-size: 15.5px; }

    .v2g7-msg__fields { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2gpr-prose .v2g7-msg__text { font-size: 13px; padding: 15px 16px; }

    .v2g7-phase { grid-template-columns: minmax(0, 1fr); }

    /* Tracker -> stacked cards, same treatment as the comparison table */
    .v2g7-trk { border: none; border-radius: 0; background: none; }
    .v2g7-trk__bar { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 12px; }
    .v2g7-trk__scroll { overflow: visible; }
    .v2g7-trk table, .v2g7-trk tbody { display: block; min-width: 0; }
    .v2g7-trk thead { display: none; }
    .v2g7-trk tbody { display: flex; flex-direction: column; gap: 10px; }
    .v2g7-trk tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 12px;
        padding: 13px 15px;
    }
    .v2g7-trk td {
        display: flex;
        justify-content: space-between;
        align-items: baseline;
        gap: 12px;
        padding: 3px 0;
        border: none;
        font-size: 12.5px;
        text-align: left;
    }
    .v2g7-trk td:first-child { display: block; font-size: 14.5px; padding-bottom: 6px; text-align: right; }
    .v2g7-trk td[data-th]::before {
        content: attr(data-th);
        font-family: var(--font-mono);
        font-size: 8.5px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.09em;
        color: var(--faint);
        flex-shrink: 0;
        text-align: right;
    }

    /* Re-assert the stacked-card layout: the density rules above are later
       in the file than the original g7 media block, so they would otherwise
       win inside this breakpoint too. min-width:0 is the important one - a
       620px table inside a 358px card pushed every value off-screen, where
       body.v2 { overflow-x: clip } hid it silently. */
    .v2g7-tbl table { min-width: 0; }
    .v2g7-tbl td { padding: 3px 0; }
    .v2g7-tbl td:first-child { padding-bottom: 7px; }

    /* Table caption bar: stack instead of squeezing two mono strings */
    .v2g7-tbl__bar { flex-wrap: wrap; row-gap: 6px; }
    .v2g7-tbl__bar > .v2-mono { white-space: nowrap; }
    a.v2g7-tbl__hint, .v2g7-tbl__hint { margin-right: 0; white-space: normal; }

    /* Keep the freshness plaque on one line at 390px */
    .v2g7-facts .v2gpr-fact:last-child b { font-size: 17px; white-space: nowrap; }

    .v2g7-ask li { font-size: 13.5px; }
    .v2g7-cmp__tag { display: block; margin: 5px 0 0; width: fit-content; }
}

/* =============================================================
   BLOG PVO V2
   (/blog/personal-vs-organization-google-play-account-12-testers)
   Page-unique components layered on the shared v2gpr- article
   system. Prefix: v2pvo-.
   ============================================================= */

/* Gotcha 19: enumerated reset for this block's lists/quotes,
   declared FIRST at (0,1,0) so later per-component rules win. */
.v2pvo-vs__list, .v2pvo-frame, .v2pvo-quote { margin: 0; padding: 0; list-style: none; }

/* ---------- Versus artifact (hero comparison panel) ---------- */

.v2pvo-vs {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 28px;
}
.v2pvo-vs__pip {
    position: absolute;
    right: 50%;
    top: 50%;
    transform: translate(50%, -50%);
    z-index: 2;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 3px solid var(--paper);
    box-shadow: 0 6px 16px -6px rgba(10, 16, 23, 0.35);
}
.v2pvo-vs__side {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2pvo-vs__side.is-org {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.22), 0 14px 30px -18px rgba(11, 138, 71, 0.3);
}
.v2pvo-vs__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 9.5px;
    border-radius: 999px;
    padding: 4px 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2pvo-vs__side.is-org .v2pvo-vs__tag {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2pvo-vs__tag svg { width: 13px; height: 13px; }
.v2pvo-vs__t {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 12px 0 2px;
}
.v2pvo-vs__who { font-size: 12.5px; color: var(--faint); margin-bottom: 14px; }
.v2pvo-vs__verdict {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 14px;
}
.v2pvo-vs__side.is-org .v2pvo-vs__verdict {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2pvo-vs__verdict .v2gpr-mk { margin-top: 2px; }
.v2pvo-vs__verdict b {
    display: block;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2pvo-vs__verdict em { font-style: normal; font-size: 11.5px; color: var(--slate); }
.v2pvo-vs__list li {
    position: relative;
    padding-right: 16px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    margin-bottom: 6px;
}
.v2pvo-vs__list li:last-child { margin-bottom: 0; }
.v2pvo-vs__list li::before {
    content: '';
    position: absolute;
    right: 2px;
    top: 8px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #C9D2DA;
}
.v2pvo-vs.v2-anim .v2pvo-vs__side {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.6s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2pvo-vs.v2-anim .v2pvo-vs__side.is-org { transition-delay: 0.12s; }
.v2pvo-vs.v2-anim .v2pvo-vs__pip {
    opacity: 0;
    transform: translate(50%, -50%) scale(0.4);
    transition: opacity 0.45s ease 0.3s, transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s;
}
.v2pvo-vs.v2-anim.is-in .v2pvo-vs__side { opacity: 1; transform: none; }
.v2pvo-vs.v2-anim.is-in .v2pvo-vs__pip { opacity: 1; transform: translate(50%, -50%) scale(1); }

/* ---------- Advisor questions + verdicts ---------- */

.v2pvo-q { margin-bottom: 18px; }
.v2pvo-q__label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.35;
    margin-bottom: 10px;
}
.v2pvo-q__n {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2pvo-seg {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.v2pvo-seg label { display: block; cursor: pointer; margin: 0; }
.v2pvo-seg input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
.v2pvo-seg span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 46px;
    height: 100%;
    padding: 11px 13px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
    text-align: center;
    line-height: 1.3;
    transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.v2pvo-seg span svg { width: 17px; height: 17px; color: var(--faint); flex-shrink: 0; transition: color 0.2s ease; }
.v2pvo-seg label:hover span { border-color: #C9D2DA; color: var(--ink); }
.v2pvo-seg input:checked + span {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.4);
    color: var(--go-deep);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25);
}
.v2pvo-seg input:checked + span svg { color: var(--go); }
.v2pvo-seg input:focus-visible + span { outline: 2px solid var(--go); outline-offset: 2px; }
.v2pvo-verdict {
    display: none;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
}
.v2pvo-verdict.show { display: block; animation: v2gprIn 0.35s ease; }
.v2pvo-verdict__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.v2pvo-verdict__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2pvo-verdict.v-org .v2pvo-verdict__ic,
.v2pvo-verdict.v-mandatory .v2pvo-verdict__ic { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2pvo-verdict__ic svg { width: 21px; height: 21px; }
.v2pvo-rc-t {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2pvo-verdict__badge {
    display: inline-block;
    font-size: 9px;
    border-radius: 6px;
    padding: 3px 8px;
}
.v2pvo-verdict__badge.is-go {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2pvo-verdict__badge.is-must { color: #fff; background: var(--ink); }
.v2pvo-verdict p { font-size: 14px; line-height: 1.7; color: var(--slate); margin-bottom: 10px; }
.v2pvo-verdict p:last-of-type { margin-bottom: 0; }
.v2pvo-verdict__note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 13px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2pvo-verdict__note svg { width: 16px; height: 16px; color: var(--go); flex-shrink: 0; margin-top: 2px; }

/* ---------- Rule detail cards ---------- */

.v2pvo-rules {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2pvo-rule {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2pvo-rule:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16);
}
.v2pvo-rule__t {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2pvo-rule__t svg { width: 18px; height: 18px; color: var(--slate); flex-shrink: 0; }
.v2pvo-rule > p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Organization requirement cards ---------- */

.v2pvo-req {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2pvo-req__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2pvo-req__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.18);
}
.v2pvo-req__ic {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--mist);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}
.v2pvo-req__ic svg { width: 20px; height: 20px; }
.v2pvo-req__t {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14.5px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2pvo-req__card > p:not(.v2pvo-req__t) { font-size: 12.5px; line-height: 1.6; color: var(--slate); }
.v2pvo-req__tag {
    display: inline-block;
    margin-top: 10px;
    font-size: 8.5px;
    letter-spacing: 0.1em;
    border-radius: 5px;
    padding: 3px 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2pvo-req__tag.is-must { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- D-U-N-S bars extras ---------- */

.v2pvo-cost {
    font-size: 9.5px;
    border-radius: 999px;
    padding: 3px 10px;
    white-space: nowrap;
}
.v2pvo-cost.is-free {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2pvo-cost.is-paid { color: #fff; background: var(--ink); }
.v2pvo-duns__scale {
    display: flex;
    justify-content: space-between;
    margin-top: 14px;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
}
.v2pvo-duns__scale .v2-mono { font-size: 9px; }

/* ---------- Path A vs Path B duel ---------- */

.v2pvo-paths {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 28px 0 24px;
}
.v2pvo-paths__vs {
    position: absolute;
    right: 50%;
    top: 50%;
    transform: translate(50%, -50%);
    z-index: 2;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 3px solid var(--paper);
}
.v2pvo-path {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 22px 16px;
}
.v2pvo-path.is-b {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25), 0 14px 30px -18px rgba(11, 138, 71, 0.35);
}
.v2pvo-path__tag {
    position: absolute;
    top: -11px;
    right: 18px;
    font-size: 9px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    padding: 4px 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2pvo-path.is-b .v2pvo-path__tag { background: var(--go); border-color: var(--go); color: #fff; }
.v2pvo-path__t {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 4px 0 3px;
}
.v2pvo-path__t svg { width: 18px; height: 18px; color: var(--slate); flex-shrink: 0; }
.v2pvo-path.is-b .v2pvo-path__t svg { color: var(--go); }
.v2pvo-path__lede { font-size: 12.5px; color: var(--faint); margin-bottom: 14px; }
.v2pvo-path__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}
.v2pvo-path__stat {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 12px;
    text-align: center;
}
.v2pvo-path.is-b .v2pvo-path__stat { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.18); }
.v2pvo-path__stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 17px;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.v2pvo-path__stat .v2-mono { display: block; font-size: 8.5px; margin-top: 6px; }
.v2pvo-path__row {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 8px 0;
    border-top: 1px solid rgba(10, 16, 23, 0.06);
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}
.v2pvo-path__row:first-of-type { border-top: none; }
.v2pvo-path__row .v2gpr-mk { margin-top: 2px; }
.v2pvo-path__foot {
    margin-top: 6px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    font-weight: 650;
    color: var(--slate);
}
.v2pvo-path.is-b .v2pvo-path__foot { color: var(--go-deep); }

/* ---------- Comparison table ---------- */

.v2pvo-ct {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 24px 0;
}
.v2pvo-ct__head {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    background: var(--ink);
}
.v2pvo-ct__head > div {
    padding: 13px 16px;
    color: #fff;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.v2pvo-ct__row {
    display: grid;
    grid-template-columns: 1.1fr 1fr 1fr;
    border-top: 1px solid var(--line);
}
.v2pvo-ct__row:first-of-type { border-top: none; }
.v2pvo-ct__row > div { padding: 13px 16px; font-size: 13.5px; line-height: 1.55; }
.v2pvo-ct__factor {
    background: var(--mist);
    font-weight: 650;
    color: var(--ink);
    border-left: 1px solid var(--line);
}
.v2pvo-ct__val { color: var(--slate); display: flex; align-items: flex-start; gap: 8px; }
.v2pvo-ct__val.is-personal { border-left: 1px solid var(--line); }
.v2pvo-ct__val .v2gpr-mk { margin-top: 2px; }
.v2pvo-ct__lab { display: none; font-weight: 650; color: var(--ink); }

/* ---------- Migration trap flow ---------- */

.v2pvo-trap {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 26px 20px;
    margin: 24px 0;
}
.v2pvo-trap__node { text-align: center; max-width: 175px; padding: 0 8px; }
.v2pvo-trap__box {
    width: 56px;
    height: 56px;
    border-radius: 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 10px;
}
.v2pvo-trap__box svg { width: 26px; height: 26px; }
.v2pvo-trap__t {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 13.5px;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2pvo-trap__node > p:last-child { font-size: 11.5px; line-height: 1.45; color: var(--slate); }
.v2pvo-trap__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 14px;
}
.v2pvo-trap__bar {
    display: block;
    width: 54px;
    height: 2px;
    background: repeating-linear-gradient(-90deg, #C9D2DA 0 7px, transparent 7px 13px);
}
.v2pvo-trap__x {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid #C9D2DA;
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 8px 0;
}
.v2pvo-trap__x svg { width: 14px; height: 14px; }
.v2pvo-trap__lab { font-size: 8.5px; color: var(--slate); }

/* ---------- Decision framework cards ---------- */

.v2pvo-frame {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 24px 0;
}
.v2pvo-frame__card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 15px;
    align-items: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 19px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2pvo-frame__card:hover {
    border-color: #C9D2DA;
    box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16);
}
.v2pvo-frame__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2pvo-frame__card.is-org .v2pvo-frame__ic { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2pvo-frame__ic svg { width: 21px; height: 21px; }
.v2pvo-frame__t {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 14.5px;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2pvo-frame__txt > p:last-child { font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2pvo-frame__verdict {
    font-size: 9px;
    letter-spacing: 0.1em;
    border-radius: 999px;
    padding: 6px 12px;
    white-space: nowrap;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
}
.v2pvo-frame__card.is-org .v2pvo-frame__verdict { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- Google quote ---------- */

.v2pvo-quote {
    margin: 22px 0;
    padding: 18px 22px;
    background: var(--mist);
    border-right: 3px solid var(--ink);
    border-radius: 12px 0 0 12px;
    font-size: 15.5px;
    line-height: 1.7;
    font-weight: 500;
    color: var(--ink);
}
.v2pvo-quote cite {
    display: block;
    margin-top: 10px;
    font-style: normal;
    font-size: 9.5px;
}
.v2pvo-quote cite::before { content: '- '; }

/* ---------- Change card title (div, keeps heading outline clean) ---------- */

.v2pvo-change-t {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 14px;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 3px;
}

/* ---------- PVO responsive ---------- */

@media (max-width: 768px) {
    .v2pvo-vs { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2pvo-vs__pip {
        position: static;
        transform: none;
        margin: -2px auto;
        box-shadow: none;
    }
    .v2pvo-vs.v2-anim .v2pvo-vs__pip { transform: scale(0.4); }
    .v2pvo-vs.v2-anim.is-in .v2pvo-vs__pip { transform: scale(1); }
    .v2pvo-vs__side { padding: 18px; }

    .v2pvo-rules { grid-template-columns: minmax(0, 1fr); }
    .v2pvo-req { grid-template-columns: minmax(0, 1fr); }
    .v2pvo-req__card { padding: 16px; }

    .v2pvo-paths { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .v2pvo-paths__vs { display: none; }
    .v2pvo-path { padding: 22px 18px 14px; }

    .v2pvo-ct__head { display: none; }
    .v2pvo-ct__row { grid-template-columns: minmax(0, 1fr); border-top: 8px solid var(--mist); }
    .v2pvo-ct__row:first-of-type { border-top: none; }
    .v2pvo-ct__factor {
        background: var(--ink);
        color: #fff;
        border-left: none;
        font-size: 13px;
    }
    .v2pvo-ct__val.is-personal { border-left: none; border-bottom: 1px solid var(--line); }
    .v2pvo-ct__lab { display: inline; }

    .v2pvo-trap { padding: 22px 12px; }
    .v2pvo-trap__node { max-width: 135px; padding: 0 4px; }
    .v2pvo-trap__box { width: 50px; height: 50px; }
    .v2pvo-trap__box svg { width: 23px; height: 23px; }
    .v2pvo-trap__link { padding: 0 8px; }
    .v2pvo-trap__bar { width: 34px; }

    .v2pvo-frame__card { grid-template-columns: auto minmax(0, 1fr); gap: 13px; padding: 15px 16px; }
    .v2pvo-frame__verdict { grid-column: 1 / -1; justify-self: start; margin-top: 2px; }

    .v2pvo-q__label { font-size: 13.5px; }
    .v2pvo-seg span { font-size: 12.5px; padding: 10px 9px; gap: 6px; }
    .v2pvo-verdict { padding: 17px 16px; }
    .v2pvo-quote { padding: 16px 18px; font-size: 14.5px; }
}
@media (max-width: 380px) {
    .v2pvo-seg { grid-template-columns: minmax(0, 1fr); }
    .v2pvo-path__meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2pvo-trap { flex-direction: column; gap: 4px; padding: 20px 14px; }
    .v2pvo-trap__node { max-width: none; }
    .v2pvo-trap__link { flex-direction: row; gap: 11px; padding: 6px 0; }
    .v2pvo-trap__bar { width: 2px; height: 22px; background: repeating-linear-gradient(-180deg, #C9D2DA 0 7px, transparent 7px 13px); }
    .v2pvo-trap__x { margin: 0; }
}

/* =============================================================
   BLOG TT V2
   (/blog/google-play-internal-vs-closed-vs-open-testing)
   Page-unique components layered on the shared v2gpr- article
   system (plus v2pvo-rules / v2pvo-frame reuse). Prefix: v2tt-.
   ============================================================= */

/* Gotcha 19 reset for this block's lists/figcaption pieces,
   declared FIRST at (0,1,0) so later per-component rules win. */
.v2tt-glance__list, .v2tt-figcap { margin: 0; padding: 0; list-style: none; }

.v2tt-figcap {
    margin-top: 12px;
    text-align: center;
    font-size: 12.5px;
    color: var(--faint);
}
.v2tt-footnote {
    font-size: 12.5px;
    color: var(--faint);
    margin: -10px 0 24px;
}

/* ---------- Key differences glance card ---------- */

.v2tt-glance {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 24px;
    margin: 0 0 26px;
}
.v2tt-glance__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 13px;
}
.v2tt-glance__label svg { width: 15px; height: 15px; color: var(--go); }
.v2tt-glance__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    padding: 7px 0;
    border-top: 1px dashed #E9EDF1;
}
.v2tt-glance__list li:first-child { border-top: none; padding-top: 0; }
.v2tt-glance__list li:last-child { padding-bottom: 0; }
.v2tt-glance__list li .v2gpr-mk { margin-top: 3px; }
.v2tt-glance__list strong { color: var(--ink); }

/* ---------- Production funnel ---------- */

.v2tt-funnel {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    margin: 26px 0;
}
.v2tt-funnel__label {
    text-align: center;
    margin-bottom: 18px;
}
.v2tt-funnel__flow {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
}
.v2tt-funnel__node {
    position: relative;
    flex: 1;
    max-width: 190px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 12px 13px;
    text-align: center;
}
.v2tt-funnel__node.is-gate {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25);
}
.v2tt-funnel__node.is-live { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2tt-funnel__gate {
    position: absolute;
    top: -9px;
    right: 50%;
    transform: translateX(50%);
    font-style: normal;
    font-size: 8px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-weight: 600;
    font-family: var(--font-mono);
    background: var(--ink);
    color: #fff;
    border-radius: 999px;
    padding: 2px 9px;
    white-space: nowrap;
}
.v2tt-funnel__node b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 14.5px;
    color: var(--ink);
}
.v2tt-funnel__node > span {
    display: block;
    font-size: 11.5px;
    color: var(--slate);
    margin-top: 2px;
}
.v2tt-funnel__node em {
    display: inline-block;
    font-style: normal;
    font-size: 8.5px;
    font-family: var(--font-mono);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-top: 8px;
    border-radius: 5px;
    padding: 2px 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2tt-funnel__node em.is-req { background: var(--go); border-color: var(--go); color: #fff; }
.v2tt-funnel__node em.is-goal {
    background: #fff;
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2tt-funnel__arrow {
    display: flex;
    align-items: center;
    color: var(--faint);
    flex-shrink: 0;
}
.v2tt-funnel__arrow svg { width: 17px; height: 17px; }
.v2tt-funnel__foot {
    text-align: center;
    font-size: 12px;
    color: var(--faint);
    margin-top: 14px;
}
.v2tt-funnel.v2-anim .v2tt-funnel__node {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s cubic-bezier(0.22, 0.8, 0.26, 1), transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2tt-funnel.v2-anim .v2tt-funnel__node.is-gate { transition-delay: 0.12s; }
.v2tt-funnel.v2-anim .v2tt-funnel__node.is-live { transition-delay: 0.24s; }
.v2tt-funnel.v2-anim.is-in .v2tt-funnel__node { opacity: 1; transform: none; }

/* ---------- Four-column comparison table ---------- */

/* Markup note (2026-08-16): .v2tt-ct is a real <table> whose
   table/thead/tbody are display:block so the rows can stay CSS grids.
   Cells are <th>/<td> now; the historical `> div` selectors are kept
   alongside them so any block still using divs renders identically. */
.v2tt-ct {
    display: block;
    width: 100%;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 24px 0 14px;
    border-collapse: collapse;
}
.v2tt-ct > thead,
.v2tt-ct > tbody { display: block; }
.v2tt-ct__head {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr 1fr;
    background: var(--ink);
}
.v2tt-ct__head > div,
.v2tt-ct__head > th {
    padding: 12px 14px;
    color: #fff;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-align: center;
}
.v2tt-ct__head > div:first-child,
.v2tt-ct__head > th:first-child { text-align: right; }
.v2tt-ct__head > div.is-key,
.v2tt-ct__head > th.is-key { color: #3ECF81; }
.v2tt-ct__row {
    display: grid;
    grid-template-columns: 1.15fr 1fr 1fr 1fr;
    border-top: 1px solid var(--line);
}
.v2tt-ct__row:first-of-type { border-top: none; }
.v2tt-ct__row > div,
.v2tt-ct__row > th,
.v2tt-ct__row > td { padding: 12px 14px; font-size: 13px; line-height: 1.5; }

/* Three-column variant: the account-type decision table in _s_who. */
.v2tt-ct--who .v2tt-ct__head,
.v2tt-ct--who .v2tt-ct__row { grid-template-columns: 1fr 1.1fr 1.1fr; }
.v2tt-ct__factor {
    background: var(--mist);
    font-weight: 650;
    color: var(--ink);
    text-align: right;
    border-left: 1px solid var(--line);
}
.v2tt-ct__val {
    color: var(--slate);
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex-wrap: wrap;
}
.v2tt-ct__val b { color: var(--ink); font-weight: 650; font-variant-numeric: tabular-nums; }
.v2tt-ct__val.is-key { background: var(--go-tint); }
.v2tt-ct__val .v2gpr-mk { flex-shrink: 0; }
.v2tt-ct__yes {
    display: inline-block;
    font-size: 9px;
    background: var(--go);
    color: #fff;
    border-radius: 5px;
    padding: 3px 9px;
}
.v2tt-ct__lab { display: none; font-weight: 650; color: var(--ink); }

/* ---------- Post-14-day sequence (numbered) ---------- */

.v2gpr-prose ol.v2tt-after {
    counter-reset: v2ttafter;
    list-style: none;
    margin: 20px 0 18px;
    padding: 0;
    display: grid;
    gap: 8px;
}
.v2gpr-prose ol.v2tt-after > li {
    counter-increment: v2ttafter;
    position: relative;
    margin: 0;
    padding: 13px 50px 13px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--slate);
}
.v2gpr-prose ol.v2tt-after > li::before {
    content: counter(v2ttafter);
    position: absolute;
    right: 14px;
    top: 12px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
}
.v2gpr-prose ol.v2tt-after > li:last-child { border-color: var(--go); }

/* ---------- Internal use-cases ---------- */

.v2tt-uses {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 22px;
    margin: 24px 0;
}
.v2tt-uses__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 13px;
}
.v2tt-uses__label svg { width: 15px; height: 15px; color: var(--go); }
.v2tt-uses__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px 18px;
}
.v2tt-uses__grid > div {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2tt-uses__grid .v2gpr-mk { margin-top: 2px; }

/* ---------- Requirement capsule text ---------- */

.v2tt-req { font-size: 17px; line-height: 1.7; color: var(--ink); font-weight: 500; }
.v2tt-req strong { color: var(--go-deep); }

/* ---------- 14-day progress artifact ---------- */

.v2tt-progress {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 24px;
    margin: 24px 0;
}
.v2tt-progress__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}
.v2tt-progress__head b { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.v2tt-progress__head .v2-mono.is-done,
.v2tt-progress__scale .v2-mono.is-done { color: var(--go-deep); }
.v2tt-progress .v2gpr-bars__track { height: 16px; }
.v2tt-progress.is-in .v2gpr-bars__fill { animation: v2gprBar 0.9s cubic-bezier(0.22, 0.8, 0.26, 1); }
.v2tt-progress__scale {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 8px;
}
.v2tt-progress__scale .v2-mono { font-size: 9px; }
.v2tt-progress__note {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 14px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 10px;
    padding: 11px 14px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2tt-progress__note .v2gpr-mk { margin-top: 2px; }

/* ---------- Recommended flow steps ---------- */

.v2tt-flow {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 10px;
    margin: 22px 0 14px;
}
.v2tt-flow__step {
    flex: 1;
    max-width: 190px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 12px;
    text-align: center;
}
.v2tt-flow__step.is-key {
    border-color: rgba(11, 138, 71, 0.4);
    box-shadow: 0 0 0 1px rgba(11, 138, 71, 0.25), 0 12px 26px -18px rgba(11, 138, 71, 0.35);
}
.v2tt-flow__step > .v2-mono { display: block; font-size: 9px; margin-bottom: 5px; }
.v2tt-flow__step.is-key > .v2-mono { color: var(--go-deep); }
.v2tt-flow__step b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 14.5px;
    color: var(--ink);
}
.v2tt-flow__step em {
    display: block;
    font-style: normal;
    font-size: 11.5px;
    color: var(--slate);
    margin-top: 3px;
}
.v2tt-flow__step em.is-req { color: var(--go-deep); font-weight: 600; }
.v2tt-flow__arrow {
    display: flex;
    align-items: center;
    color: var(--faint);
    flex-shrink: 0;
}
.v2tt-flow__arrow svg { width: 17px; height: 17px; }
.v2tt-flow__note { text-align: center; font-size: 13.5px; color: var(--slate); }

/* ---------- Insider secret cards ---------- */

.v2tt-secret {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 26px;
    margin: 20px 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.v2tt-secret:hover {
    border-color: #C9D2DA;
    box-shadow: 0 12px 28px -18px rgba(10, 16, 23, 0.16);
}
.v2tt-secret__head {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 13px;
}
.v2tt-secret__n {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--ink);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2tt-secret__kick {
    display: inline-block;
    font-size: 8.5px;
    border-radius: 5px;
    padding: 2px 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    margin-bottom: 4px;
}
.v2tt-secret__kick.is-go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2tt-secret__kick.is-ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2 .v2tt-secret h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.014em;
    color: var(--ink);
}
.v2tt-secret > p { font-size: 14.5px; line-height: 1.75; color: var(--slate); margin-bottom: 14px; }
.v2tt-secret > p:last-child { margin-bottom: 0; }
.v2tt-path {
    display: block;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 12px 16px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--ink);
    font-weight: 500;
}
.v2tt-secret > p.v2tt-path { margin-bottom: 0; color: var(--ink); }
.v2tt-path .v2-mono { display: block; font-size: 9px; margin-bottom: 4px; color: var(--faint); }
.v2tt-mf { margin-bottom: 0; }
.v2tt-mf .v2gpr-myth__side p { margin-top: 10px; }
.v2tt-mf .v2gpr-myth__tag { color: var(--slate); }
.v2tt-mf .v2gpr-myth__tag svg { width: 13px; height: 13px; }
.v2tt-mf .is-right .v2gpr-myth__tag { color: var(--go-deep); }

/* ---------- Review-time timeline ---------- */

.v2tt-rtl {
    display: flex;
    gap: 3px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 14px 16px 12px;
}
.v2tt-rtl__seg.is-review { flex: 0 0 30%; }
.v2tt-rtl__seg.is-test { flex: 1; }
.v2tt-rtl__seg i {
    display: block;
    height: 9px;
    border-radius: 5px;
}
.v2tt-rtl__seg.is-review i { background: var(--ink); }
.v2tt-rtl__seg.is-test i { background: var(--go); }
.v2tt-rtl__seg b {
    display: block;
    font-family: var(--font-mono);
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 9px;
    margin-top: 7px;
    color: var(--ink);
}
.v2tt-rtl__seg.is-test b { color: var(--go-deep); }
.v2tt-rtl__seg span { display: block; font-size: 11px; color: var(--slate); margin-top: 1px; }

/* ---------- Verdict chips + plan tweaks ---------- */

.v2tt-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.v2tt-chips .v2-mono {
    font-size: 9.5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 11px;
    white-space: nowrap;
}
.v2tt-plans { margin-bottom: 24px; }
.v2gpr-plan .v2tt-plan-sub {
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 13px;
    color: var(--slate);
    margin-bottom: 16px;
}
.v2tt-plans .v2-btn { margin-top: auto; }
.v2tt-bottom-links { margin-top: 12px; font-size: 14.5px; line-height: 1.7; color: var(--slate); }

/* ---------- TT responsive ---------- */

@media (max-width: 768px) {
    .v2tt-glance { padding: 17px 16px; }
    .v2tt-glance__list li { font-size: 13.5px; }

    .v2tt-funnel { padding: 18px 14px; }
    .v2tt-funnel__flow { flex-direction: column; align-items: stretch; gap: 6px; }
    .v2tt-funnel__node { max-width: none; }
    .v2tt-funnel__arrow { justify-content: center; padding: 2px 0; }
    .v2tt-funnel__arrow svg { transform: rotate(-90deg); }

    .v2tt-ct > thead,
    .v2tt-ct__head { display: none; }
    .v2tt-ct__row { grid-template-columns: minmax(0, 1fr); border-top: 8px solid var(--mist); }
    .v2tt-ct__row:first-of-type { border-top: none; }
    .v2tt-ct__factor {
        background: var(--ink);
        color: #fff;
        border-left: none;
        font-size: 13px;
    }
    .v2tt-ct__val {
        text-align: right;
        justify-content: flex-start;
        border-top: 1px solid var(--line);
    }
    .v2tt-ct__row .v2tt-ct__val:first-of-type { border-top: none; }
    .v2tt-ct__lab { display: inline; }

    .v2tt-uses__grid { grid-template-columns: minmax(0, 1fr); }

    .v2tt-req { font-size: 15.5px; }

    .v2tt-flow { flex-direction: column; align-items: stretch; gap: 6px; margin: 20px 0 12px; }
    .v2tt-flow__step { max-width: none; }
    .v2tt-flow__arrow { justify-content: center; padding: 2px 0; }
    .v2tt-flow__arrow svg { transform: rotate(-90deg); }

    .v2tt-secret { padding: 19px 16px; }
    .v2 .v2tt-secret h3 { font-size: 15.5px; }

    .v2tt-rtl { flex-direction: column; gap: 12px; }
    .v2tt-rtl__seg.is-review { flex: none; }
}
@media (max-width: 380px) {
    .v2tt-progress__scale { flex-direction: column; gap: 2px; }
    .v2tt-progress__scale .v2-mono:last-child { text-align: left; }
}

/* ============================================================
   BLOG ARTICLE V2 - EMULATOR (/blog/emulator-google-play-
   closed-testing). Reuses the v2gpr-* article layer; page-
   unique components below. Prefix: v2emu-.
   2026-09-06: the verdict hero, the opt-in/installed gauge pair,
   the integrity "simulator", the consequences ladder, the org
   panel and the 2026-deadline rows were deleted with the claims
   they carried (see the audit note in _schema and en.php).
   One rose moment: the manipulation card in the risk split.
   Two dark moments: quick answer + final CTA.
   ============================================================ */

/* ---------- Verbatim rule card ---------- */

.v2emu-rule {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 24px;
    margin: 22px 0;
}
.v2emu-rule__head {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 12px;
}
.v2emu-rule__head > .v2-mono { font-size: 9.5px; }
.v2emu-rule__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
    flex-shrink: 0;
}
.v2emu-rule blockquote {
    font-size: 15.5px;
    font-style: italic;
    line-height: 1.7;
    color: var(--ink);
    margin: 0 0 16px;
}
.v2emu-rule__chips { margin: 0; }
.v2emu-rule__chips .v2gpr-statc { background: var(--paper); }

/* ---------- Verdict label cards ---------- */

.v2emu-vds { display: grid; gap: 12px; margin: 24px 0; }
.v2emu-vd {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 20px;
}
.v2emu-vd.is-ok {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2emu-vd.is-no { background: var(--mist); }
.v2emu-vd__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.v2emu-vd__name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--ink);
    word-break: break-word;
}
.v2emu-vd__tag {
    font-size: 8.5px;
    border-radius: 999px;
    padding: 3px 9px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    white-space: nowrap;
}
.v2emu-vd__tag.is-pass { background: var(--go); border-color: var(--go); color: #fff; }
.v2emu-vd__tag.is-emu { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2emu-vd > p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin-bottom: 9px; }
.v2emu-vd__emu {
    display: block;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
    border-top: 1px dashed #DCE3E9;
    padding-top: 9px;
}
.v2emu-vd__emu b { color: var(--ink); }

/* ---------- Documented-vs-not sub lines ---------- */

.v2emu-know__sub { font-size: 12px !important; color: var(--faint) !important; margin: -6px 0 10px !important; text-transform: none !important; letter-spacing: 0 !important; font-family: var(--font-body) !important; }

/* ---------- Risk split + ladder ---------- */

.v2emu-risk {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2emu-risk__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px;
}
.v2emu-risk__card.is-fine {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2emu-risk__card.is-bad { border-right: 3px solid var(--ink); }
.v2emu-risk__card.is-warn {
    background: #FFFCF4;
    border-color: rgba(240, 165, 10, 0.34);
    border-right: 3px solid var(--star);
}
.v2emu-risk__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 11px;
}
.v2emu-risk__ic {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2emu-risk__card.is-fine .v2emu-risk__ic { color: var(--go); border-color: rgba(11, 138, 71, 0.22); }
.v2emu-risk__card.is-bad .v2emu-risk__ic { background: var(--mist); color: var(--ink); }
.v2emu-risk__card.is-warn .v2emu-risk__ic { background: #FDF4E0; color: #8A6206; border-color: rgba(240, 165, 10, 0.28); }
.v2emu-risk__card.is-warn .v2emu-risk__tag { color: #8A6206; }
.v2emu-risk__ic svg { width: 19px; height: 19px; }
.v2emu-risk__tag { display: block; font-size: 8.5px; margin-bottom: 3px; color: var(--faint); }
.v2emu-risk__card.is-fine .v2emu-risk__tag { color: var(--go-deep); }
.v2emu-risk__head b { font-size: 14.5px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.v2emu-risk__card > p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2emu-risk__card blockquote {
    font-size: 12.5px;
    font-style: italic;
    line-height: 1.6;
    color: var(--ink);
    background: var(--mist);
    border-radius: 10px;
    padding: 11px 14px;
    margin-top: 11px;
}
/* ---------- Legitimate-path playbook ---------- */

.v2emu-play {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2emu-play__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 18px;
}
.v2emu-play__card.is-hi {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2emu-play__top {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.v2emu-play__n {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12.5px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2emu-play__card.is-hi .v2emu-play__n { background: var(--go); border-color: var(--go); color: #fff; }
.v2emu-play__top b { font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.3; }
.v2emu-play__card > p { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2emu-play__card > p b { color: var(--ink); }

/* ---------- Evidence labels ---------- */

.v2emu-lbl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1;
    padding: 6px 11px;
    border-radius: 999px;
    margin: 22px 0 12px;
}
.v2emu-lbl.is-rule { background: var(--ink); color: #fff; }
.v2emu-lbl.is-tech { background: var(--mist); border: 1px solid var(--line); color: var(--slate); }
.v2emu-lbl.is-ptl { background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2emu-lbl.is-comm { background: var(--paper); border: 1px dashed #C9D2DA; color: var(--faint); }

/* ---------- Scope artifact (opener) ---------- */

.v2emu-ans {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 26px 28px;
    margin: 0 0 26px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -26px rgba(10, 16, 23, 0.14);
}
.v2emu-ans__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    color: var(--faint);
    margin-bottom: 12px;
}
.v2emu-ans__tag svg { width: 15px; height: 15px; }
.v2 .v2emu-ans__head h2 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.32rem, 1.06rem + 1vw, 1.72rem);
    line-height: 1.2;
    letter-spacing: -0.018em;
    color: var(--ink);
    margin: 0 0 8px;
    padding: 0;
    border: none;
    text-wrap: balance;
}
.v2 .v2emu-ans__head h2::before { content: none; }
.v2emu-ans__head h2 span {
    display: block;
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 14px;
    letter-spacing: 0;
    color: var(--go-deep);
    margin-top: 7px;
}
.v2emu-ans__sub { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2emu-ans__split {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}
.v2emu-ans__tile {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
}
.v2emu-ans__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    margin-bottom: 10px;
}
.v2emu-ans__ic svg { width: 17px; height: 17px; }
.v2emu-ans__tile b { display: block; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.v2emu-ans__tile .su { display: block; font-size: 12.5px; line-height: 1.6; color: var(--slate); margin-top: 5px; }
.v2emu-ans.v2-anim .v2emu-ans__tile {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.v2emu-ans.v2-anim .v2emu-ans__tile:nth-child(2) { transition-delay: 0.08s; }
.v2emu-ans.v2-anim .v2emu-ans__tile:nth-child(3) { transition-delay: 0.16s; }
.v2emu-ans.is-in .v2emu-ans__tile { opacity: 1; transform: none; }

/* ---------- Shared table shell (scope / metrics / examples) ---------- */

.v2emu-scope, .v2emu-met, .v2emu-ex {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    overflow: hidden;
    margin: 22px 0 26px;
}
.v2emu-scope__bar, .v2emu-ex__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 11px 18px;
    font-size: 9.5px;
    color: var(--faint);
}
.v2emu-ex__note {
    font-size: 12.5px !important;
    line-height: 1.6;
    color: var(--slate);
    background: #FBFCFD;
    border-bottom: 1px solid var(--line);
    padding: 12px 18px;
    margin: 0 !important;
}
.v2emu-scope__scroll, .v2emu-met__scroll, .v2emu-ex__scroll { overflow-x: auto; }
.v2emu-scope table, .v2emu-met table, .v2emu-ex table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 13px;
}
.v2emu-scope th, .v2emu-met th, .v2emu-ex th {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--faint);
    text-align: right;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2emu-scope td, .v2emu-met td, .v2emu-ex td {
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
    color: var(--slate);
    line-height: 1.6;
    vertical-align: top;
}
.v2emu-scope tr:last-child td, .v2emu-met tr:last-child td, .v2emu-ex tr:last-child td { border-bottom: none; }
.v2emu-scope td:first-child, .v2emu-met td:first-child, .v2emu-ex td:first-child {
    color: var(--ink);
    font-weight: 600;
}
.v2emu-scope tr.is-key td { background: var(--go-tint); }
.v2emu-scope tr.is-key td:first-child { color: var(--go-deep); }

/* ---------- Emulator / device / human matrix ---------- */

.v2emu-mtx {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0 26px;
}
.v2emu-mtx__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 19px;
}
.v2emu-mtx__top {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    padding-bottom: 11px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line);
}
.v2gpr-prose .v2emu-mtx__good { font-size: 13px; line-height: 1.65; color: var(--slate); margin: 0 0 11px; }
.v2gpr-prose .v2emu-mtx__no {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
    margin: 0;
    padding-top: 11px;
    border-top: 1px dashed #DCE3E9;
}

/* ---------- Evidence-class ledger ---------- */

.v2emu-evi {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 20px 0 26px;
}
.v2emu-evi__row { padding: 15px 18px; border-bottom: 1px solid var(--line); }
.v2emu-evi__row:last-child { border-bottom: none; }
.v2emu-evi__row:nth-child(odd) { background: var(--paper); }
.v2emu-evi__row:nth-child(even) { background: #FBFCFD; }
.v2emu-evi .v2emu-lbl { margin: 0 0 8px; }
.v2gpr-prose .v2emu-evi p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Diagnostic checklist ---------- */

.v2emu-diag, .v2emu-rec { margin: 20px 0 26px; padding: 0; list-style: none; }
.v2emu-diag li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 18px;
    margin-bottom: 10px;
}
.v2emu-diag li:last-child { margin-bottom: 0; }
.v2emu-diag__n {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-size: 10.5px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2emu-diag__body b { display: block; font-size: 14px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.v2gpr-prose .v2emu-diag__body p { font-size: 13px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Recovery list ---------- */

.v2emu-rec li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--line);
}
.v2emu-rec li:last-child { border-bottom: none; }
.v2emu-rec__ic {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: var(--go-tint);
    color: var(--go-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}
.v2emu-rec__ic svg { width: 15px; height: 15px; }
.v2gpr-prose .v2emu-rec p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Service panel ---------- */

.v2emu-svc {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
    overflow: hidden;
    margin: 20px 0 22px;
}
.v2emu-svc__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.v2emu-svc__cell {
    padding: 18px 20px;
    border-left: 1px solid var(--line);
}
.v2emu-svc__cell:last-child { border-left: none; }
.v2gpr-prose .v2emu-svc__cell p.v2-mono {
    font-size: 9px;
    color: var(--faint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin: 0 0 9px;
}
.v2gpr-prose .v2emu-svc__cell p { font-size: 13px; line-height: 1.65; color: var(--slate); margin: 0; }
.v2emu-svc__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    background: var(--mist);
    border-top: 1px solid var(--line);
    padding: 15px 20px;
}
.v2emu-svc__price {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
}

/* ---------- Community source block ---------- */

.v2emu-docs--comm { margin-top: 14px; }
.v2gpr-prose .v2emu-docs__note {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 0;
}

/* ---------- Emulator blog: responsive ---------- */

@media (max-width: 900px) {
    .v2emu-mtx, .v2emu-svc__grid { grid-template-columns: minmax(0, 1fr); }
    .v2emu-svc__cell { border-left: none; border-bottom: 1px solid var(--line); }
    .v2emu-svc__cell:last-child { border-bottom: none; }
}
@media (max-width: 820px) {
    .v2emu-risk { grid-template-columns: minmax(0, 1fr); }
    .v2emu-ans__split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .v2emu-ans { padding: 20px 18px; }
    .v2emu-ans__split { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2emu-rule { padding: 17px 16px; }
    .v2emu-rule blockquote { font-size: 14.5px; }
    .v2emu-vd { padding: 15px 16px; }
    .v2emu-risk__card { padding: 17px 16px; }
    .v2emu-play { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2emu-mtx__card, .v2emu-diag li { padding: 15px 16px; }
    .v2emu-lbl { font-size: 8.5px; padding: 5px 10px; }

    /* Stacked tables: the min-width that keeps desktop columns readable
       would push values off-screen once the rows go vertical, and
       body.v2 clips the overflow, so it has to be released here. */
    .v2emu-scope table, .v2emu-met table, .v2emu-ex table {
        min-width: 0;
        display: block;
    }
    .v2emu-scope thead, .v2emu-met thead, .v2emu-ex thead {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap;
    }
    .v2emu-scope tbody, .v2emu-met tbody, .v2emu-ex tbody { display: block; }
    .v2emu-scope tr, .v2emu-met tr, .v2emu-ex tr {
        display: block;
        padding: 15px 16px;
        border-bottom: 1px solid var(--line);
    }
    .v2emu-scope tr:last-child, .v2emu-met tr:last-child, .v2emu-ex tr:last-child { border-bottom: none; }
    .v2emu-scope td, .v2emu-met td, .v2emu-ex td {
        display: block;
        border: none;
        padding: 4px 0;
    }
    .v2emu-scope td:first-child, .v2emu-met td:first-child, .v2emu-ex td:first-child {
        font-size: 14px;
        padding-bottom: 8px;
    }
    .v2emu-scope td[data-th]::before, .v2emu-met td[data-th]::before, .v2emu-ex td[data-th]::before {
        content: attr(data-th);
        display: block;
        font-family: var(--font-mono);
        font-size: 8.5px;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: var(--faint);
        margin-bottom: 3px;
    }
}

/* The shared sticky CTA overflows below ~400px: two full-size buttons
   plus the container padding exceed the viewport. Same per-post repair
   already applied on 16kb / test-on-screen / paid-services / g7. */
@media (max-width: 400px) {
    .v2gpr-scta.v2emu-scta {
        padding: 9px 10px;
        gap: 7px;
    }
    .v2 .v2gpr-scta.v2emu-scta .v2-btn {
        min-width: 0;
        flex: 1 1 0;
        padding: 11px 8px;
        font-size: 12.5px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .v2 .v2gpr-scta.v2emu-scta .v2-faq__wa { flex: 0 0 auto; padding: 11px 12px; }
}

/* ============================================================
   BLOG ARTICLE V2 - 12 TESTERS PER NEW APP
   (/blog/12-testers-per-new-app)
   Unique components for the "per app or per account" post.
   Reuses the shared v2gpr- article layer (prose, h2, qa, callout
   family, dd, mk, toc, faq, bottom, docs, rail, chips, scta).
   Prefix: v2pae-. Two dark moments stay on the page: quick
   answer + final CTA, so every v2pae- component is LIGHT.
   ============================================================ */

/* Hero facts: 4 plaques instead of the default 3 */
.v2 .v2gpr-facts.v2pae-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ---------- Answer capsule (per-section) ---------- */
.v2gpr-prose > p.v2pae-ans {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-right: 3px solid var(--go);
    border-radius: 12px 0 0 12px;
    padding: 14px 18px;
    color: var(--ink);
    font-weight: 500;
}

/* ---------- Signature visual: per-app gates + shared pool ---------- */
.v2pae-gates {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px 18px;
    margin: 28px 0;
}
.v2pae-gates__label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 16px;
}
.v2pae-gates__label svg { width: 16px; height: 16px; }
.v2pae-gates__apps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.v2pae-gate {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 12px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}
.v2pae-gate__ic {
    width: 40px; height: 40px; border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin-bottom: 6px;
}
.v2pae-gate__ic svg { width: 22px; height: 22px; }
.v2pae-gate b { font-family: var(--font-display); font-size: 14.5px; color: var(--ink); }
.v2pae-gate .v2-mono { font-size: 9.5px; color: var(--faint); }
.v2pae-gate__chip {
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #B42318;
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.18);
    border-radius: 6px;
    padding: 3px 7px;
}
.v2pae-gates__link {
    display: flex;
    justify-content: center;
    padding: 12px 0 6px;
}
.v2pae-gates__link span {
    width: 2px; height: 22px;
    background: var(--line);
    position: relative;
}
.v2pae-gates__link span::before,
.v2pae-gates__link span::after {
    content: ''; position: absolute; right: 50%; top: 100%;
    width: 10px; height: 10px;
    border-right: 2px solid var(--line);
    border-bottom: 2px solid var(--line);
    transform: translateX(50%) rotate(45deg);
    transform-origin: top;
}
.v2pae-pool {
    display: flex;
    align-items: center;
    gap: 14px;
    background: var(--go-tint);
    border: 1px dashed rgba(11, 138, 71, 0.4);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2pae-pool__ic {
    flex-shrink: 0;
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--go);
    display: flex; align-items: center; justify-content: center;
    color: #fff;
}
.v2pae-pool__ic svg { width: 24px; height: 24px; }
.v2pae-pool b { display: block; font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--go-deep); }
.v2pae-pool p { font-size: 13px; line-height: 1.55; color: var(--slate); margin: 3px 0 0; }
.v2pae-gates__foot {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    color: var(--faint);
    font-size: 11px;
}
.v2pae-gates__foot svg { width: 14px; height: 14px; }

/* ---------- Myth / reality split ---------- */
.v2pae-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2pae-split__side {
    border-radius: 14px;
    padding: 20px 22px;
    border: 1px solid var(--line);
}
.v2pae-split__side--myth { background: var(--mist); }
.v2pae-split__side--real { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2pae-split__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    padding: 4px 9px;
    border-radius: 7px;
    margin-bottom: 11px;
}
.v2pae-split__tag svg { width: 12px; height: 12px; }
.v2pae-split__side--myth .v2pae-split__tag { background: var(--paper); color: var(--slate); border: 1px solid var(--line); }
.v2pae-split__side--real .v2pae-split__tag { background: var(--paper); color: var(--go-deep); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2pae-split__side h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    line-height: 1.35;
    color: var(--ink);
    margin: 0 0 8px;
}
.v2pae-split__side p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }

/* ---------- Confidence legend ---------- */
.v2pae-legend {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0;
}
.v2pae-leg {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px;
}
.v2pae-leg__tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 6px;
    margin-bottom: 9px;
}
.v2pae-leg--official .v2pae-leg__tag { background: var(--go-tint); color: var(--go-deep); }
.v2pae-leg--community .v2pae-leg__tag { background: var(--mist); color: var(--slate); }
.v2pae-leg--commercial .v2pae-leg__tag { background: #FDF1F0; color: #B42318; }
.v2pae-leg p { font-size: 12.5px; line-height: 1.55; color: var(--slate); margin: 0; }

/* ---------- Verbatim Google quote ---------- */
.v2pae-quote {
    position: relative;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px 0 0 14px;
    padding: 20px 24px;
    margin: 24px 0;
}
.v2pae-quote__src {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ink);
    font-size: 10.5px;
    margin-bottom: 10px;
}
.v2pae-quote__src svg { width: 14px; height: 14px; color: var(--go); }
.v2pae-quote p {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.6;
    color: var(--ink);
    margin: 0;
    text-wrap: pretty;
}
.v2pae-quote cite {
    display: block;
    margin-top: 12px;
    font-style: normal;
    font-size: 12px;
    color: var(--faint);
}

/* ---------- Evidence screenshot ---------- */
.v2pae-shot {
    margin: 24px 0;
}
.v2pae-shot img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 14px;
    border: 1px solid var(--line);
    box-shadow: 0 10px 28px -18px rgba(10, 16, 23, 0.22);
}
.v2pae-shot figcaption {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
    margin: 10px 2px 0;
}

/* ---------- Fact strip ---------- */
.v2pae-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2pae-stat {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 12px;
    text-align: center;
}
.v2pae-stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2pae-stat .v2-mono { display: block; font-size: 10px; color: var(--faint); margin-top: 7px; }

/* ---------- New-app vs update comparison ---------- */
.v2pae-cmp {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2pae-cmp__card {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 26px 22px 20px;
}
.v2pae-cmp__card--skip {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2pae-cmp__badge {
    position: absolute;
    top: -11px; right: 20px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: var(--ink);
    color: #fff;
    padding: 4px 10px;
    border-radius: 7px;
}
.v2pae-cmp__badge.is-go { background: var(--go); }
.v2pae-cmp__card h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--ink);
    margin: 4px 0 10px;
}
.v2pae-cmp__verdict {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 700;
    color: var(--slate);
    margin: 0 0 14px;
}
.v2pae-cmp__verdict svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2pae-cmp__verdict.is-go { color: var(--go-deep); }
.v2pae-cmp__card ul { margin: 0; padding: 0; list-style: none; }
.v2pae-cmp__card li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
    margin-bottom: 9px;
}
.v2pae-cmp__card li:last-child { margin-bottom: 0; }
.v2pae-cmp__card li .v2gpr-mk { margin-top: 2px; }

/* ---------- Reuse pool diagram ---------- */
.v2pae-pool2 {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 22px 20px;
    margin: 24px 0;
    text-align: center;
}
.v2pae-pool2__hub {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 26px;
}
.v2pae-pool2__hub-ic {
    width: 40px; height: 40px; border-radius: 11px;
    background: var(--go); color: #fff;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 4px;
}
.v2pae-pool2__hub-ic svg { width: 22px; height: 22px; }
.v2pae-pool2__hub b { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--go-deep); }
.v2pae-pool2__hub .v2-mono { font-size: 10px; color: var(--slate); }
.v2pae-pool2__arrows {
    display: flex;
    justify-content: center;
    gap: clamp(28px, 8vw, 80px);
    padding: 12px 0 6px;
}
.v2pae-pool2__arrows span {
    width: 2px; height: 22px;
    background: var(--line);
    position: relative;
}
.v2pae-pool2__arrows span::before,
.v2pae-pool2__arrows span::after {
    content: ''; position: absolute; right: 50%; top: 100%;
    width: 9px; height: 9px;
    border-right: 2px solid var(--line);
    border-bottom: 2px solid var(--line);
    transform: translateX(50%) rotate(45deg);
    transform-origin: top;
}
.v2pae-pool2__apps {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-top: 6px;
}
.v2pae-pool2__app {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 8px;
    text-align: center;
}
.v2pae-pool2__app-ic {
    width: 34px; height: 34px; border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin: 0 auto 6px;
}
.v2pae-pool2__app-ic svg { width: 19px; height: 19px; }
.v2pae-pool2__app b { display: block; font-family: var(--font-display); font-size: 12.5px; color: var(--ink); }
.v2pae-pool2__app .v2-mono { font-size: 9.5px; color: var(--faint); }

/* ---------- Portfolio planner (interactive) ---------- */
.v2pae-calc {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2pae-calc__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 18px 22px;
}
.v2pae-calc__head .v2-mono {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--go-deep);
    font-size: 10px;
    margin-bottom: 8px;
}
.v2pae-calc__head .v2-mono svg { width: 14px; height: 14px; }
.v2pae-calc__head h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    color: var(--ink);
    margin: 0 0 3px;
}
.v2pae-calc__head p { font-size: 13px; color: var(--slate); margin: 0; }
.v2pae-calc__body { padding: 22px; }
.v2pae-calc__ctrl {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.v2pae-calc__ctrl label { font-size: 13.5px; font-weight: 600; color: var(--ink); }
.v2 .v2pae-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    background: var(--paper);
}
.v2 .v2pae-stepper button {
    width: 42px; height: 44px;
    border: none;
    background: var(--mist);
    color: var(--go-deep);
    font-size: 22px; font-weight: 700;
    cursor: pointer;
    transition: background 0.18s ease;
}
.v2 .v2pae-stepper button:hover { background: var(--go-tint); }
.v2 .v2pae-stepper button:focus-visible { outline: 2px solid var(--go); outline-offset: -3px; }
.v2 .v2pae-stepper input {
    width: 64px; height: 44px;
    border: none;
    border-right: 1px solid var(--line);
    border-left: 1px solid var(--line);
    text-align: center;
    font-family: var(--font-display);
    font-size: 18px; font-weight: 800;
    color: var(--ink);
    background: var(--paper);
    -moz-appearance: textfield;
}
.v2 .v2pae-stepper input::-webkit-outer-spin-button,
.v2 .v2pae-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.v2pae-calc__out {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.v2pae-calc__stat {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 14px;
    text-align: center;
}
.v2pae-calc__stat.is-pool { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2pae-calc__stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    line-height: 1;
    color: var(--ink);
}
.v2pae-calc__stat.is-pool b { color: var(--go-deep); }
.v2pae-calc__stat .v2-mono { display: block; font-size: 10px; color: var(--slate); margin-top: 7px; line-height: 1.4; }
.v2pae-calc__note {
    margin: 16px 0 0;
    padding-top: 15px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- New-test checker (interactive advisor) ---------- */
.v2pae-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2pae-tool__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 20px 24px;
}
.v2pae-tool__head .v2-mono {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--go-deep);
    font-size: 10px;
    margin-bottom: 8px;
}
.v2pae-tool__head .v2-mono svg { width: 14px; height: 14px; }
.v2pae-tool__head h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    color: var(--ink);
    margin: 0 0 4px;
}
.v2pae-tool__head p { font-size: 13.5px; color: var(--slate); margin: 0; }
.v2pae-tool__body { padding: 22px 24px; }
.v2pae-tool__label {
    display: block;
    font-size: 10.5px;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2pae-select { position: relative; margin-bottom: 18px; }
.v2 .v2pae-select select {
    appearance: none;
    width: 100%;
    padding: 14px 16px 14px 44px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2pae-select select:hover { border-color: #C9D2DA; }
.v2 .v2pae-select select:focus-visible { outline: none; border-color: var(--go); box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14); }
.v2pae-select::after {
    content: '';
    position: absolute;
    left: 20px; top: 50%;
    width: 9px; height: 9px;
    border-left: 2px solid var(--slate);
    border-bottom: 2px solid var(--slate);
    transform: translateY(-65%) rotate(-45deg);
    pointer-events: none;
}
.v2pae-empty {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 20px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 14px;
    color: var(--slate);
    font-size: 14px;
}
.v2pae-empty svg { width: 20px; height: 20px; color: var(--faint); flex-shrink: 0; }
.v2pae-rc {
    display: none;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    border-radius: 14px;
    padding: 20px 22px;
    border: 1px solid var(--line);
}
.v2pae-rc.show { display: grid; animation: v2CardIn 0.35s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2pae-rc__ic {
    width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
}
.v2pae-rc__ic svg { width: 24px; height: 24px; }
.v2pae-rc h4 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16.5px;
    color: var(--ink);
    margin: 0 0 4px;
}
.v2pae-rc__tag {
    display: inline-block;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 6px;
    margin-bottom: 10px;
}
.v2pae-rc p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0 0 10px; }
.v2pae-rc p:last-child { margin-bottom: 0; }
.v2pae-rc--need { background: #FFF7ED; border-color: rgba(180, 83, 9, 0.18); }
.v2pae-rc--need .v2pae-rc__ic { background: #B45309; }
.v2pae-rc--need .v2pae-rc__tag { background: #FFE7CC; color: #92400E; }
.v2pae-rc--reuse { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2pae-rc--reuse .v2pae-rc__ic { background: var(--go); }
.v2pae-rc--reuse .v2pae-rc__tag { background: var(--paper); color: var(--go-deep); }
.v2pae-rc--skip { background: var(--paper); }
.v2pae-rc--skip .v2pae-rc__ic { background: var(--ink); }
.v2pae-rc--skip .v2pae-rc__tag { background: var(--mist); color: var(--slate); }

/* ---------- Testing tracks ---------- */
.v2pae-tracks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2pae-track {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 20px 18px;
}
.v2pae-track--key {
    border-color: var(--go);
    box-shadow: 0 12px 30px -20px rgba(11, 138, 71, 0.4);
}
.v2pae-track__badge {
    position: absolute;
    top: -11px; right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 12px;
    white-space: nowrap;
}
.v2pae-track h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--ink);
    margin: 0 0 4px;
}
.v2pae-track--key h3 { color: var(--go-deep); }
.v2pae-track__cap { font-size: 11px; color: var(--faint); margin: 0 0 14px; }
.v2pae-track ul { margin: 0; padding: 0; list-style: none; }
.v2pae-track li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    margin-bottom: 8px;
}
.v2pae-track li:last-child { margin-bottom: 0; }
.v2pae-track li .v2gpr-mk { margin-top: 2px; }
.v2pae-track__foot {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.04em;
    text-align: center;
}
.v2pae-track__foot--no { color: #B42318; }
.v2pae-track__foot--yes { color: var(--go-deep); }
.v2pae-track__foot--after { color: var(--faint); }

/* ---------- 2026 deadline cards ---------- */
.v2pae-deadline {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2pae-dl {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 22px;
}
.v2pae-dl__conf {
    position: absolute;
    top: 16px; left: 16px;
    font-size: 9px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 20px;
}
.v2pae-dl__conf--plan { background: var(--mist); color: var(--slate); border: 1px solid var(--line); }
.v2pae-dl__conf--confirmed { background: var(--go-tint); color: var(--go-deep); border: 1px solid rgba(11, 138, 71, 0.2); }
.v2pae-dl__ic {
    width: 44px; height: 44px; border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin-bottom: 13px;
}
.v2pae-dl__ic.is-go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go); }
.v2pae-dl__ic svg { width: 23px; height: 23px; }
.v2pae-dl h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16.5px;
    color: var(--ink);
    margin: 0 0 5px;
    padding-left: 70px;
}
.v2pae-dl__date { font-size: 12px; font-weight: 700; color: var(--go-deep); margin: 0 0 9px; }
.v2pae-dl p { font-size: 13px; line-height: 1.6; color: var(--slate); margin: 0; }

/* ---------- Highlight tiles ---------- */
.v2pae-hl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2pae-hl__tile {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px;
}
.v2pae-hl__ic {
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin-bottom: 6px;
}
.v2pae-hl__ic svg { width: 19px; height: 19px; }
.v2pae-hl__ic.is-go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go); }
.v2pae-hl__tile b { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); }
.v2pae-hl__tile .v2-mono { font-size: 10.5px; color: var(--faint); }

/* ---------- Pricing lineup ---------- */
.v2pae-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0 8px;
    align-items: start;
}
.v2pae-plan {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 26px 22px 22px;
    text-align: center;
}
.v2pae-plan--key {
    border-color: var(--go);
    box-shadow: 0 14px 34px -22px rgba(11, 138, 71, 0.42);
}
.v2pae-plan__badge {
    position: absolute;
    top: -11px; right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 4px 12px;
    border-radius: 12px;
    white-space: nowrap;
}
.v2pae-plan__name { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); }
.v2pae-plan__testers { font-size: 10.5px; color: var(--faint); margin: 3px 0 8px; }
.v2pae-plan__amount {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin-bottom: 16px;
}
.v2pae-plan ul { margin: 0 0 18px; padding: 0; list-style: none; text-align: right; }
.v2pae-plan li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    margin-bottom: 9px;
}
.v2pae-plan li:last-child { margin-bottom: 0; }
.v2pae-plan li .v2gpr-mk { margin-top: 2px; }
.v2pae-plan__btn {
    display: block;
    width: 100%;
    padding: 12px 16px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2pae-plan__btn:hover { border-color: #C9D2DA; background: var(--paper); }
.v2pae-plan__btn--primary { background: var(--go); border-color: var(--go); color: #fff; }
.v2pae-plan__btn--primary:hover { background: var(--go-deep); border-color: var(--go-deep); color: #fff; }

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
    .v2pae-tracks, .v2pae-plans { grid-template-columns: minmax(0, 1fr); }
    .v2pae-tracks .v2pae-track--key { order: -1; margin-top: 6px; }
}
@media (max-width: 768px) {
    .v2pae-split, .v2pae-cmp, .v2pae-deadline { grid-template-columns: minmax(0, 1fr); }
    .v2pae-legend { grid-template-columns: minmax(0, 1fr); }
    .v2pae-pool2__apps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2pae-calc__out { grid-template-columns: minmax(0, 1fr); }
    .v2pae-calc__stat { display: flex; align-items: center; justify-content: center; gap: 12px; text-align: right; padding: 14px 16px; }
    .v2pae-calc__stat b { font-size: 22px; }
    .v2pae-calc__stat .v2-mono { margin-top: 0; }
    .v2pae-hl { grid-template-columns: minmax(0, 1fr); }
    .v2pae-quote p { font-size: 15.5px; }
    .v2pae-gates, .v2pae-pool2, .v2pae-calc, .v2pae-tool { border-radius: 16px; }
}
@media (max-width: 640px) {
    .v2 .v2gpr-facts.v2pae-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2pae-gates__apps { grid-template-columns: minmax(0, 1fr); }
    .v2pae-gates { padding: 18px 16px; }
    .v2pae-split__side, .v2pae-dl, .v2pae-leg, .v2pae-track, .v2pae-plan { padding: 18px 16px; }
    .v2pae-cmp__card { padding: 24px 16px 16px; }
    .v2pae-calc__head, .v2pae-tool__head { padding: 16px 18px; }
    .v2pae-calc__body, .v2pae-tool__body { padding: 18px; }
    .v2pae-rc { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px; }
    .v2pae-stat b { font-size: 19px; }
    .v2pae-pool2__arrows { gap: clamp(18px, 14vw, 60px); }
}
@media (max-width: 380px) {
    .v2pae-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2pae-calc__ctrl { gap: 10px; }
    .v2pae-calc__ctrl label { width: 100%; }
}

/* ============================================================
   BLOG PAID 25 V2 - "I Just Paid the $25 Google Play Fee"
   (/blog/paid-25-google-play-now-what)
   Unique components for the beginner road-to-live post. Reuses
   the shared v2gpr- article layer (prose, h2/h3, qa, callout
   family, dd, q3, mk, toc, faq, bottom, docs, rail, chips, scta,
   author, related, cta). Prefix: v2p25-. Two dark moments stay
   on the page (hero quick answer + final CTA), so every v2p25-
   component is LIGHT. The closed-test "wall" is signalled with
   the ink accent (not rose); rose is reserved for tiny "does not
   count" labels only.
   ============================================================ */

/* Reset for the lists / figures / tables this block introduces
   (the base reset only covers h1-h3 + p; see gotcha 19). */
.v2p25-steps, .v2p25-rules, .v2p25-tracks ul, .v2p25-plan ul,
.v2p25-quote, .v2p25-quote blockquote, .v2p25-shot,
.v2p25-timeline, .v2p25-est__bars, .v2p25-scn, .v2p25-opts {
    margin: 0; padding: 0; list-style: none;
}

/* Hero facts: 4 plaques instead of the default 3 */
.v2 .v2gpr-facts.v2p25-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* ---------- Section answer capsule ---------- */
.v2gpr-prose > p.v2p25-ans {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-right: 3px solid var(--go);
    border-radius: 12px 0 0 12px;
    padding: 14px 18px;
    color: var(--ink);
    font-weight: 500;
}

/* ---------- Signature: the road from $25 to live ---------- */
.v2p25-road {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px 18px;
    margin: 0 0 28px;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2p25-road__label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 18px;
}
.v2p25-road__label svg { width: 16px; height: 16px; }
.v2p25-road__track {
    display: flex;
    align-items: flex-start;
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
}
.v2p25-road__track::-webkit-scrollbar { display: none; }
.v2p25-stop {
    flex: 1 0 0;
    min-width: 104px;
    text-align: center;
    position: relative;
    padding: 0 6px;
}
.v2p25-stop:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 21px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: repeating-linear-gradient(-90deg, var(--line) 0 7px, transparent 7px 13px);
    z-index: 0;
}
.v2p25-stop.is-done:not(:last-child)::after {
    background: linear-gradient(-90deg, var(--go), rgba(11, 138, 71, 0.3));
}
.v2p25-stop__dot {
    position: relative;
    z-index: 1;
    width: 44px; height: 44px;
    margin: 0 auto 11px;
    border-radius: 13px;
    display: flex; align-items: center; justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2p25-stop__dot svg { width: 22px; height: 22px; }
.v2p25-stop.is-done .v2p25-stop__dot {
    background: var(--go); border-color: var(--go); color: #fff;
}
.v2p25-stop.is-live .v2p25-stop__dot {
    background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); color: var(--go-deep);
}
.v2p25-stop.is-gate .v2p25-stop__dot {
    background: var(--ink); border-color: var(--ink); color: #fff;
}
.v2p25-stop.is-gate .v2p25-stop__dot::after {
    content: '';
    position: absolute;
    inset: -5px;
    border: 1.5px dashed rgba(10, 16, 23, 0.3);
    border-radius: 17px;
    animation: v2p25Pulse 2.6s ease-in-out infinite;
}
@keyframes v2p25Pulse { 0%, 100% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.75; transform: scale(1.06); } }
.v2p25-stop__t {
    display: block;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--ink);
}
.v2p25-stop.is-done .v2p25-stop__t, .v2p25-stop.is-live .v2p25-stop__t { color: var(--go-deep); }
.v2p25-stop__s { display: block; font-size: 9px; color: var(--faint); margin-top: 4px; }
.v2p25-road__foot {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    color: var(--slate);
    font-size: 12.5px;
    line-height: 1.6;
}
.v2p25-road__foot svg { width: 15px; height: 15px; color: var(--ink); flex-shrink: 0; margin-top: 2px; }

/* ---------- $25 fee plaque + Google vs Apple ---------- */
.v2p25-fee {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 22px;
    align-items: center;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 16px;
    padding: 22px 26px;
    margin: 24px 0;
}
.v2p25-fee__num { text-align: center; }
.v2p25-fee__v {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 48px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--go-deep);
}
.v2p25-fee__v span { color: var(--go); }
.v2p25-fee__l { margin-top: 6px; font-size: 9.5px; color: var(--go-deep); }
.v2p25-fee__txt { border-right: 1px solid rgba(11, 138, 71, 0.22); padding-right: 22px; }
.v2p25-fee__txt p { margin: 0; font-size: 14.5px; line-height: 1.65; color: var(--ink); }
.v2p25-vs {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: stretch;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0;
}
.v2p25-vs__side { padding: 22px 24px; text-align: center; }
.v2p25-vs__side--go { background: var(--go-tint); }
.v2p25-vs__side--alt { background: var(--mist); }
.v2p25-vs__who {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 10.5px; margin-bottom: 9px;
}
.v2p25-vs__who svg { width: 15px; height: 15px; }
.v2p25-vs__side--go .v2p25-vs__who { color: var(--go-deep); }
.v2p25-vs__side--alt .v2p25-vs__who { color: var(--slate); }
.v2p25-vs__amt {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 28px;
    line-height: 1;
    color: var(--ink);
}
.v2p25-vs__amt small { display: block; font-family: var(--font-body); font-size: 11.5px; font-weight: 500; color: var(--slate); margin-top: 6px; }
.v2p25-vs__mid {
    display: flex; align-items: center; justify-content: center;
    background: var(--ink); color: #fff;
    font-size: 10.5px; padding: 0 15px;
}

/* ---------- 10-step vertical roadmap ---------- */
.v2p25-steps { counter-reset: p25step; margin: 24px 0; }
.v2p25-step {
    position: relative;
    padding: 0 54px 20px 0;
    border-right: 2px solid var(--line);
    margin-right: 17px;
}
.v2p25-step:last-child { border-right-color: transparent; padding-bottom: 0; }
.v2p25-step::before {
    counter-increment: p25step;
    content: counter(p25step);
    position: absolute;
    right: -18px; top: -2px;
    width: 34px; height: 34px;
    border-radius: 11px;
    background: var(--paper);
    border: 1.5px solid var(--go);
    color: var(--go-deep);
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 14px;
    display: flex; align-items: center; justify-content: center;
}
.v2p25-step.is-gate::before { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2p25-step h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15.5px;
    color: var(--ink);
    margin: 0 0 4px;
    display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
}
.v2p25-step__gate {
    font-size: 9px;
    background: var(--ink);
    color: #fff;
    padding: 3px 8px;
    border-radius: 6px;
    letter-spacing: 0.06em;
}
.v2p25-step p { font-size: 13.5px; color: var(--slate); margin: 0; line-height: 1.6; }

/* ---------- Two permanent decisions ---------- */
.v2p25-perm {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}
.v2p25-perm__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-top: 3px solid var(--ink);
    border-radius: 14px;
    padding: 20px 22px;
}
.v2p25-perm__card h4 {
    display: flex; align-items: center; gap: 9px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15.5px;
    color: var(--ink);
    margin: 0 0 9px;
}
.v2p25-perm__ic {
    flex-shrink: 0;
    width: 32px; height: 32px; border-radius: 9px;
    background: var(--mist); border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
}
.v2p25-perm__ic svg { width: 18px; height: 18px; }
.v2p25-perm__card p { font-size: 13.5px; color: var(--slate); margin: 0; line-height: 1.65; }
.v2p25-perm__card code {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 6px;
    font-size: 12px;
    color: var(--ink);
}
.v2p25-perm__flag {
    display: inline-block;
    margin-top: 12px;
    font-size: 9px;
    letter-spacing: 0.06em;
    padding: 4px 9px;
    border-radius: 6px;
    background: var(--mist);
    color: var(--slate);
    border: 1px solid var(--line);
}

/* ---------- Stat tiles ---------- */
.v2p25-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2p25-stat {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 12px;
    text-align: center;
}
.v2p25-stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 23px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2p25-stat__plus { color: var(--go); }
.v2p25-stat .v2-mono { display: block; font-size: 9.5px; color: var(--faint); margin-top: 7px; line-height: 1.4; }

/* ---------- Paperwork declaration cards ---------- */
.v2p25-paper {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2p25-pcard {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2p25-pcard:hover { border-color: #C9D2DA; box-shadow: 0 8px 22px -18px rgba(10, 16, 23, 0.3); }
.v2p25-pcard__ic {
    width: 38px; height: 38px; border-radius: 11px;
    background: var(--mist); border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin-bottom: 12px;
}
.v2p25-pcard__ic svg { width: 20px; height: 20px; }
.v2p25-pcard h4 { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--ink); margin: 0 0 5px; }
.v2p25-pcard p { font-size: 12.5px; color: var(--slate); margin: 0; line-height: 1.6; }
.v2p25-pcard__req {
    display: inline-block;
    margin-top: 10px;
    font-size: 9px;
    letter-spacing: 0.06em;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--go-tint);
    color: var(--go-deep);
}
.v2p25-pcard__req--cond { background: var(--mist); color: var(--slate); }

/* ---------- Verbatim Google quote ---------- */
.v2p25-quote {
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px 0 0 14px;
    padding: 20px 24px;
    margin: 24px 0;
}
.v2p25-quote__src {
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--ink); font-size: 10.5px; margin-bottom: 10px;
}
.v2p25-quote__src svg { width: 15px; height: 15px; color: var(--go); }
.v2p25-quote blockquote {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.6;
    color: var(--ink);
    text-wrap: pretty;
}
.v2p25-quote cite { display: block; margin-top: 12px; font-style: normal; font-size: 12px; color: var(--faint); }

/* ---------- Evidence screenshot (clickable) ---------- */
.v2p25-shot { margin: 24px 0; }
.v2p25-shot > a {
    display: block;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2p25-shot > a:hover { border-color: #C9D2DA; box-shadow: 0 12px 30px -20px rgba(10, 16, 23, 0.28); }
.v2p25-shot__bar {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2p25-shot__dots { display: inline-flex; gap: 5px; flex-shrink: 0; }
.v2p25-shot__dots i { width: 8px; height: 8px; border-radius: 50%; background: #D4DAE0; }
.v2p25-shot__bar > .v2-mono { font-size: 9.5px; color: var(--faint); }
.v2p25-shot__zoom {
    display: inline-flex; align-items: center; gap: 5px;
    margin-right: auto;
    font-size: 9.5px;
    color: var(--go-deep);
}
.v2p25-shot__zoom svg { width: 13px; height: 13px; }
.v2p25-shot img { display: block; width: 100%; height: auto; }
.v2p25-shot figcaption { font-size: 12.5px; line-height: 1.55; color: var(--slate); margin: 10px 2px 0; }

/* ---------- Interactive shell (diagnoser + estimator) ---------- */
.v2p25-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2p25-tool__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 20px 24px;
}
.v2p25-tool__head .v2-mono {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--go-deep); font-size: 10px; margin-bottom: 8px;
}
.v2p25-tool__head .v2-mono svg { width: 14px; height: 14px; }
.v2p25-tool__head h3 { font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--ink); margin: 0 0 4px; }
.v2p25-tool__head p { font-size: 13.5px; color: var(--slate); margin: 0; }
.v2p25-tool__body { padding: 22px 24px; }
.v2p25-tool__q { font-size: 10.5px; color: var(--faint); margin: 0 0 10px; }
.v2p25-tool__q.is-mt { margin-top: 20px; }
.v2p25-tool__result { margin-top: 20px; }

/* Scenario pills (diagnoser) */
.v2p25-scn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.v2p25-scn__opt { cursor: pointer; }
.v2p25-scn__opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2p25-scn__face {
    display: flex; align-items: center; gap: 11px;
    height: 100%;
    padding: 13px 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2p25-scn__face svg { width: 20px; height: 20px; color: var(--faint); flex-shrink: 0; }
.v2p25-scn__face span { font-size: 13px; font-weight: 500; color: var(--ink); line-height: 1.35; }
.v2p25-scn__opt:hover .v2p25-scn__face { border-color: #C9D2DA; background: var(--paper); }
.v2p25-scn__opt input:checked + .v2p25-scn__face {
    border-color: var(--go); background: var(--go-tint);
    box-shadow: 0 4px 14px -8px rgba(11, 138, 71, 0.4);
}
.v2p25-scn__opt input:checked + .v2p25-scn__face svg { color: var(--go); }
.v2p25-scn__opt input:focus-visible + .v2p25-scn__face { outline: 2px solid var(--go); outline-offset: 2px; }

/* Empty state */
.v2p25-empty {
    display: flex; align-items: center; gap: 10px;
    padding: 18px 20px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 14px;
    color: var(--slate);
    font-size: 14px;
}
.v2p25-empty svg { width: 20px; height: 20px; color: var(--faint); flex-shrink: 0; }

/* Verdict cards */
.v2p25-verdict {
    display: none;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    border-radius: 14px;
    padding: 20px 22px;
    border: 1px solid var(--line);
}
.v2p25-verdict.show { display: grid; animation: v2CardIn 0.35s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2p25-verdict__ic {
    width: 44px; height: 44px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: #fff;
}
.v2p25-verdict__ic svg { width: 24px; height: 24px; }
.v2p25-verdict h4 { font-family: var(--font-display); font-weight: 700; font-size: 16.5px; color: var(--ink); margin: 0 0 4px; }
.v2p25-verdict__tag {
    display: inline-block;
    font-size: 9.5px; letter-spacing: 0.06em;
    padding: 3px 8px; border-radius: 6px; margin-bottom: 10px;
}
.v2p25-verdict p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 0; }
.v2p25-verdict--counts { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2p25-verdict--counts .v2p25-verdict__ic { background: var(--go); }
.v2p25-verdict--counts .v2p25-verdict__tag { background: var(--paper); color: var(--go-deep); }
.v2p25-verdict--nocount { background: var(--mist); }
.v2p25-verdict--nocount .v2p25-verdict__ic { background: var(--ink); }
.v2p25-verdict--nocount .v2p25-verdict__tag { background: var(--paper); color: var(--ink); border: 1px solid var(--line); }
.v2p25-verdict--risky { background: #FFF7ED; border-color: rgba(180, 83, 9, 0.18); }
.v2p25-verdict--risky .v2p25-verdict__ic { background: #B45309; }
.v2p25-verdict--risky .v2p25-verdict__tag { background: #FFE7CC; color: #92400E; }

/* ---------- Rules list ---------- */
.v2p25-rules { margin: 16px 0; }
.v2p25-rules li {
    position: relative;
    padding: 0 26px 0 0;
    margin-bottom: 12px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2p25-rules li:last-child { margin-bottom: 0; }
.v2p25-rules li::before {
    content: '';
    position: absolute;
    right: 3px; top: 9px;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--go);
}
.v2p25-rules li strong { color: var(--ink); font-weight: 650; }

/* ---------- Testing tracks ---------- */
.v2p25-tracks {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2p25-track {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 20px 18px;
}
.v2p25-track--key { border-color: var(--go); box-shadow: 0 12px 30px -20px rgba(11, 138, 71, 0.4); }
.v2p25-track__badge {
    position: absolute;
    top: -11px; right: 50%; transform: translateX(50%);
    background: var(--go); color: #fff;
    font-family: var(--font-mono);
    font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase;
    padding: 4px 12px; border-radius: 12px; white-space: nowrap;
}
.v2p25-track h3 { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); margin: 0 0 4px; }
.v2p25-track--key h3 { color: var(--go-deep); }
.v2p25-track__cap { font-size: 11px; color: var(--faint); margin: 0 0 14px; }
.v2p25-track li {
    display: flex; align-items: flex-start; gap: 9px;
    font-size: 13px; line-height: 1.5; color: var(--slate);
    margin-bottom: 8px;
}
.v2p25-track li:last-child { margin-bottom: 0; }
.v2p25-track li .v2gpr-mk { margin-top: 2px; }
.v2p25-track__foot {
    margin-top: 14px; padding-top: 12px;
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10px; letter-spacing: 0.04em; text-align: center;
}
.v2p25-track__foot--no { color: #B42318; }
.v2p25-track__foot--yes { color: var(--go-deep); }
.v2p25-track__foot--after { color: var(--faint); }

/* ---------- Mid-article promo (keeps .direct-answer) ---------- */
.v2p25-promo {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-right: 3px solid var(--go);
    border-radius: 14px 0 0 14px;
    padding: 20px 24px;
    margin: 24px 0;
}
.v2p25-promo__tag {
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--go-deep); font-size: 10.5px; margin-bottom: 10px;
}
.v2p25-promo__tag svg { width: 16px; height: 16px; }
.v2p25-promo__text { font-size: 14.5px; line-height: 1.7; color: var(--ink); margin: 0; }

/* ---------- Realistic timeline (gantt) ---------- */
.v2p25-timeline {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 24px 26px;
    margin: 24px 0;
    overflow-x: auto;
}
.v2p25-tl__inner { min-width: 540px; }
.v2p25-tl__scale { display: grid; grid-template-columns: 168px 1fr; gap: 14px; align-items: center; margin-bottom: 14px; }
.v2p25-tl__weeks {
    display: flex; justify-content: space-between;
    font-size: 9.5px; color: var(--faint);
    border-bottom: 1px dashed var(--line); padding-bottom: 6px;
}
.v2p25-tl__row { display: grid; grid-template-columns: 168px 1fr; gap: 14px; align-items: center; margin-bottom: 11px; }
.v2p25-tl__lab { font-size: 12.5px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.v2p25-tl__lab small { display: block; font-size: 11px; font-weight: 400; color: var(--faint); }
.v2p25-tl__track { position: relative; height: 26px; background: var(--mist); border-radius: 7px; }
.v2p25-tl__bar {
    position: absolute; top: 0; height: 26px;
    border-radius: 7px;
    display: flex; align-items: center; padding: 0 10px;
    font-family: var(--font-mono);
    font-size: 9.5px; color: #fff;
    white-space: nowrap; overflow: hidden;
}
.v2p25-tl__bar.is-setup { background: #97A2AD; }
.v2p25-tl__bar.is-build { background: var(--slate); }
.v2p25-tl__bar.is-fixed { background: var(--ink); }
.v2p25-tl__bar.is-rev { background: #6E7B88; }
.v2p25-tl__bar.is-live { background: var(--go); }
.v2p25-tl__total {
    margin-top: 16px; padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 13.5px; color: var(--ink);
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.v2p25-tl__total svg { width: 16px; height: 16px; color: var(--go); flex-shrink: 0; }
.v2p25-tl__total strong { color: var(--go-deep); }

/* ---------- Estimator option pills + result ---------- */
.v2p25-opts { display: flex; flex-wrap: wrap; gap: 9px; }
.v2p25-opt { flex: 1 1 auto; min-width: 140px; cursor: pointer; }
.v2p25-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2p25-opt__face {
    display: flex; align-items: center; justify-content: center;
    padding: 12px 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    font-size: 13.5px; font-weight: 500; color: var(--ink);
    text-align: center; line-height: 1.3;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2p25-opt:hover .v2p25-opt__face { border-color: #C9D2DA; background: var(--paper); }
.v2p25-opt input:checked + .v2p25-opt__face {
    border-color: var(--go); background: var(--go-tint); color: var(--go-deep); font-weight: 600;
}
.v2p25-opt input:focus-visible + .v2p25-opt__face { outline: 2px solid var(--go); outline-offset: 2px; }
.v2p25-est {
    margin-top: 22px;
    border-radius: 14px;
    border: 1px solid var(--line);
    background: var(--mist);
    padding: 22px 24px;
    opacity: 0; transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}
.v2p25-est.show { opacity: 1; transform: none; }
.v2p25-est__verdict { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; }
.v2p25-est__ring {
    flex-shrink: 0;
    width: 82px; height: 82px; border-radius: 50%;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: conic-gradient(var(--go) var(--p25deg, 0deg), #E1E7EC 0deg);
    position: relative;
}
.v2p25-est__ring::before { content: ''; position: absolute; inset: 7px; background: var(--paper); border-radius: 50%; }
.v2p25-est__ring b { position: relative; z-index: 1; font-family: var(--font-display); font-size: 22px; font-weight: 800; color: var(--go-deep); line-height: 1; }
.v2p25-est__ring span { position: relative; z-index: 1; font-size: 8.5px; color: var(--faint); margin-top: 2px; }
.v2p25-est__headline h4 { font-family: var(--font-display); font-weight: 800; font-size: 19px; color: var(--ink); margin: 0 0 3px; line-height: 1.2; }
.v2p25-est__headline p { font-size: 13px; color: var(--slate); margin: 0; line-height: 1.5; }
.v2p25-est__bars { display: flex; flex-direction: column; gap: 9px; }
.v2p25-est__bar { display: grid; grid-template-columns: 118px 1fr auto; gap: 10px; align-items: center; font-size: 12.5px; }
.v2p25-est__lab { color: var(--slate); font-weight: 600; }
.v2p25-est__track { height: 11px; background: #E1E7EC; border-radius: 6px; overflow: hidden; }
.v2p25-est__fill { display: block; height: 100%; width: 0; border-radius: 6px; background: var(--go); transition: width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1); }
.v2p25-est__fill.is-fixed { background: var(--ink); }
.v2p25-est__fill.is-rev { background: #6E7B88; }
.v2p25-est__val { font-family: var(--font-mono); font-size: 11px; color: var(--ink); white-space: nowrap; }
.v2p25-est__note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; color: var(--slate); line-height: 1.65; }
.v2p25-est__note b { color: var(--go-deep); }

/* ---------- 2026 change cards ---------- */
.v2p25-changes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.v2p25-change {
    display: flex; gap: 13px; align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
}
.v2p25-change__ic {
    flex-shrink: 0;
    width: 38px; height: 38px; border-radius: 11px;
    background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.2);
    display: flex; align-items: center; justify-content: center;
    color: var(--go);
}
.v2p25-change__ic svg { width: 20px; height: 20px; }
.v2p25-change__body h4 { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--ink); margin: 0 0 4px; line-height: 1.35; }
.v2p25-change__body p { font-size: 12.5px; color: var(--slate); margin: 0; line-height: 1.55; }
.v2p25-change__date {
    display: inline-block; margin-top: 8px;
    font-size: 9px; letter-spacing: 0.05em;
    padding: 3px 8px; border-radius: 6px;
    background: var(--mist); color: var(--slate); border: 1px solid var(--line);
}

/* ---------- Common mistakes ---------- */
.v2p25-mistakes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.v2p25-mis {
    display: flex; gap: 13px; align-items: flex-start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 12px;
    padding: 16px 18px;
}
.v2p25-mis__ic {
    flex-shrink: 0;
    width: 34px; height: 34px; border-radius: 10px;
    background: var(--mist);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
}
.v2p25-mis__ic svg { width: 18px; height: 18px; }
.v2p25-mis h4 { font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--ink); margin: 0 0 3px; line-height: 1.35; }
.v2p25-mis p { font-size: 12.5px; color: var(--slate); margin: 0; line-height: 1.55; }

/* ---------- Highlight tiles ---------- */
.v2p25-hl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.v2p25-hl__tile {
    display: flex; flex-direction: column; gap: 4px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px;
}
.v2p25-hl__ic {
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--paper); border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    color: var(--slate);
    margin-bottom: 6px;
}
.v2p25-hl__ic svg { width: 19px; height: 19px; }
.v2p25-hl__ic.is-go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go); }
.v2p25-hl__tile b { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); }
.v2p25-hl__tile .v2-mono { font-size: 10.5px; color: var(--faint); }

/* ---------- DIY vs managed comparison table ---------- */
.v2p25-cmp {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0;
}
.v2p25-cmp table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.v2p25-cmp th {
    text-align: right;
    padding: 14px 16px;
    font-size: 10px; letter-spacing: 0.06em;
    background: var(--mist);
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2p25-cmp th.v2p25-cmp__mgd { background: var(--go-tint); color: var(--go-deep); }
.v2p25-cmp td {
    padding: 13px 16px;
    border-top: 1px solid var(--line);
    color: var(--slate);
    line-height: 1.5;
    vertical-align: top;
}
.v2p25-cmp tbody tr:first-child td { border-top: none; }
.v2p25-cmp td.v2p25-cmp__feat { font-weight: 650; color: var(--ink); }
.v2p25-cmp td.v2p25-cmp__mgd { background: var(--go-tint); color: var(--ink); }
.v2p25-cmp td .v2gpr-mk { vertical-align: -2px; margin-left: 7px; }
.v2p25-cmp__dash {
    display: inline-block; vertical-align: middle;
    width: 14px; height: 2px; border-radius: 2px;
    background: #C9D2DA; margin-left: 7px;
}

/* ---------- Current packages lineup ---------- */
.v2p25-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin: 18px 0 8px;
    align-items: start;
}
.v2p25-plan {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 26px 22px 22px;
    text-align: center;
}
.v2p25-plan--key { border-color: var(--go); box-shadow: 0 14px 34px -22px rgba(11, 138, 71, 0.42); }
.v2p25-plan__badge {
    position: absolute;
    top: -11px; right: 50%; transform: translateX(50%);
    background: var(--go); color: #fff;
    font-family: var(--font-mono);
    font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase;
    padding: 4px 12px; border-radius: 12px; white-space: nowrap;
}
.v2p25-plan__name { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); }
.v2p25-plan__testers { font-size: 10.5px; color: var(--faint); margin: 3px 0 8px; }
.v2p25-plan__amount {
    font-family: var(--font-display); font-weight: 800; font-size: 34px; line-height: 1;
    letter-spacing: -0.02em; color: var(--ink); margin-bottom: 16px;
}
.v2p25-plan ul { text-align: right; margin: 0 0 18px; }
.v2p25-plan li {
    display: flex; align-items: flex-start; gap: 9px;
    font-size: 13px; line-height: 1.5; color: var(--slate);
    margin-bottom: 9px;
}
.v2p25-plan li:last-child { margin-bottom: 0; }
.v2p25-plan li .v2gpr-mk { margin-top: 2px; }
.v2p25-plan__btn {
    display: block; width: 100%;
    padding: 12px 16px; border-radius: 11px;
    background: var(--mist); border: 1px solid var(--line);
    color: var(--ink);
    font-family: var(--font-body); font-size: 14px; font-weight: 600;
    text-decoration: none; text-align: center;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2p25-plan__btn:hover { border-color: #C9D2DA; background: var(--paper); }
.v2p25-plan__btn--primary { background: var(--go); border-color: var(--go); color: #fff; }
.v2p25-plan__btn--primary:hover { background: var(--go-deep); border-color: var(--go-deep); color: #fff; }

/* ---------- Journey progress tracker ---------- */
.v2p25-journey {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2p25-journey__head { background: var(--mist); border-bottom: 1px solid var(--line); padding: 20px 24px; }
.v2p25-journey__head h3 {
    display: flex; align-items: center; gap: 9px;
    font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ink);
    margin: 0 0 13px;
}
.v2p25-journey__head h3 svg { width: 19px; height: 19px; color: var(--go); }
.v2p25-journey__bar { height: 10px; background: #E1E7EC; border-radius: 6px; overflow: hidden; }
.v2p25-journey__fill { height: 100%; width: 0; background: var(--go); border-radius: 6px; transition: width 0.45s cubic-bezier(0.2, 0.8, 0.2, 1); }
.v2p25-journey__pct { font-size: 11px; color: var(--slate); margin-top: 9px; }
.v2p25-journey__pct b { color: var(--go-deep); }
.v2p25-journey__body { padding: 8px 22px 14px; }
.v2p25-jck {
    display: flex; align-items: flex-start; gap: 13px;
    padding: 11px 6px;
    border-bottom: 1px solid var(--line);
    cursor: pointer;
}
.v2p25-jck:last-child { border-bottom: none; }
.v2p25-jck input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2p25-jck__box {
    flex-shrink: 0;
    width: 23px; height: 23px; border-radius: 7px;
    border: 1.5px solid #C9D2DA;
    display: flex; align-items: center; justify-content: center;
    color: #fff; margin-top: 1px;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2p25-jck__box svg { width: 14px; height: 14px; opacity: 0; transform: scale(0.6); transition: opacity 0.18s ease, transform 0.18s ease; }
.v2p25-jck input:checked + .v2p25-jck__box { background: var(--go); border-color: var(--go); }
.v2p25-jck input:checked + .v2p25-jck__box svg { opacity: 1; transform: scale(1); }
.v2p25-jck input:focus-visible + .v2p25-jck__box { outline: 2px solid var(--go); outline-offset: 2px; }
.v2p25-jck__txt { font-size: 13.5px; color: var(--slate); line-height: 1.5; }
.v2p25-jck__txt b { color: var(--ink); font-weight: 650; }
.v2p25-jck input:checked ~ .v2p25-jck__txt { color: var(--faint); text-decoration: line-through; }
.v2p25-jck input:checked ~ .v2p25-jck__txt b { color: var(--faint); }
.v2p25-jck__tag {
    display: inline-block; margin-right: 5px;
    font-size: 8.5px; letter-spacing: 0.05em;
    padding: 2px 7px; border-radius: 5px;
    background: var(--ink); color: #fff; vertical-align: middle;
}
.v2p25-jck input:checked ~ .v2p25-jck__txt .v2p25-jck__tag { background: var(--mist); color: var(--faint); }
.v2p25-journey__msg {
    margin: 6px 22px 20px;
    padding: 14px 18px;
    border-radius: 12px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    font-size: 13px; line-height: 1.6; color: var(--ink);
}
.v2p25-journey__msg b { color: var(--go-deep); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .v2p25-paper, .v2p25-tracks, .v2p25-plans { grid-template-columns: minmax(0, 1fr); }
    .v2p25-tracks .v2p25-track--key { order: -1; margin-top: 6px; }
    .v2p25-plans .v2p25-plan--key { order: -1; margin-top: 6px; }
}
@media (max-width: 768px) {
    .v2p25-fee { grid-template-columns: minmax(0, 1fr); text-align: center; gap: 14px; }
    .v2p25-fee__txt { border-right: none; border-top: 1px solid rgba(11, 138, 71, 0.22); padding-right: 0; padding-top: 16px; }
    .v2p25-vs { grid-template-columns: minmax(0, 1fr); }
    .v2p25-vs__mid { padding: 8px 0; }
    .v2p25-perm, .v2p25-changes, .v2p25-mistakes, .v2p25-hl { grid-template-columns: minmax(0, 1fr); }
    .v2p25-scn { grid-template-columns: minmax(0, 1fr); }
    .v2p25-est__bar { grid-template-columns: 96px 1fr auto; gap: 8px; }
    .v2p25-road, .v2p25-timeline, .v2p25-tool, .v2p25-journey { border-radius: 16px; }
    .v2p25-timeline { padding: 20px 16px; }
    .v2p25-tl__inner { min-width: 460px; }
    .v2p25-tl__scale, .v2p25-tl__row { grid-template-columns: 116px 1fr; gap: 10px; }
}
@media (max-width: 640px) {
    .v2 .v2gpr-facts.v2p25-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2p25-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2p25-fee, .v2p25-perm__card, .v2p25-track, .v2p25-plan { padding: 18px 16px; }
    .v2p25-tool__head, .v2p25-journey__head { padding: 16px 18px; }
    .v2p25-tool__body { padding: 18px; }
    .v2p25-journey__body { padding: 6px 16px 12px; }
    .v2p25-journey__msg { margin: 6px 16px 16px; }
    .v2p25-verdict { grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 18px; }
    .v2p25-opt { min-width: calc(50% - 5px); }
    .v2p25-est { padding: 18px; }
    .v2p25-est__verdict { flex-direction: column; text-align: center; gap: 12px; }
    .v2p25-cmp table { min-width: 0; }
    .v2p25-road__foot { font-size: 12px; }
}
@media (max-width: 380px) {
    .v2p25-stats { grid-template-columns: minmax(0, 1fr); }
    .v2p25-opt { min-width: 100%; }
    .v2p25-est__bar { grid-template-columns: 84px 1fr auto; }
}

/* ============================================================
   BLOG OWN V2  -  "Can I Be My Own Google Play Tester?"
   Unique internal components for the can-i-be-my-own-tester
   post. Authored MOBILE-FIRST: base rules target phones, then
   min-width queries add columns. Rose is the danger signal and
   is used deliberately (the verdict panel is the one bold rose
   moment); amber marks intermediate risk, green marks safe.
   Light components only - the two dark moments on the page are
   the shared .v2gpr-qa capsule and the final .v2-cta band.
   Widget hooks the interactive JS depends on (.v2own-opt.on,
   .v2own-gauge__fill.pass, .v2own-simv.warn/.fail, .own-chip,
   .own-res*) are styled here too.
============================================================ */
.v2own-verdict,
.v2own-glance,
.v2own-sim,
.v2own-valid,
.v2own-key,
.v2own-try,
.v2own-warn,
.v2own-tracks,
.v2own-policy,
.v2own-diag,
.v2own-cascade,
.v2own-signals,
.v2own-two,
.v2own-myth,
.v2own-steps,
.v2own-cmp,
.v2own-q3,
.v2own-band,
.v2own-feat,
.v2own-pricing,
.v2own-fig {
    --rose:      #B42318;
    --rose-deep: #912018;
    --rose-tint: #FDF1F0;
    --rose-line: #F3C9C4;
    --amber-tint:#FEF6E7;
    --own-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(10,16,23,.12);
    --own-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(10,16,23,.20);
    margin: 30px 0;
}

/* Hero tweaks (rose accent) */
.v2own-eyebrow { color: var(--rose); }
.v2own-eyebrow::before { background: var(--rose) !important; }
.v2own-facts .v2own-fact--no b { color: var(--rose); }

/* Quick-answer highlight tints (inside the dark .v2gpr-qa) */
.v2gpr-qa .own-qk-no   { color: #FDA4AF; }
.v2gpr-qa .own-qk-key  { color: #FCD34D; }
.v2gpr-qa .own-qk-date { color: #A5B4FC; }

/* ---------- Verdict panel (the one rose) ---------- */
.v2own-verdict {
    border: 1px solid var(--rose-line);
    border-radius: 18px;
    background:
        radial-gradient(120% 90% at 100% 0, var(--rose-tint) 0, rgba(253,241,240,0) 60%),
        var(--paper);
    box-shadow: var(--own-shadow-lg);
    overflow: hidden;
}
.v2own-verdict__main { padding: 22px 20px 20px; }
.v2own-verdict__tag {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--rose); font-size: 11px;
    margin: 0 0 14px;
}
.v2own-verdict__tag svg { width: 16px; height: 16px; }
.v2own-verdict__no { display: flex; align-items: center; gap: 14px; }
.v2own-verdict__seal {
    flex-shrink: 0; width: 52px; height: 52px; color: var(--rose);
    display: grid; place-items: center;
    background: var(--rose-tint); border-radius: 50%;
    transform: rotate(8deg);
}
.v2own-verdict__seal svg { width: 34px; height: 34px; }
.v2own-verdict__h {
    font-family: var(--font-display); font-weight: 700;
    font-size: clamp(24px, 6.4vw, 34px); line-height: 1.08;
    color: var(--ink); margin: 0; letter-spacing: -.01em;
}
.v2own-verdict__sub {
    margin: 12px 0 0; color: var(--rose-deep);
    font-weight: 650; font-size: 15px;
}
.v2own-verdict__p { margin: 10px 0 0; color: var(--slate); font-size: 15.5px; line-height: 1.72; }
.v2own-verdict__can {
    margin: 18px 0 0; padding: 16px 16px 14px;
    background: var(--go-tint); border: 1px solid #C9EAD6;
    border-radius: 12px;
}
.v2own-verdict__canlbl {
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--go-deep); font-size: 11px; margin: 0 0 8px;
}
.v2own-verdict__canlbl svg { width: 15px; height: 15px; }
.v2own-verdict__big { margin: 0; color: var(--ink); font-size: 17px; font-weight: 600; }
.v2own-verdict__big b { color: var(--go-deep); }
.v2own-verdict__sm { margin: 6px 0 0; color: var(--slate); font-size: 14px; line-height: 1.6; }
.v2own-verdict__strip {
    display: grid; grid-template-columns: minmax(0,1fr); gap: 1px;
    background: var(--rose-line);
    border-top: 1px solid var(--rose-line);
}
.v2own-tile { display: flex; gap: 12px; padding: 16px 20px; background: var(--paper); }
.v2own-tile__ic {
    flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px;
    display: grid; place-items: center;
}
.v2own-tile__ic svg { width: 20px; height: 20px; }
.v2own-tile.is-ok  .v2own-tile__ic { background: var(--go-tint); color: var(--go-deep); }
.v2own-tile.is-no  .v2own-tile__ic { background: var(--rose-tint); color: var(--rose); }
.v2own-tile__tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2own-tile__l { font-family: var(--font-mono); font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; }
.v2own-tile.is-ok .v2own-tile__l { color: var(--go-deep); }
.v2own-tile.is-no .v2own-tile__l { color: var(--rose); }
.v2own-tile__t { font-weight: 650; color: var(--ink); font-size: 14.5px; }
.v2own-tile__s { color: var(--faint); font-size: 12.5px; line-height: 1.5; }

/* ---------- At-a-glance spec sheet ---------- */
.v2own-glance {
    border: 1px solid var(--line); border-radius: 14px;
    background: var(--paper); box-shadow: var(--own-shadow); overflow: hidden;
}
.v2own-glance__head {
    display: flex; align-items: center; gap: 8px;
    padding: 13px 16px; color: var(--ink); font-size: 11.5px;
    background: var(--mist); border-bottom: 1px solid var(--line);
}
.v2own-glance__head svg { width: 16px; height: 16px; color: var(--go); }
.v2own-glance__rows { margin: 0; }
.v2own-glance__row {
    display: grid; grid-template-columns: minmax(0,1fr);
    gap: 3px; padding: 12px 16px;
    border-bottom: 1px solid var(--line);
}
.v2own-glance__row:last-child { border-bottom: 0; }
.v2own-glance__row dt { color: var(--slate); font-size: 13px; font-weight: 600; }
.v2own-glance__row dd { margin: 0; color: var(--ink); font-size: 14px; }
.v2own-glance__row dd b { color: var(--ink); font-weight: 700; }
.v2own-glance__row dd.is-good { color: var(--go-deep); }
.v2own-glance__row dd.is-good b { color: var(--go-deep); }
.v2own-glance__row dd.is-bad b { color: var(--rose); }

/* ---------- Simulator (dual-gauge lab console) ---------- */
.v2own-sim, .v2own-diag {
    border: 1px solid var(--line); border-radius: 16px;
    background: var(--paper); box-shadow: var(--own-shadow-lg); overflow: hidden;
}
.v2own-sim__head, .v2own-diag__head {
    padding: 18px 18px 16px;
    background: linear-gradient(-180deg, var(--mist), var(--paper));
    border-bottom: 1px solid var(--line);
}
.v2own-sim__tag, .v2own-diag__tag {
    display: inline-flex; align-items: center; gap: 7px;
    color: var(--go-deep); font-size: 11px; margin: 0 0 8px;
}
.v2own-sim__tag svg, .v2own-diag__tag svg { width: 15px; height: 15px; }
.v2own-sim__head h3, .v2own-diag__head h3 {
    font-family: var(--font-display); font-weight: 700;
    font-size: 20px; color: var(--ink); margin: 0 0 5px; letter-spacing: -.01em;
}
.v2own-sim__head p, .v2own-diag__head p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.55; }
.v2own-sim__body, .v2own-diag__body { padding: 18px; }
.v2own-sim__lead, .v2own-diag__q {
    display: flex; align-items: center; gap: 7px;
    margin: 0 0 12px; color: var(--faint); font-size: 11px;
}
.v2own-sim__opts { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
.v2own-opt {
    display: flex; align-items: center; gap: 11px; text-align: right;
    padding: 12px 13px; border: 1.5px solid var(--line); border-radius: 11px;
    background: var(--paper); cursor: pointer; width: 100%;
    transition: border-color .18s, background .18s, box-shadow .18s;
    -webkit-tap-highlight-color: transparent;
}
.v2own-opt:hover { border-color: #CDD5DD; }
.v2own-opt__box {
    flex-shrink: 0; width: 22px; height: 22px; border-radius: 6px;
    border: 1.5px solid var(--line); display: grid; place-items: center;
    color: transparent; transition: all .18s;
}
.v2own-opt__box svg { width: 14px; height: 14px; }
.v2own-opt__tx { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.v2own-opt .ot { font-weight: 650; color: var(--ink); font-size: 14px; }
.v2own-opt .os { color: var(--faint); font-size: 12px; line-height: 1.45; }
.v2own-opt.on { border-color: var(--go); background: var(--go-tint); box-shadow: inset 0 0 0 1px var(--go); }
.v2own-opt.on .v2own-opt__box { background: var(--go); border-color: var(--go); color: #fff; }
.v2own-sim__result { margin-top: 16px; }
.v2own-gauges { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
.v2own-gauge__top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 7px; }
.v2own-gauge__lab { color: var(--slate); font-size: 12.5px; font-weight: 600; }
.v2own-gauge__val { font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--ink); }
.v2own-gauge__val.pass { color: var(--go-deep); }
.v2own-gauge__track { height: 9px; border-radius: 99px; background: var(--mist); overflow: hidden; box-shadow: inset 0 0 0 1px var(--line); }
.v2own-gauge__fill { height: 100%; width: 0; border-radius: 99px; transition: width .5s cubic-bezier(.16,1,.3,1); }
.v2own-gauge.is-testers .v2own-gauge__fill { background: linear-gradient(-90deg, #9AA4AF, var(--slate)); }
.v2own-gauge.is-testers .v2own-gauge__fill.pass { background: linear-gradient(-90deg, var(--go), var(--go-deep)); }
.v2own-gauge.is-risk .v2own-gauge__fill { background: linear-gradient(-90deg, var(--star), var(--rose)); }
.v2own-gauge__note { margin: 7px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.5; }
.v2own-simv {
    display: flex; gap: 12px; align-items: flex-start;
    margin-top: 16px; padding: 15px 16px; border-radius: 12px;
    border: 1px solid var(--line); background: var(--mist);
}
.v2own-simv .vi { flex-shrink: 0; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: var(--paper); }
.v2own-simv .vi svg { width: 19px; height: 19px; }
.v2own-simv .vt { margin: 0 0 3px; font-weight: 700; font-size: 15px; color: var(--ink); }
.v2own-simv .vd { margin: 0; font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2own-simv.empty { color: var(--faint); }
.v2own-simv.empty .vi { color: var(--faint); }
.v2own-simv.warn { background: var(--amber-tint); border-color: #F5DFA8; }
.v2own-simv.warn .vi { color: #B77908; }
.v2own-simv.fail { background: var(--rose-tint); border-color: var(--rose-line); }
.v2own-simv.fail .vi { color: var(--rose); }
.v2own-simv.fail .vd b { color: var(--rose-deep); }
.v2own-sim__foot, .v2own-diag__foot {
    display: flex; gap: 8px; align-items: flex-start;
    margin: 14px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.5;
}
.v2own-sim__foot svg, .v2own-diag__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; }

/* ---------- Valid-tester spec cards ---------- */
.v2own-valid { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-valid__card {
    position: relative; overflow: hidden;
    padding: 18px 18px 16px; border: 1px solid var(--line);
    border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-valid__n {
    position: absolute; top: -6px; left: 6px;
    font-family: var(--font-display); font-weight: 800;
    font-size: 68px; line-height: 1; color: var(--mist);
    z-index: 0; pointer-events: none;
}
.v2own-valid__card h3 {
    position: relative; z-index: 1;
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-display); font-size: 16px; font-weight: 700;
    color: var(--ink); margin: 0 0 6px;
}
.v2own-valid__card h3 svg { width: 19px; height: 19px; color: var(--go); flex-shrink: 0; }
.v2own-valid__card p { position: relative; z-index: 1; margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2own-valid__card.is-hidden-bar { border-color: var(--rose-line); background: var(--rose-tint); }
.v2own-valid__card.is-hidden-bar .v2own-valid__n { color: #F8D7D3; }
.v2own-valid__card.is-hidden-bar h3 svg { color: var(--rose); }
.v2own-valid__card.is-hidden-bar p strong { color: var(--rose-deep); }

/* ---------- Key callout ---------- */
.v2own-key, .v2own-warn {
    border: 1px solid var(--line); border-radius: 12px;
    background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-key { display: flex; gap: 12px; padding: 16px 18px; border-right: 3px solid var(--go); background: var(--go-tint); border-color: #C9EAD6; }
.v2own-key__ic { flex-shrink: 0; width: 26px; height: 26px; color: var(--go-deep); }
.v2own-key__ic svg { width: 26px; height: 26px; }
.v2own-key p { margin: 0; color: var(--ink); font-size: 14px; line-height: 1.65; }
.v2own-key p b { color: var(--go-deep); }

/* ---------- Rejected-attempts list ---------- */
.v2own-try {
    border: 1px solid var(--line); border-radius: 13px;
    background: var(--paper); box-shadow: var(--own-shadow); overflow: hidden;
}
.v2own-try__row { display: flex; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--line); align-items: flex-start; }
.v2own-try__x {
    flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%;
    display: grid; place-items: center; color: var(--rose);
    background: var(--rose-tint);
}
.v2own-try__x svg { width: 15px; height: 15px; }
.v2own-try__tx { min-width: 0; }
.v2own-try__what { margin: 0; color: var(--slate); font-size: 14px; }
.v2own-try__what b { color: var(--ink); font-weight: 700; }
.v2own-try__why { margin: 3px 0 0; color: var(--faint); font-size: 13px; line-height: 1.55; }
.v2own-try__foot {
    display: flex; gap: 8px; align-items: flex-start;
    margin: 0; padding: 13px 16px; background: var(--mist);
    color: var(--faint); font-size: 11.5px; line-height: 1.5;
}
.v2own-try__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; }

/* ---------- Warning callout (rose) ---------- */
.v2own-warn { border-right: 3px solid var(--rose); background: var(--rose-tint); border-color: var(--rose-line); padding: 6px 18px; }
.v2own-warn__row { display: flex; gap: 12px; padding: 12px 0; align-items: flex-start; border-bottom: 1px solid var(--rose-line); }
.v2own-warn__row:last-child { border-bottom: 0; }
.v2own-warn--solo .v2own-warn__row { border-bottom: 0; }
.v2own-warn__ic { flex-shrink: 0; width: 22px; height: 22px; color: var(--rose); margin-top: 1px; }
.v2own-warn__ic svg { width: 22px; height: 22px; }
.v2own-warn p { margin: 0; color: var(--rose-deep); font-size: 13.5px; line-height: 1.65; }
.v2own-warn p strong { color: var(--rose-deep); }

/* ---------- Testing-track lanes ---------- */
.v2own-tracks { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-track {
    position: relative; padding: 18px 16px 0; border: 1px solid var(--line);
    border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow);
    overflow: hidden; display: flex; flex-direction: column;
}
.v2own-track__type { color: var(--faint); font-size: 10px; margin: 0 0 8px; }
.v2own-track h3 {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--font-display); font-size: 18px; font-weight: 700;
    color: var(--ink); margin: 0;
}
.v2own-track__ic { width: 26px; height: 26px; display: grid; place-items: center; color: var(--slate); flex-shrink: 0; }
.v2own-track__ic svg { width: 22px; height: 22px; }
.v2own-track__cap { margin: 4px 0 12px; color: var(--faint); font-size: 12.5px; }
.v2own-track__row { display: flex; align-items: flex-start; gap: 8px; padding: 6px 0; color: var(--slate); font-size: 13.5px; line-height: 1.45; }
.v2own-track__row i { flex-shrink: 0; width: 16px; height: 16px; margin-top: 1px; display: grid; place-items: center; }
.v2own-track__row i svg { width: 16px; height: 16px; }
.v2own-track__row i.is-ok { color: var(--go); }
.v2own-track__row i.is-no { color: var(--rose); }
.v2own-track__row i.is-info { color: var(--star); }
.v2own-track__foot {
    margin: 12px -16px 0; padding: 11px 16px; font-family: var(--font-mono);
    font-size: 11px; letter-spacing: .03em; text-transform: uppercase; text-align: center;
}
.v2own-track__foot.is-no  { background: var(--rose-tint); color: var(--rose); }
.v2own-track__foot.is-yes { background: var(--go-tint); color: var(--go-deep); }
.v2own-track__foot.is-opt { background: var(--amber-tint); color: #B77908; }
.v2own-track.is-key { border-color: var(--go); box-shadow: 0 0 0 1px var(--go), var(--own-shadow-lg); }
.v2own-track__badge {
    position: absolute; top: 0; left: 0;
    background: var(--go); color: #fff; font-family: var(--font-mono);
    font-size: 10px; letter-spacing: .04em; text-transform: uppercase;
    padding: 5px 11px; border-bottom-right-radius: 10px;
}
.v2own-track.is-key h3 .v2own-track__ic { color: var(--rose); }

/* ---------- Policy citation cards ---------- */
.v2own-policy { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-policy__card {
    position: relative; overflow: hidden;
    padding: 18px; border: 1px solid var(--line); border-radius: 13px;
    background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-policy__quote {
    position: absolute; top: 2px; left: 14px;
    font-family: var(--font-display); font-size: 74px; line-height: 1;
    color: var(--mist); z-index: 0; pointer-events: none;
}
.v2own-policy__ic {
    position: relative; z-index: 1; display: grid; place-items: center;
    width: 40px; height: 40px; border-radius: 10px;
    background: var(--rose-tint); color: var(--rose); margin-bottom: 12px;
}
.v2own-policy__ic svg { width: 24px; height: 24px; }
.v2own-policy__card h3 {
    position: relative; z-index: 1;
    font-family: var(--font-display); font-size: 16.5px; font-weight: 700;
    color: var(--ink); margin: 0 0 8px;
}
.v2own-policy__card .q {
    position: relative; z-index: 1; display: block;
    color: var(--ink); font-size: 13.5px; line-height: 1.6; font-style: italic;
    padding-right: 12px; border-right: 2px solid var(--rose-line); margin-bottom: 9px;
}
.v2own-policy__card p { position: relative; z-index: 1; margin: 0; color: var(--slate); font-size: 13px; line-height: 1.55; }

/* ---------- Ban-risk diagnoser ---------- */
.v2own-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.v2own-chips .own-chip {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 13px; border: 1.5px solid var(--line); border-radius: 99px;
    background: var(--paper); color: var(--slate); font-size: 13px; font-weight: 600;
    cursor: pointer; transition: all .16s; -webkit-tap-highlight-color: transparent;
}
.v2own-chips .own-chip svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2own-chips .own-chip:hover { border-color: #CDD5DD; color: var(--ink); }
.v2own-chips .own-chip.active { border-color: var(--ink); background: var(--ink); color: #fff; }
.v2own-diag__out { margin-top: 14px; }
.v2own-diag__empty {
    display: flex; align-items: center; gap: 8px;
    padding: 18px; border: 1px dashed var(--line); border-radius: 11px;
    color: var(--faint); font-size: 13px; background: var(--mist);
}
.v2own-diag__empty svg { width: 16px; height: 16px; }
.own-res { border-radius: 12px; overflow: hidden; border: 1px solid var(--line); animation: v2ownFade .3s ease both; }
@keyframes v2ownFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.own-res-top { display: flex; align-items: center; gap: 12px; padding: 14px 16px; }
.own-res-ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; }
.own-res-ic svg { width: 21px; height: 21px; }
.own-res-v { margin: 0; font-weight: 700; font-size: 16px; color: var(--ink); display: flex; flex-direction: column; }
.own-res-v span { font-weight: 600; font-size: 11.5px; font-family: var(--font-mono); text-transform: uppercase; letter-spacing: .04em; margin-top: 2px; }
.own-res-body { padding: 0 16px 15px; }
.own-res-body p { margin: 0 0 10px; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.own-res-policy { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-mono); font-size: 11px; letter-spacing: .02em; padding: 5px 10px; border-radius: 7px; }
.own-res-policy svg { width: 15px; height: 15px; }
.own-res.low  { background: var(--go-tint); border-color: #C9EAD6; }
.own-res.low  .own-res-ic { background: #fff; color: var(--go-deep); }
.own-res.low  .own-res-v span { color: var(--go-deep); }
.own-res.low  .own-res-policy { background: #fff; color: var(--go-deep); }
.own-res.med  { background: var(--amber-tint); border-color: #F5DFA8; }
.own-res.med  .own-res-ic { background: #fff; color: #B77908; }
.own-res.med  .own-res-v span { color: #B77908; }
.own-res.med  .own-res-policy { background: #fff; color: #B77908; }
.own-res.high { background: var(--rose-tint); border-color: var(--rose-line); }
.own-res.high .own-res-ic { background: #fff; color: var(--rose); }
.own-res.high .own-res-v span { color: var(--rose); }
.own-res.high .own-res-policy { background: #fff; color: var(--rose); }

/* ---------- Ban cascade (escalating) ---------- */
.v2own-cascade { list-style: none; margin: 30px 0; padding: 0; display: grid; gap: 10px; }
.v2own-casc {
    position: relative; display: flex; gap: 13px; align-items: flex-start;
    padding: 16px; border: 1px solid var(--line); border-radius: 13px;
    background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-casc:not(:last-child)::after {
    content: ""; position: absolute; right: 50%; bottom: -8px; transform: translateX(50%);
    width: 0; height: 0; border-right: 6px solid transparent; border-left: 6px solid transparent;
    border-top: 7px solid var(--line); z-index: 2;
}
.v2own-casc__ic { flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; }
.v2own-casc__ic svg { width: 22px; height: 22px; }
.v2own-casc__tx h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--font-display); font-size: 15.5px; font-weight: 700; color: var(--ink); margin: 0 0 5px; }
.v2own-casc__step { font-family: var(--font-mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 99px; }
.v2own-casc__tx p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2own-casc.is-s1 .v2own-casc__ic { background: var(--mist); color: var(--slate); }
.v2own-casc.is-s1 .v2own-casc__step { background: var(--mist); color: var(--slate); }
.v2own-casc.is-s2 .v2own-casc__ic { background: var(--amber-tint); color: #B77908; }
.v2own-casc.is-s2 .v2own-casc__step { background: var(--amber-tint); color: #B77908; }
.v2own-casc.is-s3 { border-color: var(--rose-line); }
.v2own-casc.is-s3 .v2own-casc__ic { background: var(--rose-tint); color: var(--rose); }
.v2own-casc.is-s3 .v2own-casc__step { background: var(--rose-tint); color: var(--rose); }
.v2own-casc.is-fallout { border-color: var(--rose); background: var(--rose-tint); box-shadow: 0 0 0 1px var(--rose-line), var(--own-shadow); }
.v2own-casc.is-fallout .v2own-casc__ic { background: var(--rose); color: #fff; }
.v2own-casc.is-fallout .v2own-casc__step { background: var(--rose); color: #fff; }
.v2own-casc.is-fallout h3 { color: var(--rose-deep); }
.v2own-casc.is-fallout p { color: var(--rose-deep); }
.v2own-casc.is-fallout p strong { color: var(--rose-deep); }

/* ---------- Shared-signal chips ---------- */
.v2own-signals { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.v2own-sig {
    text-align: center; padding: 16px 12px; border: 1px solid var(--line);
    border-radius: 12px; background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-sig__ic { width: 38px; height: 38px; margin: 0 auto 9px; border-radius: 10px; display: grid; place-items: center; background: var(--rose-tint); color: var(--rose); }
.v2own-sig__ic svg { width: 22px; height: 22px; }
.v2own-sig h3 { font-family: var(--font-display); font-size: 14.5px; font-weight: 700; color: var(--ink); margin: 0 0 3px; }
.v2own-sig p { margin: 0; color: var(--faint); font-size: 12px; line-height: 1.45; }

/* ---------- Fact vs field two-column ---------- */
.v2own-two { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-two__col { padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow); }
.v2own-two__col.is-fact  { border-top: 3px solid var(--go); }
.v2own-two__col.is-field { border-top: 3px solid var(--star); }
.v2own-two__tag { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; margin: 0 0 4px; }
.v2own-two__tag svg { width: 15px; height: 15px; }
.v2own-two__col.is-fact  .v2own-two__tag { color: var(--go-deep); }
.v2own-two__col.is-field .v2own-two__tag { color: #B77908; }
.v2own-two__col h3 { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 12px; }
.v2own-two__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.v2own-two__col li { display: flex; gap: 9px; align-items: flex-start; color: var(--slate); font-size: 13.5px; line-height: 1.55; }
.v2own-two__mk { flex-shrink: 0; width: 18px; height: 18px; margin-top: 1px; display: grid; place-items: center; }
.v2own-two__mk svg { width: 16px; height: 16px; }
.v2own-two__mk.is-ok { color: var(--go); }
.v2own-two__mk.is-alert { color: var(--star); }

/* ---------- Myth vs reality cards ---------- */
.v2own-myth { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-myth__card {
    display: grid; grid-template-columns: minmax(0,1fr); gap: 1px;
    border: 1px solid var(--line); border-radius: 13px; overflow: hidden;
    background: var(--line); box-shadow: var(--own-shadow);
}
.v2own-myth__m, .v2own-myth__r { padding: 15px 16px; background: var(--paper); }
.v2own-myth__m { background: var(--mist); }
.v2own-myth__lab { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; margin: 0 0 7px; }
.v2own-myth__lab svg { width: 15px; height: 15px; }
.v2own-myth__m .v2own-myth__lab { color: var(--faint); }
.v2own-myth__r .v2own-myth__lab { color: var(--go-deep); }
.v2own-myth__m p { margin: 0; color: var(--slate); font-size: 14px; font-style: italic; line-height: 1.55; }
.v2own-myth__r p { margin: 0; color: var(--ink); font-size: 14px; line-height: 1.6; }

/* ---------- Setup playbook ---------- */
.v2own-steps { list-style: none; margin: 30px 0; padding: 0; display: grid; gap: 10px; }
.v2own-step {
    display: flex; gap: 14px; align-items: flex-start;
    padding: 15px 16px; border: 1px solid var(--line); border-right: 3px solid var(--go);
    border-radius: 11px; background: var(--paper); box-shadow: var(--own-shadow);
}
.v2own-step__n {
    flex-shrink: 0; width: 30px; height: 30px; border-radius: 8px;
    display: grid; place-items: center; background: var(--go-tint); color: var(--go-deep);
    font-size: 14px; font-weight: 700;
}
.v2own-step__t { margin: 0 0 4px; font-family: var(--font-display); font-size: 15.5px; font-weight: 700; color: var(--ink); }
.v2own-step__d { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2own-step__d b { color: var(--ink); }

/* ---------- Comparison table ---------- */
.v2own-cmp { border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow); overflow: hidden; }
.v2own-cmp__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2own-cmp__tbl { width: 100%; border-collapse: collapse; min-width: 620px; }
.v2own-cmp__tbl th, .v2own-cmp__tbl td { padding: 13px 14px; text-align: right; font-size: 13.5px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.v2own-cmp__tbl thead th { background: var(--mist); color: var(--ink); font-family: var(--font-mono); font-size: 11px; text-transform: uppercase; letter-spacing: .03em; white-space: nowrap; }
.v2own-cmp__tbl tbody th[scope="row"] { color: var(--ink); font-weight: 600; position: sticky; right: 0; background: var(--paper); z-index: 1; }
.v2own-cmp__tbl tbody th[scope="row"] b { font-weight: 700; }
.v2own-cmp__tbl td { color: var(--slate); }
.v2own-cmp__tbl tbody tr:last-child th, .v2own-cmp__tbl tbody tr:last-child td { border-bottom: 0; }
.v2own-cmp__tbl tr.is-ptl th[scope="row"], .v2own-cmp__tbl tr.is-ptl td { background: var(--go-tint); }
.v2own-cmp__tbl tr.is-ptl th[scope="row"] { box-shadow: inset -3px 0 0 var(--go); }
.v2own-pill { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.v2own-pill.is-high { background: var(--rose-tint); color: var(--rose); }
.v2own-pill.is-low  { background: var(--go-tint); color: var(--go-deep); }
.v2own-cmp__foot { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 12px 16px; background: var(--mist); color: var(--faint); font-size: 11.5px; line-height: 1.5; }
.v2own-cmp__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; }

/* ---------- Three-part questionnaire ---------- */
.v2own-q3 { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-q3__card { position: relative; padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow); }
.v2own-q3__n { display: inline-block; padding: 4px 11px; border-radius: 99px; background: var(--ink); color: #fff; font-size: 11px; letter-spacing: .03em; margin-bottom: 11px; }
.v2own-q3__card h3 { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 10px; }
.v2own-q3__card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.v2own-q3__card li { position: relative; padding-right: 18px; color: var(--slate); font-size: 13.5px; line-height: 1.5; }
.v2own-q3__card li::before { content: ""; position: absolute; right: 2px; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--go); }

/* ---------- 2026 note band ---------- */
.v2own-band { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border: 1px solid #D8DEF0; border-radius: 14px; background: linear-gradient(-180deg, #F4F6FD, var(--paper)); box-shadow: var(--own-shadow); }
.v2own-band__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: #E7EBFB; color: #4F5BD5; }
.v2own-band__ic svg { width: 24px; height: 24px; }
.v2own-band__tx h3 { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.v2own-band__tx p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }

/* ---------- Feature tiles ---------- */
.v2own-feat { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-feat__card { display: flex; gap: 13px; align-items: flex-start; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--own-shadow); }
.v2own-feat__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--go-tint); color: var(--go-deep); }
.v2own-feat__ic svg { width: 24px; height: 24px; }
.v2own-feat__card h3 { font-family: var(--font-display); font-size: 15.5px; font-weight: 700; color: var(--ink); margin: 0 0 4px; }
.v2own-feat__card p { margin: 0; color: var(--slate); font-size: 13px; line-height: 1.55; }

/* ---------- Pricing plaques ---------- */
.v2own-pricing { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2own-price { position: relative; text-align: center; padding: 22px 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--own-shadow); }
.v2own-price__name { font-family: var(--font-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin-bottom: 8px; }
.v2own-price__num { font-family: var(--font-display); font-size: 40px; font-weight: 800; color: var(--ink); line-height: 1; }
.v2own-price__num small { font-size: 20px; font-weight: 700; vertical-align: super; margin-left: 1px; }
.v2own-price__testers { margin: 6px 0 14px; color: var(--slate); font-size: 13px; }
.v2own-price .v2own-price__cta { display: block; padding: 11px; border-radius: 9px; background: var(--ink); color: #fff; font-weight: 650; font-size: 14px; text-decoration: none; transition: background .18s; }
.v2own-price .v2own-price__cta:hover { background: #1c2732; text-decoration: none; }
.v2own-price.is-best { border-color: var(--go); box-shadow: 0 0 0 1px var(--go), var(--own-shadow-lg); }
.v2own-price.is-best .v2own-price__cta { background: var(--go); }
.v2own-price.is-best .v2own-price__cta:hover { background: var(--go-deep); }
.v2own-price__badge { position: absolute; top: -11px; right: 50%; transform: translateX(50%); background: var(--go); color: #fff; font-family: var(--font-mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 99px; white-space: nowrap; }

/* ---------- Non-clickable figure ---------- */
.v2own-fig { margin: 26px 0; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: var(--paper); box-shadow: var(--own-shadow); }
.v2own-fig img { display: block; width: 100%; height: auto; }
.v2own-fig figcaption { display: flex; gap: 8px; align-items: flex-start; padding: 12px 16px; background: var(--mist); border-top: 1px solid var(--line); color: var(--faint); font-size: 12.5px; line-height: 1.5; }
.v2own-fig figcaption svg { flex-shrink: 0; width: 16px; height: 16px; margin-top: 1px; color: var(--slate); }

/* ---------- Tablet and up (min-width: 640px) ---------- */
@media (min-width: 640px) {
    .v2own-verdict__main { padding: 28px 28px 24px; }
    .v2own-verdict__strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2own-glance__row { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 16px; align-items: center; }
    .v2own-glance__row dt { font-size: 13.5px; }
    .v2own-sim__opts { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2own-gauges { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
    .v2own-valid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2own-tracks { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; }
    .v2own-policy { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2own-signals { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .v2own-two { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2own-myth__card { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); }
    .v2own-q3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2own-feat { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2own-pricing { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: center; }
    .v2own-price.is-best { transform: scale(1.04); }
}

/* ---------- Desktop (min-width: 980px) ---------- */
@media (min-width: 980px) {
    .v2own-valid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2own-valid__card.is-hidden-bar { grid-column: span 3; display: flex; align-items: center; gap: 16px; }
    .v2own-valid__card.is-hidden-bar h3 { margin: 0; white-space: nowrap; }
    .v2own-valid__card.is-hidden-bar .v2own-valid__n { font-size: 60px; }
    .v2own-feat { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .v2own-feat__card { flex-direction: column; gap: 11px; }
}

/* ---------- Micro screens (max-width: 400px) ---------- */
@media (max-width: 400px) {
    .v2own-verdict__no { gap: 11px; }
    .v2own-verdict__seal { width: 44px; height: 44px; }
    .v2own-verdict__seal svg { width: 28px; height: 28px; }
    .v2own-sim__opts { grid-template-columns: minmax(0,1fr); }
    .v2own-chips .own-chip { font-size: 12px; padding: 8px 11px; }
    .v2own-casc__tx h3 { font-size: 14.5px; }
}

/* ============================================================
   BLOG CDAY V2  -  "Does the 14 Days Have to Be the Most Recent?"
   Unique internal components for the 14-consecutive-days post.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motif = the unbroken STREAK
   (green day-cells / bars) vs a broken run. Green is the primary
   accent (the answer is Yes); rose marks breaks/resets, amber
   marks caution, indigo the ambiguous readings, blue the Google
   wording. Light components only - the two dark moments are the
   shared .v2gpr-qa capsule and the final .v2-cta band. Widget
   hooks the interactive JS depends on (.cday-cell.on/.run/.now,
   .cday-verdict.pass/.near/.fail, .cday-dchip, .cday-dres*) are
   styled here too.
============================================================ */
.v2cday-verdict,
.v2cday-lead,
.v2cday-two,
.v2cday-fig,
.v2cday-build,
.v2cday-math,
.v2cday-scn,
.v2cday-subhead,
.v2cday-break,
.v2cday-safe,
.v2cday-note,
.v2cday-diag,
.v2cday-vs2,
.v2cday-read,
.v2cday-callout,
.v2cday-pool,
.v2cday-quote,
.v2cday-key3,
.v2cday-feats,
.v2cday-pricing {
    --rose:      #B42318;
    --rose-deep: #912018;
    --rose-tint: #FDF1F0;
    --rose-line: #F3C9C4;
    --amber-deep:#92400E;
    --amber-tint:#FEF6E7;
    --amber-line:#F5DFA8;
    --indigo:    #4F5BD5;
    --indigo-tint:#EEF2FF;
    --indigo-line:#D8DEF0;
    --blue:      #1D4ED8;
    --blue-tint: #EFF6FF;
    --blue-line: #C7DBFF;
    --go-line:   #C9EAD6;
    --cd-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(6,78,59,.16);
    --cd-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(6,78,59,.22);
    margin: 30px 0;
}

/* Hero tweaks (green accent) */
.v2cday-eyebrow { color: var(--go-deep); }
.v2cday-eyebrow::before { background: var(--go) !important; }
.v2cday-facts .v2cday-fact--yes b { color: var(--go); }

/* Quick-answer date tint (inside dark .v2gpr-qa) */
.v2gpr-qa .cday-qk-date { color: #FFD56B; }

/* ---------- Verdict panel (streak motif) ---------- */
.v2cday-verdict {
    border: 1px solid var(--go-line); border-radius: 18px; overflow: hidden;
    background: radial-gradient(120% 90% at 0 0, var(--go-tint) 0, rgba(232,245,238,0) 55%), var(--paper);
    box-shadow: var(--cd-shadow-lg);
}
.v2cday-verdict__head { padding: 22px 20px 4px; }
.v2cday-verdict__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--go-deep); font-size: 11px; margin: 0 0 14px; }
.v2cday-verdict__tag svg { width: 16px; height: 16px; }
.v2cday-verdict__yes { display: flex; align-items: center; gap: 14px; }
.v2cday-verdict__check { flex-shrink: 0; width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; color: #fff; background: linear-gradient(-135deg, #12b866, var(--go-deep)); box-shadow: 0 8px 20px -6px rgba(11,138,71,.5); }
.v2cday-verdict__check svg { width: 30px; height: 30px; }
.v2cday-verdict__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(22px, 5.6vw, 30px); line-height: 1.06; color: var(--ink); margin: 0; letter-spacing: -.01em; }
.v2cday-verdict__sub { display: block; margin-top: 5px; color: var(--slate); font-size: 13.5px; font-weight: 600; }
.v2cday-verdict__p { margin: 0; padding: 0 20px; color: var(--slate); font-size: 15px; line-height: 1.72; }

/* streak bars */
.v2cday-streak { padding: 16px 20px; display: grid; gap: 10px; }
.v2cday-streak__row { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px 10px; }
.v2cday-streak__lab { font-size: 10px; letter-spacing: .04em; }
.v2cday-streak__row.is-good .v2cday-streak__lab { color: var(--go-deep); }
.v2cday-streak__row.is-bad .v2cday-streak__lab { color: var(--rose); }
.v2cday-streak__bar { grid-column: 1 / -1; display: flex; gap: 3px; }
.v2cday-streak__bar i { flex: 1 1 0; height: 12px; border-radius: 3px; background: var(--line); }
.v2cday-streak__row.is-good .v2cday-streak__bar i.on { background: linear-gradient(-180deg, #16a86a, var(--go)); }
.v2cday-streak__row.is-bad .v2cday-streak__bar i.on { background: linear-gradient(-180deg, #d1584c, var(--rose)); }
.v2cday-streak__row.is-bad .v2cday-streak__bar i:not(.on) { background: repeating-linear-gradient(-45deg, var(--rose-tint), var(--rose-tint) 3px, #fff 3px, #fff 6px); box-shadow: inset 0 0 0 1px var(--rose-line); }
.v2cday-streak__end { grid-column: 1 / -1; font-size: 11.5px; color: var(--faint); }
.v2cday-streak__row.is-good .v2cday-streak__end { color: var(--go-deep); }
.v2cday-streak__row.is-bad .v2cday-streak__end { color: var(--rose); }

.v2cday-verdict__trap { margin: 4px 20px 0; padding: 16px; border-radius: 12px; background: var(--rose-tint); border: 1px solid var(--rose-line); }
.v2cday-verdict__traplbl { display: inline-flex; align-items: center; gap: 7px; color: var(--rose); font-size: 11px; margin: 0 0 8px; }
.v2cday-verdict__traplbl svg { width: 15px; height: 15px; }
.v2cday-verdict__trapbig { margin: 0; color: var(--ink); font-size: 16px; font-weight: 700; }
.v2cday-verdict__trapbig b { color: var(--rose-deep); }
.v2cday-verdict__trapsm { margin: 6px 0 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2cday-verdict__strip { margin-top: 16px; display: grid; grid-template-columns: minmax(0,1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); }
.v2cday-tile { display: flex; gap: 12px; padding: 16px 20px; background: var(--paper); }
.v2cday-tile__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; }
.v2cday-tile__ic svg { width: 20px; height: 20px; }
.v2cday-tile.is-ok .v2cday-tile__ic { background: var(--go-tint); color: var(--go-deep); }
.v2cday-tile.is-no .v2cday-tile__ic { background: var(--rose-tint); color: var(--rose); }
.v2cday-tile__tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2cday-tile__l { font-size: 10.5px; letter-spacing: .05em; }
.v2cday-tile.is-ok .v2cday-tile__l { color: var(--go-deep); }
.v2cday-tile.is-no .v2cday-tile__l { color: var(--rose); }
.v2cday-tile__t { font-weight: 650; color: var(--ink); font-size: 14.5px; }
.v2cday-tile__s { color: var(--faint); font-size: 12.5px; line-height: 1.5; }

/* ---------- Lead / short-answer callout ---------- */
.v2cday-lead { border-right: 4px solid var(--go); background: var(--go-tint); border-radius: 12px 0 0 12px; padding: 14px 18px; }
.v2cday-lead p { margin: 0; color: var(--ink); font-size: 15px; line-height: 1.65; }
.v2cday-lead.is-bad  { border-right-color: var(--rose); background: var(--rose-tint); }
.v2cday-lead.is-warn { border-right-color: var(--star); background: var(--amber-tint); }
.v2cday-lead.is-info { border-right-color: var(--indigo); background: var(--indigo-tint); }

/* ---------- Two-number requirement pair ---------- */
.v2cday-two { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-two__item { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border: 1px solid var(--go-line); border-radius: 12px; background: var(--go-tint); }
.v2cday-two__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: #fff; color: var(--go-deep); }
.v2cday-two__ic svg { width: 20px; height: 20px; }
.v2cday-two__item p { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.55; }
.v2cday-two__item p strong { color: var(--ink); }

/* ---------- Figure ---------- */
.v2cday-fig { border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-fig img { display: block; width: 100%; height: auto; }
.v2cday-fig figcaption { display: flex; gap: 8px; align-items: flex-start; padding: 12px 16px; background: var(--mist); border-top: 1px solid var(--line); color: var(--faint); font-size: 12.5px; line-height: 1.5; }
.v2cday-fig figcaption svg { flex-shrink: 0; width: 16px; height: 16px; margin-top: 1px; color: var(--go); }

/* ---------- Streak Builder (calendar) ---------- */
.v2cday-build, .v2cday-diag { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--paper); box-shadow: var(--cd-shadow-lg); }
.v2cday-build__head, .v2cday-diag__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: linear-gradient(-135deg, var(--go-deep), #0f5f3c); color: #fff; }
.v2cday-build__hi, .v2cday-diag__hi { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,.16); display: grid; place-items: center; }
.v2cday-build__hi svg, .v2cday-diag__hi svg { width: 24px; height: 24px; }
.v2cday-build__htx, .v2cday-diag__htx { display: flex; flex-direction: column; gap: 2px; }
.v2cday-build__ht, .v2cday-diag__ht { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
.v2cday-build__hs, .v2cday-diag__hs { font-size: 12.5px; color: rgba(255,255,255,.78); line-height: 1.4; }
.v2cday-build__body, .v2cday-diag__body { padding: 18px; }
.v2cday-build__hint { display: flex; gap: 9px; align-items: flex-start; margin: 0 0 16px; color: var(--slate); font-size: 13px; line-height: 1.55; }
.v2cday-build__hint svg { flex-shrink: 0; width: 17px; height: 17px; margin-top: 2px; color: var(--go); }
.v2cday-build__hint strong { color: var(--ink); }
.v2cday-build__stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
.cday-bstat { text-align: center; padding: 12px 6px; border-radius: 11px; background: var(--mist); border: 1px solid var(--line); }
.cday-bstat .n { display: block; font-family: var(--font-display); font-weight: 800; font-size: 26px; color: var(--slate); line-height: 1; }
.cday-bstat .l { display: block; margin-top: 5px; font-size: 10.5px; color: var(--faint); line-height: 1.3; }
.cday-bstat.lead { background: var(--go-tint); border-color: var(--go-line); }
.cday-bstat.lead .n { color: var(--go-deep); }
.cday-bstat.muted { opacity: .72; }
.cday-cal { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 5px; }
.cday-cell { position: relative; aspect-ratio: 1 / 1; border: 1.5px solid var(--line); border-radius: 9px; background: var(--paper); cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 0; transition: transform .12s, border-color .15s, background .15s; -webkit-tap-highlight-color: transparent; }
.cday-cell .dn { font-family: var(--font-mono); font-size: 10px; color: var(--faint); }
.cday-cell .di { display: grid; place-items: center; color: var(--faint); }
.cday-cell .di svg { width: 14px; height: 14px; }
.cday-cell:hover { border-color: #BFDBCB; }
.cday-cell.on { border-color: var(--go); background: var(--go-tint); }
.cday-cell.on .dn { color: var(--go-deep); }
.cday-cell.on .di { color: var(--go); }
.cday-cell.run { border-color: var(--go); background: linear-gradient(-180deg, #d8f2e3, var(--go-tint)); box-shadow: inset 0 0 0 1px var(--go); }
.cday-cell.run .di { color: var(--go-deep); }
.cday-cell.now { outline: 2px dashed var(--star); outline-offset: 1px; }
.cday-cal-legend, .v2cday-cal-legend { display: flex; flex-wrap: wrap; gap: 10px 16px; margin: 14px 0; font-size: 11.5px; color: var(--slate); }
.v2cday-cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.v2cday-cal-legend .sw { width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid var(--line); }
.v2cday-cal-legend .sw.on { background: var(--go-tint); border-color: var(--go); }
.v2cday-cal-legend .sw.off { background: var(--paper); }
.v2cday-cal-legend .sw.run { background: linear-gradient(-180deg, #d8f2e3, var(--go-tint)); border-color: var(--go); box-shadow: inset 0 0 0 1px var(--go); }
.cday-verdict { margin-top: 4px; padding: 15px 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--mist); }
.cday-verdict-top { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.cday-verdict-ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: #fff; }
.cday-verdict-ic svg { width: 21px; height: 21px; }
.cday-verdict-h { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); display: flex; flex-direction: column; }
.cday-verdict-h span { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: .03em; color: var(--faint); margin-top: 2px; }
.cday-verdict-body { margin: 0; font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.cday-verdict-body b { color: var(--ink); }
.cday-verdict.pass { background: var(--go-tint); border-color: var(--go-line); }
.cday-verdict.pass .cday-verdict-ic { color: var(--go-deep); }
.cday-verdict.near { background: var(--amber-tint); border-color: var(--amber-line); }
.cday-verdict.near .cday-verdict-ic { color: var(--amber-deep); }
.cday-verdict.fail { background: var(--rose-tint); border-color: var(--rose-line); }
.cday-verdict.fail .cday-verdict-ic { color: var(--rose); }
.v2cday-build__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.v2cday-pbtn { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1.5px solid var(--line); border-radius: 9px; background: var(--paper); color: var(--slate); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all .15s; -webkit-tap-highlight-color: transparent; }
.v2cday-pbtn svg { width: 15px; height: 15px; }
.v2cday-pbtn:hover { border-color: var(--go); color: var(--go-deep); background: var(--go-tint); }
.v2cday-pbtn.is-clear:hover { border-color: var(--rose-line); color: var(--rose); background: var(--rose-tint); }
.v2cday-build__foot, .v2cday-diag__foot { margin: 14px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.5; }

/* ---------- Consecutive vs cumulative equation ---------- */
.v2cday-math { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; align-items: stretch; }
.v2cday-math__side { padding: 18px; border-radius: 14px; border: 1px solid var(--line); box-shadow: var(--cd-shadow); }
.v2cday-math__side.is-bad { background: var(--rose-tint); border-color: var(--rose-line); }
.v2cday-math__side.is-good { background: var(--go-tint); border-color: var(--go-line); }
.v2cday-math__tag { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; margin: 0 0 12px; }
.v2cday-math__tag svg { width: 15px; height: 15px; }
.v2cday-math__side.is-bad .v2cday-math__tag { color: var(--rose); }
.v2cday-math__side.is-good .v2cday-math__tag { color: var(--go-deep); }
.v2cday-math__eq { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 12px; }
.v2cday-math__chip { min-width: 38px; height: 38px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: #fff; border: 1px solid var(--line); font-family: var(--font-display); font-weight: 800; font-size: 18px; color: var(--ink); }
.v2cday-math__chip.is-strike { position: relative; color: var(--rose); }
.v2cday-math__chip.is-strike::after { content: ""; position: absolute; right: 6px; left: 6px; top: 50%; height: 2px; background: var(--rose); transform: rotate(12deg); }
.v2cday-math__op { font-family: var(--font-mono); font-size: 13px; color: var(--faint); }
.v2cday-math__result { display: flex; align-items: center; gap: 8px; font-size: 13.5px; color: var(--rose-deep); font-weight: 600; margin-bottom: 8px; }
.v2cday-math__result svg { flex-shrink: 0; width: 16px; height: 16px; }
.v2cday-math__result strong { font-size: 15px; }
.v2cday-math__result.is-good { color: var(--go-deep); }
.v2cday-math__side p { margin: 0; font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2cday-math__div { align-self: center; justify-self: center; font-family: var(--font-mono); font-weight: 700; font-size: 12px; color: var(--faint); letter-spacing: .05em; padding: 4px 0; }

/* ---------- Scenario verdict rows ---------- */
.v2cday-scn { border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-scn__row { display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border-bottom: 1px solid var(--line); }
.v2cday-scn__t { color: var(--ink); font-size: 14px; line-height: 1.5; }
.v2cday-scn__v { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 99px; font-size: 12px; font-weight: 650; }
.v2cday-scn__v svg { width: 14px; height: 14px; }
.v2cday-scn__v.is-yes { background: var(--go-tint); color: var(--go-deep); }
.v2cday-scn__v.is-no { background: var(--rose-tint); color: var(--rose); }
.v2cday-scn__foot { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 13px 16px; background: var(--mist); color: var(--faint); font-size: 11.5px; line-height: 1.5; }
.v2cday-scn__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; }

/* ---------- Break section ---------- */
.v2cday-subhead { display: flex; align-items: center; gap: 8px; font-weight: 700; font-size: 15px; margin: 22px 0 14px; }
.v2cday-subhead svg { width: 19px; height: 19px; flex-shrink: 0; }
.v2cday-subhead.is-bad { color: var(--rose-deep); }
.v2cday-break { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-break__card { position: relative; overflow: hidden; padding: 18px; border: 1px solid var(--rose-line); border-top: 3px solid var(--rose); border-radius: 13px; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-break__n { position: absolute; top: 6px; left: 12px; font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 1; color: var(--rose-tint); z-index: 0; }
.v2cday-break__ic { position: relative; z-index: 1; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--rose-tint); color: var(--rose); margin-bottom: 11px; }
.v2cday-break__ic svg { width: 22px; height: 22px; }
.v2cday-break__card h3 { position: relative; z-index: 1; font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.v2cday-break__card p { position: relative; z-index: 1; margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2cday-break__card p b { color: var(--rose-deep); }

/* ---------- Safe list ---------- */
.v2cday-safe { border: 1px solid var(--go-line); border-radius: 13px; background: var(--go-tint); padding: 16px 18px; }
.v2cday-safe__h { display: flex; align-items: center; gap: 8px; color: var(--go-deep); font-size: 11.5px; margin: 0 0 12px; }
.v2cday-safe__h svg { width: 17px; height: 17px; }
.v2cday-safe__row { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; }
.v2cday-safe__row + .v2cday-safe__row { border-top: 1px solid var(--go-line); }
.v2cday-safe__ck { flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: #fff; color: var(--go); margin-top: 1px; }
.v2cday-safe__ck svg { width: 14px; height: 14px; }
.v2cday-safe__row p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2cday-safe__row p strong { color: var(--ink); }

/* ---------- Amber note ---------- */
.v2cday-note { display: flex; gap: 12px; padding: 16px 18px; border: 1px solid var(--amber-line); border-right: 3px solid var(--star); border-radius: 12px; background: var(--amber-tint); }
.v2cday-note__ic { flex-shrink: 0; width: 22px; height: 22px; color: var(--amber-deep); margin-top: 1px; }
.v2cday-note__ic svg { width: 22px; height: 22px; }
.v2cday-note p { margin: 0; color: #6B4415; font-size: 13.5px; line-height: 1.65; }
.v2cday-note p b { color: var(--amber-deep); }

/* ---------- Diagnoser ---------- */
.v2cday-diag__q { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--faint); font-size: 11px; }
.v2cday-diag__q svg { width: 15px; height: 15px; }
.v2cday-diag__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.v2cday-diag__chips .cday-dchip { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1.5px solid var(--line); border-radius: 99px; background: var(--paper); color: var(--slate); font-size: 12.5px; font-weight: 600; cursor: pointer; transition: all .15s; -webkit-tap-highlight-color: transparent; }
.v2cday-diag__chips .cday-dchip svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2cday-diag__chips .cday-dchip:hover { border-color: #BFDBCB; color: var(--ink); }
.v2cday-diag__chips .cday-dchip.active { border-color: var(--go-deep); background: var(--go-deep); color: #fff; }
.v2cday-diag__out { margin-top: 14px; }
.v2cday-diag__empty { display: flex; align-items: center; gap: 8px; padding: 18px; border: 1px dashed var(--line); border-radius: 11px; color: var(--faint); font-size: 13px; background: var(--mist); }
.v2cday-diag__empty svg { width: 16px; height: 16px; }
.cday-dres { border-radius: 12px; overflow: hidden; border: 1px solid var(--line); border-right-width: 4px; animation: v2cdayFade .3s ease both; }
@keyframes v2cdayFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.cday-dres-top { display: flex; align-items: center; gap: 12px; padding: 14px 16px 10px; }
.cday-dres-ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: #fff; }
.cday-dres-ic svg { width: 21px; height: 21px; }
.cday-dres-v { font-weight: 700; font-size: 15.5px; color: var(--ink); display: flex; flex-direction: column; }
.cday-dres-v span { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: .03em; color: var(--faint); margin-top: 2px; }
.cday-dres-body { padding: 0 16px 15px; }
.cday-dres-body p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.cday-dres.keep { background: var(--go-tint); border-color: var(--go-line); border-right-color: var(--go); }
.cday-dres.keep .cday-dres-ic { color: var(--go-deep); }
.cday-dres.zero { background: var(--rose-tint); border-color: var(--rose-line); border-right-color: var(--rose); }
.cday-dres.zero .cday-dres-ic { color: var(--rose); }
.cday-dres.risk { background: var(--amber-tint); border-color: var(--amber-line); border-right-color: var(--star); }
.cday-dres.risk .cday-dres-ic { color: var(--amber-deep); }

/* ---------- Opt-out vs uninstall ---------- */
.v2cday-vs2 { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-vs2__card { position: relative; padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-vs2__card.is-formal { border-top: 3px solid var(--rose); }
.v2cday-vs2__card.is-soft { border-top: 3px solid var(--blue); }
.v2cday-vs2__ic { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; margin-bottom: 12px; }
.v2cday-vs2__ic svg { width: 24px; height: 24px; }
.v2cday-vs2__card.is-formal .v2cday-vs2__ic { background: var(--rose-tint); color: var(--rose); }
.v2cday-vs2__card.is-soft .v2cday-vs2__ic { background: var(--blue-tint); color: var(--blue); }
.v2cday-vs2__tag { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; margin-bottom: 8px; }
.v2cday-vs2__tag svg { width: 14px; height: 14px; }
.v2cday-vs2__card.is-formal .v2cday-vs2__tag { color: var(--rose); }
.v2cday-vs2__card.is-soft .v2cday-vs2__tag { color: var(--blue); }
.v2cday-vs2__card h3 { font-family: var(--font-display); font-size: 16.5px; font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.v2cday-vs2__card p { margin: 0 0 8px; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2cday-vs2__card p:last-child { margin-bottom: 0; }

/* ---------- Interpretation reading cards ---------- */
.v2cday-read { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-read__card { padding: 18px; border: 1px solid var(--indigo-line); border-radius: 13px; background: linear-gradient(-180deg, var(--indigo-tint), var(--paper)); box-shadow: var(--cd-shadow); }
.v2cday-read__label { display: inline-flex; align-items: center; gap: 7px; color: var(--indigo); font-size: 11px; margin: 0 0 8px; }
.v2cday-read__label svg { width: 15px; height: 15px; }
.v2cday-read__card h3 { font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.v2cday-read__card p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }

/* ---------- Converge callout ---------- */
.v2cday-callout { display: flex; gap: 13px; padding: 18px; border: 1px solid var(--go-line); border-radius: 13px; background: var(--go-tint); box-shadow: var(--cd-shadow); }
.v2cday-callout__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: #fff; color: var(--go-deep); }
.v2cday-callout__ic svg { width: 24px; height: 24px; }
.v2cday-callout__t { margin: 0 0 5px; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--ink); }
.v2cday-callout__tx p:last-child { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }

/* ---------- Pool tiers ---------- */
.v2cday-pool { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-pool__card { padding: 16px 18px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-pool__card.is-best { border-color: var(--go); box-shadow: 0 0 0 1px var(--go), var(--cd-shadow); }
.v2cday-pool__lab { margin: 0 0 2px; color: var(--faint); font-size: 10px; }
.v2cday-pool__lab:not(:first-child) { margin-top: 12px; }
.v2cday-pool__size { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 22px; color: var(--ink); }
.v2cday-pool__cushion { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.5; }
.v2cday-pool__risk { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 99px; font-size: 12.5px; font-weight: 650; }
.v2cday-pool__risk svg { width: 15px; height: 15px; }
.v2cday-pool__risk.is-high { background: var(--rose-tint); color: var(--rose); }
.v2cday-pool__risk.is-mod { background: var(--amber-tint); color: var(--amber-deep); }
.v2cday-pool__risk.is-low { background: var(--go-tint); color: var(--go-deep); }
.v2cday-pool__foot { display: flex; gap: 8px; align-items: flex-start; margin: 2px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.5; }
.v2cday-pool__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; }

/* ---------- Google quote ---------- */
.v2gpr-prose .v2cday-quote { margin: 26px 0; padding: 22px 26px 20px; border-radius: 14px; border: 1px solid var(--blue-line); border-right: 4px solid var(--blue); background: linear-gradient(-180deg, var(--blue-tint), var(--paper)); box-shadow: var(--cd-shadow); }
.v2cday-quote__mark { display: block; font-family: var(--font-display); font-weight: 800; font-size: 40px; line-height: 1; color: var(--blue); opacity: .3; margin-bottom: -4px; }
.v2cday-quote blockquote { margin: 0 0 12px; font-family: var(--font-display); font-size: clamp(18px, 4.6vw, 23px); font-weight: 600; line-height: 1.4; color: var(--ink); }
.v2cday-quote figcaption { display: inline-flex; align-items: center; gap: 7px; color: var(--blue); font-size: 11px; }
.v2cday-quote figcaption svg { width: 15px; height: 15px; }

/* ---------- Three-word key grid ---------- */
.v2cday-key3 { border: 1px solid var(--blue-line); border-radius: 14px; background: linear-gradient(-180deg, var(--blue-tint), var(--paper)); padding: 18px; }
.v2cday-key3__h { display: flex; align-items: center; gap: 8px; color: var(--blue); font-size: 11.5px; margin: 0 0 14px; }
.v2cday-key3__h svg { width: 17px; height: 17px; }
.v2cday-key3__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
.v2cday-key3__cell { display: flex; gap: 11px; align-items: center; padding: 12px 14px; border-radius: 11px; background: #fff; border: 1px solid var(--blue-line); }
.v2cday-key3__ic { flex-shrink: 0; width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; background: var(--blue-tint); color: var(--blue); }
.v2cday-key3__ic svg { width: 19px; height: 19px; }
.v2cday-key3__cell p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.5; }
.v2cday-key3__cell p strong { color: var(--ink); }

/* ---------- Feature tiles ---------- */
.v2cday-feats { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-feat { display: flex; gap: 13px; align-items: flex-start; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-feat__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--go-tint); color: var(--go-deep); }
.v2cday-feat__ic svg { width: 24px; height: 24px; }
.v2cday-feat__t { display: block; font-family: var(--font-display); font-size: 15.5px; font-weight: 700; line-height: 1.28; color: var(--ink); margin-bottom: 4px; text-wrap: balance; }
.v2cday-feat__s { display: block; color: var(--slate); font-size: 13px; line-height: 1.55; }

/* ---------- Pricing plaques ---------- */
.v2cday-pricing { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2cday-price { position: relative; text-align: center; padding: 22px 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--cd-shadow); }
.v2cday-price__name { font-family: var(--font-mono); font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin-bottom: 8px; }
.v2cday-price__amt { font-family: var(--font-display); font-size: 40px; font-weight: 800; color: var(--ink); line-height: 1; }
.v2cday-price__amt small { font-size: 20px; font-weight: 700; vertical-align: super; margin-left: 1px; }
.v2cday-price__testers { margin: 8px 0 14px; color: var(--slate); font-size: 13px; line-height: 1.5; }
.v2cday-price__testers b { color: var(--ink); font-weight: 700; }
.v2cday-price .v2cday-price__btn { display: block; padding: 11px; border-radius: 9px; background: var(--ink); color: #fff; font-weight: 650; font-size: 13.5px; text-decoration: none; transition: background .18s; }
.v2cday-price .v2cday-price__btn:hover { background: #1c2732; text-decoration: none; }
.v2cday-price.is-best { border-color: var(--go); box-shadow: 0 0 0 1px var(--go), var(--cd-shadow-lg); }
.v2cday-price.is-best .v2cday-price__btn { background: var(--go); }
.v2cday-price.is-best .v2cday-price__btn:hover { background: var(--go-deep); }
.v2cday-price__tag { position: absolute; top: -11px; right: 50%; transform: translateX(50%); background: var(--go); color: #fff; font-family: var(--font-mono); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 99px; white-space: nowrap; }

/* ---------- Tablet and up (min-width: 640px) ---------- */
@media (min-width: 640px) {
    .v2cday-verdict__strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2cday-streak__row { grid-template-columns: 72px 1fr auto; }
    .v2cday-streak__bar { grid-column: auto; }
    .v2cday-streak__end { grid-column: auto; text-align: left; }
    .v2cday-two { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2cday-math { grid-template-columns: 1fr auto 1fr; }
    .v2cday-scn__row { flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; }
    .v2cday-scn__v { align-self: center; flex-shrink: 0; }
    .v2cday-break { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2cday-vs2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2cday-read { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2cday-pool { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: start; }
    .v2cday-pool__foot { grid-column: 1 / -1; }
    .v2cday-key3__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2cday-key3__cell { flex-direction: column; text-align: center; gap: 8px; }
    .v2cday-feats { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2cday-feat__t { min-height: 2.56em; }
    .v2cday-pricing { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: center; }
    .v2cday-price.is-best { transform: scale(1.04); }
}

/* ---------- Desktop (min-width: 980px) ---------- */
@media (min-width: 980px) {
    .v2cday-feats { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .v2cday-feat { flex-direction: column; gap: 11px; }
    .cday-bstat .n { font-size: 30px; }
}

/* ---------- Micro screens (max-width: 380px) ---------- */
@media (max-width: 380px) {
    .cday-cal { gap: 4px; }
    .cday-cell { border-radius: 7px; }
    .cday-cell .dn { font-size: 9px; }
    .v2cday-build__stats { gap: 6px; }
    .cday-bstat .n { font-size: 22px; }
    .v2cday-diag__chips .cday-dchip { font-size: 12px; padding: 8px 11px; }
}

/* ---------- Reduced motion ---------- */

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .v2 *, .v2 *::before, .v2 *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* ============================================================
   FAQ page: EP-01 always-open featured answers (2026-07-11).
   Same row rhythm as the accordion items; a quiet green dot
   marks the answer as already open.
   ============================================================ */
.v2fqx-open { padding: 15px 2px 2px; }
.v2fqx-q {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.35;
    color: var(--ink);
}
.v2fqx-q::before {
    content: "";
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    transform: translateY(-1px);
}
.v2fqx-a { padding: 0 17px 0 24px; }
@media (max-width: 640px) {
    .v2fqx-open { padding: 14px 0 2px; }
    .v2fqx-q { font-size: 14.5px; }
    .v2fqx-a { padding: 0 17px 0 8px; }
}

/* EP-02 (2026-07-11): how-it-works plain-prose process summary. */
.v2hwx-sum {
    max-width: 720px;
    margin: 26px auto 34px;
    padding: 20px 24px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.16);
    border-radius: 14px;
}
.v2hwx-sum p {
    margin: 0 0 12px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--ink);
}
.v2hwx-sum p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
    .v2hwx-sum { padding: 16px 16px; margin: 20px 0 26px; }
    .v2hwx-sum p { font-size: 14px; }
}

/* ============================================================
   Case-studies hub: EP-05 proof standard + results + patterns
   (2026-07-11). Quiet prose blocks + a plain results table.
   ============================================================ */
.v2csx-prose { max-width: 720px; margin: 0 auto; }
.v2csx-prose p {
    margin: 0 0 14px;
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--ink);
}
.v2csx-gap { margin-top: 56px; }
.v2csx-tablewrap { max-width: 720px; margin: 0 auto; overflow-x: auto; }
.v2csx-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
}
.v2csx-table th,
.v2csx-table td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    text-align: right;
    vertical-align: top;
}
.v2csx-table th { font-weight: 600; color: var(--ink); width: 62%; }
.v2csx-table td { font-weight: 600; color: var(--go-deep); white-space: nowrap; }
.v2csx-patterns {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    max-width: 1040px;
    margin: 0 auto;
}
.v2csx-pattern {
    padding: 20px 20px 22px;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2csx-pattern h3 {
    margin: 0 0 8px;
    font-size: 16px;
    letter-spacing: -0.01em;
}
.v2csx-pattern p {
    margin: 0;
    font-size: 14px;
    line-height: 1.62;
    color: var(--body, #3d4854);
}
@media (max-width: 960px) {
    .v2csx-patterns { grid-template-columns: 1fr; max-width: 720px; }
}
@media (max-width: 640px) {
    .v2csx-gap { margin-top: 40px; }
    .v2csx-table th { width: auto; }
    .v2csx-table td { white-space: normal; }
}

/* =============================================================
   BLOG UPD V2  -  "Does Updating My App Reset the 14-Day Closed Test?"
   Unique internal components for the does-updating-reset post.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motif = TWO LANES - the builds
   you ship pile up in one lane while the tester-driven 14-day
   clock runs in the other, and they never touch. Green is the
   primary accent (the answer is No, it never resets / it keeps
   running); rose marks breaks/resets/below-12, amber marks
   caution + the permission trap, blue the Google wording, indigo
   the community read. Light components only - the two dark
   moments are the shared .v2gpr-qa capsule and the final .v2-cta.
   Widget hooks the interactive JS depends on (.v2upd-cchip.is-active,
   .v2upd-res.is-safe/.is-reset/.is-indirect, .v2upd-day.is-done/.is-broken,
   .v2upd-sim__msg.is-ok/.is-win/.is-warn/.is-bad,
   .v2upd-sim__stat.is-danger) are styled here too.
============================================================= */
.v2upd-verdict,
.v2upd-checker,
.v2upd-trig,
.v2upd-sim,
.v2upd-safe,
.v2upd-steps,
.v2upd-callout,
.v2upd-funnel,
.v2upd-quote,
.v2upd-facts3,
.v2upd-signal,
.v2upd-chain,
.v2upd-note,
.v2upd-auto,
.v2upd-warn,
.v2upd-myths,
.v2upd-tblwrap,
.v2upd-tl,
.v2upd-2026,
.v2upd-feats,
.v2upd-pricing {
    --rose:      #B42318;
    --rose-deep: #912018;
    --rose-tint: #FDF1F0;
    --rose-line: #F3C9C4;
    --amber-deep:#92400E;
    --amber-tint:#FEF6E7;
    --amber-line:#F5DFA8;
    --indigo:    #4F5BD5;
    --indigo-tint:#EEF2FF;
    --indigo-line:#D8DEF0;
    --blue:      #1D4ED8;
    --blue-tint: #EFF6FF;
    --blue-line: #C7DBFF;
    --go-line:   #C9EAD6;
    --ud-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(6,78,59,.16);
    --ud-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(6,78,59,.22);
    margin: 30px 0;
}

/* Hero tweaks (green accent, No verdict) */
.v2upd-eyebrow { color: var(--go-deep); }
.v2upd-eyebrow::before { background: var(--go) !important; }
.v2upd-facts .v2upd-fact--yes b { color: var(--go); }

/* Quick-answer highlight tints (inside dark .v2gpr-qa) */
.v2gpr-qa .upd-qk-drop { color: #FCA5A5; }
.v2gpr-qa .upd-qk-enc { color: #FFD56B; }

/* ---------- Signature verdict panel (two-lane motif) ---------- */
.v2upd-verdict {
    border: 1px solid var(--go-line); border-radius: 18px; overflow: hidden;
    background: radial-gradient(120% 90% at 0 0, var(--go-tint) 0, rgba(232,245,238,0) 55%), var(--paper);
    box-shadow: var(--ud-shadow-lg);
}
.v2upd-verdict__head { padding: 22px 20px 4px; }
.v2upd-verdict__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--go-deep); font-size: 11px; margin: 0 0 14px; }
.v2upd-verdict__tag svg { width: 16px; height: 16px; }
.v2upd-verdict__no { display: flex; align-items: center; gap: 14px; }
.v2upd-verdict__seal { flex-shrink: 0; width: 50px; height: 50px; border-radius: 15px; display: grid; place-items: center; color: #fff; background: linear-gradient(-135deg, #12b866, var(--go-deep)); box-shadow: 0 8px 20px -6px rgba(11,138,71,.5); }
.v2upd-verdict__seal svg { width: 30px; height: 30px; }
.v2upd-verdict__h { font-family: var(--font-display); font-weight: 800; font-size: clamp(24px, 6vw, 32px); line-height: 1.04; color: var(--ink); margin: 0; letter-spacing: -.01em; }
.v2upd-verdict__sub { display: block; margin-top: 5px; color: var(--slate); font-size: 13.5px; font-weight: 600; }

/* two-lane diagram */
.v2upd-lanes { margin: 16px 20px 4px; display: grid; gap: 10px; }
.v2upd-lane { border-radius: 13px; padding: 13px 15px; border: 1px solid var(--line); background: var(--mist); display: grid; grid-template-columns: 1fr; gap: 9px; align-items: center; }
.v2upd-lane.is-clock { border-color: var(--go-line); background: var(--go-tint); }
.v2upd-lane__lab { font-size: 10px; letter-spacing: .05em; color: var(--faint); }
.v2upd-lane.is-clock .v2upd-lane__lab { color: var(--go-deep); }
.v2upd-lane__flow { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.v2upd-ver { font-family: var(--font-mono); font-size: 11.5px; font-style: normal; color: var(--slate); background: var(--paper); border: 1px solid var(--line); border-radius: 7px; padding: 4px 9px; }
.v2upd-arr { width: 14px; height: 14px; color: var(--faint); flex-shrink: 0; }
.v2upd-lane__track { display: flex; gap: 3px; }
.v2upd-lane__track i { flex: 1 1 0; height: 12px; border-radius: 3px; background: rgba(11,138,71,.16); }
.v2upd-lane__track i.on { background: linear-gradient(-180deg, #16a86a, var(--go)); }
.v2upd-lane__note { font-size: 11.5px; color: var(--faint); }
.v2upd-lane__note.is-go { color: var(--go-deep); font-weight: 600; }

.v2upd-verdict__p { margin: 12px 20px 0; color: var(--slate); font-size: 15px; line-height: 1.72; }
.v2upd-verdict__reset { margin: 14px 20px 0; padding: 16px; border-radius: 12px; background: var(--rose-tint); border: 1px solid var(--rose-line); }
.v2upd-verdict__resetlbl { display: inline-flex; align-items: center; gap: 7px; color: var(--rose); font-size: 11px; margin: 0 0 8px; }
.v2upd-verdict__resetlbl svg { width: 15px; height: 15px; }
.v2upd-verdict__resetbig { margin: 0; color: var(--ink); font-size: 16px; font-weight: 700; }
.v2upd-verdict__resetbig b { color: var(--rose-deep); }
.v2upd-verdict__resetsm { margin: 6px 0 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2upd-verdict__strip { margin-top: 16px; display: grid; grid-template-columns: minmax(0,1fr); gap: 1px; background: var(--line); border-top: 1px solid var(--line); }
.v2upd-tile { display: flex; gap: 12px; padding: 16px 20px; background: var(--paper); }
.v2upd-tile__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; }
.v2upd-tile__ic svg { width: 20px; height: 20px; }
.v2upd-tile.is-ok .v2upd-tile__ic { background: var(--go-tint); color: var(--go-deep); }
.v2upd-tile.is-no .v2upd-tile__ic { background: var(--rose-tint); color: var(--rose); }
.v2upd-tile__tx { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2upd-tile__l { font-size: 10.5px; letter-spacing: .05em; }
.v2upd-tile.is-ok .v2upd-tile__l { color: var(--go-deep); }
.v2upd-tile.is-no .v2upd-tile__l { color: var(--rose); }
.v2upd-tile__t { font-weight: 650; color: var(--ink); font-size: 14.5px; }
.v2upd-tile__s { color: var(--faint); font-size: 12.5px; line-height: 1.5; }

/* ---------- Figure (survives the prose reset via scoping) ---------- */
.v2gpr-prose .v2upd-fig { margin: 26px 0; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-fig img { display: block; width: 100%; height: auto; }
.v2upd-fig figcaption { display: flex; gap: 8px; align-items: flex-start; padding: 12px 16px; background: var(--mist); border-top: 1px solid var(--line); color: var(--faint); font-size: 12.5px; line-height: 1.5; }
.v2upd-fig figcaption svg { flex-shrink: 0; width: 16px; height: 16px; margin-top: 1px; color: var(--go); }

/* ---------- Clock Reset Checker (interactive 1) ---------- */
.v2upd-checker { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--paper); box-shadow: var(--ud-shadow-lg); }
.v2upd-checker__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: linear-gradient(-135deg, var(--go-deep), #0f5f3c); color: #fff; }
.v2upd-checker__hi { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,.16); display: grid; place-items: center; }
.v2upd-checker__hi svg { width: 24px; height: 24px; }
.v2upd-checker__htx { display: flex; flex-direction: column; gap: 2px; }
.v2upd-checker__ht { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
.v2upd-checker__hs { font-size: 12.5px; color: rgba(255,255,255,.78); line-height: 1.4; }
.v2upd-checker__body { padding: 18px; }
.v2upd-checker__q { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: var(--faint); font-size: 11px; }
.v2upd-checker__q svg { width: 15px; height: 15px; }
.v2upd-checker__chips { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; }
.v2 .v2upd-cchip { display: flex; align-items: center; gap: 10px; width: 100%; text-align: right; padding: 12px 14px; border: 1.5px solid var(--line); border-radius: 11px; background: var(--paper); color: var(--slate); font-family: inherit; font-size: 13px; font-weight: 600; line-height: 1.3; cursor: pointer; transition: border-color .15s, background .15s, color .15s; -webkit-tap-highlight-color: transparent; }
.v2 .v2upd-cchip svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--faint); transition: color .15s; }
.v2 .v2upd-cchip:hover { border-color: #BFDBCB; background: var(--mist); color: var(--ink); }
.v2 .v2upd-cchip.is-active { border-color: var(--go); background: var(--go-tint); color: var(--go-deep); }
.v2 .v2upd-cchip.is-active svg { color: var(--go); }
.v2upd-checker__out { margin-top: 16px; }
.v2upd-checker__empty { display: flex; align-items: center; gap: 9px; padding: 22px 18px; border: 1px dashed var(--line); border-radius: 12px; color: var(--faint); font-size: 13px; background: var(--mist); justify-content: center; text-align: center; }
.v2upd-checker__empty svg { width: 18px; height: 18px; flex-shrink: 0; }
.v2upd-checker__foot { margin: 14px 0 0; color: var(--faint); font-size: 11.5px; line-height: 1.5; font-style: italic; }
/* checker verdict card (built in JS) */
.v2upd-res { border-radius: 12px; overflow: hidden; border: 1px solid var(--line); border-right-width: 4px; animation: v2updFade .3s ease both; }
@keyframes v2updFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.v2upd-res__top { display: flex; align-items: center; gap: 12px; padding: 14px 16px 10px; }
.v2upd-res__ic { flex-shrink: 0; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #fff; }
.v2upd-res__ic svg { width: 22px; height: 22px; }
.v2upd-res__v { font-weight: 700; font-size: 15.5px; color: var(--ink); display: flex; flex-direction: column; }
.v2upd-res__v span { font-family: var(--font-mono); font-weight: 600; font-size: 11px; letter-spacing: .03em; color: var(--faint); margin-top: 2px; }
.v2upd-res__body { padding: 0 16px 15px; }
.v2upd-res__body p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.v2upd-res.is-safe { background: var(--go-tint); border-color: var(--go-line); border-right-color: var(--go); }
.v2upd-res.is-safe .v2upd-res__ic { color: var(--go-deep); }
.v2upd-res.is-reset { background: var(--rose-tint); border-color: var(--rose-line); border-right-color: var(--rose); }
.v2upd-res.is-reset .v2upd-res__ic { color: var(--rose); }
.v2upd-res.is-indirect { background: var(--amber-tint); border-color: var(--amber-line); border-right-color: var(--star); }
.v2upd-res.is-indirect .v2upd-res__ic { color: var(--amber-deep); }

/* ---------- Two breaker cards ---------- */
.v2upd-trig { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2upd-trig__card { position: relative; overflow: hidden; padding: 18px; border: 1px solid var(--rose-line); border-top: 3px solid var(--rose); border-radius: 13px; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-trig__n { position: absolute; top: 6px; left: 12px; font-family: var(--font-display); font-weight: 800; font-size: 52px; line-height: 1; color: var(--rose-tint); z-index: 0; }
.v2upd-trig__ic { position: relative; z-index: 1; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--rose-tint); color: var(--rose); margin-bottom: 11px; }
.v2upd-trig__ic svg { width: 22px; height: 22px; }
.v2upd-trig__card h3 { position: relative; z-index: 1; font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--ink); margin: 0 0 6px; }
.v2upd-trig__card p { position: relative; z-index: 1; margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.6; }
.v2upd-trig__card p b { color: var(--rose-deep); }
.v2upd-trig__card a { color: var(--rose-deep); font-weight: 700; text-decoration-color: rgba(180,35,24,.32); }

/* ---------- 14-Day Streak Simulator (interactive 2) ---------- */
.v2upd-sim { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--paper); box-shadow: var(--ud-shadow-lg); }
.v2upd-sim__head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: linear-gradient(-135deg, #1b2a3d, #24384f); color: #fff; }
.v2upd-sim__hi { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; background: rgba(255,255,255,.14); display: grid; place-items: center; color: #9fd9bb; }
.v2upd-sim__hi svg { width: 24px; height: 24px; }
.v2upd-sim__htx { display: flex; flex-direction: column; gap: 3px; }
.v2upd-sim__ht { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
.v2upd-sim__hs { font-size: 12px; color: rgba(255,255,255,.72); line-height: 1.45; }
.v2upd-sim__body { padding: 18px; }
.v2upd-sim__stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin-bottom: 14px; }
.v2upd-sim__stat { text-align: center; padding: 12px 6px; border-radius: 12px; background: var(--mist); border: 1px solid var(--line); transition: background .3s, border-color .3s; }
.v2upd-sim__stat .n { display: block; font-family: var(--font-display); font-weight: 800; font-size: 26px; line-height: 1; }
.v2upd-sim__stat .l { display: block; margin-top: 6px; font-size: 9.5px; letter-spacing: .04em; color: var(--faint); line-height: 1.3; }
.v2upd-sim__stat.is-testers .n { color: var(--go-deep); }
.v2upd-sim__stat.is-testers.is-danger { background: var(--rose-tint); border-color: var(--rose-line); }
.v2upd-sim__stat.is-testers.is-danger .n { color: var(--rose); }
.v2upd-sim__stat.is-day .n { color: var(--ink); }
.v2upd-sim__stat.is-builds .n { color: var(--indigo); }
.v2upd-sim__track { display: grid; grid-template-columns: repeat(14, minmax(0,1fr)); gap: 4px; margin-bottom: 12px; }
.v2upd-day { aspect-ratio: 1 / 1; border-radius: 6px; background: var(--mist); border: 1px solid var(--line); display: grid; place-items: center; font-family: var(--font-mono); font-size: 10px; color: var(--faint); transition: background .2s, border-color .2s, color .2s; }
.v2upd-day.is-done { background: linear-gradient(-180deg, #16a86a, var(--go)); border-color: transparent; color: #fff; }
.v2upd-day.is-done svg { width: 11px; height: 11px; }
.v2upd-day.is-broken { background: repeating-linear-gradient(-45deg, var(--rose-tint), var(--rose-tint) 3px, #fff 3px, #fff 6px); border-color: var(--rose-line); color: var(--rose); }
.v2upd-sim__msg { display: flex; gap: 9px; align-items: flex-start; padding: 12px 14px; border-radius: 11px; font-size: 12.5px; line-height: 1.55; border: 1px solid; }
.v2upd-sim__msgic { flex-shrink: 0; margin-top: 1px; }
.v2upd-sim__msgic svg { width: 17px; height: 17px; }
.v2upd-sim__msg.is-ok, .v2upd-sim__msg.is-win { background: var(--go-tint); border-color: var(--go-line); color: #0b5a34; }
.v2upd-sim__msg.is-ok .v2upd-sim__msgic, .v2upd-sim__msg.is-win .v2upd-sim__msgic { color: var(--go); }
.v2upd-sim__msg.is-warn { background: var(--amber-tint); border-color: var(--amber-line); color: #6b4415; }
.v2upd-sim__msg.is-warn .v2upd-sim__msgic { color: var(--amber-deep); }
.v2upd-sim__msg.is-bad { background: var(--rose-tint); border-color: var(--rose-line); color: var(--rose-deep); }
.v2upd-sim__msg.is-bad .v2upd-sim__msgic { color: var(--rose); }
.v2upd-sim__btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.v2 .v2upd-sbtn { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 14px; border-radius: 10px; border: 1px solid transparent; font-family: inherit; font-size: 13px; font-weight: 650; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; -webkit-tap-highlight-color: transparent; }
.v2 .v2upd-sbtn svg { width: 16px; height: 16px; }
.v2 .v2upd-sbtn.is-push { background: linear-gradient(-135deg, #12b866, var(--go-deep)); color: #fff; box-shadow: 0 6px 16px -6px rgba(11,138,71,.5); }
.v2 .v2upd-sbtn.is-lose { background: #fff; border-color: var(--rose-line); color: var(--rose); }
.v2 .v2upd-sbtn.is-reset { background: var(--mist); border-color: var(--line); color: var(--slate); }
.v2 .v2upd-sbtn:hover { transform: translateY(-2px); }
.v2 .v2upd-sbtn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }

/* ---------- Safe list ---------- */
.v2upd-safe { border: 1px solid var(--go-line); border-radius: 13px; background: var(--go-tint); padding: 16px 18px; }
.v2upd-safe__h { display: flex; align-items: center; gap: 8px; color: var(--go-deep); font-size: 11.5px; margin: 0 0 12px; }
.v2upd-safe__h svg { width: 17px; height: 17px; }
.v2upd-safe__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 9px; }
.v2upd-safe__row { display: flex; gap: 10px; align-items: flex-start; }
.v2upd-safe__ck { flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; display: grid; place-items: center; background: #fff; color: var(--go); margin-top: 1px; }
.v2upd-safe__ck svg { width: 13px; height: 13px; }
.v2upd-safe__row p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.5; }

/* ---------- How-to stepper ---------- */
.v2upd-steps { position: relative; display: grid; gap: 22px; }
.v2upd-step { display: grid; grid-template-columns: auto 1fr; gap: 14px; }
.v2upd-step__n { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(-135deg, #12b866, var(--go-deep)); color: #fff; font-family: var(--font-display); font-weight: 800; font-size: 16px; display: grid; place-items: center; box-shadow: 0 5px 14px -6px rgba(11,138,71,.5); }
.v2upd-step__body { min-width: 0; }
.v2upd-step__t { margin: 4px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--ink); display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.v2upd-step__loc { font-size: 10.5px; letter-spacing: .02em; color: var(--go-deep); background: var(--go-tint); border: 1px solid var(--go-line); border-radius: 7px; padding: 3px 9px; text-transform: none; }
.v2upd-step__d { margin: 9px 0 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.v2upd-step__d b { color: var(--ink); }

/* ---------- Green callout ---------- */
.v2upd-callout { display: flex; gap: 13px; padding: 18px; border: 1px solid var(--go-line); border-radius: 13px; background: var(--go-tint); box-shadow: var(--ud-shadow); }
.v2upd-callout__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: #fff; color: var(--go-deep); }
.v2upd-callout__ic svg { width: 24px; height: 24px; }
.v2upd-callout__tx p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.v2upd-callout__tx p strong { color: var(--go-deep); }

/* ---------- Opt-in funnel ---------- */
.v2upd-funnel { display: grid; gap: 10px; }
.v2upd-fstage { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; padding: 15px 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-fstage.is-s2 { border-color: var(--go-line); box-shadow: 0 0 0 1px var(--go-line), var(--ud-shadow); background: linear-gradient(-180deg, var(--go-tint), var(--paper)); }
.v2upd-fstage__ic { flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; }
.v2upd-fstage__ic svg { width: 24px; height: 24px; }
.v2upd-fstage.is-s1 .v2upd-fstage__ic { background: var(--mist); color: var(--faint); }
.v2upd-fstage.is-s2 .v2upd-fstage__ic { background: #fff; color: var(--go-deep); box-shadow: inset 0 0 0 1px var(--go-line); }
.v2upd-fstage.is-s3 .v2upd-fstage__ic { background: var(--indigo-tint); color: var(--indigo); }
.v2upd-fstage__tx h3 { margin: 0 0 3px; font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--ink); }
.v2upd-fstage__tx p { margin: 0; color: var(--slate); font-size: 12.5px; line-height: 1.55; }
.v2upd-fstage__flag { grid-column: 1 / -1; justify-self: start; font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; padding: 4px 10px; border-radius: 7px; }
.v2upd-fstage.is-s1 .v2upd-fstage__flag { background: var(--mist); color: var(--faint); }
.v2upd-fstage.is-s2 .v2upd-fstage__flag { background: var(--go-tint); color: var(--go-deep); }
.v2upd-fstage.is-s3 .v2upd-fstage__flag { background: var(--indigo-tint); color: var(--indigo); }

/* ---------- Google quote (div-based; no blockquote reset issue) ---------- */
.v2upd-quote { padding: 20px 24px 18px; border-radius: 14px; border: 1px solid var(--blue-line); border-right: 4px solid var(--blue); background: linear-gradient(-180deg, var(--blue-tint), var(--paper)); box-shadow: var(--ud-shadow); }
.v2upd-quote__mark { display: block; font-family: var(--font-display); font-weight: 800; font-size: 38px; line-height: .6; color: var(--blue); opacity: .32; }
.v2upd-quote__q { margin: 4px 0 12px; font-family: var(--font-display); font-size: clamp(17px, 4.4vw, 21px); font-weight: 600; line-height: 1.45; color: var(--ink); }
.v2upd-quote__src { display: inline-flex; align-items: center; gap: 7px; color: var(--blue); font-size: 11px; }
.v2upd-quote__src svg { width: 15px; height: 15px; }

/* ---------- Three-facts lock-in box ---------- */
.v2upd-facts3 { border: 1px solid var(--line); border-radius: 14px; background: var(--paper); padding: 18px; box-shadow: var(--ud-shadow); }
.v2upd-facts3__h { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 11.5px; margin: 0 0 14px; }
.v2upd-facts3__h svg { width: 17px; height: 17px; color: var(--go-deep); }
.v2upd-facts3__list { display: grid; gap: 11px; }
.v2upd-facts3__row { display: flex; gap: 11px; align-items: flex-start; font-size: 14px; color: var(--slate); line-height: 1.55; }
.v2upd-facts3__row strong { color: var(--ink); }
.v2upd-pill { flex-shrink: 0; margin-top: 1px; display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: 10px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; padding: 3px 9px; border-radius: 6px; }
.v2upd-pill.is-info { background: var(--indigo-tint); color: var(--indigo); }
.v2upd-pill.is-ok { background: var(--go-tint); color: var(--go-deep); }
.v2upd-pill.is-warn { background: var(--amber-tint); color: var(--amber-deep); }
.v2upd-pill.is-no { background: var(--rose-tint); color: var(--rose); }

/* ---------- Official vs community signal cards ---------- */
.v2upd-signal { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2upd-sig { padding: 18px; border-radius: 14px; border: 1px solid; box-shadow: var(--ud-shadow); }
.v2upd-sig.is-official { background: linear-gradient(-180deg, var(--blue-tint), var(--paper)); border-color: var(--blue-line); }
.v2upd-sig.is-community { background: linear-gradient(-180deg, var(--indigo-tint), var(--paper)); border-color: var(--indigo-line); }
.v2upd-sig__tag { display: inline-flex; align-items: center; gap: 7px; font-size: 10.5px; margin: 0 0 10px; }
.v2upd-sig__tag svg { width: 15px; height: 15px; }
.v2upd-sig.is-official .v2upd-sig__tag { color: var(--blue); }
.v2upd-sig.is-community .v2upd-sig__tag { color: var(--indigo); }
.v2upd-sig h3 { margin: 0 0 8px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); }
.v2upd-sig p { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.v2upd-sig p + p { margin-top: 9px; }
.v2upd-sig p em { color: var(--ink); font-style: italic; }

/* ---------- Reset chain ---------- */
.v2upd-chain { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px 10px; }
.v2upd-chain__node { position: relative; text-align: center; padding: 16px 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--ud-shadow); display: flex; flex-direction: column; align-items: center; }
.v2upd-chain__ic { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; color: #fff; margin-bottom: 9px; }
.v2upd-chain__ic svg { width: 22px; height: 22px; }
.v2upd-chain__node.is-n1 .v2upd-chain__ic { background: linear-gradient(-135deg, #F0A50A, #C77E06); }
.v2upd-chain__node.is-n2 .v2upd-chain__ic { background: linear-gradient(-135deg, #E8863A, #C7601E); }
.v2upd-chain__node.is-n3 .v2upd-chain__ic { background: linear-gradient(-135deg, #D24B3E, var(--rose)); }
.v2upd-chain__node.is-n4 .v2upd-chain__ic { background: linear-gradient(-135deg, var(--rose), var(--rose-deep)); }
.v2upd-chain__t { font-family: var(--font-display); font-weight: 700; font-size: 13.5px; color: var(--ink); margin-bottom: 4px; }
.v2upd-chain__s { font-size: 11.5px; color: var(--faint); line-height: 1.45; }
.v2upd-chain__node:not(:last-child)::after { content: ""; position: absolute; z-index: 2; width: 22px; height: 22px; border-radius: 50%; background-color: var(--paper); border: 1px solid var(--line); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8h8m0 0-3-3m3 3-3 3' stroke='%238A94A0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 14px; right: 50%; bottom: -18px; transform: translateX(50%) rotate(-90deg); }

/* ---------- Amber note ---------- */
.v2upd-note { display: flex; gap: 12px; padding: 16px 18px; border: 1px solid var(--amber-line); border-right: 3px solid var(--star); border-radius: 12px; background: var(--amber-tint); }
.v2upd-note__ic { flex-shrink: 0; width: 24px; height: 24px; color: var(--amber-deep); margin-top: 1px; }
.v2upd-note__ic svg { width: 24px; height: 24px; }
.v2upd-note p { margin: 0; color: #6b4415; font-size: 13.5px; line-height: 1.65; }
.v2upd-note p b { color: var(--amber-deep); }

/* ---------- Auto-update info panel ---------- */
.v2upd-auto { display: grid; grid-template-columns: auto 1fr; gap: 15px; align-items: start; padding: 18px 20px; border: 1px solid var(--indigo-line); border-radius: 14px; background: linear-gradient(-135deg, var(--indigo-tint), var(--paper)); }
.v2upd-auto__ic { flex-shrink: 0; width: 48px; height: 48px; border-radius: 13px; background: #fff; color: var(--indigo); display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--indigo-line); }
.v2upd-auto__ic svg { width: 26px; height: 26px; }
.v2upd-auto__t { margin: 0 0 6px; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--ink); }
.v2upd-auto__tx p:not(.v2upd-auto__t) { margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.65; }
.v2upd-auto__tx p b { color: var(--ink); }

/* ---------- Permission warning box ---------- */
.v2upd-warn { display: grid; grid-template-columns: auto 1fr; gap: 15px; padding: 18px 20px; border: 1px solid var(--amber-line); border-right: 4px solid #E8863A; border-radius: 14px; background: linear-gradient(-135deg, #FFF7ED, var(--amber-tint)); }
.v2upd-warn__ic { flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; background: #fff; color: #C7601E; display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--amber-line); }
.v2upd-warn__ic svg { width: 24px; height: 24px; }
.v2upd-warn__t { margin: 0 0 8px; font-family: var(--font-display); font-weight: 700; font-size: 15px; color: #9a3412; display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.v2upd-warn__tag { font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; background: #FED7AA; color: #9a3412; border-radius: 6px; padding: 3px 9px; }
.v2upd-warn__tx p:not(.v2upd-warn__t) { margin: 0; color: #7c2d12; font-size: 13.5px; line-height: 1.65; }
.v2upd-warn__tx p + p { margin-top: 9px; }
.v2upd-warn__tx p b { color: #9a3412; }
.v2upd-warn code { font-family: var(--font-mono); font-size: 12px; background: #FFEDD5; color: #9a3412; padding: 1px 6px; border-radius: 5px; word-break: break-word; }

/* ---------- Myth cards ---------- */
.v2upd-myths { display: grid; gap: 12px; }
.v2upd-mcard { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 16px 18px; border: 1px solid var(--line); border-right: 3px solid var(--rose); border-radius: 13px; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-mcard__x { flex-shrink: 0; width: 38px; height: 38px; border-radius: 10px; background: var(--rose-tint); color: var(--rose); display: grid; place-items: center; }
.v2upd-mcard__x svg { width: 20px; height: 20px; }
.v2upd-mcard__q { margin: 2px 0 0; font-family: var(--font-display); font-weight: 700; font-size: 14.5px; line-height: 1.4; color: var(--ink); }
.v2upd-mcard__tag { display: inline-block; font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; background: var(--rose-tint); color: var(--rose); border-radius: 5px; padding: 2px 8px; margin-left: 8px; vertical-align: middle; }
.v2upd-mcard__truth { display: flex; gap: 8px; align-items: flex-start; margin-top: 9px; padding: 9px 12px; border-radius: 9px; background: var(--go-tint); border: 1px solid var(--go-line); font-size: 13px; line-height: 1.55; color: #0b5a34; }
.v2upd-mcard__truth b { color: var(--go-deep); }
.v2upd-mcard__ck { flex-shrink: 0; color: var(--go); margin-top: 1px; }
.v2upd-mcard__ck svg { width: 16px; height: 16px; }
.v2upd-mcard__truth a { color: var(--go-deep); font-weight: 700; }

/* ---------- Resets table ---------- */
.v2upd-tblwrap { border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: var(--ud-shadow); }
.v2upd-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.v2upd-tbl thead th { background: var(--ink); color: #cdd6df; text-align: right; padding: 12px 16px; font-size: 10.5px; letter-spacing: .04em; }
.v2upd-tbl thead th:last-child { text-align: left; white-space: nowrap; }
.v2upd-tbl tbody td { padding: 12px 16px; border-top: 1px solid var(--line); color: var(--slate); line-height: 1.45; vertical-align: middle; }
.v2upd-tbl tbody tr:nth-child(even) { background: var(--mist); }
.v2upd-tbl tbody td:last-child { text-align: left; white-space: nowrap; }
.v2upd-v { display: inline-flex; align-items: center; gap: 5px; font-weight: 700; font-size: 12.5px; }
.v2upd-v svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2upd-v.is-no { color: var(--go-deep); }
.v2upd-v.is-yes { color: var(--rose); }
.v2upd-v.is-ind { color: var(--amber-deep); }
.v2upd-tbl__foot { display: flex; gap: 8px; align-items: flex-start; margin: 0; padding: 12px 16px; background: var(--mist); border-top: 1px solid var(--line); color: var(--faint); font-size: 11.5px; line-height: 1.55; }
.v2upd-tbl__foot svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; color: var(--star); }

/* ---------- Era timeline ---------- */
.v2upd-tl { display: grid; gap: 12px; }
.v2upd-tl__row { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; }
.v2upd-tl__dot { flex-shrink: 0; min-width: 52px; padding: 8px 6px; border-radius: 10px; color: #fff; font-size: 10px; text-align: center; line-height: 1.15; display: grid; place-items: center; }
.v2upd-tl__row.is-era1 .v2upd-tl__dot { background: linear-gradient(-135deg, #9CA3AF, #6B7280); }
.v2upd-tl__row.is-era2 .v2upd-tl__dot { background: linear-gradient(-135deg, #F0A50A, #C77E06); }
.v2upd-tl__row.is-era3 .v2upd-tl__dot { background: linear-gradient(-135deg, #12b866, var(--go-deep)); }
.v2upd-tl__body { border: 1px solid var(--line); border-radius: 12px; background: var(--paper); padding: 13px 16px; box-shadow: var(--ud-shadow); }
.v2upd-tl__era { display: block; font-size: 10px; letter-spacing: .03em; color: var(--faint); margin-bottom: 4px; }
.v2upd-tl__t { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--ink); }
.v2upd-tl__num { font-size: 10.5px; letter-spacing: .02em; color: #fff; border-radius: 6px; padding: 3px 9px; }
.v2upd-tl__row.is-era1 .v2upd-tl__num { background: #6B7280; }
.v2upd-tl__row.is-era2 .v2upd-tl__num { background: #C77E06; }
.v2upd-tl__row.is-era3 .v2upd-tl__num { background: var(--go-deep); }
.v2upd-tl__body p { margin: 6px 0 0; color: var(--slate); font-size: 12.5px; line-height: 1.55; }

/* ---------- 2026 deadline cards ---------- */
.v2upd-2026 { border: 1px solid var(--line); border-radius: 16px; background: var(--paper); padding: 18px; box-shadow: var(--ud-shadow); }
.v2upd-2026__h { display: flex; align-items: center; gap: 8px; color: var(--ink); font-size: 11.5px; margin: 0 0 14px; }
.v2upd-2026__h svg { width: 17px; height: 17px; color: var(--go-deep); }
.v2upd-2026__grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; }
.v2upd-2026__card { border-radius: 12px; padding: 14px 16px; border: 1px solid var(--line); background: var(--mist); border-right: 3px solid var(--line); }
.v2upd-2026__card.is-c1 { border-right-color: var(--blue); }
.v2upd-2026__card.is-c2 { border-right-color: var(--indigo); }
.v2upd-2026__card.is-c3 { border-right-color: var(--go); }
.v2upd-2026__d { font-family: var(--font-display); font-weight: 800; font-size: 16px; line-height: 1.1; margin-bottom: 6px; }
.v2upd-2026__card.is-c1 .v2upd-2026__d { color: var(--blue); }
.v2upd-2026__card.is-c2 .v2upd-2026__d { color: var(--indigo); }
.v2upd-2026__card.is-c3 .v2upd-2026__d { color: var(--go-deep); }
.v2upd-2026__lab { color: var(--slate); font-size: 12.5px; line-height: 1.55; }
.v2upd-2026__lab b { color: var(--ink); }

.v2gpr-prose .v2upd-fine { margin: 14px 0 0; color: var(--faint); font-size: 12.5px; line-height: 1.6; font-style: italic; }

/* ---------- Feature tiles ---------- */
.v2upd-feats { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2upd-feat { display: flex; gap: 13px; align-items: flex-start; padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-feat__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--go-tint); color: var(--go-deep); }
.v2upd-feat__ic svg { width: 24px; height: 24px; }
.v2upd-feat__t { display: block; font-family: var(--font-display); font-size: 15px; font-weight: 700; line-height: 1.28; color: var(--ink); margin-bottom: 4px; text-wrap: balance; }
.v2upd-feat__s { display: block; color: var(--slate); font-size: 13px; line-height: 1.55; }

/* ---------- Pricing plaques ---------- */
.v2upd-pricing { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.v2upd-price { position: relative; overflow: hidden; text-align: center; padding: 22px 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); box-shadow: var(--ud-shadow); }
.v2upd-price__bar { position: absolute; top: 0; right: 0; left: 0; height: 4px; background: var(--line); }
.v2upd-price.is-best .v2upd-price__bar { background: var(--go); }
.v2upd-price__name { font-size: 11.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--faint); margin: 6px 0 8px; }
.v2upd-price__amt { font-family: var(--font-display); font-size: 38px; font-weight: 800; color: var(--ink); line-height: 1; }
.v2upd-price__amt small { font-size: 19px; font-weight: 700; vertical-align: super; margin-left: 1px; }
.v2upd-price__testers { margin: 8px 0 14px; color: var(--slate); font-size: 13px; line-height: 1.5; }
.v2upd-price__testers b { color: var(--ink); font-weight: 700; }
.v2upd-price .v2upd-price__btn { display: block; padding: 11px; border-radius: 9px; background: var(--ink); color: #fff; font-weight: 650; font-size: 13.5px; text-decoration: none; transition: background .18s; }
.v2upd-price .v2upd-price__btn:hover { background: #1c2732; text-decoration: none; }
.v2upd-price.is-best { border-color: var(--go); box-shadow: 0 0 0 1px var(--go), var(--ud-shadow-lg); }
.v2upd-price.is-best .v2upd-price__btn { background: var(--go); }
.v2upd-price.is-best .v2upd-price__btn:hover { background: var(--go-deep); }
.v2upd-price__tag { position: absolute; top: -1px; right: 50%; transform: translateX(50%); background: var(--go); color: #fff; font-size: 9.5px; letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 0 0 8px 8px; white-space: nowrap; z-index: 2; }

/* ---------- UPD tablet and up (min-width: 640px) ---------- */
@media (min-width: 640px) {
    .v2upd-verdict__strip { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-lanes { grid-template-columns: 1fr 1fr; }
    .v2upd-trig { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-checker__chips { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-safe__grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-fstage { grid-template-columns: auto 1fr auto; }
    .v2upd-fstage__flag { grid-column: auto; justify-self: end; text-align: center; }
    .v2upd-signal { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-chain { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; }
    .v2upd-chain__node:not(:last-child)::after { right: auto; left: -16px; bottom: auto; top: 50%; transform: translateY(-50%); }
    .v2upd-feats { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .v2upd-2026__grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .v2upd-pricing { grid-template-columns: repeat(3, minmax(0,1fr)); align-items: center; }
    .v2upd-price.is-best { transform: scale(1.04); }
    .v2upd-sim__stat .n { font-size: 28px; }
}

/* ---------- UPD desktop (min-width: 980px) ---------- */
@media (min-width: 980px) {
    .v2upd-feats { grid-template-columns: repeat(4, minmax(0,1fr)); }
    .v2upd-feat { flex-direction: column; gap: 11px; }
    .v2upd-feat__t { min-height: 2.56em; }
}

/* ---------- UPD micro screens (max-width: 380px) ---------- */
@media (max-width: 380px) {
    .v2upd-sim__track { gap: 3px; }
    .v2upd-day { border-radius: 5px; font-size: 9px; }
    .v2upd-sim__stats { gap: 6px; }
    .v2upd-sim__stat .n { font-size: 22px; }
    .v2 .v2upd-sbtn { flex-basis: 100%; }
    .v2upd-lane__flow { gap: 5px; }
    .v2upd-ver { font-size: 10.5px; padding: 3px 7px; }
}


/* =============================================================
   BLOG B12 V2  -  "Google Play 12 Testers: Pass Closed Testing Fast"
   Unique internal components for the flagship 12-testers guide.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motif = BLUEPRINT / SPEC SHEET -
   graph-paper panels, mono index kickers (Why 01, Reason #1,
   Step 01), corner ticks, thin cyan rules, a requirement
   "formula plate" (12 x 14 -> production), a decision spec-matrix
   and rejection "case-file" cards with a rotated REJECTED stamp.
   Cyan is the primary accent, green = pass/go, rose = break/reject,
   amber = caution, violet = the questionnaire, blue = the wording.
   Light components only; the two dark moments are the shared
   .v2gpr-qa Quick Answer capsule and the final .v2-cta.
============================================================= */
.v2b12-brief,
.v2b12-svc,
.v2b12-index,
.v2b12-plate,
.v2b12-spec,
.v2b12-reasons,
.v2b12-meter,
.v2b12-gate,
.v2b12-challenges,
.v2b12-midcta,
.v2b12-provides,
.v2b12-packs,
.v2b12-board,
.v2b12-quote,
.v2b12-steps,
.v2b12-aud,
.v2b12-feats,
.v2b12-trust,
.v2b12-matrixwrap,
.v2b12-note,
.v2b12-nochange,
.v2b12-reject,
.v2b12-protip,
.v2b12-prices,
.v2b12-trustbar,
.v2b12-bottom,
.v2b12-fig {
    --bp-navy:   #1A2332;
    --bp-cyan:   #0E7490;
    --bp-cyan-2: #0891B2;
    --bp-cyan-tint: #ECFEFF;
    --bp-cyan-line: #BFE7EE;
    --bp-rose:   #B42318;
    --bp-rose-tint: #FDF1F0;
    --bp-rose-line: #F3C9C4;
    --bp-amber-deep: #92400E;
    --bp-amber-tint: #FEF6E7;
    --bp-amber-line: #F5DFA8;
    --bp-violet: #6D28D9;
    --bp-violet-tint: #F5F3FF;
    --bp-violet-line: #DDD3F5;
    --bp-blue:   #1D4ED8;
    --bp-blue-tint: #EFF6FF;
    --bp-blue-line: #C7DBFF;
    --bp-line:   #E3E8EF;
    --bp-grid:   rgba(18,33,46,.05);
    --bp-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.18);
    --bp-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(14,116,144,.24);
    margin: 30px 0;
}

/* graph-paper texture reused by the plate + stats board */
.v2b12-plate,
.v2b12-board {
    background-image:
        linear-gradient(var(--bp-grid) 1px, transparent 1px),
        linear-gradient(-90deg, var(--bp-grid) 1px, transparent 1px);
    background-size: 22px 22px;
    background-position: right -1px top -1px;
}

/* ---------- Hero tweaks ---------- */
.v2b12-eyebrow { color: var(--bp-cyan); }
.v2b12-eyebrow::before { background: var(--bp-cyan-2) !important; }
.v2b12-facts .v2gpr-fact b { color: var(--bp-cyan); }

/* Quick-answer link legibility inside the dark capsule */
.v2gpr-qa.v2b12-qa a { color: #7DE3FF; text-decoration: underline; text-underline-offset: 2px; }
.v2gpr-qa.v2b12-qa a:hover { color: #B6EEFF; }

/* Commercial box after Quick Answer: light card, not the dark QA */
.v2b12-svc {
    border: 1px solid var(--bp-line);
    border-radius: 14px;
    background: var(--paper, #fff);
    padding: 16px 18px;
    box-shadow: var(--bp-shadow);
    color: var(--slate);
    font-size: 15px;
    line-height: 1.55;
}
.v2gpr-prose .v2b12-svc p { margin: 0; }

/* ---------- Heading anchor offset ---------- */
.v2b12-h2 { scroll-margin-top: 90px; }

/* ---------- Spec brief (key takeaways) ---------- */
.v2b12-brief {
    border: 1px solid var(--bp-cyan-line); border-right: 3px solid var(--bp-cyan-2);
    border-radius: 14px; background: var(--paper);
    padding: 18px 18px 6px; box-shadow: var(--bp-shadow);
}
.v2b12-brief__tag {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--bp-cyan); font-size: 11px; margin: 0 0 10px;
}
.v2b12-brief__tag svg { width: 16px; height: 16px; }
.v2gpr-prose .v2b12-brief__list { list-style: none; margin: 0 0 14px; padding: 0; }
.v2b12-brief__list li {
    position: relative; padding: 0 26px 12px 0; margin: 0;
    color: var(--slate); font-size: 15px; line-height: 1.55;
}
.v2b12-brief__list li + li { border-top: 1px dashed var(--bp-line); padding-top: 12px; }
.v2b12-brief__list li::before {
    content: ""; position: absolute; right: 4px; top: 6px;
    width: 8px; height: 8px; border-radius: 2px;
    background: var(--bp-cyan-2); transform: rotate(-45deg);
}
.v2b12-brief__list li:first-child::before { top: 6px; }
.v2b12-brief__list strong { color: var(--ink); }

.v2b12-lead-p { font-size: 18px; color: var(--ink); }

/* ---------- In this guide (index card) ---------- */
.v2b12-index {
    border: 1px dashed var(--bp-cyan-line); border-radius: 14px;
    background: var(--bp-cyan-tint); padding: 16px 16px 6px;
}
.v2b12-index__label { color: var(--bp-cyan); font-size: 11px; margin: 0 0 10px; }
.v2b12-index__grid { display: grid; grid-template-columns: 1fr; gap: 2px; }
.v2b12-index__item {
    display: flex; align-items: baseline; gap: 10px;
    padding: 9px 6px; margin: 0; color: var(--slate);
    font-size: 14.5px; line-height: 1.4; border-top: 1px solid rgba(14,116,144,.12);
    text-decoration: none;
}
.v2b12-index__grid > .v2b12-index__item:first-child { border-top: 0; }
.v2b12-index__item .v2-mono { color: var(--bp-cyan-2); font-size: 11px; flex-shrink: 0; }
.v2b12-index__item.is-link { color: var(--bp-cyan); font-weight: 600; }
.v2b12-index__item.is-link:hover { color: var(--bp-navy); }

/* ---------- Requirement formula plate (signature) ---------- */
.v2b12-plate {
    position: relative; border: 1px solid var(--bp-cyan-line);
    border-radius: 18px; padding: 30px 20px 22px;
    box-shadow: var(--bp-shadow-lg); overflow: hidden;
}
.v2b12-plate::before,
.v2b12-board::before {
    content: ""; position: absolute; top: 12px; right: 12px;
    width: 16px; height: 16px; border-top: 2px solid var(--bp-cyan-2);
    border-right: 2px solid var(--bp-cyan-2); opacity: .8;
}
.v2b12-plate::after,
.v2b12-board::after {
    content: ""; position: absolute; bottom: 12px; left: 12px;
    width: 16px; height: 16px; border-bottom: 2px solid var(--bp-cyan-2);
    border-left: 2px solid var(--bp-cyan-2); opacity: .8;
}
.v2b12-plate__tag {
    display: inline-block; color: var(--bp-cyan); font-size: 11px;
    letter-spacing: .12em; text-transform: uppercase; margin: 0 0 16px;
}
.v2b12-plate__formula {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 10px; margin-bottom: 18px;
}
.v2b12-plate__term {
    display: flex; flex-direction: column; align-items: center;
    min-width: 78px; padding: 12px 10px; border-radius: 12px;
    background: var(--paper); border: 1px solid var(--bp-cyan-line);
    box-shadow: var(--bp-shadow);
}
.v2b12-plate__term b {
    font-family: var(--font-display); font-weight: 800;
    font-size: clamp(28px, 8vw, 40px); line-height: 1; color: var(--bp-navy);
}
.v2b12-plate__term i {
    font-style: normal; font-size: 11px; letter-spacing: .04em;
    text-transform: uppercase; color: var(--slate); margin-top: 6px;
}
.v2b12-plate__term.is-out { background: var(--go); border-color: var(--go); }
.v2b12-plate__term.is-out b { color: #fff; }
.v2b12-plate__term.is-out i { color: rgba(255,255,255,.9); }
.v2b12-plate__op {
    font-family: var(--font-display); font-weight: 700;
    font-size: 22px; color: var(--bp-cyan-2);
}
.v2b12-plate__text {
    margin: 0; text-align: center; color: var(--ink);
    font-size: 17px; font-weight: 600; line-height: 1.55;
}
.v2b12-plate__text strong { color: var(--bp-cyan); }

/* ---------- Spec sheet (2x2) ---------- */
.v2b12-spec { display: grid; grid-template-columns: 1fr; gap: 0; border: 1px solid var(--bp-line); border-radius: 14px; overflow: hidden; }
.v2b12-spec__cell {
    display: flex; flex-direction: column; align-items: flex-start;
    padding: 18px; border-top: 1px dashed var(--bp-line);
}
.v2b12-spec__cell:first-child { border-top: 0; }
.v2b12-spec__ic {
    width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center;
    color: var(--bp-cyan); background: var(--bp-cyan-tint); margin-bottom: 12px;
}
.v2b12-spec__ic svg { width: 22px; height: 22px; }
.v2b12-spec__k { font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ink); }
.v2b12-spec__v { font-size: 13px; color: var(--slate); margin-top: 3px; }

/* ---------- Figures ---------- */
.v2gpr-prose .v2b12-fig { margin: 26px 0; }
.v2gpr-prose .v2b12-fig .v2b12-fig__frame {
    border: 1px solid var(--bp-line); border-radius: 14px; overflow: hidden;
    box-shadow: var(--bp-shadow); background: var(--paper);
}
.v2gpr-prose .v2b12-fig.is-win .v2b12-fig__frame { border-color: var(--go); box-shadow: 0 18px 40px -22px rgba(11,138,71,.4); }
.v2gpr-prose .v2b12-fig img { display: block; width: 100%; height: auto; }
.v2gpr-prose .v2b12-fig figcaption {
    margin-top: 12px; text-align: center; font-size: 13px;
    font-style: italic; color: var(--slate); line-height: 1.5;
}
.v2gpr-prose .v2b12-fig.is-win figcaption { color: var(--go-deep); font-style: normal; font-weight: 600; }

/* ---------- Reason dossier rows ---------- */
.v2b12-reasons { display: grid; grid-template-columns: 1fr; gap: 14px; }
.v2b12-reason {
    position: relative; margin: 0; padding: 18px 18px 6px 18px;
    border: 1px solid var(--bp-line); border-radius: 14px; background: var(--paper);
    box-shadow: var(--bp-shadow);
}
.v2b12-reason::before {
    content: ""; position: absolute; right: 0; top: 18px; bottom: 18px;
    width: 3px; border-radius: 3px; background: linear-gradient(var(--bp-cyan-2), var(--go));
}
.v2b12-reason__idx { display: block; color: var(--bp-cyan); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 4px; }
.v2gpr-prose .v2b12-reason__h { font-size: 18px; margin: 0 0 8px; color: var(--ink); }
.v2b12-reason__note { color: var(--slate); font-style: italic; }
.v2b12-catch { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 6px; }
.v2b12-catch span { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--slate); }
.v2b12-catch svg { width: 18px; height: 18px; color: var(--go); flex-shrink: 0; }
.v2b12-pills { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.v2b12-pills span { background: var(--bp-cyan-tint); color: var(--bp-cyan); font-size: 13px; font-weight: 600; padding: 6px 14px; border-radius: 999px; }

/* ---------- Drop meter + opt-in gate ---------- */
.v2b12-meter { border: 1px solid var(--bp-line); border-radius: 14px; background: var(--paper); padding: 16px; box-shadow: var(--bp-shadow); }
.v2b12-meter__row { display: flex; flex-direction: column; gap: 8px; }
.v2b12-meter__lab { color: var(--slate); font-size: 11px; }
.v2b12-meter__dots { display: flex; flex-wrap: wrap; gap: 6px; }
.v2b12-meter__dots i { width: 20px; height: 20px; border-radius: 6px; background: var(--go); box-shadow: inset 0 0 0 1px rgba(11,138,71,.35); }
.v2b12-meter__dots i.is-gone { background: var(--bp-rose-tint); box-shadow: inset 0 0 0 1px var(--bp-rose-line); position: relative; }
.v2b12-meter__dots i.is-gone::after { content: ""; position: absolute; inset: 5px; border-radius: 2px; background: var(--bp-rose); opacity: .35; }
.v2b12-meter__legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 12px; font-size: 13px; }
.v2b12-meter__legend .is-go { color: var(--go-deep); }
.v2b12-meter__legend .is-bad { color: var(--bp-rose); }
.v2b12-meter__legend b { font-weight: 700; }

.v2b12-gate { display: flex; flex-direction: column; align-items: stretch; gap: 8px; text-align: center; }
.v2b12-gate__step { padding: 12px 14px; border-radius: 10px; font-size: 14px; font-weight: 600; }
.v2b12-gate__step.is-weak { background: #F4F6F9; color: var(--slate); border: 1px dashed var(--bp-line); }
.v2b12-gate__step.is-strong { background: var(--go-tint); color: var(--go-deep); border: 1px solid var(--go-line); }
.v2b12-gate__arr { width: 26px; height: 18px; color: var(--bp-cyan-2); align-self: center; transform: rotate(-90deg); }

/* ---------- Challenge cross-cards ---------- */
.v2b12-challenges { border: 1px solid var(--bp-rose-line); border-radius: 16px; background: var(--bp-rose-tint); padding: 18px; }
.v2b12-challenges__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--bp-rose); font-size: 12px; font-weight: 700; margin: 0 0 14px; text-transform: none; letter-spacing: 0; }
.v2b12-challenges__tag svg { width: 18px; height: 18px; }
.v2b12-challenges__grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.v2b12-cross { display: flex; gap: 12px; background: var(--paper); border: 1px solid var(--bp-rose-line); border-radius: 12px; padding: 14px; }
.v2b12-cross__x { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--bp-rose); }
.v2b12-cross__x svg { width: 16px; height: 16px; }
.v2b12-cross strong { display: block; color: var(--ink); font-size: 15px; margin-bottom: 3px; }
.v2b12-cross span { display: block; color: var(--slate); font-size: 13.5px; line-height: 1.5; }

/* ---------- Mid-article CTA ---------- */
.v2b12-midcta {
    border: 1px solid var(--bp-cyan-line); border-radius: 16px;
    background: radial-gradient(130% 100% at 0 0, var(--bp-cyan-tint) 0, rgba(236,254,255,0) 60%), var(--paper);
    padding: 22px 20px; text-align: center; box-shadow: var(--bp-shadow);
}
.v2b12-midcta__h { margin: 0 0 8px; color: var(--ink); font-size: 19px; font-weight: 700; }
.v2b12-midcta__p { margin: 0 0 16px; color: var(--slate); font-size: 15px; }
.v2b12-midcta__p strong { color: var(--bp-cyan); }
.v2b12-midcta__actions { display: flex; flex-direction: column; gap: 10px; }

/* ---------- Provides / feats checklists ---------- */
.v2b12-provides,
.v2b12-feats { display: grid; grid-template-columns: 1fr; gap: 8px; }
.v2b12-provides span,
.v2b12-feats span {
    display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px;
    background: var(--paper); border: 1px solid var(--bp-line); border-radius: 10px;
    font-size: 14.5px; color: var(--ink); line-height: 1.45;
}
.v2b12-provides svg,
.v2b12-feats svg { width: 18px; height: 18px; color: var(--go); flex-shrink: 0; margin-top: 1px; }

/* ---------- Package plates ---------- */
.v2b12-packs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.v2b12-pack { text-align: center; padding: 16px 8px; border: 1px solid var(--bp-line); border-radius: 12px; background: var(--paper); }
.v2b12-pack.is-mid { border-color: var(--bp-cyan-line); background: var(--bp-cyan-tint); }
.v2b12-pack__n { font-family: var(--font-display); font-weight: 800; font-size: 30px; color: var(--bp-navy); display: block; line-height: 1; }
.v2b12-pack__t { display: block; font-size: 10px; color: var(--bp-cyan); margin-top: 4px; }
.v2b12-pack__tier { display: block; font-size: 12px; color: var(--slate); margin-top: 6px; }

/* ---------- Stats board (light) ---------- */
.v2b12-board { position: relative; border: 1px solid var(--bp-cyan-line); border-radius: 18px; padding: 24px 18px; box-shadow: var(--bp-shadow-lg); }
.v2b12-board__tag { text-align: center; color: var(--bp-cyan); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; margin: 0 0 18px; }
.v2b12-board__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 10px; }
.v2b12-board__stat { text-align: center; }
.v2b12-board__stat b { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(20px, 6vw, 30px); color: var(--bp-navy); line-height: 1; }
.v2b12-board__stat.is-lead b { color: var(--bp-cyan); }
.v2b12-board__stat span { display: block; font-size: 11px; color: var(--slate); margin-top: 6px; }

/* ---------- Pull quote ---------- */
.v2b12-quote { position: relative; border-right: 3px solid var(--bp-cyan-2); background: #F7FAFC; border-radius: 14px 0 0 14px; padding: 18px 46px 18px 20px; }
.v2b12-quote__mark { position: absolute; right: 14px; top: 6px; font-family: var(--font-display); font-size: 42px; line-height: 1; color: var(--bp-cyan-line); }
.v2b12-quote__t { margin: 0; font-size: 18px; font-style: italic; color: var(--ink); line-height: 1.5; }
.v2b12-quote__by { display: block; margin-top: 8px; color: var(--slate); font-size: 13px; }

/* ---------- Blueprint setup rail ---------- */
.v2b12-steps { display: grid; grid-template-columns: 1fr; gap: 0; }
.v2b12-step { position: relative; display: flex; gap: 14px; padding-bottom: 16px; }
.v2b12-step::before { content: ""; position: absolute; right: 15px; top: 34px; bottom: -2px; width: 2px; background: repeating-linear-gradient(var(--bp-cyan-line) 0 5px, transparent 5px 10px); }
.v2b12-step:last-child::before { display: none; }
.v2b12-step__node { flex-shrink: 0; width: 32px; height: 32px; border-radius: 9px; display: grid; place-items: center; background: var(--bp-cyan-tint); color: var(--bp-cyan); font-size: 12px; font-weight: 700; border: 1px solid var(--bp-cyan-line); z-index: 1; }
.v2b12-step.is-done .v2b12-step__node { background: var(--go); color: #fff; border-color: var(--go); }
.v2b12-step__node svg { width: 18px; height: 18px; }
.v2b12-step__card { flex: 1; background: var(--paper); border: 1px solid var(--bp-line); border-radius: 12px; padding: 14px 16px; box-shadow: var(--bp-shadow); }
.v2b12-step.is-done .v2b12-step__card { border-color: var(--go-line); background: var(--go-tint); }
.v2b12-step__badge { display: inline-block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--bp-cyan); margin-bottom: 6px; }
.v2b12-step__badge.is-go { color: var(--go-deep); }
.v2b12-step__h { display: block; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); margin-bottom: 4px; }
.v2b12-step__card p { color: var(--slate); font-size: 14px; }

/* ---------- Audience chips ---------- */
.v2b12-aud { display: flex; flex-wrap: wrap; gap: 8px; }
.v2b12-aud span { font-family: var(--font-mono, ui-monospace, monospace); font-size: 12.5px; color: var(--bp-navy); background: var(--paper); border: 1px solid var(--bp-cyan-line); border-radius: 8px; padding: 7px 12px; }
.v2b12-aud span::before { content: "// "; color: var(--bp-cyan-2); }

/* ---------- Trust band ---------- */
.v2b12-trust { display: flex; align-items: center; gap: 14px; border: 1px solid var(--go-line); background: var(--go-tint); border-radius: 14px; padding: 16px 18px; }
.v2b12-trust__ic { flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; color: #fff; background: linear-gradient(-135deg, #12b866, var(--go-deep)); }
.v2b12-trust__ic svg { width: 24px; height: 24px; }
.v2b12-trust strong { display: block; color: var(--ink); font-size: 15px; margin-bottom: 2px; }
.v2b12-trust span { display: block; color: var(--slate); font-size: 13.5px; line-height: 1.45; }

/* ---------- Decision spec-matrix ---------- */
.v2b12-matrixwrap { overflow-x: auto; border: 1px solid var(--bp-line); border-radius: 14px; box-shadow: var(--bp-shadow); -webkit-overflow-scrolling: touch; }
.v2b12-matrix { width: 100%; min-width: 580px; border-collapse: separate; border-spacing: 0; font-size: 13.5px; background: var(--paper); }
.v2b12-matrix th,
.v2b12-matrix td { padding: 12px 14px; text-align: center; border-bottom: 1px dashed var(--bp-line); }
.v2b12-matrix thead th { background: var(--bp-navy); border-bottom: 0; padding-top: 14px; padding-bottom: 14px; }
.v2b12-matrix thead th .v2-mono { font-size: 11px; color: rgba(255,255,255,.85); }
.v2b12-matrix thead th.is-starter .v2-mono { color: #7DE3FF; }
.v2b12-matrix thead th.is-pro .v2-mono { color: #FFD56B; }
.v2b12-matrix thead th.is-ent .v2-mono { color: #7BE8AF; }
.v2b12-matrix tbody th[scope="row"] { text-align: right; font-weight: 600; color: var(--ink); white-space: nowrap; }
.v2b12-matrix tr > *:first-child { position: sticky; right: 0; background: var(--paper); z-index: 1; }
.v2b12-matrix thead tr > *:first-child { background: var(--bp-navy); z-index: 2; }
.v2b12-matrix tbody tr:last-child th,
.v2b12-matrix tbody tr:last-child td { border-bottom: 0; }
.v2b12-matrix td.is-bad { color: var(--bp-rose); font-weight: 600; }
.v2b12-matrix td.is-go { color: var(--go-deep); font-weight: 600; }
.v2b12-matrix td.is-muted { color: var(--slate); }
.v2b12-matrix td b { color: var(--ink); }
.v2b12-yes { width: 18px; height: 18px; color: var(--go); vertical-align: -3px; }
.v2b12-no { width: 18px; height: 18px; color: var(--bp-rose); vertical-align: -3px; }

/* ---------- 2026 notes ---------- */
.v2b12-note { border: 1px solid var(--bp-line); border-right: 3px solid var(--bp-cyan-2); border-radius: 14px; background: var(--paper); padding: 18px; box-shadow: var(--bp-shadow); }
.v2b12-note__idx { display: block; color: var(--bp-cyan); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.v2gpr-prose .v2b12-note__h { font-size: 18px; margin: 0 0 10px; color: var(--ink); }
.v2b12-note__key { background: var(--bp-blue-tint); border: 1px solid var(--bp-blue-line); border-radius: 10px; padding: 14px 16px; margin-top: 6px; }
.v2b12-note__key p { margin: 0; color: var(--ink); font-size: 14.5px; line-height: 1.6; }
.v2b12-nochange { display: flex; gap: 14px; border: 1px solid var(--go-line); background: var(--go-tint); border-radius: 14px; padding: 18px; }
.v2b12-nochange__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: #fff; background: var(--go); }
.v2b12-nochange__ic svg { width: 20px; height: 20px; }
.v2b12-nochange strong { display: block; color: var(--ink); margin-bottom: 5px; }
.v2b12-nochange p { margin: 0; color: var(--slate); font-size: 14.5px; line-height: 1.6; }

/* ---------- Rejection case-file cards ---------- */
.v2b12-reject { position: relative; border: 1px solid var(--bp-line); border-radius: 16px; background: var(--paper); padding: 20px 18px; box-shadow: var(--bp-shadow-lg); overflow: hidden; }
.v2b12-reject::before { content: ""; position: absolute; top: 0; right: 0; width: 4px; height: 100%; background: var(--bp-rose); }
.v2b12-reject__stamp {
    position: absolute; top: 16px; left: -6px; transform: rotate(-8deg);
    font-family: var(--font-display); font-weight: 800; letter-spacing: .06em;
    text-transform: uppercase; font-size: 13px; color: var(--bp-rose);
    border: 2px solid var(--bp-rose); border-radius: 6px; padding: 3px 10px;
    opacity: .28; pointer-events: none;
}
.v2b12-reject__head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.v2b12-reject__idx { color: var(--bp-rose); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.v2b12-reject__sev { font-size: 12px; font-weight: 700; }
.v2b12-reject__sev.is-red { color: var(--bp-rose); }
.v2b12-reject__sev.is-amber { color: var(--bp-amber-deep); }
.v2b12-reject__sev.is-violet { color: var(--bp-violet); }
.v2gpr-prose .v2b12-reject__h { font-size: 19px; margin: 0 0 10px; color: var(--ink); }
.v2b12-fix,
.v2b12-no-box,
.v2b12-tmpl { border-radius: 10px; padding: 14px 16px; margin-top: 14px; }
.v2b12-fix { background: var(--go-tint); border: 1px solid var(--go-line); }
.v2b12-no-box { background: var(--bp-rose-tint); border: 1px solid var(--bp-rose-line); }
.v2b12-tmpl { background: var(--bp-violet-tint); border: 1px solid var(--bp-violet-line); }
.v2b12-fix__lab,
.v2b12-no-box__lab,
.v2b12-tmpl__lab { display: flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; margin: 0 0 8px; }
.v2b12-fix__lab { color: var(--go-deep); }
.v2b12-no-box__lab { color: var(--bp-rose); }
.v2b12-tmpl__lab { color: var(--bp-violet); }
.v2b12-fix__lab svg,
.v2b12-no-box__lab svg,
.v2b12-tmpl__lab svg { width: 18px; height: 18px; flex-shrink: 0; }
.v2b12-fix p,
.v2b12-tmpl p { margin: 0; color: var(--slate); font-size: 14px; line-height: 1.55; }
.v2gpr-prose .v2b12-no-box ul { list-style: none; margin: 0; padding: 0; }
.v2b12-no-box li { position: relative; padding: 0 18px 6px 0; margin: 0; color: var(--slate); font-size: 14px; line-height: 1.5; }
.v2b12-no-box li::before { content: ""; position: absolute; right: 2px; top: 8px; width: 6px; height: 6px; border-radius: 50%; background: var(--bp-rose); }
.v2gpr-prose .v2b12-tmpl__btn {
    display: inline-flex; align-items: center; gap: 8px; margin-top: 12px;
    background: var(--bp-violet); color: #fff; font-weight: 600; font-size: 14px;
    padding: 11px 18px; border-radius: 9px; text-decoration: none;
}
.v2gpr-prose .v2b12-tmpl__btn:hover { background: #5b21b6; }
.v2b12-tmpl__btn .v2-ic { width: 18px; height: 18px; }

/* ---------- Pro tip ---------- */
.v2b12-protip { display: flex; gap: 14px; border: 1px solid var(--bp-amber-line); background: var(--bp-amber-tint); border-radius: 14px; padding: 18px; }
.v2b12-protip__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; color: var(--bp-amber-deep); background: #fff; border: 1px solid var(--bp-amber-line); }
.v2b12-protip__ic svg { width: 20px; height: 20px; }
.v2b12-protip strong { display: block; color: var(--ink); margin-bottom: 5px; }
.v2b12-protip p { margin: 0; color: var(--amber-body, #7c5310); font-size: 14.5px; line-height: 1.6; }

/* ---------- Pricing plates ---------- */
.v2b12-prices { display: grid; grid-template-columns: 1fr; gap: 14px; }
.v2b12-price { position: relative; border: 1px solid var(--bp-line); border-radius: 16px; background: var(--paper); padding: 24px 20px; text-align: center; box-shadow: var(--bp-shadow); }
.v2b12-price.is-best { border: 2px solid var(--go); box-shadow: var(--bp-shadow-lg); }
.v2b12-price__flag { position: absolute; top: -11px; right: 50%; transform: translateX(50%); background: var(--go); color: #fff; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; padding: 4px 14px; border-radius: 999px; }
.v2b12-price__tier { display: block; color: var(--bp-cyan); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.v2b12-price__amt { display: block; font-family: var(--font-display); font-weight: 800; font-size: 40px; color: var(--bp-navy); line-height: 1; margin: 10px 0 4px; }
.v2b12-price__testers { display: block; color: var(--bp-cyan-2); font-weight: 600; font-size: 14px; margin-bottom: 16px; }
.v2gpr-prose .v2b12-price__list { list-style: none; margin: 0 0 20px; padding: 0; text-align: right; }
.v2b12-price__list li { position: relative; padding: 0 26px 9px 0; margin: 0; color: var(--slate); font-size: 14px; line-height: 1.45; }
.v2b12-price__list li::before { content: ""; position: absolute; right: 4px; top: 6px; width: 12px; height: 7px; border-right: 2px solid var(--go); border-bottom: 2px solid var(--go); transform: rotate(45deg); }
.v2b12-price .v2b12-price__btn { display: block; background: #EEF2F6; color: var(--bp-navy); padding: 12px; border-radius: 9px; text-decoration: none; font-weight: 700; font-size: 15px; }
.v2b12-price .v2b12-price__btn:hover { background: #E1E7ED; }
.v2b12-price .v2b12-price__btn.is-best { background: linear-gradient(-135deg, #12b866, var(--go-deep)); color: #fff; }
.v2b12-price .v2b12-price__btn.is-best:hover { filter: brightness(1.05); }

/* ---------- Trust bar ---------- */
.v2b12-trustbar { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; }
.v2b12-trustbar span { display: inline-flex; align-items: center; gap: 8px; color: var(--slate); font-size: 14px; }
.v2b12-trustbar svg { width: 20px; height: 20px; color: var(--bp-cyan); flex-shrink: 0; }

/* ---------- Bottom line capsule ---------- */
.v2b12-bottom { border: 1px solid var(--go-line); border-right: 3px solid var(--go); border-radius: 16px; background: radial-gradient(120% 90% at 0 0, var(--go-tint) 0, rgba(232,245,238,0) 55%), var(--paper); padding: 22px 20px; box-shadow: var(--bp-shadow); }
.v2b12-bottom__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--go-deep); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 12px; }
.v2b12-bottom__tag svg { width: 18px; height: 18px; }
.v2b12-bottom__lead { margin: 0 0 12px; color: var(--ink); font-size: 17px; font-weight: 600; line-height: 1.6; }
.v2b12-bottom__p { margin: 0; color: var(--slate); font-size: 15px; line-height: 1.65; }

/* =========================================================
   TABLET  ( >= 640px )
========================================================= */
@media (min-width: 640px) {
    .v2b12-index__grid { grid-template-columns: 1fr 1fr; }
    .v2b12-index__item { border-top: 1px solid rgba(14,116,144,.12); }
    .v2b12-index__grid > .v2b12-index__item:nth-child(2) { border-top: 0; }

    .v2b12-spec { grid-template-columns: 1fr 1fr; }
    .v2b12-spec__cell { border-top: 0; }
    .v2b12-spec__cell:nth-child(n+3) { border-top: 1px dashed var(--bp-line); }
    .v2b12-spec__cell:nth-child(even) { border-right: 1px dashed var(--bp-line); }

    .v2b12-catch { grid-template-columns: 1fr 1fr; }
    .v2b12-challenges__grid { grid-template-columns: 1fr 1fr; }
    .v2b12-provides,
    .v2b12-feats { grid-template-columns: 1fr 1fr; }

    .v2b12-midcta { padding: 26px 28px; }
    .v2b12-midcta__actions { flex-direction: row; justify-content: center; }

    .v2b12-gate { flex-direction: row; align-items: center; justify-content: center; }
    .v2b12-gate__step { flex: 0 1 auto; }
    .v2b12-gate__arr { transform: rotate(0deg); }

    .v2b12-plate { padding: 34px 28px 26px; }
    .v2b12-plate__term { min-width: 96px; }

    .v2b12-trustbar { flex-direction: row; justify-content: center; gap: 28px; }
}

/* =========================================================
   DESKTOP  ( >= 980px )
========================================================= */
@media (min-width: 980px) {
    .v2b12-prices { grid-template-columns: repeat(3, 1fr); align-items: start; }
    .v2b12-price.is-best { transform: translateY(-8px); }
    .v2b12-board__grid { gap: 22px; }
}

/* =========================================================
   SMALL PHONES  ( <= 380px )
========================================================= */
@media (max-width: 380px) {
    .v2b12-plate__formula { gap: 6px; }
    .v2b12-plate__term { min-width: 66px; padding: 10px 6px; }
    .v2b12-plate__op { font-size: 18px; }
    .v2b12-packs { gap: 6px; }
    .v2b12-pack__n { font-size: 26px; }
    .v2b12-board__grid { gap: 12px 6px; }
    .v2b12-meter__dots i { width: 17px; height: 17px; }
    .v2b12-reject__stamp { font-size: 11px; }
}

/* =============================================================
   BLOG PAQ V2  -  "Production Access Questionnaire Answers"
   REBUILT 2026-09-11 with the post's editorial rewrite.

   Motif: THE DRAFTING DESK. The page is a workbook you fill in
   from your own test record, so each question renders as a FIELD
   SHEET - a ruled gutter carrying the field number, the question,
   what the field needs, then a worked draft on a lined panel with
   every invented fact marked as a fill-in SLOT, a measured
   character count and a "copy as template" control.

   What changed from the previous block, and why (the audit):
     * the green MODEL ANSWER plate and the red AVOID strip are
       GONE. Together they said "this is correct, submit it" while
       the prose said "personalize everything" - the contradiction
       the audit named Critical. A draft is now paper-coloured and
       clearly provisional, and the weak version is a neutral fold,
       not a red alarm.
     * there is NO "recommended" state on the dropdown component.
       The old .v2paq-choice__rec pill lit one option green on both
       dropdowns; neither recommendation was evidenced.
     * red is not used anywhere in this block. The only accents are
       the site green (verified / released / go) and a scoped amber
       for fill-in slots and conditional fields.

   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Light components only; the page's two dark
   moments stay the shared .v2gpr-qa Quick Answer capsule and the
   final .v2-cta. Prefix: v2paq-.
============================================================= */
.v2paq-hero,
.v2paq-article {
    --paq-rule:      #DDE4EA;   /* form rules and sheet borders  */
    --paq-sheet:     #FBFCFD;   /* draft paper                    */
    --paq-gutter:    #F2F5F7;   /* the ruled field gutter         */
    --paq-slot:      #FDF3D9;   /* fill-in slot fill              */
    --paq-slot-line: #E3C173;   /* fill-in slot underline         */
    --paq-slot-ink:  #6B4E05;   /* fill-in slot text              */
    --paq-amber:     #8A6100;   /* conditional / only-if          */
    --paq-amber-tint:#FFF8E8;
    --paq-lift:      0 1px 2px rgba(10, 16, 23, .04), 0 14px 32px -20px rgba(10, 16, 23, .18);
}

/* ---------- shared headings + hero bits ---------- */
.v2 .v2paq-eyebrow { display: inline-flex; align-items: center; gap: 7px; }
.v2paq-eyebrow svg { width: 14px; height: 14px; }
.v2paq-cover figcaption { text-align: center; }
.v2paq-h2 { scroll-margin-top: calc(var(--nav-h) + 24px); }
.v2paq-qa .v2gpr-qa__tag svg { width: 15px; height: 15px; }
.v2gpr-prose > .v2paq-lead-p { font-size: 17px; color: var(--ink); font-weight: 500; line-height: 1.7; }

/* ---------- account-scope strip (under the Quick Answer) ---------- */
.v2paq-scope {
    margin: 20px 0 26px;
    padding: 18px 18px 16px;
    border: 1px solid var(--paq-rule);
    border-right: 3px solid var(--go);
    border-radius: var(--radius) 0 0 var(--radius);
    background: var(--paper);
}
.v2paq-scope__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    color: var(--go-deep);
    margin-bottom: 8px;
}
.v2paq-scope__tag svg { width: 15px; height: 15px; flex: 0 0 auto; }
.v2paq-scope__text { font-size: 15px; line-height: 1.7; color: var(--slate); }
.v2paq-scope__text strong { color: var(--ink); font-weight: 650; }
.v2paq-scope__text a,
.v2paq-scope__more a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.v2paq-scope__more { margin-top: 9px; font-size: 13.5px; color: var(--faint); }

/* ---------- contents index ---------- */
.v2paq-toc {
    margin: 26px 0 30px;
    padding: 18px 16px 14px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--mist);
}
.v2paq-toc__label { display: flex; align-items: center; gap: 7px; color: var(--slate); margin-bottom: 12px; }
.v2paq-toc__label svg { width: 15px; height: 15px; }
.v2paq-toc__grid { display: grid; gap: 2px; }
.v2paq-toc__item {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 9px;
    color: var(--ink);
    font-size: 15px;
    transition: background .15s ease, color .15s ease;
}
.v2paq-toc__item:hover { background: var(--paper); color: var(--go-deep); }
.v2paq-toc__n { color: var(--faint); font-size: 10.5px; flex: 0 0 auto; }
.v2paq-toc__item:hover .v2paq-toc__n { color: var(--go); }
.v2paq-toc__t { font-weight: 500; }

/* ---------- the three form sections ---------- */
.v2paq-map { display: grid; gap: 10px; margin: 24px 0 28px; }
.v2paq-map__panel {
    position: relative;
    padding: 26px 16px 16px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
}
.v2paq-map__tab {
    position: absolute;
    top: 0;
    right: 16px;
    transform: translateY(-50%);
    padding: 4px 9px;
    border: 1px solid var(--paq-rule);
    border-radius: 999px;
    background: var(--mist);
    color: var(--slate);
    font-size: 9.5px;
}
.v2paq-map__k { display: block; font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 5px; }
.v2paq-map__d { display: block; font-size: 14px; line-height: 1.65; color: var(--slate); }

/* ---------- Console capture ---------- */
.v2paq-shot figcaption strong { color: var(--ink); font-weight: 650; }

/* ---------- "what Google publishes" source card ---------- */
.v2paq-src {
    margin: 26px 0;
    padding: 18px 16px 14px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--mist);
}
.v2paq-src__tag { display: flex; align-items: center; gap: 7px; color: var(--slate); margin-bottom: 12px; }
.v2paq-src__tag svg { width: 15px; height: 15px; }
.v2paq-src__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.v2paq-src__list li {
    position: relative;
    padding-right: 20px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2paq-src__list li::before {
    content: "";
    position: absolute;
    right: 4px;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--go);
}
.v2paq-src__list strong { color: var(--ink); font-weight: 650; }
.v2paq-src__from { margin-top: 13px; padding-top: 11px; border-top: 1px dashed var(--paq-rule); font-size: 12.5px; color: var(--faint); }
.v2paq-src__from a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* ---------- crash-data caveat (rides the shared .v2gpr-warn grid, so it
   keeps an icon span as its FIRST child; a bare <p> would land in the
   40px column and render one word per line) ---------- */
.v2paq-warn__label { margin-bottom: 5px; color: var(--slate); }

/* ---------- scoped caveats (question count / answer length) ---------- */
.v2paq-caveats { display: grid; gap: 12px; margin: 24px 0 30px; }
.v2paq-caveat {
    padding: 15px 16px;
    border: 1px dashed var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
}
.v2paq-caveat__k { display: block; font-size: 14.5px; font-weight: 700; color: var(--ink); margin-bottom: 6px; }
.v2paq-caveat__p { font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2paq-caveat__p strong { color: var(--ink); font-weight: 650; }

/* ---------- the evidence ledger ---------- */
.v2paq-ledger { display: grid; gap: 12px; margin: 24px 0 30px; }
.v2paq-ledger__row {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 18px 16px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
    box-shadow: var(--paq-lift);
}
.v2paq-ledger__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-size: 11px;
    letter-spacing: .04em;
}
.v2paq-ledger__k { display: block; font-size: 16.5px; font-weight: 700; color: var(--ink); }
.v2paq-ledger__p { margin-top: 5px; font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2paq-ledger__note {
    margin-top: 12px;
    padding: 11px 13px;
    border-radius: 10px;
    background: var(--mist);
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2paq-ledger__note strong { color: var(--ink); font-weight: 650; }
.v2paq-ledger__note a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

.v2paq-checks { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.v2paq-checks li {
    position: relative;
    padding-right: 24px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2paq-checks li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 5px;
    width: 14px;
    height: 9px;
    border-right: 2px solid var(--go);
    border-bottom: 2px solid var(--go);
    transform: rotate(45deg);
    border-radius: 1px;
}
.v2paq-checks strong { color: var(--ink); font-weight: 650; }

/* ---------- finding -> release -> verification record ---------- */
.v2paq-tablewrap { margin: 20px 0 28px; }
.v2paq-record {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    overflow: hidden;
    background: var(--paper);
}
.v2paq-record thead { display: none; }
.v2paq-record tbody { display: grid; gap: 10px; padding: 12px; }
.v2paq-record tr {
    display: grid;
    gap: 0;
    border: 1px solid var(--paq-rule);
    border-radius: 11px;
    overflow: hidden;
    background: var(--paq-sheet);
}
.v2paq-record td {
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    border-bottom: 1px solid var(--paq-rule);
}
.v2paq-record td:last-child { border-bottom: 0; }
.v2paq-record td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2paq-record td:first-child { color: var(--ink); font-weight: 500; }
.v2paq-record__ok { background: var(--go-tint); color: var(--go-deep) !important; }
.v2paq-record__ok::before { color: var(--go); }
.v2paq-record__open { background: var(--paq-amber-tint); color: var(--paq-amber) !important; }
.v2paq-record__open::before { color: var(--paq-amber); }

/* ---------- the one personalization rule ---------- */
.v2paq-rule {
    margin: 22px 0 18px;
    padding: 20px 18px;
    border: 2px solid var(--ink);
    border-radius: var(--radius);
    background: var(--paper);
}
.v2paq-rule__lead { font-size: 17px; line-height: 1.65; color: var(--ink); font-weight: 500; }
.v2paq-rule__lead strong { font-weight: 750; }
.v2paq-rule__p { margin-top: 12px; font-size: 15px; line-height: 1.75; color: var(--slate); }

/* ---------- how to read a draft (slot legend) ---------- */
.v2paq-legend {
    margin: 0 0 22px;
    padding: 16px 16px 14px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--mist);
}
.v2paq-legend__k { color: var(--slate); margin-bottom: 10px; }
.v2paq-legend__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.v2paq-legend__list li {
    position: relative;
    padding-right: 18px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2paq-legend__list li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 9px;
    width: 6px;
    height: 1.5px;
    background: var(--faint);
}
.v2paq-legend__list strong { color: var(--ink); font-weight: 650; }

/* ---------- the fill-in slot (used inside every draft) ---------- */
.v2 .v2paq-slot {
    background: var(--paq-slot);
    color: var(--paq-slot-ink);
    padding: 1px 2px;
    border-radius: 3px;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    border-bottom: 1.5px dashed var(--paq-slot-line);
}

/* ---------- which variant applies (audit v2, section 11) ---------- */
.v2paq-pick {
    margin: 0 0 18px;
    padding: 16px 16px 14px;
    border: 1px solid var(--paq-rule);
    border-right: 3px solid var(--ink);
    border-radius: var(--radius) 0 0 var(--radius);
    background: var(--paper);
}
.v2paq-pick__k { display: flex; align-items: center; gap: 7px; color: var(--slate); margin-bottom: 9px; }
.v2paq-pick__k svg { width: 15px; height: 15px; flex: 0 0 auto; }
.v2paq-pick__p { font-size: 14.5px; line-height: 1.75; color: var(--slate); }
.v2paq-pick__p strong { color: var(--ink); font-weight: 650; }

/* ---------- the illustrative app ---------- */
.v2paq-example {
    margin: 0 0 8px;
    padding: 18px 18px 16px;
    border: 1px solid var(--paq-slot-line);
    border-radius: var(--radius);
    background: var(--paq-amber-tint);
}
.v2paq-example__tag { display: flex; align-items: center; gap: 7px; color: var(--paq-amber); margin-bottom: 9px; }
.v2paq-example__tag svg { width: 14px; height: 14px; flex: 0 0 auto; }
.v2paq-example__name { display: block; font-family: var(--font-display); font-size: 22px; font-weight: 700; color: var(--ink); letter-spacing: -.01em; }
.v2paq-example__p { margin-top: 7px; font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2paq-example__facts { list-style: none; margin: 14px 0 0; padding: 14px 0 0; border-top: 1px dashed var(--paq-slot-line); display: grid; gap: 8px; }
.v2paq-example__facts li { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2paq-example__facts b {
    display: block;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--paq-amber);
    margin-bottom: 2px;
}

/* =============================================================
   THE FIELD SHEET  -  the signature component
============================================================= */
.v2paq-field {
    position: relative;
    margin: 30px 0;
    padding: 0 0 0 0;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
    box-shadow: var(--paq-lift);
    scroll-margin-top: calc(var(--nav-h) + 20px);
    overflow: hidden;
}

.v2paq-field__head {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--paq-rule);
    background: var(--paq-gutter);
}
.v2paq-field__no {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    height: 24px;
    padding: 0 8px;
    border-radius: 6px;
    background: var(--ink);
    color: var(--paper);
    font-size: 10.5px;
    letter-spacing: .1em;
}
.v2paq-field__type {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 9px;
    border: 1px solid var(--paq-rule);
    border-radius: 999px;
    background: var(--paper);
    color: var(--slate);
    font-size: 9.5px;
}
.v2paq-field__cond {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 9px;
    border: 1px solid var(--paq-slot-line);
    border-radius: 999px;
    background: var(--paq-amber-tint);
    color: var(--paq-amber);
    font-size: 9.5px;
}
.v2paq-field__cond svg { width: 12px; height: 12px; }

.v2 .v2paq-field__q {
    margin: 16px 16px 0;
    font-size: 20px;
    line-height: 1.35;
    letter-spacing: -.015em;
}
.v2 .v2paq-field__q::before { content: "\201C"; color: var(--faint); }
.v2 .v2paq-field__q::after { content: "\201D"; color: var(--faint); }

.v2paq-field__condp {
    margin: 10px 16px 0;
    padding: 10px 12px;
    border-radius: 9px;
    background: var(--paq-amber-tint);
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--paq-amber);
}
.v2paq-field__intro { margin: 12px 16px 0; font-size: 15px; line-height: 1.75; color: var(--slate); }
.v2paq-field__intro strong { color: var(--ink); font-weight: 650; }
.v2paq-field__note {
    margin: 0 16px 18px;
    padding: 13px 14px;
    border-right: 2px solid var(--paq-rule);
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--slate);
}

/* ---- what this field needs ---- */
.v2paq-needs {
    margin: 16px 16px 0;
    padding: 14px 15px 12px;
    border-radius: 11px;
    background: var(--mist);
}
.v2paq-needs__k { color: var(--slate); margin-bottom: 9px; }
.v2paq-needs__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.v2paq-needs__list li {
    position: relative;
    padding-right: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2paq-needs__list li::before {
    content: "";
    position: absolute;
    right: 3px;
    top: 9px;
    width: 9px;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
}

/* ---- variant tabs ---- */
.v2paq-drafts { margin: 18px 0 0; }
.v2paq-tabs {
    display: flex;
    gap: 4px;
    margin: 0 16px;
    padding-bottom: 0;
    border-bottom: 1px solid var(--paq-rule);
    overflow-x: auto;
    scrollbar-width: none;
}
.v2paq-tabs::-webkit-scrollbar { display: none; }
.v2 .v2paq-tab {
    position: relative;
    flex: 0 0 auto;
    padding: 8px 11px 9px;
    font-size: 13px;
    font-weight: 600;
    color: var(--faint);
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color .15s ease, border-color .15s ease;
}
.v2 .v2paq-tab:hover { color: var(--slate); }
.v2 .v2paq-tab.is-on { color: var(--go-deep); border-bottom-color: var(--go); }

/* ---- the draft itself ---- */
.v2paq-draft { padding: 0 16px 16px; }
.v2paq-draft__body {
    position: relative;
    margin-top: 14px;
    padding: 14px 17px 15px 15px;
    border: 1px solid var(--paq-rule);
    border-right: 3px solid var(--ink);
    border-radius: 11px 0 0 11px;
    background: var(--paq-sheet);
}
.v2paq-draft__kick { color: var(--faint); margin-bottom: 8px; }
.v2 .v2paq-draft__text {
    font-size: 15.5px;
    line-height: 1.8;
    color: var(--ink);
}
.v2paq-draft__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 11px;
}
.v2paq-draft__count { color: var(--faint); font-size: 10.5px; }
.v2 .v2paq-draft__copy {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid var(--paq-rule);
    border-radius: 999px;
    background: var(--paper);
    color: var(--ink);
    font-size: 12.5px;
    font-weight: 600;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.v2 .v2paq-draft__copy:hover { border-color: var(--go); color: var(--go-deep); background: var(--go-tint); }
.v2 .v2paq-draft__copy .v2-ic { width: 15px; height: 15px; }
.v2 .v2paq-draft__copy.is-done { border-color: var(--go); background: var(--go-tint); color: var(--go-deep); }
.v2 .v2paq-draft__copy.is-failed { border-color: var(--paq-slot-line); background: var(--paq-amber-tint); color: var(--paq-amber); }

/* ---- manual-copy fallback (audit v2 Critical 2) ---------------------
   The failure path must expose the GENERATED template, not select the
   fictional draft. [hidden] is restated at (0,2,0) because the base
   class sets display: grid and a class rule outranks the user-agent
   [hidden] { display: none } - the same trap as .v2gpr-tool__empty. */
.v2paq-fb {
    display: grid;
    gap: 9px;
    margin-top: 12px;
    padding: 13px 14px;
    border: 1px solid var(--paq-slot-line);
    border-radius: 11px;
    background: var(--paq-amber-tint);
    justify-items: start;
}
.v2paq-fb[hidden] { display: none; }
.v2paq-fb__k { font-size: 13.5px; font-weight: 600; line-height: 1.5; color: var(--paq-amber); }
.v2paq-fb__ta {
    width: 100%;
    padding: 10px 11px;
    border: 1px solid var(--paq-rule);
    border-radius: 8px;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.65;
    resize: vertical;
}
.v2 .v2paq-fb__x {
    padding: 6px 12px;
    border: 1px solid var(--paq-slot-line);
    border-radius: 999px;
    background: var(--paper);
    color: var(--paq-amber);
    font-size: 12px;
    font-weight: 600;
}
.v2 .v2paq-fb__x:hover { background: var(--paq-amber-tint); }

/* Polite live region for copy success/failure: announced, not shown. */
.v2paq-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* ---- the weaker version (neutral fold, deliberately not red) ---- */
.v2paq-weak { margin: 2px 16px 16px; border-top: 1px dashed var(--paq-rule); }
.v2paq-weak > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 0 12px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    list-style: none;
}
.v2paq-weak > summary::-webkit-details-marker { display: none; }
.v2paq-weak > summary:hover { color: var(--ink); }
.v2paq-weak__plus { position: relative; width: 14px; height: 14px; flex: 0 0 auto; }
.v2paq-weak__plus i {
    position: absolute;
    right: 0;
    top: 6px;
    width: 14px;
    height: 1.8px;
    border-radius: 2px;
    background: var(--faint);
    transition: transform .2s ease;
}
.v2paq-weak__plus i:last-child { transform: rotate(-90deg); }
.v2paq-weak[open] .v2paq-weak__plus i:last-child { transform: rotate(0deg); }
.v2paq-weak__a { padding: 0 0 14px; }
.v2paq-weak__quote {
    padding: 11px 13px;
    border-radius: 9px;
    background: var(--mist);
    color: var(--slate);
    font-size: 15px;
    font-style: italic;
    line-height: 1.6;
}
.v2paq-weak__why { margin-top: 10px; font-size: 13.5px; line-height: 1.75; color: var(--slate); }

/* =============================================================
   DROPDOWN FIELD - no recommended option, by construction
============================================================= */
.v2paq-field--pick .v2paq-opts {
    list-style: none;
    margin: 16px 16px 0;
    padding: 0;
    border: 1px solid var(--paq-rule);
    border-radius: 11px;
    overflow: hidden;
    background: var(--paq-sheet);
}
.v2paq-opt {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    align-items: start;
    gap: 4px 11px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--paq-rule);
}
.v2paq-opt:last-child { border-bottom: 0; }
.v2paq-opt__mark {
    width: 15px;
    height: 15px;
    margin-top: 2px;
    border: 1.5px solid var(--faint);
    border-radius: 50%;
    background: var(--paper);
}
.v2paq-opt__label { font-size: 15px; font-weight: 650; color: var(--ink); }
.v2paq-opt__when { grid-column: 2; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2paq-opts__foot { margin: 11px 16px 18px; font-size: 12.5px; line-height: 1.65; color: var(--faint); }

/* =============================================================
   MID-ARTICLE CTA (light - the dark budget is QA + final CTA)
============================================================= */
.v2paq-midcta {
    display: grid;
    gap: 14px;
    margin: 30px 0;
    padding: 20px 18px;
    border: 1px solid var(--go);
    border-radius: var(--radius);
    background: var(--go-tint);
}
.v2paq-midcta__head { font-size: 17px; font-weight: 700; color: var(--ink); line-height: 1.4; }
.v2paq-midcta__sub { margin-top: 6px; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2paq-midcta .v2-btn { justify-content: center; }

/* =============================================================
   MISTAKES
============================================================= */
.v2paq-miss { display: grid; gap: 10px; margin: 22px 0 30px; }
.v2paq-miss__row {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 15px 15px;
    border: 1px solid var(--paq-rule);
    border-radius: 12px;
    background: var(--paper);
}
.v2paq-miss__n { color: var(--faint); font-size: 11px; padding-top: 3px; }
.v2paq-miss__k { display: block; font-size: 15.5px; font-weight: 700; color: var(--ink); }
.v2paq-miss__p { margin-top: 5px; font-size: 14px; line-height: 1.7; color: var(--slate); }

/* =============================================================
   PRE-SUBMISSION CONSISTENCY CHECK
============================================================= */
.v2paq-check {
    display: grid;
    gap: 2px;
    margin: 22px 0 12px;
    padding: 10px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paq-sheet);
}
.v2paq-check__row {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 11px;
    padding: 11px 10px;
    border-radius: 9px;
    cursor: pointer;
    transition: background .15s ease;
}
.v2paq-check__row:hover { background: var(--paper); }
.v2paq-check__box {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.v2paq-check__tick {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    margin-top: 1px;
    border: 1.5px solid var(--paq-rule);
    border-radius: 6px;
    background: var(--paper);
    color: transparent;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.v2paq-check__tick svg { width: 13px; height: 13px; }
.v2paq-check__box:checked ~ .v2paq-check__tick { background: var(--go); border-color: var(--go); color: #fff; }
.v2paq-check__box:focus-visible ~ .v2paq-check__tick { outline: 2px solid var(--go); outline-offset: 2px; }
.v2paq-check__t { font-size: 14.5px; line-height: 1.6; color: var(--slate); }
.v2paq-check__box:checked ~ .v2paq-check__t { color: var(--faint); text-decoration: line-through; text-decoration-color: var(--line); }
.v2gpr-prose > p.v2paq-check__foot { font-size: 13px; color: var(--faint); margin: 0 0 30px; }

/* =============================================================
   AFTER YOU APPLY - four separate outcomes
============================================================= */
.v2paq-board { display: grid; gap: 12px; margin: 24px 0 30px; }
.v2paq-board__card {
    padding: 16px 16px 15px;
    border: 1px solid var(--paq-rule);
    border-top: 3px solid var(--faint);
    border-radius: 3px 3px var(--radius) var(--radius);
    background: var(--paper);
}
.v2paq-board__tag { color: var(--faint); margin-bottom: 8px; }
.v2paq-board__k { display: block; font-size: 16.5px; font-weight: 700; color: var(--ink); }
.v2paq-board__p { margin-top: 7px; font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2paq-board__p strong { color: var(--ink); font-weight: 650; }
.v2paq-board__p a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.v2paq-board__card--wait { border-top-color: var(--line); }
.v2paq-board__card--go { border-top-color: var(--go); background: var(--go-tint); }
.v2paq-board__card--go .v2paq-board__tag { color: var(--go-deep); }
.v2paq-board__card--more { border-top-color: var(--paq-slot-line); background: var(--paq-amber-tint); }
.v2paq-board__card--more .v2paq-board__tag { color: var(--paq-amber); }
.v2paq-board__card--block { border-top-color: var(--ink); }

/* ---------- recovery steps ---------- */
.v2paq-steps { display: grid; gap: 0; margin: 22px 0 14px; }
.v2paq-steps__row {
    position: relative;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 14px;
    padding: 0 0 22px 0;
}
.v2paq-steps__row:last-child { padding-bottom: 0; }
.v2paq-steps__row::before {
    content: "";
    position: absolute;
    right: 13.5px;
    top: 30px;
    bottom: 2px;
    width: 1px;
    background: var(--paq-rule);
}
.v2paq-steps__row:last-child::before { display: none; }
.v2paq-steps__n {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 1px solid var(--paq-rule);
    border-radius: 50%;
    background: var(--paper);
    color: var(--ink);
    font-size: 12px;
}
.v2paq-steps__k { display: block; font-size: 16px; font-weight: 700; color: var(--ink); padding-top: 3px; }
.v2paq-steps__p { margin-top: 6px; font-size: 14.5px; line-height: 1.75; color: var(--slate); }
.v2paq-steps__p strong { color: var(--ink); font-weight: 650; }
.v2paq-steps__p a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.v2gpr-prose > p.v2paq-steps__foot { font-size: 14px; color: var(--slate); margin: 4px 0 26px; }
.v2paq-steps__foot a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* =============================================================
   SERVICE SECTION
============================================================= */
.v2paq-plans { display: grid; gap: 12px; margin: 24px 0 22px; }
.v2paq-plan {
    position: relative;
    padding: 20px 16px 18px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
    text-align: center;
}
.v2paq-plan.is-pop { border-color: var(--go); box-shadow: 0 1px 2px rgba(10,16,23,.04), 0 16px 34px -20px rgba(11,138,71,.30); }
.v2paq-plan__badge {
    position: absolute;
    top: 0;
    right: 50%;
    transform: translate(50%, -50%);
    padding: 4px 11px;
    border-radius: 999px;
    background: var(--go);
    color: #fff;
    font-size: 9.5px;
}
.v2paq-plan__ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--go-tint);
    color: var(--go-deep);
    margin-bottom: 10px;
}
.v2paq-plan__ic svg { width: 20px; height: 20px; }
.v2paq-plan__name { display: block; font-size: 17px; font-weight: 700; color: var(--ink); }
.v2paq-plan__testers { display: block; margin-top: 3px; color: var(--faint); font-size: 10px; }
.v2paq-plan__price { margin-top: 10px; font-family: var(--font-display); font-size: 30px; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.v2paq-plan__for { margin-top: 7px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

.v2paq-scope2 { display: grid; gap: 12px; margin: 22px 0 4px; }
.v2paq-scope2__col {
    padding: 16px 16px 14px;
    border: 1px solid var(--paq-rule);
    border-radius: var(--radius);
    background: var(--paper);
}
.v2paq-scope2__k { display: flex; align-items: center; gap: 7px; margin-bottom: 8px; }
.v2paq-scope2__k svg { width: 14px; height: 14px; flex: 0 0 auto; }
.v2paq-scope2__col--does { background: var(--go-tint); border-color: var(--go); }
.v2paq-scope2__col--does .v2paq-scope2__k { color: var(--go-deep); }
.v2paq-scope2__col--not .v2paq-scope2__k { color: var(--slate); }
.v2paq-scope2__p { font-size: 14px; line-height: 1.7; color: var(--slate); }

.v2gpr-prose > .v2paq-allplans { text-align: center; margin: 22px 0 4px; }
.v2paq-allplans a { display: inline-flex; align-items: center; gap: 6px; color: var(--go-deep); font-size: 15px; font-weight: 600; text-decoration: none; }
.v2paq-allplans a:hover { text-decoration: underline; }
.v2paq-allplans a .v2-ic { width: 16px; height: 16px; }

/* =============================================================
   BOTTOM LINE
============================================================= */
.v2paq-bottom {
    margin: 22px 0 8px;
    padding: 22px 18px 20px;
    border: 1px solid var(--paq-rule);
    border-right: 3px solid var(--go);
    border-radius: var(--radius) 0 0 var(--radius);
    background: var(--mist);
}
.v2paq-bottom__tag { display: flex; align-items: center; gap: 7px; color: var(--go-deep); margin-bottom: 10px; }
.v2paq-bottom__tag svg { width: 16px; height: 16px; }
.v2paq-bottom__text { font-size: 16px; line-height: 1.8; color: var(--ink); }
.v2paq-bottom__cta { margin-top: 12px; font-size: 14px; color: var(--slate); }
.v2paq-bottom__cta a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* =============================================================
   FAQ tweaks
============================================================= */
.v2paq-faq { margin-top: 20px; }

/* =============================================================
   Sticky mobile CTA: reset the .v2-faq__wa flex:1 0 100% it
   inherits from its FAQ home, which otherwise lays the WhatsApp
   button out 362px wide inside a 390px viewport. Scoped to this
   post, following the v2stat-/v2fee- precedent; the shared rule is
   left alone because 30+ live posts render it.
============================================================= */
.v2 .v2paq-scta .v2-faq__wa { flex: 0 1 auto; width: auto; min-width: 0; }
.v2 .v2paq-scta .v2-btn--primary { flex: 1 1 auto; min-width: 0; }

/* =============================================================
   PAQ tablet and up ( >= 620px )
============================================================= */
@media (min-width: 620px) {
    .v2paq-toc__grid { grid-template-columns: 1fr 1fr; gap: 2px 10px; }
    .v2paq-caveats { grid-template-columns: 1fr 1fr; }
    .v2paq-scope2 { grid-template-columns: 1fr 1fr; }

    .v2paq-field__head { padding: 13px 20px; }
    .v2 .v2paq-field__q { margin: 18px 20px 0; font-size: 22px; }
    .v2paq-field__condp,
    .v2paq-field__intro { margin-right: 20px; margin-left: 20px; }
    .v2paq-field__note { margin-right: 20px; margin-left: 20px; }
    .v2paq-needs { margin-right: 20px; margin-left: 20px; padding: 16px 18px 14px; }
    .v2paq-needs__list { grid-template-columns: 1fr 1fr; gap: 8px 18px; }
    .v2paq-tabs { margin: 0 20px; }
    .v2paq-draft { padding: 0 20px 20px; }
    .v2paq-weak { margin: 2px 20px 18px; }
    .v2paq-field--pick .v2paq-opts { margin-right: 20px; margin-left: 20px; }
    .v2paq-opts__foot { margin-right: 20px; margin-left: 20px; }

    .v2paq-midcta { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 22px 22px; }

    .v2paq-board { grid-template-columns: 1fr 1fr; }
    .v2paq-plans { grid-template-columns: repeat(3, 1fr); }

    .v2paq-record thead { display: table-header-group; }
    .v2paq-record tbody { display: table-row-group; padding: 0; gap: 0; }
    .v2paq-record tr { display: table-row; border: 0; border-radius: 0; background: transparent; }
    .v2paq-record th {
        padding: 11px 14px;
        text-align: right;
        background: var(--paq-gutter);
        color: var(--slate);
        border-bottom: 1px solid var(--paq-rule);
        white-space: nowrap;
    }
    .v2paq-record td { border-bottom: 1px solid var(--paq-rule); vertical-align: top; }
    .v2paq-record tr:last-child td { border-bottom: 0; }
    .v2paq-record td::before { display: none; }
    .v2paq-record__ok,
    .v2paq-record__open { background: transparent; }
    .v2paq-record__ok { color: var(--go-deep) !important; }
    .v2paq-record__open { color: var(--paq-amber) !important; }
}

/* =============================================================
   PAQ desktop ( >= 900px )
============================================================= */
@media (min-width: 900px) {
    .v2paq-map { grid-template-columns: repeat(3, 1fr); gap: 12px; }
    .v2paq-ledger__row { grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding: 22px 20px; }
    .v2paq-ledger__n { width: 40px; height: 40px; }
    .v2paq-board { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .v2 .v2paq-field__q { font-size: 24px; }
    .v2paq-scope { padding: 20px 22px 18px; }
    .v2paq-rule { padding: 24px 24px; }
}

/* =============================================================
   PAQ small phones ( <= 380px )
============================================================= */
@media (max-width: 380px) {
    .v2paq-field__head { gap: 6px; padding: 11px 13px; }
    .v2 .v2paq-field__q { margin: 14px 13px 0; font-size: 18.5px; }
    .v2paq-field__condp,
    .v2paq-field__intro,
    .v2paq-field__note { margin-right: 13px; margin-left: 13px; }
    .v2paq-needs { margin-right: 13px; margin-left: 13px; }
    .v2paq-tabs { margin: 0 13px; }
    .v2paq-draft { padding: 0 13px 14px; }
    .v2paq-weak { margin: 2px 13px 14px; }
    .v2paq-field--pick .v2paq-opts,
    .v2paq-opts__foot { margin-right: 13px; margin-left: 13px; }
    .v2 .v2paq-draft__text { font-size: 14.5px; }
    .v2 .v2paq-draft__copy { padding: 7px 11px; font-size: 12px; }
    .v2paq-plan__price { font-size: 27px; }
    .v2paq-example__name { font-size: 20px; }
    .v2paq-ledger__row { padding: 16px 14px; }
}


/* ============================================================
   LANGUAGE DROPDOWN (header) + mobile-sheet language chips
   Added 2026-07-11 for the multilingual rollout. Rendered by
   home_v2/_nav from LocaleHelper::dropdownTargets(). The popover
   anchors right in LTR; the generated RTL stylesheet flips it.
   ============================================================ */

.v2-lang { position: relative; }

.v2-lang__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 11px 6px 10px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--slate);
    border: 1px solid var(--line);
    background: var(--paper);
    cursor: pointer;
    list-style: none;
    user-select: none;
    will-change: transform;
}
/* Smooth hover: lift + green border + subtle fill (exempt from reduced-motion). */
.v2 .v2-lang__btn {
    transition: transform .26s cubic-bezier(.22, 1, .36, 1),
                color .2s ease, border-color .2s ease, background-color .2s ease, box-shadow .26s ease !important;
}
.v2-lang__btn::-webkit-details-marker { display: none; }
.v2-lang__btn:hover {
    color: var(--ink);
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    background: color-mix(in srgb, var(--go) 6%, var(--paper));
    transform: translateY(-2px);
    box-shadow: 0 10px 18px -10px rgba(10, 16, 23, 0.25);
}
.v2-lang__btn:active { transform: translateY(0); }

.v2-lang__globe { width: 16px; height: 16px; }
.v2-lang__code { letter-spacing: .04em; }
.v2-lang__chev { width: 15px; height: 15px; flex: none; opacity: .75; transform-origin: 50% 50%; }
/* Same duration and easing as the menu fade in _nav (LANG_MS), so the turn ends with the menu (exempt from reduced-motion). */
.v2 .v2-lang__chev { transition: transform .24s cubic-bezier(.4, 0, .2, 1), opacity .2s ease !important; }
.v2-lang__btn:hover .v2-lang__chev { opacity: 1; }
/* Driven by a class (toggled in sync with the JS open/close), not the [open] attribute. */
.v2-lang.is-menu-open .v2-lang__chev { opacity: 1; transform: rotate(-180deg); }
/* JS animates the menu open AND close (Web Animations); just anchor the scale here. */
.v2-lang__menu { transform-origin: top left; }

.v2-lang__menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    margin: 0;
    padding: 5px;
    list-style: none;
    min-width: 170px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 16px 40px rgba(10, 16, 23, .10), 0 2px 8px rgba(10, 16, 23, .06);
    z-index: 60;
}

.v2-lang__menu a,
.v2-lang__menu .is-current {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 7.5px 12px 7px 0px;
    border-radius: 8px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ink);
}
.v2-lang__menu a:hover { background: var(--mist); }
.v2-lang__menu a.is-active,
.v2-lang__menu .is-current.is-active { color: var(--go-deep); font-weight: 650; }
.v2-lang__menu a svg,
.v2-lang__menu .is-current svg { width: 14px; height: 14px; color: var(--go); flex: none; order: 2; }
/* Language name on the left, flag on the right. */
.v2-lang__menu a > span,
.v2-lang__menu .is-current > span { flex: 1 1 auto; text-align: right; order: 1; }
.v2-lang__menu .v2-lang__flag { order: 3; }

/* Mobile: the pill hides with the desktop links; the sheet carries chips */
@media (max-width: 960px) {
    .v2-lang { display: none; }
}

.v2-lang__sheet {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 4px 0 14px;
}
.v2-lang__sheet a,
.v2-lang__sheet .is-current {
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--line);
    font-size: 14px;
    font-weight: 550;
    color: var(--slate);
}
.v2-lang__sheet a.is-active,
.v2-lang__sheet .is-current.is-active {
    border-color: var(--go);
    color: var(--go-deep);
    background: var(--go-tint);
}

/* Lang suggestion bar (#ptlLangBar): hidden + non-interactive by default.
   Author display:flex on .v2-langbar beat the [hidden] UA rule, so an empty
   pill stayed visible and ate taps over the mobile sheet language chips. */
.v2-langbar {
    position: fixed;
    right: 50%;
    bottom: 18px;
    transform: translateX(50%);
    z-index: 9990;
    display: none;
    pointer-events: none;
    align-items: center;
    gap: 14px;
    max-width: calc(100vw - 24px);
    padding: 11px 18px 11px 14px;
    background: #1A2332;
    color: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(16, 24, 40, .28);
    font-size: 14px;
    line-height: 1.35;
}
.v2-langbar[hidden],
.v2-langbar:not(.is-on) {
    display: none !important;
    pointer-events: none !important;
}
.v2-langbar.is-on {
    display: flex !important;
    pointer-events: auto;
}
/* Sheet open: nav JS sets html.v2-no-scroll. Kill the bar even when is-on so
   its z-index 9990 cannot intercept taps on sheet language chips. */
html.v2-no-scroll .v2-langbar,
html.v2-no-scroll .v2-resume {
    display: none !important;
    pointer-events: none !important;
}
.v2-langbar__go {
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.v2-langbar__x {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    cursor: pointer;
}
.v2-langbar__x svg { width: 14px; height: 14px; }
@media (max-width: 480px) {
    .v2-langbar { width: calc(100vw - 24px); flex-wrap: wrap; gap: 8px 14px; }
}

/* Burger sheet (max-width 960px): keep language chips tappable.
   scroll-padding on .v2-nav__sheet (overflow-y:auto) so focus/scrollIntoView
   does not park chips under the sticky header CTA or bottom CTA block.
   flex-shrink:0 + chip padding keep the mid-sheet chip row from collapsing
   under the bottom CTA when the sheet content is short. */
@media (max-width: 960px) {
    .v2-nav__sheet {
        scroll-padding-top: 64px;
        scroll-padding-bottom: 90px;
    }
    .v2-nav__sheet-links {
        flex-shrink: 0;
    }
    .v2-lang__sheet {
        flex-shrink: 0;
        padding-bottom: 28px;
        margin-bottom: 4px;
    }
    .v2-nav__sheet-cta {
        flex-shrink: 0;
        margin-top: auto;
        background: var(--paper);
        padding-top: 16px;
        padding-bottom: 4px;
    }
}


/* =============================================================
   BLOG X20 V2  -  "20 to 12 Testers: Google Play's New Rules"
   Unique internal components for the 20-to-12 policy-change post.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motif = CHANGELOG / POLICY DIFF -
   a monospace 20 -> 12 diff card, a version-control commit-log
   timeline (+ / 20->12 / HEAD markers), an eligibility registry,
   requirement chips and release-step checklist. Cyan is the
   primary accent, green = added/current, rose = removed/risk,
   amber = the transition + caution, blue = info. Light components
   only; the two dark moments are the shared .v2gpr-qa Quick Answer
   capsule and the final .v2-cta.
============================================================= */
.v2x20-cover,
.v2x20-diff,
.v2x20-toc,
.v2x20-fig,
.v2x20-log,
.v2x20-confuse,
.v2x20-quote,
.v2x20-warn,
.v2x20-eligwrap,
.v2x20-reqs,
.v2x20-tip,
.v2x20-list,
.v2x20-insight,
.v2x20-callout,
.v2x20-ask,
.v2x20-steps,
.v2x20-highlights,
.v2x20-prices,
.v2x20-links,
.v2x20-bottom,
.v2x20-docs {
    --x-navy:   #1A2332;
    --x-cyan:   #0E7490;
    --x-cyan-2: #0891B2;
    --x-cyan-tint: #ECFEFF;
    --x-cyan-line: #BFE7EE;
    --x-rose:   #B42318;
    --x-rose-tint: #FDF1F0;
    --x-rose-line: #F3C9C4;
    --x-amber-deep: #92400E;
    --x-amber-tint: #FEF6E7;
    --x-amber-line: #F5DFA8;
    --x-amber-body: #7C5310;
    --x-blue:   #1D4ED8;
    --x-blue-tint: #EFF6FF;
    --x-blue-line: #C7DBFF;
    --x-line:   #E3E8EF;
    --x-mono:   ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
    --x-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.18);
    --x-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(14,116,144,.24);
    margin: 30px 0;
}

/* ---------- Hero tweaks ---------- */
.v2x20-eyebrow { color: var(--x-cyan); }
.v2x20-eyebrow::before { background: var(--x-cyan-2) !important; }
.v2x20-facts .v2x20-fact--change b { color: var(--x-cyan); }

/* Quick-answer highlight tints inside the dark capsule */
.v2gpr-qa.v2x20-qa .x-amber { color: #FFD56B; }
.v2gpr-qa.v2x20-qa .x-cyan { color: #7DE3FF; }

/* ---------- Heading anchor offset ---------- */
.v2x20-h2 { scroll-margin-top: 90px; }
.v2x20-h3 { scroll-margin-top: 90px; }

/* ---------- Cover image ---------- */
.v2x20-cover { margin: 26px 0 0; }
.v2x20-cover img {
    display: block; width: 100%; height: auto; border-radius: 16px;
    border: 1px solid var(--x-line); box-shadow: var(--x-shadow-lg);
}

/* ---------- Signature: policy diff card ---------- */
.v2x20-diff {
    border: 1px solid var(--x-line); border-radius: 16px; overflow: hidden;
    background: var(--paper); box-shadow: var(--x-shadow-lg);
}
.v2x20-diff__head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 16px; background: var(--x-navy);
}
.v2x20-diff__tag { color: #7DE3FF; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.v2x20-diff__when { color: rgba(255,255,255,.7); font-size: 11px; }
.v2x20-diff__rows { padding: 12px; display: grid; gap: 8px; }
.v2x20-diff__row {
    display: flex; align-items: center; gap: 12px; padding: 12px 14px;
    border-radius: 10px; font-family: var(--x-mono); font-size: 15px;
}
.v2x20-diff__row.is-del { background: var(--x-rose-tint); border: 1px solid var(--x-rose-line); }
.v2x20-diff__row.is-add { background: var(--go-tint); border: 1px solid var(--go-line); }
.v2x20-diff__row.is-keep { background: #F1F5F9; border: 1px solid var(--x-line); }
.v2x20-diff__sign { font-weight: 800; font-size: 18px; width: 16px; text-align: center; flex-shrink: 0; }
.v2x20-diff__row.is-del .v2x20-diff__sign { color: var(--x-rose); }
.v2x20-diff__row.is-add .v2x20-diff__sign { color: var(--go-deep); }
.v2x20-diff__row.is-keep .v2x20-diff__sign { color: var(--slate); }
.v2x20-diff__old { color: var(--x-rose); text-decoration: line-through; font-weight: 700; }
.v2x20-diff__new { color: var(--go-deep); font-weight: 800; }
.v2x20-diff__same { color: var(--ink); font-weight: 700; }
.v2x20-diff__note { margin-right: auto; font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--slate); }
.v2x20-diff__foot { margin: 0; padding: 0 16px 14px; text-align: center; color: var(--slate); font-size: 12.5px; }

/* ---------- Table of contents ---------- */
.v2x20-toc { border: 1px dashed var(--x-cyan-line); border-radius: 14px; background: var(--x-cyan-tint); padding: 16px 16px 6px; }
.v2x20-toc__label { color: var(--x-cyan); font-size: 11px; margin: 0 0 10px; }
.v2x20-toc__grid { display: grid; grid-template-columns: 1fr; gap: 2px; }
.v2gpr-prose .v2x20-toc__grid a {
    display: flex; align-items: baseline; gap: 10px; padding: 9px 6px; margin: 0;
    color: var(--slate); font-size: 14.5px; line-height: 1.4; text-decoration: none;
    border-top: 1px solid rgba(14,116,144,.12);
}
.v2gpr-prose .v2x20-toc__grid a:first-child { border-top: 0; }
.v2gpr-prose .v2x20-toc__grid a:hover { color: var(--x-cyan); }
.v2x20-toc__grid a .v2-mono { color: var(--x-cyan-2); font-size: 11px; flex-shrink: 0; }

/* ---------- Figures ---------- */
.v2gpr-prose .v2x20-fig { margin: 26px 0; }
.v2gpr-prose .v2x20-fig .v2x20-fig__frame {
    border: 1px solid var(--x-line); border-radius: 14px; overflow: hidden;
    box-shadow: var(--x-shadow); background: var(--paper);
}
.v2gpr-prose .v2x20-fig img { display: block; width: 100%; height: auto; }
.v2gpr-prose .v2x20-fig figcaption {
    margin-top: 12px; text-align: center; font-size: 13px; color: var(--slate);
    line-height: 1.5; font-style: italic;
}
.v2gpr-prose .v2x20-fig figcaption strong { color: var(--ink); font-style: normal; }

/* ---------- Commit-log timeline ---------- */
.v2x20-log { position: relative; display: grid; gap: 0; padding-right: 6px; }
.v2x20-commit { position: relative; display: grid; gap: 6px; padding: 0 34px 20px 0; }
.v2x20-commit::before {
    content: ""; position: absolute; right: 8px; top: 22px; bottom: -2px;
    width: 2px; background: var(--x-line);
}
.v2x20-commit:last-child::before { display: none; }
.v2x20-commit::after {
    content: ""; position: absolute; right: 3px; top: 4px; width: 12px; height: 12px;
    border-radius: 50%; background: var(--slate); box-shadow: 0 0 0 3px var(--paper);
}
.v2x20-commit.is-add::after { background: var(--x-cyan-2); }
.v2x20-commit.is-change::after { background: #D9910A; }
.v2x20-commit.is-head::after { background: var(--go); box-shadow: 0 0 0 3px var(--paper), 0 0 0 5px var(--go-line); }
.v2x20-commit__date { display: inline-block; color: var(--slate); font-size: 11px; }
.v2x20-commit__mark {
    display: inline-block; align-self: start; font-size: 11px; font-weight: 600;
    padding: 3px 9px; border-radius: 6px; background: #EEF1F5; color: var(--slate);
}
.v2x20-commit__mark.is-add { background: var(--x-cyan-tint); color: var(--x-cyan); }
.v2x20-commit__mark.is-change { background: var(--x-amber-tint); color: var(--x-amber-deep); }
.v2x20-commit__mark.is-head { background: var(--go-tint); color: var(--go-deep); }
.v2x20-commit__body { background: var(--paper); border: 1px solid var(--x-line); border-radius: 12px; padding: 14px 16px; box-shadow: var(--x-shadow); }
.v2x20-commit.is-change .v2x20-commit__body { border-color: var(--x-amber-line); background: var(--x-amber-tint); }
.v2x20-commit.is-head .v2x20-commit__body { border-color: var(--go-line); background: var(--go-tint); }
.v2x20-commit__h { display: block; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); margin-bottom: 4px; }
.v2x20-commit__body p { margin: 0; color: var(--slate); font-size: 14.5px; line-height: 1.6; }

/* ---------- Confusion cards ---------- */
.v2x20-confuse { display: grid; grid-template-columns: 1fr; gap: 12px; }
.v2x20-confuse__card { border-radius: 14px; padding: 16px 18px; }
.v2x20-confuse__card.is-rose { background: var(--x-rose-tint); border: 1px solid var(--x-rose-line); }
.v2x20-confuse__card.is-amber { background: var(--x-amber-tint); border: 1px solid var(--x-amber-line); }
.v2x20-confuse__lab { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .02em; }
.v2x20-confuse__card.is-rose .v2x20-confuse__lab { color: var(--x-rose); }
.v2x20-confuse__card.is-amber .v2x20-confuse__lab { color: var(--x-amber-deep); }
.v2x20-confuse__lab svg { width: 16px; height: 16px; }
.v2x20-confuse__card p { margin: 0; font-size: 14.5px; line-height: 1.6; }
.v2x20-confuse__card.is-rose p { color: #8a2820; }
.v2x20-confuse__card.is-amber p { color: var(--x-amber-body); }

/* ---------- Google quote ---------- */
.v2x20-quote { border-right: 3px solid #4285F4; background: #F7FAFC; border-radius: 12px 0 0 12px; padding: 16px 20px; }
.v2x20-quote__src { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 12px; font-weight: 700; margin: 0 0 8px; }
.v2x20-quote__src svg { width: 16px; height: 16px; color: #4285F4; }
.v2x20-quote__t { margin: 0; color: #374151; font-size: 16px; line-height: 1.7; font-style: italic; }

/* ---------- Warning ---------- */
.v2x20-warn { background: var(--x-rose-tint); border: 1px solid var(--x-rose-line); border-radius: 12px; padding: 16px 18px; }
.v2x20-warn__lab { display: inline-flex; align-items: center; gap: 8px; color: var(--x-rose); font-size: 12px; font-weight: 700; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .02em; }
.v2x20-warn__lab svg { width: 16px; height: 16px; }
.v2x20-warn p { margin: 0; color: #8a2820; font-size: 14.5px; line-height: 1.7; }

/* ---------- Eligibility table (stacks on mobile) ---------- */
.v2x20-eligwrap { border: 1px solid var(--x-line); border-radius: 14px; overflow: hidden; box-shadow: var(--x-shadow); }
.v2x20-eligtable { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--paper); }
.v2x20-eligtable thead th { background: var(--x-navy); color: #fff; text-align: right; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; padding: 12px 16px; font-weight: 600; }
.v2x20-eligtable td { padding: 13px 16px; border-top: 1px solid var(--x-line); color: var(--slate); }
.v2x20-eligtable td strong { color: var(--ink); }

/* 2026-08-18 (13-locale x20 wave): .v2x20-eligwrap is overflow:hidden, so a cell
   wider than the wrap is CLIPPED, not scrollable - and body.v2's overflow-x:clip
   keeps it out of scrollWidth, so it never shows up in a document-level check.
   English fits; German, Dutch and Italian compounds do not (measured at 390px:
   de +33/+51px, nl +32px, it +16px). Let long words break rather than push the
   table past its own border. */
.v2x20-eligtable th,
.v2x20-eligtable td { overflow-wrap: anywhere; hyphens: auto; }
@media (max-width: 480px) {
    .v2x20-eligtable { font-size: 13px; }
    .v2x20-eligtable thead th { padding: 10px 12px; }
    .v2x20-eligtable td { padding: 11px 12px; }
}
.v2x20-pill { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 12px; border-radius: 999px; }
.v2x20-pill.is-req { background: var(--x-rose-tint); color: var(--x-rose); }
.v2x20-pill.is-exempt { background: var(--go-tint); color: var(--go-deep); }

/* ---------- Requirement chips ---------- */
.v2x20-reqs { display: grid; grid-template-columns: 1fr; gap: 12px; }
.v2x20-req { text-align: center; border: 1px solid var(--x-line); border-radius: 14px; background: var(--paper); padding: 20px 16px; box-shadow: var(--x-shadow); }
.v2x20-req__ic { display: grid; place-items: center; width: 46px; height: 46px; margin: 0 auto 12px; border-radius: 13px; color: var(--x-cyan); background: var(--x-cyan-tint); }
.v2x20-req__ic svg { width: 24px; height: 24px; }
.v2x20-req__k { display: block; font-family: var(--font-display); font-weight: 800; font-size: 20px; color: var(--x-navy); }
.v2x20-req__v { display: block; margin-top: 5px; color: var(--slate); font-size: 13.5px; line-height: 1.5; }

/* ---------- Tips (amber) ---------- */
.v2x20-tip { background: var(--x-amber-tint); border: 1px solid var(--x-amber-line); border-radius: 12px; padding: 16px 18px; }
.v2x20-tip__lab { display: inline-flex; align-items: center; gap: 8px; color: var(--x-amber-deep); font-size: 12px; font-weight: 700; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .02em; }
.v2x20-tip__lab svg { width: 16px; height: 16px; }
.v2x20-tip p { margin: 0; color: var(--x-amber-body); font-size: 14.5px; line-height: 1.7; }

/* ---------- Bulleted lists ---------- */
.v2gpr-prose .v2x20-list { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 8px; }
.v2x20-list li { display: flex; align-items: flex-start; gap: 10px; padding: 12px 14px; background: #F7FAFC; border: 1px solid var(--x-line); border-radius: 10px; color: var(--slate); font-size: 14.5px; line-height: 1.6; }
.v2x20-list li svg { width: 18px; height: 18px; color: var(--x-cyan); flex-shrink: 0; margin-top: 1px; }
.v2x20-list.is-go li svg { color: var(--go); }
.v2x20-list li strong { color: var(--ink); }

/* ---------- Insight box (blue) ---------- */
.v2x20-insight { background: var(--x-blue-tint); border: 1px solid var(--x-blue-line); border-radius: 14px; padding: 18px 20px; }
.v2x20-insight__lab { display: inline-flex; align-items: center; gap: 8px; color: var(--x-blue); font-size: 11px; font-weight: 700; margin: 0 0 10px; text-transform: uppercase; letter-spacing: .05em; }
.v2x20-insight__lab svg { width: 16px; height: 16px; }
.v2x20-insight__lead { margin: 0; color: #1E3A5F; font-size: 17px; font-weight: 700; line-height: 1.6; }
.v2x20-insight__sub { margin: 12px 0 0; color: #374151; font-size: 14.5px; line-height: 1.6; }
.v2x20-insight.is-swap { background: var(--x-cyan-tint); border-color: var(--x-cyan-line); }
.v2x20-insight.is-swap .v2x20-insight__lab { color: var(--x-cyan); }

/* ---------- Callout ---------- */
.v2x20-callout { display: flex; gap: 12px; background: var(--x-blue-tint); border: 1px solid var(--x-blue-line); border-radius: 12px; padding: 16px 18px; }
.v2x20-callout__ic { flex-shrink: 0; width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; color: var(--x-blue); background: #fff; }
.v2x20-callout__ic svg { width: 18px; height: 18px; }
.v2x20-callout p { margin: 0; color: #1E3A5F; font-size: 14.5px; line-height: 1.65; }

/* ---------- Ask table ---------- */
.v2x20-ask { border: 1px solid var(--x-line); border-radius: 14px; overflow: hidden; box-shadow: var(--x-shadow); }
.v2x20-ask__head { display: none; }
.v2x20-ask__row { padding: 14px 16px; border-top: 1px solid var(--x-line); }
.v2x20-ask__row:first-of-type { border-top: 0; }
.v2x20-ask__q { display: block; font-weight: 700; color: var(--ink); font-size: 15px; margin-bottom: 4px; }
.v2x20-ask__m { display: block; color: var(--slate); font-size: 14px; line-height: 1.6; }

/* ---------- Release-step checklist ---------- */
.v2x20-steps { display: grid; gap: 12px; }
.v2x20-step { display: flex; gap: 14px; }
.v2x20-step__num { flex-shrink: 0; width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; background: var(--x-navy); color: #fff; font-size: 15px; font-weight: 700; }
.v2x20-step__card { flex: 1; background: var(--paper); border: 1px solid var(--x-line); border-radius: 12px; padding: 16px 18px; box-shadow: var(--x-shadow); }
.v2x20-step__h { display: block; font-family: var(--font-display); font-weight: 700; font-size: 16.5px; color: var(--ink); margin-bottom: 6px; }
.v2x20-step__card > p { margin: 0; color: var(--slate); font-size: 14.5px; line-height: 1.6; }
.v2x20-step__tip { margin-top: 12px; background: var(--x-amber-tint); border: 1px solid var(--x-amber-line); border-radius: 9px; padding: 10px 14px; font-size: 13.5px; color: var(--x-amber-body); line-height: 1.6; }
.v2x20-step__tip strong { color: var(--x-amber-deep); }
.v2x20-mini { margin-top: 12px; border-radius: 10px; padding: 13px 16px; }
.v2x20-mini.is-rose { background: var(--x-rose-tint); border: 1px solid var(--x-rose-line); }
.v2x20-mini.is-blue { background: var(--x-blue-tint); border: 1px solid var(--x-blue-line); }
.v2x20-mini__lab { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; margin: 0 0 6px; text-transform: uppercase; letter-spacing: .04em; }
.v2x20-mini.is-rose .v2x20-mini__lab { color: var(--x-rose); }
.v2x20-mini.is-blue .v2x20-mini__lab { color: var(--x-blue); }
.v2x20-mini__lab svg { width: 15px; height: 15px; }
.v2x20-mini p { margin: 0; font-size: 13.5px; line-height: 1.65; }
.v2x20-mini.is-rose p { color: #8a2820; }
.v2x20-mini.is-blue p { color: #374151; }
.v2gpr-prose .v2x20-substeps { margin: 10px 0 0; padding-right: 18px; color: var(--slate); font-size: 14.5px; line-height: 1.8; }
.v2x20-substeps li { margin: 0; }

/* ---------- PTL highlights ---------- */
.v2x20-highlights { display: grid; grid-template-columns: 1fr; gap: 10px; }
.v2x20-hl { display: flex; align-items: center; gap: 12px; border-radius: 12px; padding: 14px 16px; }
.v2x20-hl.is-go { background: var(--go-tint); border: 1px solid var(--go-line); }
.v2x20-hl.is-blue { background: var(--x-blue-tint); border: 1px solid var(--x-blue-line); }
.v2x20-hl.is-amber { background: var(--x-amber-tint); border: 1px solid var(--x-amber-line); }
.v2x20-hl__ic { flex-shrink: 0; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; background: #fff; }
.v2x20-hl.is-go .v2x20-hl__ic { color: var(--go-deep); }
.v2x20-hl.is-blue .v2x20-hl__ic { color: var(--x-blue); }
.v2x20-hl.is-amber .v2x20-hl__ic { color: var(--x-amber-deep); }
.v2x20-hl__ic svg { width: 20px; height: 20px; }
.v2x20-hl strong { display: block; color: var(--ink); font-size: 14px; }
.v2x20-hl span { display: block; color: var(--slate); font-size: 12px; }

/* ---------- Pricing plates ---------- */
.v2x20-prices { display: grid; grid-template-columns: 1fr; gap: 14px; }
.v2x20-price { position: relative; text-align: center; border: 1px solid var(--x-line); border-radius: 16px; background: var(--paper); padding: 24px 20px; box-shadow: var(--x-shadow); }
.v2x20-price.is-best { border: 2px solid var(--x-cyan-2); box-shadow: var(--x-shadow-lg); }
.v2x20-price__flag { position: absolute; top: -11px; right: 50%; transform: translateX(50%); background: linear-gradient(-135deg, #06B6D4, var(--x-cyan)); color: #fff; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; padding: 4px 14px; border-radius: 999px; }
.v2x20-price__tier { display: block; color: var(--x-cyan); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.v2x20-price__testers { display: block; color: var(--slate); font-size: 13px; margin-top: 4px; }
.v2x20-price__amt { display: block; font-family: var(--font-display); font-weight: 800; font-size: 36px; color: var(--x-navy); line-height: 1; margin: 8px 0 14px; }
.v2gpr-prose .v2x20-price__list { list-style: none; margin: 0 0 18px; padding: 0; text-align: right; }
.v2x20-price__list li { position: relative; padding: 0 24px 8px 0; margin: 0; color: var(--slate); font-size: 13.5px; line-height: 1.45; }
.v2x20-price__list li::before { content: ""; position: absolute; right: 3px; top: 5px; width: 11px; height: 6px; border-right: 2px solid var(--go); border-bottom: 2px solid var(--go); transform: rotate(45deg); }
.v2x20-price .v2x20-price__btn { display: block; background: #EEF2F6; color: var(--x-navy); padding: 11px; border-radius: 9px; text-decoration: none; font-weight: 700; font-size: 14px; }
.v2x20-price .v2x20-price__btn:hover { background: #E1E7ED; }
.v2x20-price .v2x20-price__btn.is-best { background: linear-gradient(-135deg, #06B6D4, var(--x-cyan)); color: #fff; }
.v2x20-price .v2x20-price__btn.is-best:hover { filter: brightness(1.05); }

/* ---------- Helpful links ---------- */
.v2x20-links { border: 1px solid var(--x-line); border-radius: 14px; background: #F8FAFC; padding: 16px 18px; }
.v2x20-links__lab { display: inline-flex; align-items: center; gap: 8px; color: var(--x-cyan); font-size: 12px; font-weight: 700; margin: 0 0 12px; text-transform: uppercase; letter-spacing: .04em; }
.v2x20-links__lab svg { width: 16px; height: 16px; }
.v2x20-links__grid { display: grid; grid-template-columns: 1fr; gap: 8px; }
.v2gpr-prose .v2x20-links__grid a {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 11px 14px; background: var(--paper); border: 1px solid var(--x-line);
    border-radius: 9px; text-decoration: none; color: var(--ink); font-size: 14px; font-weight: 500;
}
.v2gpr-prose .v2x20-links__grid a:hover { border-color: var(--x-cyan-line); color: var(--x-cyan); }
.v2x20-links__grid a .v2-ic { width: 18px; height: 18px; color: var(--x-cyan); flex-shrink: 0; }

/* ---------- Bottom line ---------- */
.v2x20-bottom { border: 1px solid var(--x-amber-line); border-right: 3px solid #D9910A; border-radius: 16px; background: radial-gradient(120% 90% at 0 0, var(--x-amber-tint) 0, rgba(254,246,231,0) 60%), var(--paper); padding: 22px 20px; box-shadow: var(--x-shadow); }
.v2x20-bottom__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--x-amber-deep); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; margin: 0 0 12px; }
.v2x20-bottom__tag svg { width: 18px; height: 18px; }
.v2x20-bottom__text { margin: 0; color: var(--ink); font-size: 16px; line-height: 1.75; font-weight: 500; }

/* ---------- Official docs ---------- */
.v2x20-docs { border: 1px solid var(--x-line); border-radius: 14px; background: #F8FAFC; padding: 16px 18px; }
.v2x20-docs__lab { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); font-size: 12px; font-weight: 700; margin: 0 0 12px; }
.v2x20-docs__lab svg { width: 16px; height: 16px; color: #4285F4; }
.v2x20-docs__list { display: grid; gap: 8px; }
.v2gpr-prose .v2x20-docs__list a { display: flex; align-items: center; gap: 9px; color: var(--x-cyan); font-size: 14px; text-decoration: none; line-height: 1.5; }
.v2gpr-prose .v2x20-docs__list a:hover { color: var(--x-cyan-2); text-decoration: underline; }
.v2x20-docs__list a .v2-ic { width: 16px; height: 16px; flex-shrink: 0; }

/* ---------- 2026-08-18 editorial-audit additions (x20, EN-gated markup) ----
   Every selector below only ever matches markup rendered behind
   $x20EnAudit in blog_x20_v2, so the 13 locale pages are unaffected.
   NOTE: .v2x20-note is a <p> that is a DIRECT CHILD of .v2gpr-prose, so it
   must out-specify `.v2gpr-prose > p` (0,2,1) or it silently renders at
   16.5px - hence the qualified selector.
   -------------------------------------------------------------------- */

/* Split callouts: conclusion / explanation / action need to breathe.
   Locale copies still render a single <p>, so `p + p` never matches there. */
.v2x20-mini p + p,
.v2x20-tip p + p { margin-top: 8px; }

/* Sources beside the Quick Answer, inside the dark capsule */
.v2gpr-qa__src { margin: 12px 0 0; color: #93A5B4; font-size: 12px; line-height: 1.6; }
.v2gpr-qa.v2x20-qa .v2gpr-qa__src a { color: #7DE3FF; text-decoration: underline; text-underline-offset: 2px; }
.v2gpr-qa.v2x20-qa .v2gpr-qa__src a:hover { color: #B6EEFF; }

/* "Official Rule at a Glance" sits in the hero, outside .v2gpr-prose.
   It is a <details> so phones can collapse it (the hero already carries
   the Quick Answer and its qualifier); open by default, and the inline
   script in _hero closes it under 961px. */
.v2x20-glance__lab { margin: 26px 0 10px; color: var(--x-cyan); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.v2x20-eligwrap.v2x20-glance { margin: 0; }
.v2x20-glancewrap > summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.v2x20-glancewrap > summary::-webkit-details-marker { display: none; }
.v2x20-glancewrap > summary::after {
    content: ""; width: 8px; height: 8px; border-left: 2px solid currentColor;
    border-bottom: 2px solid currentColor; transform: rotate(-45deg) translate(2px, -2px);
    transition: transform .18s ease;
}
.v2x20-glancewrap[open] > summary::after { transform: rotate(135deg) translate(2px, -2px); }
.v2x20-glancewrap > summary:focus-visible { outline: 2px solid var(--x-cyan-2); outline-offset: 3px; border-radius: 4px; }

/* Dated footnote under the documentation-boundary table */
.v2gpr-prose > p.v2x20-note { margin-top: 10px; color: var(--slate); font-size: 13px; line-height: 1.6; }

/* "Checked <date>" chip beside the Official Documentation label */
.v2x20-docs__date { margin-right: 8px; color: var(--slate); font-weight: 500; text-transform: none; letter-spacing: 0; }

/* One navigation system per device size: the rail owns desktop (it is
   hidden <=960px), the in-article TOC and the sticky chips own mobile
   (chips are hidden >=961px). This makes the TOC agree with them. */
.v2x20-toc.is-mobile-only { display: none; }
@media (max-width: 960px) {
    .v2x20-toc.is-mobile-only { display: block; }
}

/* =========================================================
   TABLET  ( >= 640px )
========================================================= */
@media (min-width: 640px) {
    .v2x20-toc__grid { grid-template-columns: 1fr 1fr; }
    .v2gpr-prose .v2x20-toc__grid a:nth-child(2) { border-top: 0; }

    .v2x20-confuse { grid-template-columns: 1fr 1fr; }
    .v2x20-reqs { grid-template-columns: repeat(3, 1fr); }
    .v2x20-highlights { grid-template-columns: repeat(3, 1fr); }
    .v2x20-links__grid { grid-template-columns: 1fr 1fr; }

    .v2x20-ask__head { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; padding: 11px 16px; background: var(--x-navy); }
    .v2x20-ask__head span { color: rgba(255,255,255,.85); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
    .v2x20-ask__row { display: grid; grid-template-columns: 1fr 1.4fr; gap: 16px; align-items: baseline; }
    .v2x20-ask__q { margin-bottom: 0; }
    .v2x20-ask__row:first-of-type { border-top: 1px solid var(--x-line); }

    .v2x20-diff__row { font-size: 16px; }
}

/* =========================================================
   DESKTOP  ( >= 980px )
========================================================= */
@media (min-width: 980px) {
    .v2x20-prices { grid-template-columns: repeat(3, 1fr); align-items: start; }
    .v2x20-price.is-best { transform: translateY(-8px); }
}

/* =========================================================
   SMALL PHONES  ( <= 380px )
========================================================= */
@media (max-width: 380px) {
    .v2x20-diff__row { font-size: 13.5px; gap: 8px; padding: 10px 12px; }
    .v2x20-diff__note { display: none; }
    .v2x20-commit { padding-right: 30px; }
    .v2x20-req__k { font-size: 18px; }
    .v2x20-price__amt { font-size: 30px; }
    .v2x20-step { gap: 10px; }
    .v2x20-step__num { width: 30px; height: 30px; font-size: 14px; }
}

/* ============================================================
   BLOG BMT V2  -  "Why You Need More Than 12 Google Play Testers"
   (/blog/why-you-need-more-than-12-testers)
   Rides the shared v2gpr- article layer. Adds a UNIQUE, mobile-first
   SAFETY-MARGIN / BUFFER motif: headroom plaques, a live "survival
   margin" meter (ink = the 12 floor, green = your buffer),
   fault-line dossier rows, coverage tags, margin-advantage cards,
   KPI tiles, a sweet-spot best-value card and pricing plates.
   Prefix: v2bmt-. Dark moments: the thesis card + the final CTA.
   One rose moment: the "zero room for error" strip.
   In-prose components are prefixed with .v2gpr-prose where they must
   beat the prose link / list-reset / strong selectors (0,1,1).
   ============================================================ */

/* Shared marker dots (check / cross) */
.v2bmt-mk {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 11px;
    margin-top: 1px;
}
.v2bmt-mk.is-check {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2bmt-mk.is-x {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 3l6 6M9 3l-6 6' stroke='%239AA6B2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Hero: safety-margin gauge ---------- */
.v2bmt-gauge {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: clamp(24px, 3.5vw, 34px);
    max-width: 830px;
}
.v2bmt-gauge__card {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 17px 16px 15px;
}
.v2bmt-gauge__card.is-featured {
    border-color: rgba(11, 138, 71, 0.32);
    background: linear-gradient(-180deg, #fff, var(--go-tint));
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 20px 40px -24px rgba(11, 138, 71, 0.34);
}
.v2bmt-gauge__pin {
    position: absolute;
    top: -9px;
    right: 16px;
    background: var(--go);
    color: #fff;
    font-size: 9px;
    padding: 3px 9px;
    border-radius: 999px;
}
.v2bmt-gauge__top { display: flex; align-items: baseline; gap: 8px; }
.v2bmt-gauge__num {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 32px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2bmt-gauge__lab { font-size: 9.5px; color: var(--faint); }
.v2bmt-gauge__bar {
    height: 6px;
    border-radius: 999px;
    background: var(--mist);
    margin: 12px 0 8px;
    overflow: hidden;
}
.v2bmt-gauge__bar i {
    display: block;
    height: 100%;
    width: var(--w, 0%);
    background: var(--go);
    border-radius: 999px;
}
.v2bmt-gauge__buf { font-size: 10px; color: var(--go-deep); }
.v2bmt-gauge__buf.is-none { color: var(--faint); }
/* Hero entrance for the gauge */
.v2gpr-hero.v2-anim .v2bmt-gauge__card {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(0.18s + var(--d, 0s));
}
.v2gpr-hero.is-in .v2bmt-gauge__card { opacity: 1; transform: none; }
.v2gpr-hero.v2-anim .v2bmt-gauge__bar i { width: 0; transition: width 0.85s cubic-bezier(0.22, 0.8, 0.26, 1) 0.55s; }
.v2gpr-hero.is-in .v2bmt-gauge__bar i { width: var(--w, 0%); }

/* ---------- Intro: key insight + myth quote + index ---------- */
.v2bmt-key {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 14px;
    padding: 20px 22px;
    margin: 28px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 18px 36px -26px rgba(10, 16, 23, 0.16);
}
.v2bmt-key__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    color: var(--go-deep);
    margin-bottom: 10px;
}
.v2bmt-key__tag svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2bmt-key__text { font-size: 16px; line-height: 1.7; color: var(--slate); }

.v2gpr-prose > p.v2bmt-lead-p { font-size: 17.5px; color: var(--ink); font-weight: 450; }

.v2bmt-quote {
    position: relative;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 30px 20px 26px;
    margin: 26px 0;
}
.v2bmt-quote__mark {
    position: absolute;
    top: 4px;
    right: 14px;
    font-family: var(--font-display);
    font-size: 54px;
    line-height: 1;
    color: #D5DCE2;
}
.v2bmt-quote__myth {
    font-size: 18px;
    font-style: italic;
    color: var(--ink);
    line-height: 1.5;
}
.v2bmt-quote__bust { margin-top: 12px; font-size: 15px; color: var(--slate); }

.v2bmt-index {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 30px 0;
}
.v2bmt-index__label { font-size: 10px; color: var(--faint); margin-bottom: 12px; }
.v2bmt-index__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 18px;
}
.v2gpr-prose .v2bmt-index__item {
    display: flex;
    align-items: baseline;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 500;
    color: var(--slate);
    text-decoration: none;
    padding: 8px 0;
    transition: color 0.18s ease;
}
.v2gpr-prose .v2bmt-index__item:hover { color: var(--ink); }
.v2bmt-index__item .v2-mono { font-size: 9.5px; color: var(--go-deep); flex-shrink: 0; }

/* ---------- Section 1: requirement plaques + thesis + means ---------- */
.v2bmt-reqs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2bmt-req {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 20px 12px;
}
.v2bmt-req__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: grid;
    place-items: center;
    color: var(--slate);
}
.v2bmt-req__ic svg { width: 22px; height: 22px; }
.v2bmt-req strong { font-size: 14px; color: var(--ink); }

.v2bmt-thesis {
    position: relative;
    overflow: hidden;
    background: var(--ink);
    border-radius: 18px;
    padding: 26px 28px;
    margin: 26px 0;
}
.v2bmt-thesis::after {
    content: '';
    position: absolute;
    top: -30px;
    left: -30px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: rgba(62, 207, 129, 0.09);
}
.v2bmt-thesis__tag {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    color: #7A8794;
    margin-bottom: 12px;
}
.v2bmt-thesis__tag svg { width: 16px; height: 16px; color: #3ECF81; }
.v2bmt-thesis__line {
    position: relative;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.15rem, 1rem + 0.8vw, 1.5rem);
    line-height: 1.35;
    color: #fff;
}
.v2bmt-thesis__min { color: #A9B4BF; }
.v2bmt-thesis__go { color: #3ECF81; }

.v2gpr-prose .v2bmt-means { display: grid; gap: 10px; margin: 20px 0; }
.v2bmt-means li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15.5px;
    line-height: 1.5;
    color: var(--slate);
}

.v2bmt-turn { border-right: 3px solid var(--line); padding: 2px 18px 2px 0; margin: 26px 0; }
.v2bmt-turn__q { font-size: 16px; color: var(--ink); }
.v2bmt-turn__a { font-size: 16px; font-style: italic; color: var(--slate); margin-top: 4px; }

/* ---------- Section 2: rose danger + fault-line dossiers ---------- */
.v2bmt-danger {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-radius: 14px;
    padding: 16px 20px;
    margin: 24px 0;
}
.v2bmt-danger__ic {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: rgba(180, 35, 24, 0.1);
    display: grid;
    place-items: center;
    color: #B42318;
}
.v2bmt-danger__ic svg { width: 20px; height: 20px; }
.v2bmt-danger p { font-size: 16px; color: #B42318; font-weight: 600; line-height: 1.4; }
.v2gpr-prose .v2bmt-danger strong { color: #B42318; }

.v2bmt-fault {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
    margin: 18px 0;
}
.v2bmt-fault__head { display: flex; align-items: flex-start; gap: 14px; }
.v2bmt-fault__no {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--ink);
    color: #fff;
    font-size: 12.5px;
    display: grid;
    place-items: center;
}
.v2bmt-fault__h {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    letter-spacing: -0.012em;
    line-height: 1.32;
    color: var(--ink);
    padding-top: 6px;
}
.v2bmt-fault__body { margin-top: 15px; }
.v2bmt-fault__cap { font-size: 14.5px; color: var(--slate); margin: 0 0 12px; }
.v2bmt-fault__note {
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13.5px;
    line-height: 1.55;
    margin-top: 14px;
}
.v2bmt-fault__note.is-cost { background: var(--mist); border: 1px solid var(--line); color: var(--slate); }
.v2bmt-fault__note.is-gain { background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.18); color: var(--go-deep); }
.v2gpr-prose .v2bmt-fault__note.is-gain strong { color: var(--go-deep); }

.v2bmt-xchips, .v2bmt-cover, .v2bmt-signals { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 4px; }
.v2bmt-xchips span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 8px 6px 12px;
}
.v2bmt-xchips span i,
.v2bmt-forget li i {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    border-radius: 50%;
    background: #EEF1F4 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 3l6 6M9 3l-6 6' stroke='%239AA6B2' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/8px no-repeat;
}
.v2bmt-cover span {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 999px;
    padding: 7px 12px;
}
.v2bmt-signals span {
    font-size: 12.5px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 8px 12px;
}
.v2gpr-prose .v2bmt-forget { display: grid; gap: 7px; margin: 0 0 4px; }
.v2bmt-forget li { display: flex; align-items: center; gap: 9px; font-size: 14.5px; color: var(--slate); }

/* ---------- Section 3: SIGNATURE survival-margin meter ---------- */
.v2bmt-sim {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 24px 24px 22px;
    margin: 28px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 24px 48px -26px rgba(10, 16, 23, 0.16);
}
.v2bmt-sim__top { margin-bottom: 18px; }
.v2bmt-sim__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    color: var(--go-deep);
    margin-bottom: 8px;
}
.v2bmt-sim__tag svg { width: 16px; height: 16px; }
.v2bmt-sim__sub { font-size: 14.5px; color: var(--slate); line-height: 1.5; }
.v2bmt-sim__tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 20px; }
.v2 .v2bmt-sim__tab {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 12px 8px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: var(--mist);
    color: var(--slate);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
    font-variant-numeric: tabular-nums;
}
.v2 .v2bmt-sim__tab small {
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2 .v2bmt-sim__tab:hover { border-color: #C9D2DA; }
.v2 .v2bmt-sim__tab.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2 .v2bmt-sim__tab.is-on small { color: #93A0AC; }
.v2bmt-sim__grid { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.v2bmt-sim__grid i {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--mist);
    border: 1px solid var(--line);
    transition: background 0.3s ease, border-color 0.3s ease;
}
.v2bmt-sim__grid i.is-req { background: var(--ink); border-color: var(--ink); }
.v2bmt-sim__grid i.is-buf { background: var(--go); border-color: var(--go); }
.v2bmt-sim__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-bottom: 16px;
    font-size: 10px;
    color: var(--faint);
}
.v2bmt-sim__legend span { display: inline-flex; align-items: center; gap: 7px; }
.v2bmt-sim__legend b { width: 12px; height: 12px; border-radius: 4px; }
.v2bmt-sim__legend b.is-req { background: var(--ink); }
.v2bmt-sim__legend b.is-buf { background: var(--go); }
.v2bmt-sim__read { border-top: 1px solid var(--line); padding-top: 16px; }
.v2bmt-sim__line { font-size: 16px; color: var(--slate); line-height: 1.4; }
.v2gpr-prose .v2bmt-sim__n {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    color: var(--go-deep);
    letter-spacing: -0.02em;
    margin-left: 6px;
    font-variant-numeric: tabular-nums;
}
.v2bmt-sim__note { margin-top: 8px; font-size: 10.5px; color: var(--faint); }

/* ---------- Section 3: margin-advantage cards ---------- */
.v2bmt-benes { display: grid; gap: 14px; margin: 28px 0; }
.v2bmt-bene {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2bmt-bene__no {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    display: grid;
    place-items: center;
}
.v2bmt-bene__body h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    color: var(--ink);
    margin: 2px 0 8px;
    line-height: 1.3;
}
.v2bmt-bene__body p { font-size: 14.5px; color: var(--slate); line-height: 1.6; margin: 0 0 8px; }
.v2bmt-bene__body p:last-child { margin-bottom: 0; }
.v2gpr-prose .v2bmt-bene__key { color: var(--go-deep); font-weight: 500; }

/* ---------- Section 4: KPI tiles + best value + why20 + info ---------- */
.v2bmt-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2bmt-kpi {
    text-align: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 12px;
}
.v2bmt-kpi__viz { display: block; height: 26px; margin-bottom: 10px; }
.v2bmt-kpi__viz svg { height: 24px; width: auto; }
.v2bmt-kpi__n {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    color: var(--ink);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.v2bmt-kpi__lab { display: block; font-size: 9.5px; color: var(--faint); margin-top: 6px; }

.v2bmt-best {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 18px;
    padding: 24px 26px;
    margin: 26px 0;
    text-align: center;
}
.v2bmt-best__chip {
    display: inline-block;
    background: var(--go);
    color: #fff;
    font-size: 9.5px;
    padding: 4px 12px;
    border-radius: 999px;
    margin-bottom: 12px;
}
.v2bmt-best__h {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.2rem, 1.05rem + 0.7vw, 1.5rem);
    color: var(--ink);
    line-height: 1.25;
    margin: 0 0 10px;
}
.v2bmt-best__p { font-size: 15px; color: var(--go-deep); line-height: 1.55; margin: 0 auto; max-width: 520px; }

.v2gpr-prose .v2bmt-why20 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
    margin: 24px 0;
}
.v2bmt-why20 li {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14.5px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 14px;
}

.v2bmt-info {
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 12px;
    padding: 16px 20px;
    margin: 24px 0;
}
.v2bmt-info p { font-size: 15px; color: var(--slate); line-height: 1.6; }

/* ---------- Section 5: capability grid + safe grid ---------- */
.v2bmt-provide {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 24px 26px;
    margin: 24px 0;
}
.v2gpr-prose .v2bmt-provide__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    margin: 0;
}
.v2bmt-provide__grid li { display: flex; align-items: center; gap: 10px; font-size: 14.5px; color: var(--slate); }

.v2gpr-prose .v2bmt-safe {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 16px;
    margin: 20px 0;
}
.v2bmt-safe li { display: flex; align-items: center; gap: 10px; font-size: 15px; color: var(--slate); }

/* ---------- Section 7: pricing plates ---------- */
.v2bmt-pricing {
    margin: 46px 0 0;
    padding: 28px 24px 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 22px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2bmt-pricing__head { text-align: center; margin-bottom: 24px; }
.v2bmt-pricing__eyebrow {
    display: inline-block;
    font-size: 10px;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 999px;
    padding: 5px 12px;
    margin-bottom: 12px;
}
.v2bmt-pricing__h {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.3rem, 1.1rem + 1vw, 1.7rem);
    color: var(--ink);
    line-height: 1.2;
    margin: 0 0 8px;
}
.v2bmt-pricing__sub { font-size: 14.5px; color: var(--slate); line-height: 1.55; max-width: 520px; margin: 0 auto; }
.v2bmt-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
    align-items: start;
}
.v2bmt-plan {
    position: relative;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 20px;
    text-align: center;
}
.v2bmt-plan.is-best {
    background: linear-gradient(-180deg, #fff, var(--go-tint));
    border-color: rgba(11, 138, 71, 0.3);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -26px rgba(11, 138, 71, 0.38);
}
.v2bmt-plan__badge {
    position: absolute;
    top: -10px;
    right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    font-size: 9px;
    padding: 4px 12px;
    border-radius: 999px;
    white-space: nowrap;
}
.v2bmt-plan__name { font-size: 10px; color: var(--faint); letter-spacing: 0.12em; }
.v2bmt-plan__price {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    color: var(--ink);
    letter-spacing: -0.02em;
    margin: 8px 0 2px;
    font-variant-numeric: tabular-nums;
}
.v2bmt-plan__testers { font-size: 13.5px; font-weight: 600; color: var(--go-deep); margin-bottom: 16px; }
.v2gpr-prose .v2bmt-plan__feat { display: grid; gap: 8px; margin: 0 0 18px; text-align: right; }
.v2bmt-plan__feat li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--slate); }
.v2bmt-plan__feat .v2bmt-mk { width: 17px; height: 17px; background-size: 10px; margin-top: 0; }
.v2gpr-prose .v2bmt-plan__cta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 11px 14px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--ink);
    font-weight: 650;
    font-size: 13.5px;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2gpr-prose .v2bmt-plan__cta:hover { border-color: #C9D2DA; }
.v2gpr-prose .v2bmt-plan__cta.is-best { background: var(--go); border-color: var(--go); color: #fff; }
.v2gpr-prose .v2bmt-plan__cta.is-best:hover { background: var(--go-deep); border-color: var(--go-deep); }
.v2bmt-plan__cta .v2-ic { width: 16px; height: 16px; }
.v2bmt-guar {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 26px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-radius: 14px;
    padding: 16px 20px;
}
.v2bmt-guar span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--go-deep);
    font-weight: 600;
}
.v2bmt-guar svg { width: 18px; height: 18px; flex-shrink: 0; }

/* ---------- Tablet ---------- */
@media (max-width: 640px) {
    .v2bmt-gauge__num { font-size: 28px; }
    .v2bmt-key__text { font-size: 15px; }
    .v2bmt-quote__myth { font-size: 16.5px; }
    .v2bmt-sim { padding: 20px 18px 18px; border-radius: 18px; }
    .v2bmt-sim__grid i { width: 18px; height: 18px; }
    .v2bmt-sim__line { font-size: 15px; }
    .v2gpr-prose .v2bmt-sim__n { font-size: 30px; }
    .v2 .v2bmt-sim__tab { font-size: 19px; padding: 10px 6px; }
    .v2bmt-fault { padding: 20px 18px; }
    .v2bmt-bene { padding: 18px 18px; gap: 13px; }
    .v2bmt-bene__no { width: 34px; height: 34px; font-size: 16px; }
    .v2bmt-provide, .v2bmt-best { padding: 20px 20px; }
    .v2bmt-plans { grid-template-columns: minmax(0, 1fr); max-width: 400px; margin-inline: auto; }
    .v2bmt-pricing { padding: 24px 18px; }
    .v2bmt-guar { gap: 10px 20px; padding: 14px 16px; }
    .v2bmt-guar span { font-size: 12.5px; }
}

/* ---------- Phone ---------- */
@media (max-width: 480px) {
    .v2bmt-gauge { grid-template-columns: minmax(0, 1fr); }
    .v2bmt-gauge__card { padding: 15px 16px 14px; }
    .v2bmt-gauge__num { font-size: 30px; }
    .v2bmt-index__grid { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    .v2bmt-reqs { grid-template-columns: minmax(0, 1fr); }
    .v2bmt-req { flex-direction: row; justify-content: center; gap: 12px; padding: 15px 16px; }
    .v2gpr-prose .v2bmt-why20,
    .v2gpr-prose .v2bmt-provide__grid,
    .v2gpr-prose .v2bmt-safe { grid-template-columns: minmax(0, 1fr); }
    .v2bmt-kpi { padding: 16px 10px; }
    .v2bmt-kpi__n { font-size: 22px; }
    .v2bmt-thesis, .v2bmt-key, .v2bmt-quote { padding-right: 20px; padding-left: 20px; }
    .v2bmt-thesis { padding: 22px 20px; }
    .v2bmt-bene { grid-template-columns: minmax(0, 1fr); }
    .v2bmt-bene__no { width: 32px; height: 32px; font-size: 15px; }
}

/* ---------- Small phones ---------- */
@media (max-width: 380px) {
    .v2bmt-sim__grid { gap: 5px; }
    .v2bmt-sim__grid i { width: 16px; height: 16px; border-radius: 5px; }
    .v2 .v2bmt-sim__tab { font-size: 17px; }
    .v2bmt-plan__price, .v2bmt-gauge__num { font-size: 27px; }
    .v2bmt-xchips span, .v2bmt-cover span, .v2bmt-signals span { font-size: 11.5px; }
}

/* Reduced motion: pin final states for this block */
@media (prefers-reduced-motion: reduce) {
    .v2bmt-gauge__bar i,
    .v2bmt-sim__grid i { transition: none; }
}
/* ============= END BLOG BMT V2 ============= */

/* =============================================================
   BLOG ATC V2  -  "Added 12 Testers but 0 Opted In?"
   (/blog/added-12-testers-0-opted-in-google-play)
   Unique components for the opt-in / drop-off post. Reuses the
   shared v2gpr- article layer (prose, h2/h3, qa, callout family,
   mk markers, stats, toc, faq, bottom, docs, rail, chips, scta,
   author, related, cta). Prefix: v2atc-. Two dark moments (intro
   quick answer + "dependable way" box) plus the final CTA are the
   only dark surfaces; ONE rose moment is the intro danger callout
   (v2gpr-danger). Everything v2atc- below is LIGHT + green.
   Signature pieces: the opt-in LEAK FUNNEL, the invited/opted/
   active state cards, the vertical opt-in chain, the 10-cause
   case files, and the calculator readout.
   ============================================================= */

/* Block-scoped reset for lists/blockquote this block introduces
   that the .v2gpr-prose reset (ul/ol/figure/figcaption) misses. */
.v2atc-plans ul, .v2atc-rc__list, .v2atc-quote blockquote {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Section answer capsule ---------- */
.v2gpr-prose > p.v2atc-ans {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-right: 3px solid var(--go);
    border-radius: 12px 0 0 12px;
    padding: 14px 18px;
    font-size: 15.5px;
    color: var(--ink);
    font-weight: 500;
}
.v2gpr-prose > p.v2atc-ans strong { color: var(--go-deep); }
.v2gpr-prose > p.v2atc-ans.v2atc-ans--alert {
    background: var(--mist);
    border-color: var(--line);
    border-right-color: var(--ink);
}
.v2gpr-prose > p.v2atc-ans.v2atc-ans--alert strong { color: var(--ink); }

/* ---------- SIGNATURE: the opt-in leak funnel ---------- */
.v2atc-funnel {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px 18px;
    margin: 8px 0 26px;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2atc-funnel__label {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.4;
    color: var(--go-deep);
    margin-bottom: 18px;
}
.v2atc-funnel__label svg { width: 17px; height: 17px; flex-shrink: 0; }
.v2atc-funnel__stages { display: flex; flex-direction: column; gap: 15px; }
.v2atc-fstage { display: flex; flex-direction: column; gap: 7px; }
.v2atc-fbar {
    display: flex;
    align-items: center;
    gap: 12px;
    width: var(--w, 100%);
    min-width: 210px;
    min-height: 48px;
    padding: 9px 16px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2atc-fbar.is-count {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
}
.v2atc-fbar__n {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--paper);
    border: 1px solid var(--line);
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 14px;
    color: var(--ink);
}
.v2atc-fbar__n svg { width: 17px; height: 17px; color: var(--slate); }
.v2atc-fbar.is-count .v2atc-fbar__n {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2atc-fbar.is-count .v2atc-fbar__n svg { color: #fff; }
.v2atc-fbar__t {
    font-size: 13px;
    font-weight: 650;
    line-height: 1.3;
    color: var(--ink);
}
.v2atc-fnote {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding-right: 3px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2atc-fnote svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; color: var(--faint); }
.v2atc-fnote b { color: var(--ink); font-weight: 700; }
.v2atc-fnote.is-count { color: var(--go-deep); font-weight: 500; }
.v2atc-fnote.is-count svg { color: var(--go); }
.v2atc-funnel__foot {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 17px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2atc-funnel__foot svg { width: 16px; height: 16px; color: var(--ink); flex-shrink: 0; margin-top: 2px; }
/* Funnel entrance: stages rise in, staggered */
.v2atc-funnel.v2-anim .v2atc-fstage {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2atc-funnel.v2-anim .v2atc-fstage:nth-child(1) { transition-delay: 0.04s; }
.v2atc-funnel.v2-anim .v2atc-fstage:nth-child(2) { transition-delay: 0.12s; }
.v2atc-funnel.v2-anim .v2atc-fstage:nth-child(3) { transition-delay: 0.20s; }
.v2atc-funnel.v2-anim .v2atc-fstage:nth-child(4) { transition-delay: 0.28s; }
.v2atc-funnel.is-in .v2atc-fstage { opacity: 1; transform: none; }

/* ---------- Invited / opted-in / installed state cards ---------- */
.v2atc-states {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2atc-state {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-top: 3px solid #D6DDE3;
    border-radius: 14px;
    padding: 20px 20px 18px;
}
.v2atc-state.is-mid { border-top-color: var(--ink); }
.v2atc-state.is-pass { border-top-color: var(--go); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2atc-state__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    margin-bottom: 12px;
}
.v2atc-state__ic svg { width: 22px; height: 22px; }
.v2atc-state.is-pass .v2atc-state__ic { background: #fff; border-color: rgba(11, 138, 71, 0.22); color: var(--go); }
.v2atc-state h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15.5px;
    color: var(--ink);
    margin: 0 0 6px;
}
.v2atc-state p {
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    margin: 0 0 13px;
}
.v2atc-state__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 9.5px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
}
.v2atc-state__tag svg { width: 12px; height: 12px; }
.v2atc-state__tag.is-mid { color: #fff; background: var(--ink); border-color: var(--ink); }
.v2atc-state__tag.is-pass { color: var(--go-deep); background: #fff; border-color: rgba(11, 138, 71, 0.28); }

/* ---------- Interactive tool shell (calc / diagnoser / advisor) ---------- */
.v2atc-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 10px 30px -22px rgba(10, 16, 23, 0.2);
}
.v2atc-tool__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 20px 24px;
}
.v2atc-tool__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 5px 11px;
    font-size: 9.5px;
    margin-bottom: 12px;
}
.v2atc-tool__tag svg { width: 14px; height: 14px; }
.v2atc-tool__head h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 0 0 4px;
}
.v2atc-tool__head p { font-size: 13.5px; color: var(--slate); margin: 0; }
.v2atc-tool__body { padding: 22px 24px; }
.v2atc-tool__q { font-size: 10.5px; color: var(--faint); margin: 0 0 11px; }
.v2atc-tool__q.is-mt { margin-top: 22px; }

/* Option pills (calculator counts + advisor situations) */
.v2atc-opts { display: flex; flex-wrap: wrap; gap: 9px; }
.v2atc-opts--stack { flex-direction: column; }
.v2atc-opt { flex: 1 1 auto; min-width: 120px; cursor: pointer; }
.v2atc-opts--stack .v2atc-opt { flex: 1 1 100%; }
.v2atc-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2atc-opt__face {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 100%;
    padding: 12px 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.v2atc-opt__face svg { width: 18px; height: 18px; color: var(--faint); flex-shrink: 0; transition: color 0.18s ease; }
.v2atc-opt:hover .v2atc-opt__face { border-color: #C9D2DA; background: var(--paper); }
.v2atc-opt input:checked + .v2atc-opt__face {
    border-color: var(--go);
    background: var(--go-tint);
    color: var(--go-deep);
    box-shadow: 0 4px 14px -8px rgba(11, 138, 71, 0.4);
}
.v2atc-opt input:checked + .v2atc-opt__face svg { color: var(--go); }
.v2 .v2atc-opt input:focus-visible + .v2atc-opt__face { outline: 2px solid var(--go); outline-offset: 2px; }

/* Checklist (calculator steps) */
.v2atc-check {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    cursor: pointer;
    margin-bottom: 9px;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2atc-check:hover { border-color: #C9D2DA; background: var(--paper); }
.v2atc-check input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2atc-check__box {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin-top: 1px;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2atc-check__box svg { width: 14px; height: 14px; opacity: 0; transform: scale(0.6); transition: opacity 0.18s ease, transform 0.18s ease; }
.v2atc-check input:checked + .v2atc-check__box { background: var(--go); border-color: var(--go); }
.v2atc-check input:checked + .v2atc-check__box svg { opacity: 1; transform: scale(1); }
.v2 .v2atc-check input:focus-visible + .v2atc-check__box { outline: 2px solid var(--go); outline-offset: 2px; }
.v2atc-check__txt { font-size: 13.5px; line-height: 1.5; color: var(--slate); }
.v2atc-check__txt b { color: var(--ink); font-weight: 700; }
.v2atc-check input:checked ~ .v2atc-check__txt { color: var(--ink); }

/* Calculator readout */
.v2atc-calc {
    display: none;
    margin-top: 22px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: linear-gradient(-180deg, var(--paper), var(--go-tint));
    padding: 22px 24px;
}
.v2atc-calc.show { display: block; animation: v2gprIn 0.35s ease; }
.v2atc-calc__verdict {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 18px;
}
.v2atc-calc__ring {
    flex-shrink: 0;
    position: relative;
    width: 90px;
    height: 90px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: conic-gradient(var(--atcclr, #0B8A47) var(--atcdeg, 0deg), #E5EAEE 0deg);
}
.v2atc-calc__ring::before {
    content: '';
    position: absolute;
    inset: 8px;
    background: var(--paper);
    border-radius: 50%;
}
.v2atc-calc__ring b {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 27px;
    line-height: 1;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2atc-calc__ring span {
    position: relative;
    z-index: 1;
    font-size: 8px;
    color: var(--slate);
    margin-top: 3px;
}
.v2atc-calc__headline { flex: 1; min-width: 0; }
.v2atc-calc__rt {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2atc-calc__headline p { font-size: 13.5px; line-height: 1.5; color: var(--slate); margin: 0; }
.v2atc-mf { display: flex; flex-direction: column; gap: 9px; }
.v2atc-mf__row {
    display: grid;
    grid-template-columns: 118px minmax(0, 1fr) 34px;
    gap: 11px;
    align-items: center;
}
.v2atc-mf__lab { font-size: 9px; color: var(--slate); }
.v2atc-mf__track {
    height: 13px;
    background: #E5EAEE;
    border-radius: 7px;
    overflow: hidden;
}
.v2atc-mf__fill {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 7px;
    background: #AEBDCB;
    transition: width 0.55s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2atc-mf__fill.is-count { background: var(--go); }
.v2atc-mf__val {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 14px;
    color: var(--ink);
    text-align: left;
    font-variant-numeric: tabular-nums;
}
.v2atc-calc__note {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px dashed rgba(11, 138, 71, 0.3);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2atc-calc__note b { color: var(--go-deep); }
.v2atc-calc__disc {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 14px 0 0;
    padding: 11px 13px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--slate);
}
.v2atc-calc__disc svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; color: var(--faint); }
.v2atc-calc__disc b { color: var(--ink); font-weight: 700; }

/* ---------- The 4-stage opt-in chain (vertical rail) ---------- */
.v2atc-chain { margin: 24px 0; }
.v2atc-cstep {
    position: relative;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 16px;
    padding: 0 0 22px 0;
}
.v2atc-cstep::before {
    content: '';
    position: absolute;
    right: 19px;
    top: 40px;
    bottom: 0;
    width: 2px;
    background: #E5EAEE;
}
.v2atc-cstep:last-child { padding-bottom: 0; }
.v2atc-cstep:last-child::before { display: none; }
.v2atc-cstep__n {
    position: relative;
    z-index: 1;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--paper);
    border: 1.5px solid var(--go);
    color: var(--go-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 16px;
}
.v2atc-cstep__n svg { width: 20px; height: 20px; }
.v2atc-cstep.is-count .v2atc-cstep__n {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2atc-cstep__body { min-width: 0; padding-top: 2px; }
.v2atc-cstep__body h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin: 0 0 6px;
    line-height: 1.35;
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}
.v2atc-cstep__body p { font-size: 14.5px; line-height: 1.7; color: var(--slate); margin: 0; }
.v2atc-pill {
    font-size: 8.5px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
}
.v2atc-pill.is-count { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }

/* =============================================================
   BLOG GGC V2  -  "Google Group Closed Testing Not Working?"
   Unique internal components for the opt-in troubleshooting post.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns and horizontal flows. Signature motif =
   ACCESS GATES + a DIAGNOSTIC CONSOLE - a two-gate checkpoint
   flow, an "App not available" phone card, an identity-match
   triad, a troubleshooting console for the decoder / checker /
   diagnoser, propagation-delay bars, blocker cards, an address
   compare, a progress checklist and a stacked comparison table.
   Green = pass / member / go, rose = blocked / danger (the error,
   the "high risk" cells), amber = pending / caution / timing,
   blue = the "your configuration" diagnosis. Light components
   only; the two dark moments stay the shared .v2gpr-qa Quick
   Answer capsule and the final .v2-cta band. Prefix: v2ggc-.
============================================================= */
.v2ggc-gates, .v2ggc-quickwin, .v2ggc-quote, .v2ggc-error, .v2ggc-tool,
.v2ggc-triad, .v2ggc-delays, .v2ggc-blockers, .v2ggc-addr, .v2ggc-table,
.v2ggc-setup, .v2ggc-shot, .v2ggc-locate, .v2ggc-steps, .v2ggc-plans,
.v2ggc-bottom, .v2ggc-docs {
    --g-rose:      #B42318;
    --g-rose-deep: #911D15;
    --g-rose-tint: #FDF1F0;
    --g-rose-line: #F3C9C4;
    --g-amber-deep: #92400E;
    --g-amber-body: #7C5310;
    --g-amber-tint: #FEF6E7;
    --g-amber-line: #F5DFA8;
    --g-blue:      #1D4ED8;
    --g-blue-deep: #1E40AF;
    --g-blue-tint: #EFF6FF;
    --g-blue-line: #C7DBFF;
    --g-shadow:    0 1px 2px rgba(10, 16, 23, .04), 0 12px 28px -16px rgba(10, 16, 23, .16);
    --g-shadow-lg: 0 2px 6px rgba(10, 16, 23, .05), 0 24px 48px -22px rgba(10, 16, 23, .22);
    margin: 30px 0;
}

/* h4 / blockquote / table are outside the base reset (gotcha 19 / gotcha 1) */
.v2ggc-rc h4, .v2ggc-locate__card h4 { margin: 0; }
.v2ggc-quote blockquote { margin: 0; }
.v2ggc-cmp { margin: 0; border-collapse: collapse; }

/* ---------- Hero: the "#1 cause" fact plaque ---------- */
.v2ggc-fact--cause b { color: var(--g-rose); }

/* ---------- Answer-first lead capsule (docks under each H2) ---------- */
.v2gpr-prose > p.v2ggc-answer {
    position: relative;
    margin: 4px 0 22px;
    padding: 15px 20px 15px 18px;
    font-size: 15.5px;
    line-height: 1.68;
    font-weight: 500;
    color: var(--ink);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-right: 3px solid var(--go);
    border-radius: 12px 0 0 12px;
}
.v2gpr-prose > p.v2ggc-answer strong { color: var(--go-deep); }
.v2gpr-prose > p.v2ggc-answer--amber {
    color: var(--g-amber-body);
    background: var(--g-amber-tint);
    border-color: var(--g-amber-line);
    border-right-color: #D9820A;
}
.v2gpr-prose > p.v2ggc-answer--amber strong { color: var(--g-amber-deep); }
.v2gpr-prose > p.v2ggc-answer--rose {
    color: var(--g-rose-deep);
    background: var(--g-rose-tint);
    border-color: var(--g-rose-line);
    border-right-color: var(--g-rose);
}
.v2gpr-prose > p.v2ggc-answer--rose strong { color: var(--g-rose-deep); }

/* ============================================================
   SIGNATURE: two-gate access checkpoint flow
============================================================ */
.v2ggc-gates {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 18px;
    box-shadow: var(--g-shadow);
}
.v2ggc-gates__label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 0.1em;
    color: var(--go-deep);
    margin: 0 0 18px;
}
.v2ggc-gates__label svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2ggc-gates__flow {
    display: grid;
    gap: 12px;
}
.v2ggc-gate {
    position: relative;
    display: grid;
    grid-template-columns: 46px 1fr;
    grid-template-rows: auto auto;
    column-gap: 14px;
    align-items: center;
    padding: 12px 14px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2ggc-gate__ic {
    grid-row: 1 / 3;
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2ggc-gate__ic svg { width: 23px; height: 23px; }
.v2ggc-gate.is-gate .v2ggc-gate__ic { background: var(--ink); border-color: var(--ink); color: #fff; }
.v2ggc-gate.is-pass { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2ggc-gate.is-pass .v2ggc-gate__ic { background: var(--go); border-color: var(--go); color: #fff; }
.v2ggc-gate__tag {
    grid-column: 2;
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2ggc-gate.is-gate .v2ggc-gate__tag { color: var(--ink); }
.v2ggc-gate.is-pass .v2ggc-gate__tag { color: var(--go-deep); }
.v2ggc-gate__t {
    grid-column: 2;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.2;
}
.v2ggc-gate__s {
    grid-column: 2;
    font-size: 12px;
    color: var(--slate);
    margin-top: 2px;
    line-height: 1.35;
}
.v2ggc-gates__foot {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 16px 0 0;
    padding-top: 15px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2ggc-gates__foot svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--go); margin-top: 1px; }

/* ---------- Quick-win priority box ---------- */
.v2ggc-quickwin {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 16px;
    padding: 20px 20px 18px;
}
.v2ggc-quickwin__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 0.09em;
    color: var(--go-deep);
    margin: 0 0 14px;
}
.v2ggc-quickwin__tag svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2ggc-quickwin__list {
    display: grid;
    gap: 11px;
}
.v2ggc-quickwin__list li {
    display: grid;
    grid-template-columns: 24px 1fr;
    gap: 11px;
    align-items: start;
    font-size: 14.5px;
    line-height: 1.6;
    color: #185C39;
}
.v2ggc-quickwin__list li strong { color: #0B4227; font-weight: 650; }
.v2ggc-quickwin__n {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--go);
    color: #fff;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
}
.v2ggc-quickwin__foot {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 15px 0 0;
    padding-top: 14px;
    border-top: 1px solid rgba(11, 138, 71, 0.2);
    font-size: 13px;
    line-height: 1.6;
    color: #185C39;
}
.v2ggc-quickwin__foot strong { color: #0B4227; }
.v2ggc-quickwin__foot svg { width: 17px; height: 17px; flex-shrink: 0; color: var(--go-deep); margin-top: 1px; }

/* ---------- Google citation quote ---------- */
.v2ggc-quote {
    position: relative;
    padding: 20px 24px 18px 22px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px 0 0 14px;
}
.v2ggc-quote__mark {
    position: absolute;
    top: 14px;
    left: 16px;
    color: var(--line);
}
.v2ggc-quote__mark svg { width: 30px; height: 30px; }
.v2ggc-quote blockquote {
    position: relative;
    z-index: 1;
    font-size: 15.5px;
    line-height: 1.65;
    font-style: italic;
    color: var(--ink);
}
.v2ggc-quote figcaption {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 12px;
    font-size: 11px;
    letter-spacing: 0.05em;
    color: var(--faint);
}
.v2ggc-quote figcaption svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--slate); }

/* ============================================================
   "App not available" phone error card
============================================================ */
.v2ggc-error {
    display: grid;
    gap: 18px;
    align-items: center;
    padding: 22px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--g-shadow);
}
.v2ggc-error__phone {
    justify-self: center;
    width: 168px;
    max-width: 100%;
    position: relative;
    text-align: center;
    padding: 30px 18px 22px;
    background: var(--g-rose-tint);
    border: 1px solid var(--g-rose-line);
    border-radius: 22px;
}
.v2ggc-error__notch {
    position: absolute;
    top: 10px;
    right: 50%;
    transform: translateX(50%);
    width: 42px;
    height: 5px;
    border-radius: 999px;
    background: rgba(180, 35, 24, 0.28);
}
.v2ggc-error__glyph {
    display: inline-flex;
    color: var(--g-rose);
    margin-bottom: 10px;
}
.v2ggc-error__glyph svg { width: 38px; height: 38px; }
.v2ggc-error__msg {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
    color: var(--g-rose-deep);
}
.v2ggc-error__sub {
    display: block;
    margin-top: 7px;
    font-size: 11px;
    line-height: 1.4;
    color: var(--g-rose);
}
.v2ggc-error__body h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 12px;
}
.v2ggc-error__cause {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    margin-bottom: 10px;
}
.v2ggc-error__cause:last-child { margin-bottom: 0; }
.v2ggc-error__cause strong { color: var(--ink); }
.v2ggc-error__k {
    font-size: 9.5px;
    letter-spacing: 0.08em;
    color: var(--g-rose-deep);
    background: var(--g-rose-tint);
    border: 1px solid var(--g-rose-line);
    border-radius: 6px;
    padding: 4px 8px;
    white-space: nowrap;
}

/* ============================================================
   Interactive console shell (decoder / checker / diagnoser)
============================================================ */
.v2ggc-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--g-shadow-lg);
}
.v2ggc-tool__head {
    padding: 18px 20px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2ggc-tool__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    letter-spacing: 0.1em;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 6px;
    padding: 4px 9px;
    margin-bottom: 11px;
}
.v2ggc-tool__tag svg { width: 14px; height: 14px; }
.v2ggc-tool__head h3 {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2ggc-tool__head p { font-size: 13.5px; line-height: 1.5; color: var(--slate); }
.v2ggc-tool__body { padding: 18px 20px 20px; }
.v2ggc-tool__label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.06em;
    color: var(--faint);
    margin-bottom: 11px;
}

/* option tiles (decoder) */
.v2ggc-opts { display: grid; gap: 10px; }
.v2 .v2ggc-opt {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 11px;
    align-items: start;
    width: 100%;
    text-align: right;
    padding: 13px 14px;
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    font-family: var(--font-body);
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2ggc-opt:hover { border-color: #C9D2DA; background: var(--mist); }
.v2 .v2ggc-opt.is-active {
    border-color: var(--go);
    background: var(--go-tint);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.12);
}
.v2ggc-opt__ic {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--slate);
}
.v2ggc-opt__ic svg { width: 19px; height: 19px; }
.v2 .v2ggc-opt.is-active .v2ggc-opt__ic { background: var(--paper); border-color: rgba(11, 138, 71, 0.28); color: var(--go); }
.v2ggc-opt b { display: block; font-weight: 650; font-size: 13.5px; color: var(--ink); margin-bottom: 2px; }
.v2ggc-opt > span > span { font-size: 12px; color: var(--slate); line-height: 1.4; }

/* result region: empty state + result cards */
.v2ggc-tool__result { margin-top: 16px; }
.v2ggc-empty {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 15px 16px;
    background: var(--mist);
    border: 1px dashed #CFD6DD;
    border-radius: 12px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2ggc-empty svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--faint); }
.v2ggc-rc {
    display: none;
    padding: 17px 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2ggc-rc.show { display: block; animation: v2CardIn 0.35s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2ggc-rc__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.v2ggc-rc__ic {
    width: 42px;
    height: 42px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    color: #fff;
}
.v2ggc-rc__ic svg { width: 24px; height: 24px; }
.v2ggc-rc__head h4 { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); line-height: 1.25; }
.v2ggc-rc__pill {
    display: inline-block;
    margin-top: 4px;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    padding: 3px 9px;
    border-radius: 6px;
}
.v2ggc-rc p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2ggc-rc p strong { color: var(--ink); }
.v2ggc-rc.is-member { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2ggc-rc.is-member .v2ggc-rc__ic { background: var(--go); }
.v2ggc-rc.is-member .v2ggc-rc__pill { background: var(--paper); color: var(--go-deep); }
.v2ggc-rc.is-pending { background: var(--g-amber-tint); border-color: var(--g-amber-line); }
.v2ggc-rc.is-pending .v2ggc-rc__ic { background: #D9820A; }
.v2ggc-rc.is-pending .v2ggc-rc__pill { background: #fff; color: var(--g-amber-deep); }
.v2ggc-rc.is-blocked { background: var(--g-rose-tint); border-color: var(--g-rose-line); }
.v2ggc-rc.is-blocked .v2ggc-rc__ic { background: var(--g-rose); }
.v2ggc-rc.is-blocked .v2ggc-rc__pill { background: #fff; color: var(--g-rose-deep); }

/* ---------- Identity-match triad ---------- */
.v2ggc-triad {
    display: grid;
    gap: 12px;
    padding: 22px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: var(--g-shadow);
}
.v2ggc-triad__node { text-align: center; }
.v2ggc-triad__ic {
    width: 50px;
    height: 50px;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go);
}
.v2ggc-triad__ic svg { width: 26px; height: 26px; }
.v2ggc-triad__node h3 { font-family: var(--font-display); font-weight: 650; font-size: 14.5px; color: var(--ink); margin-bottom: 3px; }
.v2ggc-triad__node p { font-size: 12.5px; color: var(--slate); line-height: 1.45; }
.v2ggc-triad__eq {
    justify-self: center;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 20px;
    color: var(--go);
    line-height: 1;
}
.v2ggc-triad__foot {
    margin-top: 6px;
    padding-top: 15px;
    border-top: 1px solid var(--line);
    text-align: center;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2ggc-triad__foot strong { color: var(--ink); }

/* ---------- Account consistency checker ---------- */
.v2ggc-check { display: grid; gap: 12px; }
.v2ggc-check__row { display: grid; gap: 7px; }
.v2ggc-check__row label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}
.v2ggc-check__row label svg { width: 17px; height: 17px; color: var(--slate); flex-shrink: 0; }
.v2ggc-sel { position: relative; }
.v2 .v2ggc-sel select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    padding: 11px 13px 11px 40px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2ggc-sel select:hover { border-color: #C9D2DA; }
.v2 .v2ggc-sel select:focus-visible { outline: none; border-color: var(--go); box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14); }
.v2ggc-sel::after {
    content: "";
    position: absolute;
    left: 15px;
    top: 44%;
    width: 8px;
    height: 8px;
    border-left: 2px solid var(--slate);
    border-bottom: 2px solid var(--slate);
    transform: translateY(-50%) rotate(-45deg);
    pointer-events: none;
}
.v2ggc-check-out {
    display: none;
    align-items: flex-start;
    gap: 11px;
    margin-top: 15px;
    padding: 14px 16px;
    border-radius: 12px;
    font-size: 13.5px;
    line-height: 1.6;
}
.v2ggc-check-out.show { display: flex; animation: v2CardIn 0.3s ease both; }
.v2ggc-check-out__ic { flex-shrink: 0; margin-top: 1px; }
.v2ggc-check-out__ic svg { width: 22px; height: 22px; }
.v2ggc-check-out__ic .is-no { display: none; }
.v2ggc-check-out.match { background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); color: #185C39; }
.v2ggc-check-out.match .v2ggc-check-out__ic { color: var(--go); }
.v2ggc-check-out.mismatch { background: var(--g-rose-tint); border: 1px solid var(--g-rose-line); color: var(--g-rose-deep); }
.v2ggc-check-out.mismatch .v2ggc-check-out__ic { color: var(--g-rose); }
.v2ggc-check-out.mismatch .v2ggc-check-out__ic .is-yes { display: none; }
.v2ggc-check-out.mismatch .v2ggc-check-out__ic .is-no { display: block; }
.v2ggc-check-out b { display: block; margin-bottom: 3px; font-size: 14px; }

/* ---------- Two stacked propagation-delay cards ---------- */
.v2ggc-delays { display: grid; gap: 14px; }
.v2ggc-delay {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    padding: 18px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 14px 0 0 14px;
    box-shadow: var(--g-shadow);
}
.v2ggc-delay:nth-child(2) { border-right-color: #D9820A; }
.v2ggc-delay__ic {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--go-tint);
    color: var(--go);
}
.v2ggc-delay:nth-child(2) .v2ggc-delay__ic { background: var(--g-amber-tint); color: #B45309; }
.v2ggc-delay__ic svg { width: 22px; height: 22px; }
.v2ggc-delay__head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-bottom: 8px; }
.v2ggc-delay__head h3 { font-family: var(--font-display); font-weight: 650; font-size: 15px; color: var(--ink); }
.v2ggc-delay__chip {
    font-size: 9.5px;
    letter-spacing: 0.06em;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 6px;
    padding: 3px 9px;
}
.v2ggc-delay:nth-child(2) .v2ggc-delay__chip { color: var(--g-amber-deep); background: var(--g-amber-tint); }
.v2ggc-delay__main p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Blocker cards ---------- */
.v2ggc-blockers { display: grid; gap: 14px; }
.v2ggc-blocker {
    padding: 20px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-top: 3px solid var(--g-rose);
    border-radius: 3px 3px 14px 14px;
    box-shadow: var(--g-shadow);
}
.v2ggc-blocker:nth-child(2) { border-top-color: #D9820A; }
.v2ggc-blocker:nth-child(3) { border-top-color: var(--go); }
.v2ggc-blocker__ic {
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--g-rose-tint);
    color: var(--g-rose);
    margin-bottom: 12px;
}
.v2ggc-blocker:nth-child(2) .v2ggc-blocker__ic { background: var(--g-amber-tint); color: #B45309; }
.v2ggc-blocker:nth-child(3) .v2ggc-blocker__ic { background: var(--go-tint); color: var(--go); }
.v2ggc-blocker__ic svg { width: 22px; height: 22px; }
.v2ggc-blocker h3 { font-family: var(--font-display); font-weight: 650; font-size: 15.5px; color: var(--ink); margin-bottom: 6px; }
.v2ggc-blocker > p { font-size: 13px; line-height: 1.6; color: var(--slate); margin-bottom: 11px; }
.v2ggc-blocker__tip {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
    background: var(--mist);
    border-radius: 9px;
    padding: 10px 12px;
}
.v2ggc-blocker__tip strong { color: var(--ink); }
.v2ggc-blocker code {
    font-family: var(--font-mono);
    font-size: 0.86em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    word-break: break-word;
}
.v2ggc-blocker__tip code { background: var(--paper); }

/* ---------- Group-address compare ---------- */
.v2ggc-addr { display: grid; gap: 14px; }
.v2ggc-addr__card { padding: 20px 18px; border-radius: 16px; border: 1.5px solid var(--line); }
.v2ggc-addr__card.is-ok { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2ggc-addr__card.is-risky { background: var(--g-amber-tint); border-color: var(--g-amber-line); }
.v2ggc-addr__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    letter-spacing: 0.08em;
    padding: 5px 11px;
    border-radius: 7px;
    margin-bottom: 13px;
}
.v2ggc-addr__tag svg { width: 15px; height: 15px; }
.v2ggc-addr__card.is-ok .v2ggc-addr__tag { background: var(--paper); color: var(--go-deep); }
.v2ggc-addr__card.is-risky .v2ggc-addr__tag { background: #fff; color: var(--g-amber-deep); }
.v2ggc-addr__eg {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
    padding: 10px 13px;
    border-radius: 9px;
    margin-bottom: 13px;
    word-break: break-all;
    background: rgba(255, 255, 255, 0.7);
    border: 1px dashed rgba(10, 16, 23, 0.12);
}
.v2ggc-addr__card.is-ok .v2ggc-addr__eg { color: var(--go-deep); }
.v2ggc-addr__card.is-risky .v2ggc-addr__eg { color: #B45309; }
.v2ggc-addr__card p:not(.v2ggc-addr__eg) { font-size: 13px; line-height: 1.6; }
.v2ggc-addr__card.is-ok p:not(.v2ggc-addr__eg) { color: #185C39; }
.v2ggc-addr__card.is-risky p:not(.v2ggc-addr__eg) { color: var(--g-amber-body); }

/* ============================================================
   Comparison tables (stacked cards on mobile)
============================================================ */
.v2ggc-table { margin: 6px 0 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2ggc-cmp { width: 100%; font-size: 13.5px; }
.v2ggc-cmp thead { display: none; }
.v2ggc-cmp tbody tr {
    display: block;
    padding: 6px 2px 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-bottom: 12px;
    background: var(--paper);
    box-shadow: var(--g-shadow);
}
.v2ggc-cmp tbody tr:last-child { margin-bottom: 0; }
.v2ggc-cmp td { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 14px; }
.v2ggc-cmp td:first-child {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 14px;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    margin-bottom: 3px;
    padding-bottom: 11px;
}
.v2ggc-cmp td:first-child strong { font-weight: 650; }
.v2ggc-cmp td[data-label]::before {
    content: attr(data-label);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--faint);
    flex-shrink: 0;
    text-align: right;
}
.v2ggc-chip {
    display: inline-block;
    font-size: 11.5px;
    font-weight: 600;
    padding: 4px 11px;
    border-radius: 999px;
    text-align: left;
}
.v2ggc-chip.is-good { color: var(--go-deep); background: var(--go-tint); }
.v2ggc-chip.is-warn { color: var(--g-amber-deep); background: var(--g-amber-tint); }
.v2ggc-chip.is-bad { color: var(--g-rose-deep); background: var(--g-rose-tint); }
.v2ggc-chip.is-neutral { color: var(--slate); background: var(--mist); }

/* ============================================================
   Interactive setup checklist
============================================================ */
.v2ggc-setup {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: var(--g-shadow-lg);
}
.v2ggc-setup__head { padding: 20px 20px 18px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2ggc-setup__head h3 {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17px;
    color: var(--ink);
    margin-bottom: 15px;
}
.v2ggc-setup__head h3 svg { width: 21px; height: 21px; color: var(--go); }
.v2ggc-setup__bar { height: 10px; border-radius: 999px; background: var(--line); overflow: hidden; }
.v2ggc-setup__fill {
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: linear-gradient(-90deg, #3ECF81, var(--go));
    transition: width 0.45s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2ggc-setup__pct { font-size: 11.5px; letter-spacing: 0.04em; margin-top: 10px; color: var(--slate); }
.v2ggc-setup__pct b { color: var(--go-deep); }
.v2ggc-setup__body { padding: 6px 16px 4px; }
.v2 .v2ggc-ck {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 14px 6px;
    border-bottom: 1px solid var(--line);
    cursor: pointer;
    transition: background 0.15s ease;
}
.v2 .v2ggc-ck:last-child { border-bottom: none; }
.v2 .v2ggc-ck:hover { background: var(--mist); }
.v2 .v2ggc-ck input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2ggc-ck__box {
    flex-shrink: 0;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #CBD5E1;
    border-radius: 7px;
    color: #fff;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2ggc-ck__box svg { width: 15px; height: 15px; opacity: 0; transform: scale(0.5); transition: opacity 0.18s ease, transform 0.18s ease; }
.v2 .v2ggc-ck input:checked + .v2ggc-ck__box { background: var(--go); border-color: var(--go); }
.v2 .v2ggc-ck input:checked + .v2ggc-ck__box svg { opacity: 1; transform: scale(1); }
.v2ggc-ck__txt { font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2ggc-ck__txt b { display: block; margin-bottom: 2px; font-weight: 650; color: var(--ink); }
.v2ggc-ck__txt strong { color: var(--ink); }
.v2ggc-ck__txt code {
    font-family: var(--font-mono);
    font-size: 0.85em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    word-break: break-word;
}
.v2 .v2ggc-ck input:checked ~ .v2ggc-ck__txt { color: var(--faint); }
.v2 .v2ggc-ck input:checked ~ .v2ggc-ck__txt b { color: var(--faint); }
.v2ggc-setup__msg {
    margin: 6px 16px 18px;
    padding: 13px 15px;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
}
.v2ggc-setup__msg b { color: #0B4227; }

/* ---------- Screenshot evidence frame ---------- */
.v2ggc-shot { margin: 22px 0; }
.v2ggc-shot__frame {
    display: block;
    position: relative;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
    box-shadow: var(--g-shadow);
    cursor: zoom-in;
    text-decoration: none;
}
.v2ggc-shot__bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    font-size: 10.5px;
    letter-spacing: 0.03em;
    color: var(--faint);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    text-transform: none;
}
.v2ggc-shot__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--go);
    box-shadow: 0 0 0 3px var(--go-tint);
    flex-shrink: 0;
}
.v2ggc-shot__frame img { display: block; width: 100%; height: auto; }
.v2ggc-shot__zoom {
    position: absolute;
    left: 10px;
    bottom: 10px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    letter-spacing: 0.05em;
    color: #fff;
    background: rgba(10, 16, 23, 0.82);
    border-radius: 7px;
    padding: 5px 9px;
}
.v2ggc-shot__zoom svg { width: 13px; height: 13px; }
.v2ggc-shot__cap {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 11px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--faint);
}
.v2ggc-shot__cap svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--slate); margin-top: 2px; }
.v2ggc-shot__cap strong { color: var(--slate); }

/* ============================================================
   Diagnoser: symptom/scope chips + verdict
============================================================ */
.v2ggc-diag__step { margin-bottom: 18px; }
.v2ggc-diag__q { display: flex; align-items: center; gap: 9px; font-size: 13.5px; font-weight: 650; color: var(--ink); margin-bottom: 11px; }
.v2ggc-diag__n {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ink);
    color: #fff;
    border-radius: 7px;
    font-size: 11px;
    font-weight: 700;
}
.v2ggc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2ggc-chip-btn {
    padding: 9px 14px;
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2ggc-chip-btn:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2ggc-chip-btn.is-active {
    border-color: var(--go);
    background: var(--go-tint);
    color: var(--go-deep);
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.1);
}
.v2ggc-diag__out { margin-top: 20px; padding-top: 18px; border-top: 1px dashed var(--line); }
.v2ggc-verdict {
    display: none;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2ggc-verdict.show { display: block; animation: v2CardIn 0.35s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2ggc-verdict__top { display: flex; align-items: center; gap: 13px; padding: 16px 18px; }
.v2ggc-verdict__ic {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #fff;
}
.v2ggc-verdict__ic svg { width: 23px; height: 23px; }
.v2ggc-verdict__lead { font-size: 10.5px; letter-spacing: 0.06em; margin-bottom: 3px; }
.v2ggc-verdict__title { font-family: var(--font-display); font-weight: 700; font-size: 16px; letter-spacing: -0.01em; color: var(--ink); line-height: 1.25; }
.v2ggc-verdict__body { padding: 0 18px 18px; }
.v2ggc-verdict__body p { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin-bottom: 13px; }
.v2ggc-verdict__jump {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 650;
    color: #fff;
    text-decoration: none;
    padding: 9px 16px;
    border-radius: 9px;
    transition: transform 0.15s ease;
}
.v2ggc-verdict__jump:hover { transform: translateX(-2px); }
.v2ggc-verdict__jump svg { width: 17px; height: 17px; }
.v2ggc-verdict.v-config .v2ggc-verdict__top { background: var(--g-blue-tint); }
.v2ggc-verdict.v-config .v2ggc-verdict__ic { background: var(--g-blue); }
.v2ggc-verdict.v-config .v2ggc-verdict__lead { color: var(--g-blue-deep); }
.v2ggc-verdict.v-config .v2ggc-verdict__jump { background: var(--g-blue); }
.v2ggc-verdict.v-account .v2ggc-verdict__top { background: var(--go-tint); }
.v2ggc-verdict.v-account .v2ggc-verdict__ic { background: var(--go); }
.v2ggc-verdict.v-account .v2ggc-verdict__lead { color: var(--go-deep); }
.v2ggc-verdict.v-account .v2ggc-verdict__jump { background: var(--go); }
.v2ggc-verdict.v-timing .v2ggc-verdict__top { background: var(--g-amber-tint); }
.v2ggc-verdict.v-timing .v2ggc-verdict__ic { background: #D9820A; }
.v2ggc-verdict.v-timing .v2ggc-verdict__lead { color: var(--g-amber-deep); }
.v2ggc-verdict.v-timing .v2ggc-verdict__jump { background: #D9820A; }

/* ---------- Fault localizer ---------- */
.v2ggc-locate { display: grid; gap: 14px; }
.v2ggc-locate__card {
    padding: 20px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--g-shadow);
}
.v2ggc-locate__num {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    letter-spacing: 0.05em;
    padding: 5px 12px;
    border-radius: 999px;
    margin-bottom: 12px;
}
.v2ggc-locate__num svg { width: 15px; height: 15px; }
.v2ggc-locate__card.is-one .v2ggc-locate__num { color: var(--go-deep); background: var(--go-tint); }
.v2ggc-locate__card.is-all .v2ggc-locate__num { color: var(--g-blue-deep); background: var(--g-blue-tint); }
.v2ggc-locate__card h4 { font-family: var(--font-display); font-weight: 650; font-size: 15px; color: var(--ink); margin-bottom: 8px; }
.v2ggc-locate__card p { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2ggc-locate__card p strong { color: var(--ink); }

/* ---------- Ordered 7-step fix ---------- */
.v2ggc-steps { display: grid; gap: 12px; }
.v2ggc-step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    padding: 16px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: var(--g-shadow);
}
.v2ggc-step__num {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--go-tint);
    color: var(--go-deep);
    border: 1px solid rgba(11, 138, 71, 0.24);
    border-radius: 9px;
    font-size: 14px;
    font-weight: 700;
}
.v2ggc-step__body h3 { font-family: var(--font-display); font-weight: 650; font-size: 15.5px; color: var(--ink); margin-bottom: 5px; line-height: 1.3; }
.v2ggc-step__body p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2ggc-step__body code {
    font-family: var(--font-mono);
    font-size: 0.86em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    word-break: break-word;
}

/* ---------- Payoff plan cards ---------- */
.v2ggc-plans { display: grid; gap: 14px; }
.v2ggc-plan {
    position: relative;
    padding: 22px 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--g-shadow);
    display: flex;
    flex-direction: column;
}
.v2ggc-plan--key { border-color: var(--ink); box-shadow: var(--g-shadow-lg); }
.v2ggc-plan__badge {
    position: absolute;
    top: -11px;
    right: 20px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff;
    background: var(--go);
    border-radius: 6px;
    padding: 4px 10px;
}
.v2ggc-plan__name { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); }
.v2ggc-plan__testers { font-size: 10.5px; letter-spacing: 0.06em; color: var(--faint); margin-top: 3px; }
.v2ggc-plan__amt { font-family: var(--font-display); font-weight: 800; font-size: 30px; letter-spacing: -0.02em; color: var(--ink); margin: 12px 0 14px; }
.v2ggc-plan__list { display: grid; gap: 9px; margin-bottom: 16px; }
.v2ggc-plan__list li { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; font-size: 13px; line-height: 1.45; color: var(--slate); }
.v2ggc-plan__list li .v2gpr-mk { margin-top: 2px; }
.v2 .v2ggc-plan__btn { width: 100%; margin-top: auto; }

/* ---------- Bottom-line summary ---------- */
.v2ggc-bottom {
    padding: 22px 22px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2ggc-bottom__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 0.09em;
    color: var(--go-deep);
    margin-bottom: 11px;
}
.v2ggc-bottom__tag svg { width: 16px; height: 16px; }
.v2ggc-bottom__text { font-size: 15.5px; line-height: 1.75; font-weight: 500; color: var(--ink); }
.v2ggc-bottom__text strong { color: var(--ink); font-weight: 650; }
.v2ggc-bottom__text a { color: var(--go-deep); font-weight: 650; text-decoration: underline; text-decoration-color: rgba(11, 138, 71, 0.4); text-underline-offset: 2px; }

/* ---------- Official Google documentation ---------- */
.v2ggc-docs {
    padding: 20px 22px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2ggc-docs__title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 13px;
}
.v2ggc-docs__title svg { width: 18px; height: 18px; color: var(--slate); }
.v2ggc-docs__list { display: grid; gap: 9px; }
.v2ggc-docs__list a {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    color: var(--go-deep);
    text-decoration: none;
    line-height: 1.4;
}
.v2ggc-docs__list a svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--slate); }
.v2ggc-docs__list a:hover { text-decoration: underline; text-underline-offset: 2px; }

/* =========================================================
   TABLET  ( >= 560px )
========================================================= */
@media (min-width: 560px) {
    .v2ggc-opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2ggc-addr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2ggc-locate { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2ggc-check__row { grid-template-columns: 168px minmax(0, 1fr); align-items: center; }
    .v2ggc-error__phone { width: 180px; }
}

/* =========================================================
   WIDE  ( >= 680px ) : gates + triad go horizontal, tables un-stack
========================================================= */
@media (min-width: 680px) {
    .v2ggc-gates { padding: 26px 24px; }
    .v2ggc-gates__flow {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 10px;
        text-align: center;
    }
    .v2ggc-gate {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto auto;
        row-gap: 3px;
        justify-items: center;
        padding: 18px 12px;
    }
    .v2ggc-gate::after {
        content: "";
        position: absolute;
        top: 40px;
        right: calc(100% + 1px);
        width: 10px;
        height: 2px;
        background: var(--line);
        z-index: 2;
    }
    .v2ggc-gate:last-child::after { display: none; }
    .v2ggc-gate__ic { grid-row: auto; margin-bottom: 6px; }
    .v2ggc-gate__tag, .v2ggc-gate__t, .v2ggc-gate__s { grid-column: auto; }

    .v2ggc-error { grid-template-columns: auto 1fr; gap: 24px; padding: 26px 28px; }
    .v2ggc-error__body { border-right: 1px solid var(--line); padding-right: 24px; }

    .v2ggc-triad { grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; padding: 26px 24px; }
    .v2ggc-triad__foot { grid-column: 1 / -1; }

    /* un-stack the comparison tables into a real grid */
    .v2ggc-cmp thead { display: table-header-group; }
    .v2ggc-cmp tbody tr { display: table-row; border: none; border-radius: 0; margin: 0; background: none; box-shadow: none; }
    .v2ggc-cmp th, .v2ggc-cmp td { display: table-cell; text-align: right; vertical-align: middle; padding: 12px 14px; }
    .v2ggc-cmp th {
        font-size: 10.5px;
        letter-spacing: 0.05em;
        color: var(--faint);
        border-bottom: 1.5px solid var(--line);
        white-space: nowrap;
    }
    .v2ggc-cmp th.v2ggc-cmp__key, .v2ggc-cmp td.v2ggc-cmp__key { background: var(--go-tint); }
    .v2ggc-cmp th.v2ggc-cmp__key { color: var(--go-deep); }
    .v2ggc-cmp tbody td { border-bottom: 1px solid var(--line); }
    .v2ggc-cmp tbody tr:last-child td { border-bottom: none; }
    .v2ggc-cmp td:first-child { font-family: var(--font-body); font-weight: 400; font-size: 13.5px; color: var(--slate); border-bottom: 1px solid var(--line); margin: 0; padding-bottom: 12px; }
    .v2ggc-cmp td:first-child strong { color: var(--ink); font-weight: 600; }
    .v2ggc-cmp td[data-label]::before { display: none; }
    .v2ggc-cmp td:first-child { border-top-right-radius: 0; }
    .v2ggc-cmp tbody tr:first-child td.v2ggc-cmp__key { border-top-right-radius: 10px; border-top-left-radius: 10px; }
    .v2ggc-cmp tbody tr:last-child td.v2ggc-cmp__key { border-bottom-right-radius: 10px; border-bottom-left-radius: 10px; }
    .v2ggc-chip { text-align: center; }
}

/* =========================================================
   DESKTOP  ( >= 980px ) : 3-up card grids
========================================================= */
@media (min-width: 980px) {
    .v2ggc-blockers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2ggc-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; }
    .v2ggc-plan--key { transform: translateY(-6px); }
}

/* =========================================================
   SMALL PHONES  ( <= 360px )
========================================================= */
@media (max-width: 360px) {
    .v2ggc-tool__head, .v2ggc-tool__body { padding-right: 16px; padding-left: 16px; }
    .v2ggc-gate { padding: 11px 12px; }
    .v2ggc-plan__amt { font-size: 27px; }
    .v2ggc-cmp td { padding-right: 12px; padding-left: 12px; }
}
/* ============= END BLOG GGC V2 ============= */

/* ---------- The 10 cause "case file" cards ---------- */
.v2atc-causes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin: 24px 0;
    counter-reset: atccause;
}
.v2atc-cause {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 16px 18px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2atc-cause:hover { border-color: #C9D2DA; box-shadow: 0 8px 22px -18px rgba(10, 16, 23, 0.3); }
.v2atc-cause.is-ok { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2atc-cause__n {
    counter-increment: atccause;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
}
.v2atc-cause__n::before { content: counter(atccause, decimal-leading-zero); }
.v2atc-cause.is-ok .v2atc-cause__n { background: #fff; border-color: rgba(11, 138, 71, 0.28); color: var(--go-deep); }
.v2atc-cause__body h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 14.5px;
    color: var(--ink);
    margin: 0 0 4px;
    line-height: 1.35;
}
.v2atc-cause__body p { font-size: 12.5px; line-height: 1.6; color: var(--slate); margin: 0; }

/* ---------- Scenario pills (diagnoser) ---------- */
.v2atc-scn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.v2atc-scn__opt { cursor: pointer; }
.v2atc-scn__opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2atc-scn__face {
    display: flex;
    align-items: center;
    gap: 11px;
    height: 100%;
    padding: 13px 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.v2atc-scn__face svg { width: 20px; height: 20px; color: var(--faint); flex-shrink: 0; transition: color 0.18s ease; }
.v2atc-scn__face span { font-size: 13px; font-weight: 500; color: var(--ink); line-height: 1.35; }
.v2atc-scn__opt:hover .v2atc-scn__face { border-color: #C9D2DA; background: var(--paper); }
.v2atc-scn__opt input:checked + .v2atc-scn__face {
    border-color: var(--go);
    background: var(--go-tint);
    box-shadow: 0 4px 14px -8px rgba(11, 138, 71, 0.4);
}
.v2atc-scn__opt input:checked + .v2atc-scn__face svg { color: var(--go); }
.v2 .v2atc-scn__opt input:focus-visible + .v2atc-scn__face { outline: 2px solid var(--go); outline-offset: 2px; }

/* ---------- Diagnoser result card ---------- */
.v2atc-rc {
    display: none;
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    padding: 20px 22px;
}
.v2atc-rc.show { display: block; animation: v2gprIn 0.35s ease; }
.v2atc-rc.wait { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2atc-rc__head { display: flex; align-items: center; gap: 12px; margin-bottom: 13px; }
.v2atc-rc__ic {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2atc-rc__ic svg { width: 21px; height: 21px; }
.v2atc-rc.wait .v2atc-rc__ic { background: #fff; border-color: rgba(11, 138, 71, 0.22); color: var(--go); }
.v2atc-rc__title {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
    margin-bottom: 4px;
    line-height: 1.25;
}
.v2atc-rc__badge {
    display: inline-block;
    font-size: 9px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 3px 9px;
}
.v2atc-rc.wait .v2atc-rc__badge { color: var(--go-deep); background: #fff; border-color: rgba(11, 138, 71, 0.28); }
.v2atc-rc > p { font-size: 14px; line-height: 1.7; color: var(--slate); margin: 0 0 12px; }
.v2atc-rc__list { margin: 0; }
.v2atc-rc__list li {
    position: relative;
    padding: 8px 24px 8px 0;
    border-top: 1px dashed var(--line);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ink);
}
.v2atc-rc__list li:first-child { border-top: none; }
.v2atc-rc__list li::before {
    content: '';
    position: absolute;
    right: 2px;
    top: 12px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M4 3l3 3-3 3' stroke='%2355616D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 9px;
}
.v2atc-rc.wait .v2atc-rc__list li::before { background-color: #fff; }

/* ---------- List vs Group method duel ---------- */
.v2atc-duel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}
.v2atc-duel__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
}
.v2atc-duel__head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 16px 20px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2atc-duel__ic {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--slate);
}
.v2atc-duel__ic svg { width: 20px; height: 20px; }
.v2atc-duel__head h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
    margin: 0;
}
.v2atc-duel__rows { padding: 4px 20px 12px; }
.v2atc-duel__row { padding: 12px 0; border-top: 1px solid #EFF2F4; }
.v2atc-duel__row:first-child { border-top: none; }
.v2atc-duel__row .v2-mono { display: block; color: var(--faint); font-size: 9px; margin-bottom: 5px; }
.v2atc-duel__row p { font-size: 13.5px; line-height: 1.55; color: var(--slate); margin: 0; }

/* ---------- Advisor result ---------- */
.v2atc-adv {
    display: none;
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2atc-adv.show { display: block; animation: v2gprIn 0.35s ease; }
.v2atc-adv__top {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 16px 20px;
    background: var(--go);
}
.v2atc-adv__ic {
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.v2atc-adv__ic svg { width: 22px; height: 22px; }
.v2atc-adv__kicker { display: block; color: rgba(255, 255, 255, 0.82); font-size: 9px; }
.v2atc-adv__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    color: #fff;
    margin-top: 3px;
}
.v2atc-adv__body { background: var(--paper); padding: 17px 20px; }
.v2atc-adv__body p { font-size: 14px; line-height: 1.7; color: var(--slate); margin: 0; }

/* ---------- Verbatim Google quote ---------- */
.v2atc-quote {
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px 0 0 14px;
    padding: 20px 24px;
    margin: 24px 0;
}
.v2atc-quote__src {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--ink);
    font-size: 10px;
    margin-bottom: 11px;
}
.v2atc-quote__src svg { width: 18px; height: 18px; color: var(--go); }
.v2atc-quote blockquote {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.6;
    color: var(--ink);
    text-wrap: pretty;
}
.v2atc-quote cite { display: block; margin-top: 12px; font-style: normal; font-size: 12px; color: var(--faint); }

/* ---------- Evidence screenshot (clickable window) ---------- */
.v2atc-shot { margin: 24px 0; }
.v2atc-shot > a {
    display: block;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2atc-shot > a:hover { border-color: #C9D2DA; box-shadow: 0 12px 30px -20px rgba(10, 16, 23, 0.28); }
.v2atc-shot__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2atc-shot__dots { display: inline-flex; gap: 5px; flex-shrink: 0; }
.v2atc-shot__dots i { width: 8px; height: 8px; border-radius: 50%; background: #D4DAE0; }
.v2atc-shot__bar > .v2-mono { font-size: 9px; color: var(--faint); }
.v2atc-shot__zoom {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-right: auto;
    font-size: 9px;
    color: var(--go-deep);
}
.v2atc-shot__zoom svg { width: 13px; height: 13px; }
.v2atc-shot img { display: block; width: 100%; height: auto; }

/* ---------- Highlight tiles ---------- */
.v2atc-hl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2atc-hl__tile {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 12px;
    padding: 15px 16px;
}
.v2atc-hl__ic { flex-shrink: 0; color: var(--go-deep); }
.v2atc-hl__ic svg { width: 22px; height: 22px; }
.v2atc-hl__tile b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 16px;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.1;
}
.v2atc-hl__tile .v2-mono { display: block; font-size: 9px; color: var(--go-deep); margin-top: 4px; }

/* ---------- DIY vs managed comparison table ---------- */
.v2atc-cmp {
    margin: 22px 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2atc-cmp table { width: 100%; border-collapse: collapse; }
.v2atc-cmp th {
    text-align: right;
    padding: 14px 18px;
    font-size: 9.5px;
    color: var(--slate);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2atc-cmp th.v2atc-cmp__mgd { color: var(--go-deep); background: var(--go-tint); }
.v2atc-cmp td {
    padding: 13px 18px;
    border-top: 1px solid #EFF2F4;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
    vertical-align: top;
}
.v2atc-cmp td.v2atc-cmp__feat { font-weight: 650; color: var(--ink); white-space: nowrap; }
.v2atc-cmp td.v2atc-cmp__mgd { background: var(--go-tint); color: var(--ink); }
.v2atc-cmp td .v2gpr-mk { margin-left: 7px; vertical-align: -3px; }
.v2atc-cmp__dash {
    display: inline-block;
    width: 12px;
    height: 2px;
    border-radius: 1px;
    background: #C9D2DA;
    margin-left: 7px;
    vertical-align: 4px;
}

/* ---------- Pricing plans ---------- */
.v2atc-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
    align-items: start;
}
.v2atc-plan {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 20px;
}
.v2atc-plan--key {
    border-color: var(--go);
    box-shadow: 0 14px 34px -22px rgba(11, 138, 71, 0.45);
}
.v2atc-plan__badge {
    position: absolute;
    top: -10px;
    right: 20px;
    background: var(--go);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 9px;
}
.v2atc-plan__name {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    color: var(--ink);
}
.v2atc-plan__testers { color: var(--faint); font-size: 9.5px; margin-top: 4px; }
.v2atc-plan__amount {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 32px;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin: 8px 0 14px;
}
.v2atc-plan ul { margin: 0 0 16px; }
.v2atc-plan li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    padding: 5px 0;
}
.v2atc-plan li .v2gpr-mk { margin-top: 2px; }
.v2 .v2atc-plan__btn {
    display: block;
    text-align: center;
    padding: 11px 16px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2atc-plan__btn:hover { border-color: #C9D2DA; background: var(--paper); }
.v2 .v2atc-plan__btn--primary { background: var(--go); border-color: var(--go); color: #fff; }
.v2 .v2atc-plan__btn--primary:hover { background: var(--go-deep); border-color: var(--go-deep); }

/* ---------- Links inside the dark "dependable way" box ---------- */
.v2atc-dependable .v2gpr-qa__text a {
    color: #7DD3FC;
    font-weight: 700;
    text-decoration: none;
}
.v2atc-dependable .v2gpr-qa__text a:hover { text-decoration: underline; }

/* =====================================================
   BLOG ATC V2 - RESPONSIVE
   ===================================================== */
@media (max-width: 900px) {
    .v2atc-states { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2atc-duel { grid-template-columns: minmax(0, 1fr); }
    .v2atc-hl { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2atc-plans { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .v2atc-plan { max-width: 420px; width: 100%; margin: 0 auto; }
    .v2atc-plan--key { order: -1; }
}

@media (max-width: 640px) {
    .v2atc-funnel { padding: 18px 16px 14px; }
    .v2atc-fbar { width: 100% !important; min-width: 0; }
    .v2atc-fbar__t { font-size: 12.5px; }
    .v2atc-fnote { font-size: 12px; }

    .v2atc-causes { grid-template-columns: minmax(0, 1fr); }
    .v2atc-scn { grid-template-columns: minmax(0, 1fr); }
    .v2atc-opt { min-width: calc(50% - 5px); }

    .v2atc-tool__head { padding: 18px 16px; }
    .v2atc-tool__head h3 { font-size: 17px; }
    .v2atc-tool__body { padding: 18px 16px; }

    .v2atc-calc { padding: 18px 16px; }
    .v2atc-calc__verdict { flex-direction: column; text-align: center; gap: 12px; }
    .v2atc-mf__row { grid-template-columns: 96px minmax(0, 1fr) 30px; gap: 9px; }
    .v2atc-mf__lab { font-size: 8.5px; }

    .v2atc-cstep { grid-template-columns: 34px minmax(0, 1fr); gap: 13px; }
    .v2atc-cstep::before { right: 16px; top: 36px; }
    .v2atc-cstep__n { width: 34px; height: 34px; border-radius: 10px; font-size: 14px; }
    .v2atc-cstep__body h3 { font-size: 15.5px; }
    .v2atc-cstep__body p { font-size: 14px; }

    .v2atc-cmp th, .v2atc-cmp td { padding: 12px 14px; }
    .v2atc-cmp table { min-width: 540px; }
}

@media (max-width: 480px) {
    .v2atc-opt { min-width: 100%; }
    .v2atc-calc__ring { width: 78px; height: 78px; }
    .v2atc-calc__ring b { font-size: 23px; }
    .v2atc-plan__amount { font-size: 28px; }
}

/* Reduced motion: pin final states for this block */
@media (prefers-reduced-motion: reduce) {
    .v2atc-funnel.v2-anim .v2atc-fstage { opacity: 1; transform: none; transition: none; }
    .v2atc-mf__fill { transition: none; }
}
/* ============= END BLOG ATC V2 ============= */


/* =============================================================
   BLOG TWA V2  -  "TWA App Rejected on Google Play? Switch to WebView"
   Unique internal components for the TWA->WebView rejection-fix post.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motif = DIAGNOSTIC / BUILD
   INSPECTOR - an architecture "scan" panel that X-rays TWA vs
   WebView with a REJECTED / APPROVED verdict, a signal-attribution
   trace with strength meters, diagnostic-finding cards, dark scanner
   terminals for the code, a Digital Asset Links trust flow, the vs
   matrix, arch verdict cards, gate cards and repair-step cards.
   Cyan is the primary accent, green = WebView / approved / strong,
   rose = TWA / rejected / weak, amber = caution, blue = info. Light
   components only; the two dark bands are the shared .v2gpr-qa Quick
   Answer capsule and the final .v2-cta (code terminals are dark by
   nature). All tokens + components scoped under .v2twa-article
   (with a couple of hero-fact overrides) so no sibling blog shifts.
============================================================= */
.v2twa-article {
    --tw-navy:      #16202E;
    --tw-cyan:      #0E7490;
    --tw-cyan-2:    #0891B2;
    --tw-cyan-tint: #ECFEFF;
    --tw-cyan-line: #BEE7EE;
    --tw-rose:      #B42318;
    --tw-rose-tint: #FDF1F0;
    --tw-rose-line: #F3C9C4;
    --tw-rose-body: #8A2820;
    --tw-amber:     #B45309;
    --tw-amber-deep:#92400E;
    --tw-amber-tint:#FEF6E7;
    --tw-amber-line:#F5DFA8;
    --tw-amber-body:#7C5310;
    --tw-blue:      #1D4ED8;
    --tw-blue-tint: #EFF6FF;
    --tw-blue-line: #C7DBFF;
    --tw-indigo:    #4F46E5;
    --tw-line:      #E3E8EF;
    --tw-term-bg:   #101827;
    --tw-term-line: #24324A;
    --tw-term-ink:  #DCE6F1;
    --tw-mono:      var(--font-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace);
    --tw-shadow:    0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.20);
    --tw-shadow-lg: 0 2px 6px rgba(10,16,23,.05), 0 22px 46px -20px rgba(14,116,144,.26);
}

/* Shared block spacing for the top-level v2twa components */
.v2twa-scan, .v2twa-toc, .v2twa-diag, .v2twa-callout, .v2twa-why,
.v2twa-list, .v2twa-myth, .v2twa-steps, .v2twa-term, .v2twa-trust,
.v2twa-warn, .v2twa-trace, .v2twa-protip, .v2twa-insight, .v2twa-fig,
.v2twa-vs, .v2twa-arch, .v2twa-fw, .v2twa-gates, .v2twa-swap,
.v2twa-stat, .v2twa-hl, .v2twa-prices, .v2twa-bottom, .v2twa-docs {
    margin: 28px 0;
}

/* ---------- Heading anchor offset ---------- */
.v2twa-h2 { scroll-margin-top: calc(var(--nav-h, 64px) + 22px); }
.v2twa-h3 { scroll-margin-top: calc(var(--nav-h, 64px) + 22px); }

/* ---------- Hero eyebrow + fact tints (outside the article) ---------- */
.v2twa-eyebrow { color: #0E7490; }
.v2twa-eyebrow::before { background: #0891B2 !important; }
.v2twa-facts { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.v2twa-fact--bad b  { color: #B42318; }
.v2twa-fact--good b { color: #0B8A47; }

/* =============================================================
   SIGNATURE: architecture scan (build-inspector X-ray)
============================================================= */
.v2twa-scan {
    border: 1px solid var(--tw-line); border-radius: 18px; overflow: hidden;
    background: var(--paper); box-shadow: var(--tw-shadow-lg);
}
.v2twa-scan__flag {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px; background: var(--tw-rose-tint);
    border-bottom: 1px solid var(--tw-rose-line);
    color: var(--tw-rose); font-size: 11.5px; letter-spacing: .06em;
    text-transform: uppercase; font-weight: 700;
}
.v2twa-scan__flag svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2twa-scan__grid { display: grid; grid-template-columns: 1fr; gap: 14px; padding: 16px; }
.v2twa-scan__lane { border-radius: 14px; padding: 16px; border: 1px solid var(--tw-line); background: #FBFCFE; }
.v2twa-scan__lane.is-bad  { border-color: var(--tw-rose-line); background: linear-gradient(-180deg, var(--tw-rose-tint), #fff); }
.v2twa-scan__lane.is-good { border-color: var(--go-line); background: linear-gradient(-180deg, var(--go-tint), #fff); }
.v2twa-scan__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-bottom: 12px; }
.v2twa-scan__head b { font-family: var(--font-display); font-size: 15.5px; color: var(--ink); }
.v2twa-scan__arch { width: 100%; font-size: 12px; color: var(--slate); }
.v2twa-scan__badge {
    font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
    padding: 3px 9px; border-radius: 999px;
}
.v2twa-scan__badge.is-bad  { background: var(--tw-rose); color: #fff; }
.v2twa-scan__badge.is-good { background: var(--go-deep); color: #fff; }
.v2twa-scan__stack { display: grid; gap: 7px; }
.v2twa-scan__node {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; color: var(--ink); background: var(--paper);
    border: 1px solid var(--tw-line); border-radius: 9px; padding: 9px 11px;
}
.v2twa-scan__node::before {
    content: ""; width: 7px; height: 7px; border-radius: 50%;
    background: #C9D2DA; flex-shrink: 0;
}
.v2twa-scan__node.is-hop  { border-style: dashed; border-color: var(--tw-amber-line); color: var(--tw-amber-body); }
.v2twa-scan__node.is-hop::before  { background: #D9910A; }
.v2twa-scan__node.is-proc { border-color: var(--go-line); color: var(--go-deep); }
.v2twa-scan__node.is-proc::before { background: var(--go); }
.v2twa-scan__verdict { margin: 12px 0 0; font-size: 12.5px; font-weight: 700; display: flex; align-items: center; gap: 6px; }
.v2twa-scan__verdict.is-bad  { color: var(--tw-rose); }
.v2twa-scan__verdict.is-good { color: var(--go-deep); }
.v2twa-scan__arrow {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    color: var(--tw-cyan); font-weight: 700;
}
.v2twa-scan__arrow svg { width: 26px; height: 26px; transform: rotate(-90deg); }
.v2twa-scan__arrow span { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }

/* =============================================================
   Quick Answer dark-capsule highlight tints
============================================================= */
.v2gpr-qa.v2twa-qa .x-rose  { color: #FCA5A5; }
.v2gpr-qa.v2twa-qa .x-green { color: #6EE7B7; }
.v2gpr-qa.v2twa-qa .x-cyan  { color: #7DE3FF; }
.v2gpr-qa.v2twa-qa .x-amber { color: #FFD56B; }

/* =============================================================
   Table of contents
============================================================= */
.v2twa-toc { border: 1px dashed var(--tw-cyan-line); border-radius: 14px; background: var(--tw-cyan-tint); padding: 16px 16px 6px; }
.v2twa-toc__label { color: var(--tw-cyan); font-size: 11px; margin: 0 0 8px; }
.v2twa-toc__grid { display: grid; grid-template-columns: 1fr; gap: 0; }
.v2twa-article .v2twa-toc__grid a {
    display: flex; align-items: baseline; gap: 10px; padding: 9px 6px; margin: 0;
    color: var(--slate); font-size: 14.5px; line-height: 1.4; text-decoration: none;
    border-top: 1px solid rgba(14,116,144,.12); font-weight: 500;
}
.v2twa-article .v2twa-toc__grid a:first-child { border-top: 0; }
.v2twa-article .v2twa-toc__grid a:hover { color: var(--tw-cyan); }
.v2twa-toc__grid a .v2-mono { color: var(--tw-cyan-2); font-size: 11px; flex-shrink: 0; }

/* =============================================================
   Diagnostic finding cards
============================================================= */
.v2twa-diag { display: grid; grid-template-columns: 1fr; gap: 12px; }
.v2twa-diag__card {
    position: relative; background: var(--paper); border: 1px solid var(--tw-line);
    border-right: 4px solid var(--tw-rose); border-radius: 12px; padding: 18px 18px 16px;
    box-shadow: var(--tw-shadow);
}
.v2twa-diag__tag {
    position: absolute; top: 12px; left: 12px; font-size: 10px; letter-spacing: .06em;
    text-transform: uppercase; color: var(--tw-rose); background: var(--tw-rose-tint);
    border-radius: 6px; padding: 3px 8px; font-weight: 700;
}
.v2twa-diag__ic {
    width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center;
    justify-content: center; background: var(--tw-rose); color: #fff; margin-bottom: 12px;
}
.v2twa-diag__ic svg { width: 20px; height: 20px; }
.v2twa-diag__h { margin: 0 0 6px; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--tw-rose); line-height: 1.35; }
.v2twa-diag__card p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--tw-rose-body); }

/* =============================================================
   Callout family (info / protip / insight / warn)
============================================================= */
.v2twa-callout, .v2twa-protip, .v2twa-insight, .v2twa-warn {
    border-radius: 12px; padding: 16px 18px; border: 1px solid;
}
.v2twa-callout__lab, .v2twa-protip__lab, .v2twa-insight__lab, .v2twa-warn__lab {
    display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700;
    margin: 0 0 8px; text-transform: uppercase; letter-spacing: .02em;
}
.v2twa-callout__lab svg, .v2twa-protip__lab svg, .v2twa-insight__lab svg, .v2twa-warn__lab svg { width: 16px; height: 16px; }
.v2twa-callout p, .v2twa-protip p, .v2twa-insight p, .v2twa-warn p { margin: 0; font-size: 14.5px; line-height: 1.7; }

.v2twa-callout.is-info { background: var(--tw-blue-tint); border-color: var(--tw-blue-line); }
.v2twa-callout.is-info .v2twa-callout__lab { color: var(--tw-blue); }
.v2twa-callout.is-info p { color: #1E3A6B; }

.v2twa-protip { background: var(--tw-amber-tint); border-color: var(--tw-amber-line); }
.v2twa-protip__lab { color: var(--tw-amber-deep); }
.v2twa-protip p { color: var(--tw-amber-body); }

.v2twa-insight { background: var(--tw-cyan-tint); border: 1px solid var(--tw-cyan-line); border-right: 4px solid var(--tw-cyan-2); }
.v2twa-insight__lab { color: var(--tw-cyan); }
.v2twa-insight p { color: #1E3A5F; font-weight: 500; }

.v2twa-warn { background: var(--tw-rose-tint); border-color: var(--tw-rose-line); }
.v2twa-warn__lab { color: var(--tw-rose); }
.v2twa-warn p { color: var(--tw-rose-body); }

/* =============================================================
   "Why devs reach for a TWA" cards
============================================================= */
.v2twa-why { display: grid; grid-template-columns: 1fr; gap: 12px; }
.v2twa-why__card { background: var(--paper); border: 1px solid var(--tw-line); border-radius: 14px; padding: 18px; box-shadow: var(--tw-shadow); }
.v2twa-why__ic { width: 40px; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: 12px; }
.v2twa-why__ic svg { width: 21px; height: 21px; }
.v2twa-why__ic.is-indigo { background: linear-gradient(-135deg, #6366F1, #4F46E5); }
.v2twa-why__ic.is-cyan   { background: linear-gradient(-135deg, #0891B2, #0E7490); }
.v2twa-why__ic.is-green  { background: linear-gradient(-135deg, #10B981, #059669); }
.v2twa-why__h { margin: 0 0 5px; font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--ink); }
.v2twa-why__card p { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

/* =============================================================
   Styled bullet list
============================================================= */
.v2twa-article ul.v2twa-list { margin: 16px 0; padding: 0; list-style: none; }
.v2twa-article ul.v2twa-list > li {
    position: relative; padding-right: 26px; font-size: 15.5px; line-height: 1.75;
    color: var(--slate); margin: 10px 0;
}
.v2twa-article ul.v2twa-list > li::before {
    content: ""; position: absolute; right: 4px; top: 9px; width: 9px; height: 9px;
    border-radius: 3px; background: var(--tw-cyan); transform: rotate(-45deg);
}

/* =============================================================
   Myth vs reality split
============================================================= */
.v2twa-myth { display: grid; grid-template-columns: 1fr; gap: 0; border-radius: 16px; overflow: hidden; border: 1px solid var(--tw-line); }
.v2twa-myth__side { padding: 20px; }
.v2twa-myth__side.is-myth { background: linear-gradient(-180deg, var(--tw-rose-tint), #fff); border-bottom: 1px solid var(--tw-rose-line); }
.v2twa-myth__side.is-real { background: linear-gradient(-180deg, var(--go-tint), #fff); }
.v2twa-myth__tag { display: inline-flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 12px; }
.v2twa-myth__tag svg { width: 15px; height: 15px; }
.v2twa-myth__side.is-myth .v2twa-myth__tag { color: var(--tw-rose); }
.v2twa-myth__side.is-real .v2twa-myth__tag { color: var(--go-deep); }
.v2twa-myth__h { margin: 0 0 8px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); line-height: 1.35; }
.v2twa-myth__side p { margin: 0; font-size: 14px; line-height: 1.7; }
.v2twa-myth__side.is-myth p { color: var(--tw-rose-body); }
.v2twa-myth__side.is-real p { color: #0A5A38; }

/* =============================================================
   Step / repair cards
============================================================= */
.v2twa-steps { display: grid; gap: 12px; }
.v2twa-step { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; }
.v2twa-step__num {
    width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px; display: flex;
    align-items: center; justify-content: center; font-size: 14px; font-weight: 700;
    background: var(--tw-navy); color: #fff;
}
.v2twa-step.is-go    .v2twa-step__num { background: linear-gradient(-135deg, #10B981, #059669); }
.v2twa-step.is-rose  .v2twa-step__num { background: linear-gradient(-135deg, #DC2626, #B91C1C); }
.v2twa-step.is-amber .v2twa-step__num { background: linear-gradient(-135deg, #F59E0B, #D97706); }
.v2twa-step.is-cyan  .v2twa-step__num { background: linear-gradient(-135deg, #0891B2, #0E7490); }
.v2twa-step__card { background: var(--paper); border: 1px solid var(--tw-line); border-radius: 12px; padding: 15px 16px; box-shadow: var(--tw-shadow); }
.v2twa-step__h { display: block; font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--ink); margin-bottom: 5px; line-height: 1.35; }
.v2twa-step__card > p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2twa-step__tip {
    margin-top: 10px; padding: 10px 12px; border-radius: 9px; font-size: 13px; line-height: 1.6;
    color: var(--tw-amber-body); background: var(--tw-amber-tint); border: 1px solid var(--tw-amber-line);
}
.v2twa-step__tip strong { color: var(--tw-amber-deep); }

/* =============================================================
   Scanner terminals (code blocks)
============================================================= */
.v2twa-term { background: var(--tw-term-bg); border: 1px solid var(--tw-term-line); border-radius: 12px; overflow: hidden; }
.v2twa-term__bar { display: flex; align-items: center; gap: 6px; padding: 10px 13px; background: #0B121F; border-bottom: 1px solid var(--tw-term-line); }
.v2twa-term__dot { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
.v2twa-term__title { margin-right: 8px; color: #8FA1B8; font-size: 11.5px; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2twa-term__lang { margin-right: auto; flex-shrink: 0; font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; color: #6B7C93; background: #16202E; padding: 3px 8px; border-radius: 6px; }
.v2twa-term__body { margin: 0; padding: 15px 16px; font-family: var(--tw-mono); font-size: 12.5px; line-height: 1.85; color: var(--tw-term-ink); overflow-x: auto; white-space: pre; -webkit-overflow-scrolling: touch; }
.v2twa-term__body .c { color: #7A8AA0; }
.v2twa-term__body .k { color: #F0B968; }
.v2twa-term__body .s { color: #7BE3A9; }
.v2twa-term__body .t { color: #5CC8E8; }
.v2twa-term__body .e { color: #F19B94; }

/* =============================================================
   Digital Asset Links trust-check flow
============================================================= */
.v2twa-trust { background: #F7FAFC; border: 1px solid var(--tw-line); border-radius: 16px; padding: 18px; }
.v2twa-trust__title { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink); margin: 0 0 14px; }
.v2twa-trust__title svg { width: 17px; height: 17px; color: var(--tw-cyan); }
.v2twa-trust__flow { display: grid; grid-template-columns: 1fr; gap: 10px; }
.v2twa-trust__box { background: var(--paper); border: 1px solid var(--tw-line); border-radius: 11px; padding: 13px 14px; }
.v2twa-trust__boxh { margin: 0 0 4px; font-family: var(--font-display); font-weight: 700; font-size: 13.5px; color: var(--ink); }
.v2twa-trust__box p { margin: 0; font-size: 12.5px; line-height: 1.55; color: var(--slate); }
.v2twa-trust__result { display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: 12px; }
.v2twa-trust__pass, .v2twa-trust__fail { border-radius: 10px; padding: 13px 14px; border: 1px solid; border-right-width: 4px; }
.v2twa-trust__pass { background: var(--go-tint); border-color: var(--go-line); border-right-color: var(--go); }
.v2twa-trust__fail { background: var(--tw-rose-tint); border-color: var(--tw-rose-line); border-right-color: var(--tw-rose); }
.v2twa-trust__pass strong, .v2twa-trust__fail strong { display: flex; align-items: center; gap: 7px; font-size: 13.5px; margin-bottom: 4px; }
.v2twa-trust__pass strong { color: var(--go-deep); }
.v2twa-trust__fail strong { color: var(--tw-rose); }
.v2twa-trust__pass strong svg, .v2twa-trust__fail strong svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2twa-trust__pass span, .v2twa-trust__fail span { font-size: 12.5px; line-height: 1.5; color: var(--slate); }

/* =============================================================
   SIGNATURE: signal-attribution trace
============================================================= */
.v2twa-trace { background: var(--paper); border: 1px solid var(--tw-line); border-radius: 16px; padding: 18px; box-shadow: var(--tw-shadow); }
.v2twa-trace__title { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--slate); margin: 0 0 14px; }
.v2twa-trace__title svg { width: 17px; height: 17px; color: var(--tw-cyan); }
.v2twa-trace__row { display: grid; grid-template-columns: 1fr; gap: 10px; padding: 14px; border-radius: 12px; margin-bottom: 12px; }
.v2twa-trace__row:last-child { margin-bottom: 0; }
.v2twa-trace__row.is-weak   { background: linear-gradient(-180deg, var(--tw-rose-tint), #fff); border: 1px solid var(--tw-rose-line); }
.v2twa-trace__row.is-strong { background: linear-gradient(-180deg, var(--go-tint), #fff); border: 1px solid var(--go-line); }
.v2twa-trace__tag { justify-self: start; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 7px; background: var(--tw-rose); color: #fff; }
.v2twa-trace__tag.is-wv { background: var(--go-deep); }
.v2twa-trace__chain { display: flex; flex-direction: column; gap: 6px; }
.v2twa-trace__chip { display: flex; align-items: center; justify-content: center; text-align: center; font-size: 12.5px; font-weight: 600; background: var(--paper); border: 1px solid var(--tw-line); border-radius: 8px; padding: 8px 11px; color: var(--ink); }
.v2twa-trace__chip.is-host   { background: var(--tw-cyan-tint); border-color: var(--tw-cyan-line); color: var(--tw-cyan); }
.v2twa-trace__chip.is-chrome { background: var(--tw-amber-tint); border-color: var(--tw-amber-line); color: var(--tw-amber-body); }
.v2twa-trace__chip.is-proc   { background: var(--go-tint); border-color: var(--go-line); color: var(--go-deep); }
.v2twa-trace__arw { text-align: center; color: #9AA6B2; font-size: 15px; line-height: 1; transform: rotate(-90deg); }
.v2twa-trace__meter { display: flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 700; }
.v2twa-trace__meter.is-weak   { color: var(--tw-rose); }
.v2twa-trace__meter.is-strong { color: var(--go-deep); }
.v2twa-trace__bars { display: inline-flex; gap: 3px; align-items: flex-end; height: 16px; }
.v2twa-trace__bars i { width: 4px; border-radius: 2px; background: currentColor; }
.v2twa-trace__bars i:nth-child(1) { height: 6px; }
.v2twa-trace__bars i:nth-child(2) { height: 11px; }
.v2twa-trace__bars i:nth-child(3) { height: 16px; }
.v2twa-trace__meter.is-weak .v2twa-trace__bars i:nth-child(2),
.v2twa-trace__meter.is-weak .v2twa-trace__bars i:nth-child(3) { opacity: .25; }

/* =============================================================
   Infographic figure
============================================================= */
.v2twa-article .v2twa-fig { margin: 26px 0; }
.v2twa-article .v2twa-fig .v2twa-fig__frame { border: 1px solid var(--tw-line); border-radius: 14px; overflow: hidden; box-shadow: var(--tw-shadow); background: var(--paper); }
.v2twa-article .v2twa-fig img { display: block; width: 100%; height: auto; }
.v2twa-article .v2twa-fig figcaption { margin: 12px 4px 0; text-align: center; font-size: 13px; line-height: 1.55; color: var(--slate); font-style: italic; }

/* =============================================================
   Comparison matrix (stacks to labelled cards on mobile)
============================================================= */
.v2twa-vs { border: 1px solid var(--tw-line); border-radius: 16px; overflow: hidden; box-shadow: var(--tw-shadow); background: var(--paper); }
.v2twa-vs__head { display: none; }
.v2twa-vs__row { display: grid; grid-template-columns: 1fr; border-top: 8px solid #F1F5F9; }
.v2twa-vs__row:first-child { border-top: 0; }
.v2twa-vs__row > div { padding: 11px 15px; font-size: 14px; }
.v2twa-vs__row > div:first-child { background: var(--tw-navy); color: #fff; font-weight: 700; font-size: 12px; letter-spacing: .03em; }
.v2twa-vs__row > div:not(:first-child) { display: flex; align-items: center; gap: 8px; color: var(--slate); }
.v2twa-vs__row > div:nth-child(2) { background: var(--tw-rose-tint); }
.v2twa-vs__row > div:nth-child(3) { background: var(--go-tint); }
.v2twa-vs__row > div[data-label]::before { content: attr(data-label) ": "; font-weight: 700; font-size: 11px; text-transform: uppercase; letter-spacing: .03em; }
.v2twa-vs__row > div:nth-child(2)::before { color: var(--tw-rose); }
.v2twa-vs__row > div:nth-child(3)::before { color: var(--go-deep); }
.v2twa-vs__pill { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 3px 11px; border-radius: 999px; }
.v2twa-vs__pill.is-bad  { background: var(--tw-rose); color: #fff; }
.v2twa-vs__pill.is-good { background: var(--go-deep); color: #fff; }

/* =============================================================
   Architecture verdict cards
============================================================= */
.v2twa-arch { display: grid; grid-template-columns: 1fr; gap: 16px; }
.v2twa-arch__card { position: relative; background: var(--paper); border: 2px solid var(--tw-line); border-radius: 16px; padding: 22px 20px 18px; box-shadow: var(--tw-shadow); }
.v2twa-arch__card.is-twa { border-color: var(--tw-rose-line); }
.v2twa-arch__card.is-wv  { border-color: var(--go); box-shadow: 0 2px 6px rgba(10,16,23,.05), 0 20px 40px -22px rgba(11,138,71,.35); }
.v2twa-arch__tag { position: absolute; top: -11px; right: 18px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.v2twa-arch__tag.is-twa { background: var(--tw-rose-tint); color: var(--tw-rose); border: 1px solid var(--tw-rose-line); }
.v2twa-arch__tag.is-wv  { background: linear-gradient(-135deg, #10B981, #059669); color: #fff; }
.v2twa-arch__h { margin: 4px 0 4px; font-family: var(--font-display); font-weight: 700; font-size: 18px; color: var(--ink); }
.v2twa-arch__best { margin: 0 0 12px; font-size: 13px; color: var(--slate); font-style: italic; }
.v2twa-arch__row { display: flex; align-items: flex-start; gap: 9px; padding: 8px 0; font-size: 14px; color: var(--ink); border-top: 1px solid #F1F5F9; line-height: 1.5; }
.v2twa-arch__row:first-of-type { border-top: 0; }
.v2twa-arch__mk { flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; margin-top: 1px; }
.v2twa-arch__row.is-good .v2twa-arch__mk { background: var(--go-tint); color: var(--go-deep); }
.v2twa-arch__row.is-meh  .v2twa-arch__mk { background: var(--tw-amber-tint); color: var(--tw-amber-deep); }
.v2twa-arch__row.is-bad  .v2twa-arch__mk { background: var(--tw-rose-tint); color: var(--tw-rose); }

/* =============================================================
   Interactive framework compatibility matrix
============================================================= */
.v2twa-fw { border: 2px solid var(--tw-line); border-radius: 18px; overflow: hidden; box-shadow: var(--tw-shadow-lg); background: var(--paper); }
.v2twa-fw__head { padding: 20px; background: linear-gradient(-135deg, var(--tw-navy), #22344B); color: #fff; position: relative; overflow: hidden; }
.v2twa-fw__head::before { content: ""; position: absolute; top: -30px; left: -30px; width: 120px; height: 120px; background: rgba(14,116,144,.20); border-radius: 50%; }
.v2twa-fw__tag { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 6px; background: rgba(125,227,255,.14); border: 1px solid rgba(125,227,255,.3); color: #9DE7FF; font-size: 10.5px; font-weight: 700; padding: 4px 11px; border-radius: 6px; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 12px; }
.v2twa-fw__tag svg { width: 14px; height: 14px; }
.v2twa-fw__h { position: relative; z-index: 1; margin: 0 0 4px; font-family: var(--font-display); font-weight: 700; font-size: 19px; color: #fff; }
.v2twa-fw__sub { position: relative; z-index: 1; margin: 0; font-size: 13.5px; line-height: 1.6; color: rgba(255,255,255,.78); }
.v2twa-fw__body { padding: 20px; }
.v2twa-fw__label { display: block; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--slate); margin-bottom: 8px; }
.v2twa-fw__select { position: relative; }
.v2twa-fw__select select { appearance: none; -webkit-appearance: none; width: 100%; padding: 13px 15px 13px 42px; font-size: 15px; font-weight: 600; color: var(--ink); background: #F7FAFC; border: 2px solid var(--tw-line); border-radius: 12px; cursor: pointer; font-family: inherit; transition: border-color .18s ease; }
.v2twa-fw__select select:hover { border-color: var(--tw-cyan); }
.v2twa-fw__select select:focus { outline: none; border-color: var(--tw-cyan); background: #fff; box-shadow: 0 0 0 3px rgba(14,116,144,.14); }
.v2twa-fw__select::after { content: ""; position: absolute; left: 18px; top: 44%; width: 9px; height: 9px; border-left: 2px solid var(--slate); border-bottom: 2px solid var(--slate); transform: translateY(-50%) rotate(-45deg); pointer-events: none; }
.v2twa-fw__result { margin-top: 16px; }
.v2twa-fw__empty { display: flex; align-items: center; gap: 10px; padding: 16px 18px; background: #F7FAFC; border: 1px dashed #CBD5E1; border-radius: 14px; color: var(--slate); font-size: 14px; }
.v2twa-fw__empty svg { width: 20px; height: 20px; flex-shrink: 0; color: #9AA6B2; }
.v2twa-fw__card { display: none; border-radius: 14px; padding: 18px; border: 1px solid var(--tw-line); animation: twaFwIn .32s ease; }
.v2twa-fw__card.is-show { display: block; }
@keyframes twaFwIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.v2twa-fw__cardhead { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.v2twa-fw__cardic { flex-shrink: 0; width: 42px; height: 42px; border-radius: 11px; display: flex; align-items: center; justify-content: center; color: #fff; }
.v2twa-fw__cardic svg { width: 22px; height: 22px; }
.v2twa-fw__cardh { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--ink); line-height: 1.3; }
.v2twa-fw__cardtag { display: inline-block; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 3px 9px; border-radius: 6px; margin-top: 3px; }
.v2twa-fw__card p { margin: 0 0 10px; font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2twa-fw__card p:last-child { margin-bottom: 0; }
.v2twa-fw__card.is-react  { background: linear-gradient(-180deg, #EFF9FE, #fff); border-color: #BAE6FD; }
.v2twa-fw__card.is-react  .v2twa-fw__cardic { background: linear-gradient(-135deg, #0EA5E9, #0284C7); }
.v2twa-fw__card.is-react  .v2twa-fw__cardtag { background: #DBEAFE; color: #1D4ED8; }
.v2twa-fw__card.is-nocode { background: linear-gradient(-180deg, var(--tw-amber-tint), #fff); border-color: var(--tw-amber-line); }
.v2twa-fw__card.is-nocode .v2twa-fw__cardic { background: linear-gradient(-135deg, #F59E0B, #D97706); }
.v2twa-fw__card.is-nocode .v2twa-fw__cardtag { background: #FEF3C7; color: var(--tw-amber-deep); }
.v2twa-fw__card.is-static { background: linear-gradient(-180deg, var(--go-tint), #fff); border-color: var(--go-line); }
.v2twa-fw__card.is-static .v2twa-fw__cardic { background: linear-gradient(-135deg, #10B981, #059669); }
.v2twa-fw__card.is-static .v2twa-fw__cardtag { background: var(--go-tint); color: var(--go-deep); }

/* =============================================================
   Two-gate cards
============================================================= */
.v2twa-gates { display: grid; grid-template-columns: 1fr; gap: 14px; }
.v2twa-gate { position: relative; background: var(--paper); border: 1px solid var(--tw-line); border-radius: 14px; padding: 18px; box-shadow: var(--tw-shadow); }
.v2twa-gate__num { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #fff; background: var(--tw-navy); border-radius: 6px; padding: 3px 10px; margin-bottom: 12px; }
.v2twa-gate__h { margin: 0 0 6px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); }
.v2twa-gate > p { margin: 0 0 12px; font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2twa-gate__tag { display: inline-flex; align-items: center; font-size: 11.5px; font-weight: 700; padding: 5px 11px; border-radius: 7px; }
.v2twa-gate__tag.is-count  { background: var(--tw-blue-tint); color: var(--tw-blue); }
.v2twa-gate__tag.is-policy { background: var(--tw-rose-tint); color: var(--tw-rose); }

/* =============================================================
   Bait-and-switch do / don't banner
============================================================= */
.v2twa-swap { border: 1px solid var(--tw-amber-line); border-radius: 16px; overflow: hidden; background: linear-gradient(-180deg, var(--tw-amber-tint), #fff); }
.v2twa-swap__head { display: flex; align-items: center; gap: 10px; padding: 15px 18px; background: rgba(245,158,11,.14); border-bottom: 1px solid var(--tw-amber-line); }
.v2twa-swap__head svg { width: 22px; height: 22px; color: #D97706; flex-shrink: 0; }
.v2twa-swap__h { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--tw-amber-deep); line-height: 1.35; }
.v2twa-swap__body { padding: 8px 18px 14px; }
.v2twa-swap__rule { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; }
.v2twa-swap__x, .v2twa-swap__y { flex-shrink: 0; width: 26px; height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.v2twa-swap__x svg, .v2twa-swap__y svg { width: 15px; height: 15px; }
.v2twa-swap__x { background: var(--tw-rose-tint); color: var(--tw-rose); }
.v2twa-swap__y { background: var(--go-tint); color: var(--go-deep); }
.v2twa-swap__rule p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--tw-amber-body); }

/* =============================================================
   200+ stat feature band (light, bold)
============================================================= */
.v2twa-stat { display: grid; grid-template-columns: 1fr; gap: 16px; align-items: center; background: linear-gradient(-135deg, var(--tw-cyan-tint), #fff); border: 1px solid var(--tw-cyan-line); border-right: 5px solid var(--tw-cyan-2); border-radius: 16px; padding: 22px; }
.v2twa-stat__num { text-align: center; }
.v2twa-stat__num b { display: block; font-family: var(--font-display); font-size: 52px; font-weight: 800; line-height: 1; color: var(--tw-navy); letter-spacing: -.02em; }
.v2twa-stat__num b span { color: var(--tw-cyan); }
.v2twa-stat__lab { display: block; margin-top: 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--slate); }
.v2twa-stat__txt { margin: 0; font-size: 15.5px; line-height: 1.65; color: #1E3A5F; }
.v2twa-stat__txt strong { color: var(--ink); }
.v2twa-stat__txt strong.is-go { color: var(--go-deep); }

/* =============================================================
   Highlights row
============================================================= */
.v2twa-hl { display: grid; grid-template-columns: 1fr; gap: 10px; }
.v2twa-hl__item { display: flex; align-items: center; gap: 11px; padding: 14px 16px; border-radius: 11px; border: 1px solid; }
.v2twa-hl__item svg { width: 22px; height: 22px; flex-shrink: 0; }
.v2twa-hl__item b { display: block; font-size: 14.5px; color: var(--ink); font-family: var(--font-display); }
.v2twa-hl__item span { display: block; font-size: 12.5px; color: var(--slate); }
.v2twa-hl__item.is-green { background: var(--go-tint); border-color: var(--go-line); }
.v2twa-hl__item.is-green svg { color: var(--go-deep); }
.v2twa-hl__item.is-blue  { background: var(--tw-blue-tint); border-color: var(--tw-blue-line); }
.v2twa-hl__item.is-blue svg { color: var(--tw-blue); }
.v2twa-hl__item.is-amber { background: var(--tw-amber-tint); border-color: var(--tw-amber-line); }
.v2twa-hl__item.is-amber svg { color: #D97706; }

/* =============================================================
   Pricing plates
============================================================= */
.v2twa-prices { display: grid; grid-template-columns: 1fr; gap: 14px; }
.v2twa-price { position: relative; background: var(--paper); border: 1px solid var(--tw-line); border-radius: 16px; padding: 22px 20px; text-align: center; box-shadow: var(--tw-shadow); }
.v2twa-price.is-best { border-color: var(--tw-cyan-2); box-shadow: 0 2px 6px rgba(10,16,23,.05), 0 22px 44px -20px rgba(14,116,144,.34); }
.v2twa-price__badge { position: absolute; top: -11px; right: 50%; transform: translateX(50%); font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: linear-gradient(-135deg, #0891B2, #0E7490); padding: 4px 14px; border-radius: 999px; }
.v2twa-price__name { display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--tw-cyan); font-weight: 700; }
.v2twa-price__testers { display: block; margin-top: 4px; font-size: 13.5px; color: var(--slate); }
.v2twa-price__amt { display: block; margin: 8px 0 12px; font-family: var(--font-display); font-size: 34px; font-weight: 800; color: var(--ink); }
.v2twa-article ul.v2twa-price__list { list-style: none; margin: 0 0 16px; padding: 0; text-align: right; display: inline-block; }
.v2twa-article ul.v2twa-price__list > li { position: relative; padding-right: 26px; font-size: 13.5px; line-height: 1.5; color: var(--slate); margin: 8px 0; }
.v2twa-article ul.v2twa-price__list > li::before { content: ""; position: absolute; right: 2px; top: 3px; width: 15px; height: 15px; border-radius: 50%; background: var(--go-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 10px no-repeat; }
.v2twa-article a.v2twa-price__btn { display: block; padding: 12px 18px; border-radius: 10px; font-weight: 700; font-size: 14px; text-decoration: none; background: #F1F5F9; color: var(--ink); transition: filter .18s ease, background .18s ease; }
.v2twa-article a.v2twa-price__btn:hover { background: #E7EDF3; }
.v2twa-article a.v2twa-price__btn.is-primary { background: linear-gradient(-135deg, #0891B2, #0E7490); color: #fff; }
.v2twa-article a.v2twa-price__btn.is-primary:hover { filter: brightness(1.06); }

/* =============================================================
   Bottom line + official docs
============================================================= */
.v2twa-bottom { background: linear-gradient(-135deg, var(--tw-amber-tint), #FFFDF7); border: 1px solid var(--tw-amber-line); border-radius: 16px; padding: 22px; }
.v2twa-bottom__tag { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--tw-amber-deep); margin: 0 0 10px; }
.v2twa-bottom__tag svg { width: 18px; height: 18px; }
.v2twa-bottom__text { margin: 0; font-size: 16px; line-height: 1.75; color: var(--ink); font-weight: 500; }
.v2twa-docs { background: #F7FAFC; border: 1px solid var(--tw-line); border-radius: 14px; padding: 18px 20px; }
.v2twa-docs__lab { display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ink); margin: 0 0 12px; }
.v2twa-docs__lab svg { width: 17px; height: 17px; color: #4285F4; }
.v2twa-docs__list { display: grid; gap: 8px; }
.v2twa-article .v2twa-docs__list a { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--tw-cyan); text-decoration: none; font-weight: 600; }
.v2twa-article .v2twa-docs__list a:hover { text-decoration: underline; }
.v2twa-docs__list a .v2-ic { width: 16px; height: 16px; flex-shrink: 0; }

/* =============================================================
   >= 560px : small multi-column upgrades
============================================================= */
@media (min-width: 560px) {
    .v2twa-hl { grid-template-columns: repeat(3, 1fr); }
    .v2twa-diag { grid-template-columns: repeat(2, 1fr); }
    .v2twa-why { grid-template-columns: repeat(3, 1fr); }
}

/* =============================================================
   >= 640px : side-by-side layouts, horizontal scan + trace
============================================================= */
@media (min-width: 640px) {
    .v2twa-facts { grid-template-columns: repeat(4, 1fr); }

    /* Scan: two lanes + arrow in a row */
    .v2twa-scan__grid { grid-template-columns: 1fr auto 1fr; align-items: stretch; gap: 12px; }
    .v2twa-scan__lane { display: flex; flex-direction: column; }
    .v2twa-scan__arrow { flex-direction: column; align-self: center; }
    .v2twa-scan__arrow svg { transform: none; }

    /* Myth + arch + gates: two columns */
    .v2twa-myth { grid-template-columns: 1fr 1fr; }
    .v2twa-myth__side.is-myth { border-bottom: 0; border-left: 1px solid var(--tw-rose-line); }
    .v2twa-arch { grid-template-columns: 1fr 1fr; }
    .v2twa-gates { grid-template-columns: 1fr 1fr; }

    /* Trust flow: three across, pass/fail two across */
    .v2twa-trust__flow { grid-template-columns: repeat(3, 1fr); }
    .v2twa-trust__result { grid-template-columns: 1fr 1fr; }

    /* Prices: three across */
    .v2twa-prices { grid-template-columns: repeat(3, 1fr); }

    /* Stat band: number + text */
    .v2twa-stat { grid-template-columns: auto 1fr; gap: 24px; }
    .v2twa-stat__txt { border-right: 1px solid var(--tw-cyan-line); padding-right: 22px; }

    /* Signal trace: horizontal row */
    .v2twa-trace__row { grid-template-columns: 78px 1fr auto; align-items: center; gap: 12px; }
    .v2twa-trace__chain { flex-direction: row; flex-wrap: wrap; align-items: center; }
    .v2twa-trace__chip { justify-content: flex-start; }
    .v2twa-trace__arw { transform: none; }
    .v2twa-trace__meter { justify-content: flex-end; }

    /* Comparison matrix becomes a real 3-column table */
    .v2twa-vs__head { display: grid; grid-template-columns: 1.4fr 1fr 1fr; }
    .v2twa-vs__head > div { padding: 15px; color: #fff; background: var(--tw-navy); font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
    .v2twa-vs__head > div.is-twa { background: #3A2422; text-align: center; }
    .v2twa-vs__head > div.is-wv  { background: #123A2A; text-align: center; }
    .v2twa-vs__row { grid-template-columns: 1.4fr 1fr 1fr; border-top: 1px solid #EEF2F6; }
    .v2twa-vs__row > div { display: flex; align-items: center; padding: 14px 15px; }
    .v2twa-vs__row > div:first-child { background: #F9FAFB; color: var(--ink); font-weight: 600; font-size: 14px; }
    .v2twa-vs__row > div:nth-child(2), .v2twa-vs__row > div:nth-child(3) { justify-content: center; text-align: center; background: var(--paper); }
    .v2twa-vs__row > div[data-label]::before { display: none; }

    /* Framework matrix breathing room */
    .v2twa-fw__head, .v2twa-fw__body { padding: 24px 26px; }
}

/* =============================================================
   >= 980px : desktop polish
============================================================= */
@media (min-width: 980px) {
    .v2twa-scan__head b { font-size: 16.5px; }
    .v2twa-stat__num b { font-size: 60px; }
}

/* =============================================================
   <= 380px : very small phones
============================================================= */
@media (max-width: 380px) {
    .v2twa-facts { grid-template-columns: 1fr 1fr; gap: 8px; }
    .v2twa-hl { grid-template-columns: 1fr; }
    .v2twa-diag { grid-template-columns: 1fr; }
    .v2twa-why { grid-template-columns: 1fr; }
    .v2twa-stat__num b { font-size: 44px; }
    .v2twa-term__body { font-size: 11.5px; }
}

/* ============================================================
   BLOG CTR V2 (/blog/why-google-play-closed-testing-gets-rejected)
   "Google Play closed testing rejected? Causes and fixes" post.

   REBUILT 2026-09-11 against the deep-research editorial audit. The
   old v2ctr- layer (a rejection-triage / repair-bay motif: a Play
   Console verdict console, rose "rejection trigger" cause cards, a
   DIY reliability ledger) was deleted with the article it dressed.
   Its rose-versus-green colour story staged the page as fault and
   remedy, which is exactly the excessive certainty the audit found:
   general app-quality advice was wearing the same red flag as a
   stated Google rule.

   Prefix: v2dx-. Motif: an EVIDENCE BENCH. One local accent, an
   evidence teal, carries everything a reader can look up or verify;
   the site green stays the confirmed/pass state; nothing is red,
   because nothing on this page is an automatic denial. Components:
   a decision router (a real 3-row table a tap can highlight), the
   three certainty labels, a six-row triage that names the area to
   read, per-area cards with a "what this does not prove" panel, and
   a tabbed evidence interpreter. Rides the shared v2gpr- article
   layer (rail + chips, prose, h2, note/warn, faq, plans, docs,
   author, related, dark CTA, sticky CTA).

   Two bold dark moments only: the quick answer and the bottom line.
   ============================================================ */

/* Local evidence accent + a muted amber for "inconclusive" */
.v2dx-article {
    --dx-ev:        #14607D;
    --dx-ev-deep:   #0E4C64;
    --dx-ev-bg:     #EFF6F9;
    --dx-ev-line:   rgba(20, 96, 125, 0.18);
    --dx-ev-tint:   #E2EEF3;
    --dx-amber:     #8A5A00;
    --dx-amber-bg:  #FDF6E8;
    --dx-amber-line: rgba(138, 90, 0, 0.18);
}

/* Block-scoped reset (gotcha 19: base reset skips h4/ul/ol/figure) */
.v2dx-legend__list, .v2dx-checks, .v2dx-steps {
    margin: 0; padding: 0; list-style: none;
}

/* Retired 2026-07 anchors, kept so old deep links still land */
.v2dx-anchor {
    display: block;
    height: 0;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}

/* ---------- Hero ---------- */
.v2dx-hero__go { color: var(--go); }
.v2dx-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2dx-fact--date b { font-size: 19px; letter-spacing: -0.01em; }

/* ---------- Quick answer (speakable; dark moment #1) ---------- */
.v2dx-answer {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 4px 0 26px;
}
.v2dx-answer__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2dx-answer__tag svg { width: 16px; height: 16px; }
.v2dx-answer__lead {
    font-size: 16px; line-height: 1.8; font-weight: 450;
    color: #C6D0DA;
}
.v2dx-answer__lead strong { color: #fff; font-weight: 700; }
.v2dx-answer__note {
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 14.5px; line-height: 1.7;
    color: #93A0AC;
}
.v2dx-answer__note strong { color: #C6D0DA; font-weight: 650; }

/* ---------- SIGNATURE: the three certainty labels ----------
   A squared tag with a load-bearing left bar, deliberately not a
   pill: the label is a claim about authority, not decoration. */
.v2dx-lbl {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    line-height: 1;
    padding: 6px 9px 6px 11px;
    border-radius: 4px;
    border-right: 3px solid currentColor;
    white-space: nowrap;
}
.v2dx-lbl.is-req  { color: var(--ink);    background: var(--mist); }
.v2dx-lbl.is-guid { color: var(--dx-ev);  background: var(--dx-ev-bg); }
.v2dx-lbl.is-ours { color: var(--go-deep); background: var(--go-tint); }

/* A label that sits directly in the prose flow needs its own air */
.v2gpr-prose > .v2dx-lbl { margin: 26px 0 12px; }

.v2dx-legend {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04);
}
.v2dx-legend__lab { margin: 0 0 14px; font-size: 10px; color: var(--faint); }
.v2dx-legend__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.v2dx-legend__list li {
    display: grid;
    /* The chip is white-space:nowrap at 9px uppercase mono. A fixed track
       CLIPPED any translated certainty label longer than it (measured: a 169px
       label inside a 129px content box), which silently truncates the page's
       signature device. minmax lets that row widen instead, and the subgrid
       block below keeps all three rows aligned to the longest label. */
    grid-template-columns: minmax(132px, max-content) minmax(0, 1fr);
    align-items: baseline;
    gap: 14px;
}
/* One SHARED label column across the three rows, sized to the longest chip in
   whatever language is rendering, so the labels stay aligned without a fixed
   width. Falls back to the per-row minmax above where subgrid is unsupported. */
@supports (grid-template-columns: subgrid) {
    .v2dx-legend__list { grid-template-columns: max-content minmax(0, 1fr); gap: 12px 14px; }
    .v2dx-legend__list li { grid-column: 1 / -1; grid-template-columns: subgrid; }
}
.v2dx-legend__list li > span:last-child {
    font-size: 14px; line-height: 1.65; color: var(--slate);
}

/* ---------- Table of contents ---------- */
.v2dx-toc {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0 8px;
}
.v2dx-toc__label { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2dx-toc__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 22px;
}
.v2 .v2dx-toc__grid a {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 7px 0;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    border-bottom: 1px solid transparent;
}
.v2dx-toc__grid a .v2-mono { font-size: 10px; color: var(--faint); flex-shrink: 0; }
.v2 .v2dx-toc__grid a:hover { color: var(--go-deep); }
.v2 .v2dx-toc__grid a:hover .v2-mono { color: var(--go); }

/* ---------- Headings ---------- */
.v2dx-h2 { text-wrap: balance; }
.v2dx-h3 { scroll-margin-top: calc(var(--nav-h) + 26px); }

/* ---------- Inline source lines ----------
   `.v2gpr-prose > p` is (0,2,1) and would win over a bare class on a
   direct child, so the direct-child form is spelled out. */
.v2dx-src,
.v2gpr-prose > p.v2dx-src {
    font-size: 13px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 0;
}
.v2dx-area .v2dx-src { margin-top: 16px; }
.v2 .v2dx-src a {
    color: var(--dx-ev);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(20, 96, 125, 0.3);
    text-underline-offset: 3px;
}
.v2 .v2dx-src a:hover { text-decoration-color: var(--dx-ev); }

/* ---------- SIGNATURE: the decision router ---------- */
.v2dx-router {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(10, 16, 23, 0.22);
}
.v2dx-router__head {
    padding: 16px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2dx-router__lab { margin: 0 0 11px; font-size: 10px; color: var(--faint); }
.v2dx-router__pick { display: flex; flex-wrap: wrap; gap: 8px; }
/* `.v2 button` in the base reset is (0,1,1) and zeroes padding, border and
   background, so every button-based control here is written `.v2 <class>`
   (0,2,0) or it renders as bare text. min-height keeps the tap target at 44px
   once the real padding lands. */
.v2 .v2dx-router__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    font-size: 13px;
    font-weight: 600;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 14px;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2dx-router__btn:hover { color: var(--ink); border-color: #C9D2DA; }
.v2 .v2dx-router__btn.is-on {
    color: #fff;
    background: var(--dx-ev);
    border-color: var(--dx-ev);
}
.v2dx-router__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2dx-router table { width: 100%; min-width: 640px; border-collapse: collapse; }
.v2dx-router th {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2dx-router td {
    padding: 14px 16px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
    transition: background 0.18s ease;
}
.v2dx-router tbody tr:last-child td { border-bottom: none; }
.v2dx-router td strong { color: var(--ink); font-weight: 650; }
.v2dx-router tbody tr.is-on td { background: var(--dx-ev-bg); }
.v2dx-router tbody tr.is-on td:first-child { box-shadow: inset -3px 0 0 var(--dx-ev); }
.v2dx-router__out {
    display: block;
    margin: 0;
    padding: 14px 18px;
    background: var(--ink);
    color: #C6D0DA;
    font-size: 14px;
    line-height: 1.65;
}
.v2dx-router__out[hidden] { display: none; }

/* ---------- Numbered step list ---------- */
.v2dx-steps { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 18px 0; }
.v2dx-steps li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2dx-steps li strong { color: var(--ink); font-weight: 650; }
.v2dx-steps__n {
    flex-shrink: 0;
    width: 22px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--dx-ev-bg);
    color: var(--dx-ev);
    font-size: 10px;
    font-weight: 700;
}

/* Shared note/warn family tweaks (icon-first grid: keep the icon) */
.v2dx-note, .v2dx-warn { margin: 22px 0; }

/* ---------- SIGNATURE: the six-row triage ---------- */
.v2dx-triage {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(10, 16, 23, 0.18);
}
.v2dx-triage__top {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 18px;
    background: var(--ink);
}
.v2dx-triage__lab {
    display: inline-flex; align-items: center; gap: 8px;
    color: #5FD4A0; font-size: 10px;
}
.v2dx-triage__lab svg { width: 15px; height: 15px; }
.v2dx-triage__count { margin-right: auto; font-size: 10px; color: #93A0AC; white-space: nowrap; }
.v2 .v2dx-triage__row {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    width: 100%;
    text-align: right;
    padding: 14px 18px;
    border-bottom: 1px solid #F0F3F5;
    transition: background 0.18s ease;
}
.v2dx-triage__row:last-of-type { border-bottom: none; }
.v2dx-triage__row:hover { background: var(--mist); }
.v2dx-triage__n {
    flex-shrink: 0;
    width: 22px; height: 22px; margin-top: 1px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--mist);
    color: var(--faint);
    font-size: 10px; font-weight: 700;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2dx-triage__txt { flex: 1 1 auto; min-width: 0; }
.v2dx-triage__txt strong {
    display: block;
    font-size: 14.5px; font-weight: 650; line-height: 1.45;
    color: var(--ink);
}
.v2dx-triage__txt > span {
    display: block;
    font-size: 13px; line-height: 1.6; color: var(--slate);
    margin-top: 4px;
}
.v2dx-triage__box {
    flex-shrink: 0;
    width: 21px; height: 21px; margin-top: 1px;
    border-radius: 6px;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    position: relative;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2dx-triage__box::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 15px 15px;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.16s ease;
}
.v2dx-triage__row.is-checked { background: var(--go-tint); }
.v2dx-triage__row.is-checked .v2dx-triage__n { background: var(--go); color: #fff; }
.v2dx-triage__row.is-checked .v2dx-triage__box { background: var(--go); border-color: var(--go); }
.v2dx-triage__row.is-checked .v2dx-triage__box::after { opacity: 1; }
.v2dx-triage__out {
    display: block;
    margin: 0;
    padding: 15px 18px;
    background: var(--dx-amber-bg);
    border-top: 1px solid var(--dx-amber-line);
    font-size: 14px;
    line-height: 1.7;
    color: var(--dx-amber);
}
.v2dx-triage__out[hidden] { display: none; }
.v2 .v2dx-triage__out a {
    color: var(--dx-amber);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- The five area cards ----------
   minmax(0, 1fr), not the implicit `auto` column: an auto grid track is
   floored at min-content, and these cards hold tables with a min-width,
   so the default track dragged the whole mobile layout viewport out to
   619px on a 390px screen. `auto` would also defeat the tables' own
   overflow-x scrollers. Same reason for min-width: 0 on the card. */
.v2dx-areas {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 26px 0 0;
}
.v2dx-area {
    min-width: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2dx-area__head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.v2dx-area__idx {
    flex-shrink: 0;
    width: 42px; height: 42px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 11px;
    background: var(--dx-ev-bg);
    color: var(--dx-ev);
    font-family: var(--font-display);
    font-weight: 800; font-size: 20px; letter-spacing: -0.02em;
}
.v2dx-area__title {
    font-family: var(--font-display);
    font-weight: 650; font-size: 17.5px; letter-spacing: -0.014em;
    line-height: 1.3; color: var(--ink);
}
.v2dx-area__lead {
    font-size: 15px; line-height: 1.75; color: var(--slate);
    margin: 12px 0 0;
}
.v2dx-area__lead strong { color: var(--ink); font-weight: 650; }
.v2dx-area__clab { margin: 20px 0 10px; font-size: 10px; color: var(--faint); }

.v2dx-checks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; }
.v2dx-checks li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px; line-height: 1.7; color: var(--slate);
}
.v2dx-checks li strong { color: var(--ink); font-weight: 650; }
.v2dx-checks li::before {
    content: '';
    position: absolute;
    right: 0; top: 7px;
    width: 15px; height: 15px;
    border-radius: 4px;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%230B8A47' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 12px 12px;
    background-position: center;
    background-repeat: no-repeat;
}

/* ---------- Illustrative example panels ---------- */
.v2dx-ex {
    background: var(--dx-ev-bg);
    border: 1px solid var(--dx-ev-line);
    border-radius: 13px;
    padding: 15px 17px;
    margin: 18px 0 0;
}
.v2dx-ex__lab { margin: 0 0 8px; font-size: 10px; color: var(--dx-ev); }
.v2dx-ex p:last-child { font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2dx-ex--go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2dx-ex--go .v2dx-ex__lab { color: var(--go-deep); }

/* Our-suggestion panel (dashed: a practice, not a rule) */
.v2dx-ours {
    border: 1px dashed #C9D2DA;
    border-radius: 13px;
    padding: 15px 17px;
    margin: 20px 0 0;
}
.v2dx-ours .v2dx-lbl { margin-bottom: 10px; }
.v2dx-ours p { font-size: 14px; line-height: 1.7; color: var(--slate); }

/* What the evidence does NOT settle */
.v2dx-proof {
    background: var(--dx-amber-bg);
    border: 1px solid var(--dx-amber-line);
    border-radius: 13px;
    padding: 15px 17px;
    margin: 20px 0 0;
}
.v2dx-proof__lab { margin: 0 0 8px; font-size: 10px; color: var(--dx-amber); }
.v2dx-proof p:last-child { font-size: 14px; line-height: 1.7; color: var(--slate); }

/* ---------- Metric + test-record tables inside an area ---------- */
.v2dx-metrics, .v2dx-record { margin: 20px 0 0; }
.v2dx-metrics__lab, .v2dx-record__lab { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2dx-metrics__scroll, .v2dx-record__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 13px;
}
.v2dx-metrics table, .v2dx-record table {
    width: 100%; min-width: 560px; border-collapse: collapse;
}
.v2dx-metrics th, .v2dx-record th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 11px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2dx-metrics td, .v2dx-record td {
    padding: 12px 14px;
    font-size: 13.5px; line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2dx-metrics tbody tr:last-child td,
.v2dx-record tbody tr:last-child td { border-bottom: none; }
.v2dx-metrics td strong, .v2dx-record td strong { color: var(--ink); font-weight: 650; }
.v2dx-record__note {
    font-size: 13px; line-height: 1.7; color: var(--faint);
    margin: 11px 0 0;
}

/* ---------- SIGNATURE: the evidence interpreter ---------- */
.v2dx-evi {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 22px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
}
.v2dx-evi__pick {
    display: flex;
    gap: 4px;
    padding: 8px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.v2dx-evi__pick::-webkit-scrollbar { display: none; }
.v2 .v2dx-evi__tab {
    flex: 1 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 9px 14px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--slate);
    white-space: nowrap;
    transition: color 0.18s ease, background 0.18s ease;
}
.v2 .v2dx-evi__tab:hover { color: var(--ink); }
.v2 .v2dx-evi__tab.is-on {
    color: var(--dx-ev-deep);
    background: var(--paper);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.08);
}
.v2dx-evi__panel { display: none; padding: 18px 20px; }
.v2dx-evi__panel.is-on { display: block; }
/* Same trap as the legend chips: the Answers / Does not answer labels are
   nowrap mono, and a fixed 118px track clipped the longer of the pair in
   German. The subgrid block below gives the two rows one shared column sized
   to whichever label is longer; minmax keeps it readable without subgrid. */
.v2dx-evi__row {
    display: grid;
    grid-template-columns: minmax(118px, max-content) minmax(0, 1fr);
    gap: 14px;
    align-items: baseline;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
    padding: 11px 0;
}
.v2dx-evi__row + .v2dx-evi__row { border-top: 1px solid #F0F3F5; }
@supports (grid-template-columns: subgrid) {
    .v2dx-evi__panel.is-on { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 14px; align-content: start; }
    .v2dx-evi__row { grid-column: 1 / -1; grid-template-columns: subgrid; }
}
.v2dx-evi__row > .v2-mono {
    font-size: 9.5px;
    padding: 5px 9px;
    border-radius: 4px;
    text-align: center;
    white-space: nowrap;
}
.v2dx-evi__row.is-yes > .v2-mono { color: var(--go-deep); background: var(--go-tint); }
.v2dx-evi__row.is-no  > .v2-mono { color: var(--dx-amber); background: var(--dx-amber-bg); }

/* ---------- Where a self-run group loses the window ---------- */
.v2dx-risks {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 22px 0 0;
}
.v2dx-risks__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2dx-risks__row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 11px 0;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2dx-risks__row + .v2dx-risks__row { border-top: 1px solid var(--line); }
.v2dx-risks__n {
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    color: var(--dx-amber);
    background: var(--dx-amber-bg);
    border-radius: 5px;
    padding: 5px 8px;
    margin-top: 2px;
}

/* ---------- Self-managed versus managed comparison ---------- */
.v2dx-cmp {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0 0;
}
.v2dx-cmp__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2dx-cmp table { width: 100%; min-width: 620px; border-collapse: collapse; }
.v2dx-cmp th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2dx-cmp th:last-child { color: var(--go-deep); }
.v2dx-cmp td {
    padding: 13px 16px;
    font-size: 13.5px; line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2dx-cmp tbody tr:last-child td { border-bottom: none; }
.v2dx-cmp td strong { color: var(--ink); font-weight: 650; }
.v2dx-cmp td:last-child { background: rgba(232, 245, 238, 0.45); }
.v2dx-cmpnote,
.v2gpr-prose > p.v2dx-cmpnote {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 13px 0 0;
}

/* ---------- Plans + operational-record rail ---------- */
.v2dx-plans { margin: 22px 0 0; }
.v2dx-guar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 22px;
    margin: 18px 0 0;
    padding: 15px 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2dx-guar__item {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
}
.v2dx-guar__item svg { width: 17px; height: 17px; color: var(--go); flex-shrink: 0; }

/* ---------- Bottom line (speakable; dark moment #2) ---------- */
.v2dx-bottom {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 26px 0 0;
}
.v2dx-bottom__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2dx-bottom__tag svg { width: 16px; height: 16px; }
.v2dx-bottom__text {
    font-size: 16px; line-height: 1.8; font-weight: 450;
    color: #C6D0DA;
}
.v2dx-bottom__text strong { color: #fff; font-weight: 700; }

/* ---------- Official documentation list ---------- */
.v2dx-docs { margin-top: 26px; }
.v2dx-docs .v2gpr-docs__label { font-size: 10px; color: var(--faint); }
.v2 .v2dx-docs .v2gpr-docs__list a { color: var(--dx-ev); }

/* ---------- Related resources ---------- */
.v2dx-relgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 880px;
    margin: 0 auto;
}
.v2 .v2dx-rel {
    display: flex;
    align-items: center;
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2dx-rel:hover {
    border-color: #C9D2DA;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.4);
}
.v2dx-rel__ic {
    flex-shrink: 0;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px;
    background: var(--dx-ev-bg);
    color: var(--dx-ev);
}
.v2dx-rel__ic svg { width: 19px; height: 19px; }
.v2dx-rel__tx { flex: 1 1 auto; min-width: 0; }
.v2dx-rel__tx strong { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.35; }
.v2dx-rel__tx span { display: block; font-size: 12.5px; color: var(--slate); line-height: 1.45; margin-top: 3px; }
.v2dx-rel__arw { color: var(--faint); flex-shrink: 0; transition: transform 0.18s ease, color 0.18s ease; }
.v2 .v2dx-rel:hover .v2dx-rel__arw { color: var(--go-deep); transform: translateX(-3px); }

/* ============================================================
   MOBILE / RESPONSIVE
============================================================ */
@media (max-width: 900px) {
    .v2dx-relgrid { grid-template-columns: minmax(0, 1fr); }
    .v2dx-legend__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2dx-legend__list li { grid-column: auto; grid-template-columns: minmax(0, 1fr); gap: 7px; }
    .v2dx-legend__list li .v2dx-lbl { justify-self: start; }
}

@media (max-width: 640px) {
    .v2dx-answer { padding: 22px 18px; }
    .v2dx-answer__lead { font-size: 15px; }
    .v2dx-answer__note { font-size: 13.5px; }
    .v2dx-legend { padding: 17px 16px; }
    .v2dx-toc { padding: 17px 16px; }
    .v2dx-toc__grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
    .v2dx-router__head { padding: 14px 15px; }
    .v2 .v2dx-router__btn { font-size: 12.5px; padding: 7px 12px; }
    .v2dx-router__out { padding: 13px 15px; font-size: 13.5px; }
    .v2dx-steps li { padding: 12px 13px; font-size: 14px; }
    .v2dx-triage__top { padding: 12px 15px; }
    .v2 .v2dx-triage__row { padding: 13px 15px; gap: 11px; }
    .v2dx-triage__txt strong { font-size: 14px; }
    .v2dx-triage__txt > span { font-size: 12.5px; }
    .v2dx-triage__out { padding: 14px 15px; font-size: 13.5px; }
    .v2dx-area { padding: 19px 17px; }
    .v2dx-area__idx { width: 36px; height: 36px; font-size: 17px; border-radius: 9px; }
    .v2dx-area__title { font-size: 16px; }
    .v2dx-area__lead { font-size: 14.5px; }
    .v2dx-checks li { font-size: 14px; }
    .v2dx-ex, .v2dx-ours, .v2dx-proof { padding: 14px 15px; }
    .v2dx-evi__panel { padding: 16px 16px; }
    .v2dx-evi__panel.is-on { display: block; }
    .v2dx-evi__row { grid-column: auto; grid-template-columns: minmax(0, 1fr); gap: 6px; font-size: 14px; }
    .v2dx-evi__row > .v2-mono { justify-self: start; }
    .v2dx-risks { padding: 16px 17px; }
    .v2dx-risks__row { font-size: 14px; }
    .v2dx-guar { flex-direction: column; align-items: flex-start; gap: 11px; padding: 16px 18px; }
    .v2dx-bottom { padding: 22px 20px; }
    .v2dx-bottom__text { font-size: 15px; }
}

@media (max-width: 480px) {
    .v2dx-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
    .v2dx-facts .v2gpr-fact { padding: 12px 9px; }
    .v2dx-facts .v2gpr-fact b { font-size: 17px; }
    .v2dx-fact--date b { font-size: 13px; }
    .v2dx-facts .v2-mono { font-size: 8.5px; }
    .v2dx-router__pick { flex-direction: column; align-items: stretch; }
    .v2 .v2dx-router__btn { width: 100%; }
    .v2dx-area__head { align-items: flex-start; gap: 12px; }
    .v2 .v2dx-evi__tab { font-size: 12.5px; padding: 8px 12px; }
}

@media (max-width: 380px) {
    .v2dx-facts { grid-template-columns: 1fr 1fr; }
    .v2dx-facts .v2gpr-fact:last-child { grid-column: 1 / -1; }
}

/* Reduced motion: settle every v2dx transition to its end state */
@media (prefers-reduced-motion: reduce) {
    .v2 .v2dx-router__btn, .v2dx-router td,
    .v2 .v2dx-triage__row, .v2dx-triage__n, .v2dx-triage__box,
    .v2dx-triage__box::after, .v2 .v2dx-evi__tab,
    .v2 .v2dx-rel, .v2dx-rel__arw { transition: none !important; }
}
/* ============= END BLOG CTR V2 ============= */


/* =============================================================
   BLOG "NOT ENOUGH TESTERS" V2
   (/blog/not-enough-testers-google-play)
   Rides the shared v2gpr- article layer. Adds a UNIQUE, mobile-first
   v2net- block: a Play Console "rejection decoder" notice with a
   12-minimum count meter + 14-day continuity strip, an account-scope
   triage, an invited-vs-opted verdict split, an opt-in flow, seven
   diagnostic "case" cards, an INTERACTIVE reapply-readiness checklist,
   an engagement task board, buffer-strength cards, and pricing plaques.
   Prefix: v2net-. Dark moments stay at two (shared quick answer +
   final CTA). One rose moment: the rejection-decoder notice.
============================================================= */

/* blockquote is NOT covered by the .v2gpr-prose reset (gotcha 19) */
.v2net-quote blockquote { margin: 0; }

/* ---------- Hero: 3-up facts ---------- */
.v2net-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* ---------- SIGNATURE: rejection-decoder notice (the one rose moment) --- */
.v2net-notice {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 8px 0 26px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 18px 40px -24px rgba(10, 16, 23, 0.16);
}
.v2net-notice__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2net-notice__dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #B42318;
    flex-shrink: 0;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, 0.12);
}
.v2net-notice__crumb { color: var(--faint); font-size: 10px; }
.v2net-notice__flag {
    margin-right: auto;
    color: #B42318;
    background: #FDF1F0;
    border: 1px solid rgba(180, 35, 24, 0.16);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 9px;
}
.v2net-notice__body {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 20px 18px 6px;
}
.v2net-notice__ic {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: #FDF1F0;
    color: #B42318;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(180, 35, 24, 0.14);
}
.v2net-notice__ic svg { width: 22px; height: 22px; }
.v2net-notice__lbl { color: var(--faint); margin-bottom: 5px; }
.v2net-notice__headline {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(1.3rem, 1.1rem + 1.1vw, 1.6rem);
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1.15;
}
.v2net-notice__sub {
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
    margin-top: 6px;
}
.v2net-decode {
    padding: 18px;
    margin-top: 14px;
    border-top: 1px dashed var(--line);
}
.v2net-decode__lbl {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 14px;
}
.v2net-decode__lbl svg { width: 15px; height: 15px; }
.v2net-decode__reqs {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
}
.v2net-req {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2net-req__hd { display: block; color: var(--faint); margin-bottom: 12px; }
.v2net-meter { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.v2net-meter i {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--go);
    box-shadow: 0 0 0 2px var(--go-tint);
}
.v2net-meter i.is-edge {
    background: transparent;
    border: 1.5px dashed #C9D2DA;
    box-shadow: none;
}
.v2net-days { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
.v2net-days i {
    width: 15px;
    height: 15px;
    border-radius: 4px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.28);
}
.v2net-req__cap { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2net-req__cap b { color: var(--ink); font-weight: 650; }
.v2net-decode__foot { margin-top: 14px; }
.v2net-decode__chip {
    display: inline-block;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 9.5px;
}

/* ---------- Quick answer overrides (dark capsule) ---------- */
.v2net-qa .v2net-qa__p { margin-top: 13px; }
.net-direct-answer.v2gpr-qa a {
    color: #3ECF81;
    font-weight: 650;
    text-decoration: underline;
    text-decoration-color: rgba(62, 207, 129, 0.4);
    text-underline-offset: 3px;
}
.net-direct-answer.v2gpr-qa a:hover { text-decoration-color: #3ECF81; }

/* ---------- Policy quote (Google guidance) ---------- */
.v2net-quote {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px;
    padding: 18px 20px;
    margin: 22px 0;
}
.v2net-quote__mark {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2net-quote__mark svg { width: 18px; height: 18px; }
.v2net-quote blockquote {
    font-size: 15px;
    line-height: 1.65;
    color: var(--ink);
    font-style: italic;
    font-weight: 500;
}
.v2net-quote figcaption {
    grid-column: 2;
    color: var(--faint);
    margin-top: 8px;
    font-size: 9.5px;
}
.v2net-quote.is-sm { padding: 15px 17px; margin: 18px 0; }
.v2net-quote.is-sm blockquote { font-size: 14px; }

/* ---------- Account-scope triage ---------- */
.v2net-scope {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 26px 0;
}
.v2net-scope__head { display: none; }
.v2net-scope__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px 14px;
    padding: 16px 18px;
    border-top: 1px solid var(--line);
    background: var(--paper);
}
.v2net-scope__row:first-of-type { border-top: none; }
.v2net-scope__row.is-req { border-right: 3px solid var(--ink); }
.v2net-scope__row.is-ok { border-right: 3px solid var(--go); }
.v2net-scope__who { font-size: 15px; color: var(--ink); }
.v2net-scope__who b { font-weight: 650; }
.v2net-scope__when { color: var(--faint); font-size: 10.5px; }
.v2net-scope__verdict { margin-top: 4px; }
.v2net-vbadge {
    display: inline-block;
    font-size: 12px;
    font-weight: 650;
    border-radius: 8px;
    padding: 5px 11px;
    line-height: 1.3;
}
.v2net-vbadge.is-req { color: var(--ink); background: var(--mist); border: 1px solid var(--line); }
.v2net-vbadge.is-ok { color: var(--go-deep); background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2net-foot { font-size: 12.5px; color: var(--faint); margin: -8px 0 18px; }

/* ---------- Invited vs opted-in split ---------- */
.v2net-vs {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin: 24px 0;
}
.v2net-vs__col {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2net-vs__col.is-no { background: var(--mist); }
.v2net-vs__col.is-yes { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2net-vs__hd { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; }
.v2net-vs__mk {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2net-vs__mk svg { width: 16px; height: 16px; }
.v2net-vs__col.is-no .v2net-vs__mk { background: var(--paper); color: var(--slate); border: 1px solid var(--line); }
.v2net-vs__col.is-yes .v2net-vs__mk { background: var(--paper); color: var(--go); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2net-vs__name {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    color: var(--ink);
}
.v2net-vs__tag {
    margin-right: auto;
    font-size: 8.5px;
    border-radius: 999px;
    padding: 4px 9px;
}
.v2net-vs__col.is-no .v2net-vs__tag { color: var(--slate); background: var(--paper); border: 1px solid var(--line); }
.v2net-vs__col.is-yes .v2net-vs__tag { color: var(--go-deep); background: var(--paper); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2net-vs__col ul { margin: 0; }
.v2net-vs__col li {
    position: relative;
    padding-right: 18px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    margin: 8px 0;
}
.v2net-vs__col li::before {
    content: '';
    position: absolute;
    right: 2px;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: #C9D2DA;
}
.v2net-vs__col.is-yes li::before { background: var(--go); }
.v2net-vs__col li strong { color: var(--ink); font-weight: 650; }

/* ---------- Opt-in flow (connected chain) ---------- */
.v2net-flow { margin: 20px 0; position: relative; }
.v2net-flow__step {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 12px 0;
    position: relative;
}
.v2net-flow__step::before {
    content: '';
    position: absolute;
    right: 16px;
    top: 34px;
    bottom: -12px;
    width: 2px;
    background: var(--line);
}
.v2net-flow__step:last-child::before { display: none; }
.v2net-flow__n {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 14px;
    position: relative;
    z-index: 1;
}
.v2net-flow__step.is-key .v2net-flow__n { background: var(--go); border-color: var(--go); color: #fff; }
.v2net-flow__step p { font-size: 14.5px; line-height: 1.55; color: var(--slate); }
.v2net-flow__step.is-key p strong { color: var(--ink); font-weight: 650; }

/* ---------- Diagnostic "case" cards ---------- */
.v2net-cases { margin: 24px 0; display: flex; flex-direction: column; gap: 16px; }
.v2net-case {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 22px 20px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2net-case:hover { border-color: #C9D2DA; box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 20px 40px -28px rgba(10, 16, 23, 0.18); }
.v2net-case__top { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.v2net-case__n {
    align-self: flex-start;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 4px 10px;
    font-size: 10px;
}
.v2net-case__h {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    letter-spacing: -0.012em;
    line-height: 1.3;
    color: var(--ink);
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2net-case__sym { font-size: 15px; line-height: 1.7; color: var(--slate); }
.v2net-case__sym strong { color: var(--ink); font-weight: 650; }
.v2net-fix {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 13px;
    padding: 15px 17px;
    margin: 16px 0 0;
}
.v2net-fix__lbl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--go-deep);
    margin-bottom: 9px;
}
.v2net-fix__lbl svg { width: 14px; height: 14px; }
.v2net-fixlist { margin: 0; }
.v2net-fixlist li {
    position: relative;
    padding-right: 22px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
    margin: 7px 0;
}
.v2net-fixlist li::before {
    content: '';
    position: absolute;
    right: 1px;
    top: 3px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: var(--paper);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 9px;
}
.v2net-fixlist li strong { color: var(--ink); font-weight: 650; }
.v2net-embed {
    border-radius: 12px;
    padding: 14px 16px;
    margin: 14px 0 0;
}
.v2net-embed.is-tip { background: var(--paper); border: 1px solid var(--line); }
.v2net-embed.is-warn { background: var(--mist); border: 1px solid var(--line); border-right: 3px solid var(--ink); }
.v2net-embed__lbl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 7px;
}
.v2net-embed.is-tip .v2net-embed__lbl { color: var(--go-deep); }
.v2net-embed.is-warn .v2net-embed__lbl { color: var(--ink); }
.v2net-embed__lbl svg { width: 14px; height: 14px; }
.v2net-embed p { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2net-embed p strong { color: var(--ink); font-weight: 650; }
.v2net-rel {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
    margin: 14px 0 0;
}
.v2net-rel svg { width: 15px; height: 15px; color: var(--faint); flex-shrink: 0; transform: translateY(2px); }

/* ---------- Interactive reapply-readiness checklist ---------- */
.v2net-diag {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -22px rgba(10, 16, 23, 0.14);
}
.v2net-diag__head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.v2net-diag__lbl { display: inline-flex; align-items: center; gap: 7px; color: var(--go-deep); }
.v2net-diag__lbl svg { width: 16px; height: 16px; }
.v2net-diag__count { margin-right: auto; font-size: 13px; color: var(--slate); display: inline-flex; align-items: baseline; gap: 5px; }
.v2net-diag__count b { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); font-variant-numeric: tabular-nums; }
.v2net-diag__count .v2-mono { font-size: 9.5px; }
.v2net-diag__track { height: 7px; border-radius: 999px; background: var(--mist); overflow: hidden; margin-bottom: 16px; }
.v2net-diag__track i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--go); transition: width 0.35s cubic-bezier(0.22, 0.8, 0.26, 1); }
.v2net-checks { margin: 0; display: flex; flex-direction: column; gap: 9px; }
.v2 .v2net-check {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    gap: 13px;
    align-items: center;
    width: 100%;
    text-align: right;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px 16px;
    cursor: pointer;
    font-family: var(--font-body);
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2net-check:hover { border-color: #C9D2DA; }
.v2 .v2net-check.is-on { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2net-check__box {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: var(--paper);
    border: 1.5px solid #C9D2DA;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2net-check__box svg { width: 15px; height: 15px; opacity: 0; transition: opacity 0.18s ease; }
.v2 .v2net-check.is-on .v2net-check__box { background: var(--go); border-color: var(--go); }
.v2 .v2net-check.is-on .v2net-check__box svg { opacity: 1; }
.v2net-check__tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v2net-check__tx b { font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.3; }
.v2net-check__tx span { font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2net-check__n { color: var(--faint); font-size: 10px; align-self: flex-start; }
.v2 .v2net-check.is-on .v2net-check__n { color: var(--go-deep); }
.v2net-diag__done {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 14px;
    padding: 13px 16px;
    border-radius: 12px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
}
.v2net-diag__done svg { width: 18px; height: 18px; flex-shrink: 0; }
.v2net-diag__done[hidden] { display: none; }

/* ---------- Engagement task board ---------- */
.v2net-engage {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin: 24px 0;
}
.v2net-engage__card {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2net-engage__card.is-daily { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2net-engage__card.is-during { background: var(--mist); }
.v2net-engage__h {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--ink);
    font-size: 11px;
    line-height: 1.4;
}
.v2net-engage__card.is-daily .v2net-engage__h { color: var(--go-deep); }
.v2net-engage__h svg { width: 17px; height: 17px; flex-shrink: 0; }
.v2net-tasks { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.v2net-tasks li {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--slate);
}
.v2net-tasks__n {
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: var(--go);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
}
.v2net-tasks li strong { color: var(--ink); font-weight: 650; }
.v2net-during { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.v2net-during li {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--slate);
}
.v2net-during__ck { color: var(--go); flex-shrink: 0; display: inline-flex; }
.v2net-during__ck svg { width: 16px; height: 16px; }
.v2net-during li strong { color: var(--ink); font-weight: 650; }

/* ---------- Buffer-strength cards ---------- */
.v2net-buffer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 24px 0;
}
.v2net-buf {
    position: relative;
    text-align: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 16px 18px;
}
.v2net-buf.is-rec { border-color: var(--go); box-shadow: 0 0 0 3px var(--go-tint); }
.v2net-buf__ribbon {
    position: absolute;
    top: -10px;
    right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 8.5px;
    white-space: nowrap;
}
.v2net-buf__num {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 34px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
}
.v2net-buf__lbl { display: block; color: var(--faint); font-size: 9px; margin-top: 5px; }
.v2net-buf__strength { display: flex; justify-content: center; gap: 5px; margin: 14px 0 5px; }
.v2net-buf__strength i {
    width: 26px;
    height: 6px;
    border-radius: 3px;
    background: #E9EDF1;
}
.v2net-buf__strength i.on { background: var(--go); }
.v2net-buf__slbl { display: block; color: var(--faint); font-size: 8.5px; }
.v2net-buf__desc { font-size: 13px; line-height: 1.5; color: var(--slate); margin: 12px 0; }
.v2net-buf__badge {
    display: inline-block;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 11px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2net-buf.is-rec .v2net-buf__badge { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }

/* ---------- PTL section: opt-in checkmarks, plans, trust, links ---------- */
.v2net-optin { margin: 16px 0 0; display: flex; flex-direction: column; gap: 9px; }
.v2net-optin li {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-radius: 11px;
    padding: 12px 15px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--ink);
}
.v2net-optin__ck { color: var(--go); flex-shrink: 0; display: inline-flex; }
.v2net-optin__ck svg { width: 16px; height: 16px; }
.v2net-plans {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 26px 0;
}
.v2net-plan {
    position: relative;
    text-align: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 16px 20px;
}
.v2net-plan.is-feat { border-color: var(--go); box-shadow: 0 0 0 3px var(--go-tint); }
.v2net-plan__ribbon {
    position: absolute;
    top: -10px;
    right: 50%;
    transform: translateX(50%);
    background: var(--go);
    color: #fff;
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 8.5px;
    white-space: nowrap;
}
.v2net-plan__tier {
    display: inline-block;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 12px;
    font-size: 9px;
    margin-bottom: 12px;
}
.v2net-plan.is-feat .v2net-plan__tier { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2net-plan__was { display: block; color: var(--faint); text-decoration: line-through; font-size: 13px; }
.v2net-plan__price {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 30px;
    line-height: 1.05;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2net-plan__off { display: block; color: #B42318; font-size: 9.5px; margin-top: 3px; }
.v2net-plan__testers { display: block; color: var(--go-deep); font-weight: 650; font-size: 14px; margin-top: 6px; }
.v2net-plan__note { display: block; color: var(--faint); font-size: 12px; margin-top: 6px; }
.v2net-trust {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 20px 0;
}
.v2net-trust__item {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 15px 18px;
}
.v2net-trust__ic {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--go);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2net-trust__ic svg { width: 21px; height: 21px; }
.v2net-trust__item b { display: block; font-size: 14.5px; color: var(--ink); font-weight: 650; line-height: 1.3; }
.v2net-trust__item .v2-mono { display: block; color: var(--faint); font-size: 9px; margin-top: 3px; }
.v2net-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0; }
.v2net-links .v2net-links__a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 10px 15px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
    text-decoration: none;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2net-links .v2net-links__a:hover { border-color: #C9D2DA; background: var(--mist); }
.v2net-links .v2net-links__a svg { width: 17px; height: 17px; color: var(--go); }

/* =============================================================
   NOT-ENOUGH-TESTERS V2: tablet / desktop enhancements
============================================================= */
@media (min-width: 560px) {
    .v2net-decode__reqs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2net-vs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2net-engage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2net-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2net-buffer { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2net-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); }

    .v2net-scope__head {
        display: grid;
        grid-template-columns: 1.5fr 1fr 1.4fr;
        gap: 14px;
        padding: 12px 18px;
        background: var(--ink);
        color: #fff;
    }
    .v2net-scope__head span { font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: #A9B4BF; }
    .v2net-scope__row {
        grid-template-columns: 1.5fr 1fr 1.4fr;
        align-items: center;
        gap: 14px;
    }
    .v2net-scope__verdict { margin-top: 0; }
    .v2net-case__top { flex-direction: row; align-items: center; gap: 12px; }
    .v2net-case__n { align-self: center; }
    .v2net-case { padding: 24px 26px 22px; }
    .v2net-case__h { font-size: 19px; }
}

@media (min-width: 900px) {
    .v2net-notice__body { grid-template-columns: 46px minmax(0, 1fr); padding: 24px 26px 8px; }
    .v2net-notice__headline { font-size: 1.55rem; }
    .v2net-decode { padding: 22px 26px; }
}

/* very small phones */
@media (max-width: 360px) {
    .v2net-facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .v2 .v2net-check { grid-template-columns: 26px minmax(0, 1fr); }
    .v2net-check__n { display: none; }
    .v2net-meter i { width: 12px; height: 12px; }
    .v2net-days i { width: 13px; height: 13px; }
}
/* ============= END BLOG NOT-ENOUGH-TESTERS V2 ============= */


/* ============================================================
   BLOG ARTICLE V2 - HOW PRIMETESTLAB WORKS
   (/blog/how-primetestlab-works). Reuses the shared v2gpr-*
   article layer (hero, rail, chips, prose, h2, qa, toc, callout
   family, plan plaques, faq, bottom, author, related, cta, sticky
   CTA). Everything below is the page-UNIQUE v2hpw- component set:
   order-to-approval station rail, you/us division board, worry-vs-
   reality duo comparator, language chip cloud, country option
   cards + targeting passport, vertical process steps, proof KPI
   tiles, timeline clock band, plan advisor, requirement cards +
   progress checklist. Mobile-first, single green accent.
============================================================ */

/* ---- hero accents ---- */
.v2hpw-fact--go b { color: var(--go-deep); }

/* ---- featured cover ---- */
.v2hpw-cover {
    margin: 0 0 26px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 48px -26px rgba(10, 16, 23, 0.28);
}
.v2hpw-cover img { display: block; width: 100%; height: auto; }

/* ---- SIGNATURE: order-to-approval station rail ---- */
.v2hpw-rail {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px 16px;
    margin: 8px 0 26px;
}
.v2hpw-rail__head { display: flex; }
.v2hpw-rail__tag { display: inline-flex; align-items: center; gap: 8px; color: var(--slate); }
.v2hpw-rail__tag svg { width: 15px; height: 15px; }
.v2hpw-rail__track {
    display: flex;
    align-items: flex-start;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding: 22px 0 8px;
}
.v2hpw-rail__track::-webkit-scrollbar { display: none; }
.v2hpw-stn {
    flex: 1 0 0;
    min-width: 104px;
    text-align: center;
    position: relative;
    padding: 0 6px;
}
.v2hpw-stn:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 37px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: var(--line);
    z-index: 0;
}
.v2hpw-stn__own {
    position: absolute;
    top: 0;
    right: 50%;
    transform: translateX(50%);
    z-index: 2;
    font-size: 8.5px;
    line-height: 1.2;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px 8px;
}
.v2hpw-stn.is-key .v2hpw-stn__own,
.v2hpw-stn.is-done .v2hpw-stn__own {
    color: #fff;
    background: var(--go);
    border-color: var(--go);
}
.v2hpw-stn__dot {
    position: relative;
    z-index: 1;
    width: 46px;
    height: 46px;
    margin: 14px auto 10px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2hpw-stn__dot svg { width: 21px; height: 21px; }
.v2hpw-stn.is-key .v2hpw-stn__dot {
    background: var(--go-tint);
    border-color: var(--go);
    color: var(--go);
}
.v2hpw-stn.is-done .v2hpw-stn__dot {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2hpw-stn__n { display: block; font-size: 9px; margin-bottom: 3px; color: var(--faint); }
.v2hpw-stn__t { display: block; font-size: 12.5px; font-weight: 700; color: var(--ink); line-height: 1.3; }
.v2hpw-stn.is-key .v2hpw-stn__t { color: var(--go-deep); }
.v2hpw-stn__s { display: block; font-size: 10.5px; color: var(--faint); margin-top: 3px; }
.v2hpw-rail__foot {
    display: flex;
    gap: 8px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2hpw-rail__foot svg { width: 17px; height: 17px; flex-shrink: 0; color: var(--slate); margin-top: 1px; }
/* station entrance (pre-state lives only under .v2-anim) */
.v2hpw-rail.v2-anim .v2hpw-stn { opacity: 0; transform: translateY(12px); }
.v2hpw-rail.v2-anim.is-in .v2hpw-stn {
    opacity: 1;
    transform: none;
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2hpw-rail.v2-anim.is-in .v2hpw-stn:nth-child(1) { transition-delay: 0.04s; }
.v2hpw-rail.v2-anim.is-in .v2hpw-stn:nth-child(2) { transition-delay: 0.12s; }
.v2hpw-rail.v2-anim.is-in .v2hpw-stn:nth-child(3) { transition-delay: 0.20s; }
.v2hpw-rail.v2-anim.is-in .v2hpw-stn:nth-child(4) { transition-delay: 0.28s; }
.v2hpw-rail.v2-anim.is-in .v2hpw-stn:nth-child(5) { transition-delay: 0.36s; }

/* ---- quick-answer highlight tints (inside dark .v2gpr-qa) ---- */
.v2gpr-qa .hpw-qk-key { color: #FFD56B; }
.v2gpr-qa .hpw-qk-warm { color: #7DE3FF; }

/* ---- division-of-labor board ---- */
.v2hpw-desk {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
    margin: 26px 0;
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    background: var(--paper);
}
.v2hpw-desk__col { padding: 22px 22px; }
.v2hpw-desk__col.is-we { background: linear-gradient(-180deg, var(--go-tint), #F2FAF5); }
.v2hpw-desk__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.v2hpw-desk__ic {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2hpw-desk__col.is-we .v2hpw-desk__ic { background: #fff; color: var(--go); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2hpw-desk__col.is-you .v2hpw-desk__ic { background: var(--mist); color: var(--slate); border: 1px solid var(--line); }
.v2hpw-desk__ic svg { width: 21px; height: 21px; }
.v2hpw-desk__lab { display: block; font-size: 9.5px; color: var(--faint); margin-bottom: 2px; }
.v2hpw-desk__col.is-we .v2hpw-desk__lab { color: var(--go-deep); }
.v2hpw-desk__title { font-family: var(--font-display); font-weight: 650; font-size: 15.5px; color: var(--ink); letter-spacing: -0.01em; line-height: 1.25; }
.v2hpw-desk__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.v2hpw-desk__list li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
    padding: 8px 0;
    border-top: 1px solid rgba(10, 16, 23, 0.05);
}
.v2hpw-desk__list li:first-child { border-top: none; }
.v2hpw-desk__list .v2gpr-mk { margin-top: 1px; }
.v2hpw-desk__mk {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 1px;
    border-radius: 5px;
    background: var(--mist);
    border: 1px solid var(--line);
    position: relative;
}
.v2hpw-desk__mk::after {
    content: '';
    position: absolute;
    inset: 4px;
    border-radius: 2px;
    border: 1.6px solid #B4BEC8;
}
.v2hpw-desk__seam {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 6px;
    color: var(--slate);
    border-right: 1px dashed var(--line);
    border-left: 1px dashed var(--line);
    background: var(--paper);
}
.v2hpw-desk__seam svg { width: 22px; height: 22px; }
.v2hpw-desk__seam em { font-style: normal; font-size: 8.5px; color: var(--faint); }

/* ---- worry-vs-reality / requires-vs-provides duo ---- */
.v2hpw-duo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: stretch;
    gap: 14px;
    margin: 26px 0;
}
.v2hpw-duo__side {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 20px;
}
.v2hpw-duo__side.is-real,
.v2hpw-duo__side.is-prov {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
}
.v2hpw-duo__tag { display: inline-flex; align-items: center; gap: 7px; font-size: 10px; color: var(--slate); margin-bottom: 10px; }
.v2hpw-duo__tag svg { width: 15px; height: 15px; }
.v2hpw-duo__side.is-real .v2hpw-duo__tag,
.v2hpw-duo__side.is-prov .v2hpw-duo__tag { color: var(--go-deep); }
.v2hpw-duo__h { font-family: var(--font-display); font-weight: 650; font-size: 16px; line-height: 1.3; letter-spacing: -0.012em; color: var(--ink); margin-bottom: 7px; }
.v2hpw-duo__p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2hpw-duo__p strong { color: var(--ink); font-weight: 650; }
.v2hpw-duo__list { list-style: none; margin: 8px 0 10px; padding: 0; display: grid; gap: 5px; }
.v2hpw-duo__list li { display: flex; align-items: flex-start; gap: 8px; font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2hpw-duo__mk {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    margin-top: 2px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    position: relative;
}
.v2hpw-duo__mk::after {
    content: '';
    position: absolute;
    top: 50%;
    right: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #B4BEC8;
    transform: translate(50%, -50%);
}
.v2hpw-duo__vs {
    align-self: center;
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: var(--faint);
}

/* ---- language chip cloud ---- */
.v2hpw-langs {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 24px 0;
}
.v2hpw-langs__lab { display: flex; align-items: center; gap: 8px; color: var(--slate); margin-bottom: 14px; }
.v2hpw-langs__lab svg { width: 16px; height: 16px; color: var(--go); }
.v2hpw-langs__cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.v2hpw-lang {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    padding: 7px 13px;
    border-radius: 999px;
}
.v2hpw-lang.is-more { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go-deep); }

/* ---- country option cards + targeting passport ---- */
.v2hpw-geo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.v2hpw-geo__card { position: relative; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px 20px; }
.v2hpw-geo__card.is-rec { border-color: rgba(11, 138, 71, 0.35); background: var(--go-tint); }
.v2hpw-geo__badge {
    position: absolute;
    top: -10px;
    right: 18px;
    background: var(--go);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 3px 11px;
}
.v2hpw-geo__h { display: flex; align-items: center; gap: 9px; font-family: var(--font-display); font-weight: 650; font-size: 16.5px; color: var(--ink); margin-bottom: 8px; letter-spacing: -0.012em; }
.v2hpw-geo__ic {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2hpw-geo__card.is-rec .v2hpw-geo__ic { color: var(--go); border-color: rgba(11, 138, 71, 0.25); }
.v2hpw-geo__ic svg { width: 18px; height: 18px; }
.v2hpw-geo__card p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2hpw-passport {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    background: var(--ink);
    border-radius: 14px;
    padding: 18px 22px;
    margin: 22px 0;
}
.v2hpw-passport__lab { display: inline-flex; align-items: center; gap: 8px; color: #93A0AC; font-size: 10px; flex-shrink: 0; }
.v2hpw-passport__lab svg { width: 16px; height: 16px; }
.v2hpw-passport__flags { display: flex; gap: 9px; flex-wrap: wrap; }
.v2hpw-flag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.13);
    color: #E7EDF2;
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 600;
}
.v2hpw-flag__em { font-size: 16px; line-height: 1; }

/* ---- vertical process steps ---- */
.v2hpw-steps { margin: 24px 0; }
.v2hpw-step { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; position: relative; padding-bottom: 22px; }
.v2hpw-step:last-child { padding-bottom: 0; }
.v2hpw-step__rail { position: relative; display: flex; justify-content: center; }
.v2hpw-step__rail::before {
    content: '';
    position: absolute;
    top: 44px;
    bottom: -22px;
    right: 50%;
    width: 2px;
    transform: translateX(50%);
    background: var(--line);
}
.v2hpw-step.is-last .v2hpw-step__rail::before { display: none; }
.v2hpw-step__num {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--ink);
    position: relative;
    z-index: 1;
}
.v2hpw-step.is-go .v2hpw-step__num,
.v2hpw-step.is-last .v2hpw-step__num { background: var(--go); border-color: var(--go); color: #fff; }
.v2hpw-step__body { padding-top: 2px; }
.v2hpw-step__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.v2hpw-step__h { font-family: var(--font-display); font-weight: 650; font-size: 17px; letter-spacing: -0.012em; color: var(--ink); line-height: 1.3; }
.v2hpw-step__own { font-size: 9.5px; color: var(--faint); background: var(--mist); border: 1px solid var(--line); border-radius: 999px; padding: 3px 9px; white-space: nowrap; flex-shrink: 0; }
.v2hpw-step__body p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }

/* ---- proof KPI tiles with micro-viz ---- */
.v2hpw-proof { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.v2hpw-proof__tile { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 20px 18px; text-align: center; }
.v2hpw-proof__viz { display: flex; align-items: flex-end; justify-content: center; height: 40px; margin-bottom: 12px; }
.v2hpw-proof__viz.is-stars { align-items: center; }
.v2hpw-proof__viz > svg { height: 34px; width: auto; }
.v2hpw-proof__viz .v2-stars { display: inline-flex; gap: 2px; color: var(--star); }
.v2hpw-proof__viz .v2-stars svg { width: 15px; height: 15px; }
.v2hpw-proof__n { display: block; font-family: var(--font-display); font-weight: 800; font-size: 28px; letter-spacing: -0.02em; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
.v2hpw-proof__den { font-size: 17px; color: var(--faint); font-weight: 700; }
.v2hpw-proof__l { display: block; font-size: 12px; color: var(--slate); margin-top: 8px; line-height: 1.4; }

/* ---- timeline clock band ---- */
.v2hpw-clock { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 24px 0; }
.v2hpw-clock__cell { background: var(--mist); border: 1px solid var(--line); border-radius: 14px; padding: 18px 14px; text-align: center; }
.v2hpw-clock__cell.is-key { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2hpw-clock__n { display: block; font-family: var(--font-display); font-weight: 800; font-size: 24px; letter-spacing: -0.02em; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
.v2hpw-clock__n span { font-size: 13px; font-weight: 700; color: var(--faint); }
.v2hpw-clock__cell.is-key .v2hpw-clock__n { color: var(--go-deep); }
.v2hpw-clock__cell.is-key .v2hpw-clock__n span { color: var(--go); }
.v2hpw-clock__l { display: block; font-size: 11.5px; color: var(--slate); margin-top: 8px; line-height: 1.4; }

/* ---- pricing plaque grid ---- */
.v2hpw-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 30px 0 8px; align-items: stretch; }

/* ---- interactive plan advisor ---- */
.v2hpw-advisor {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 28px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 20px 44px -28px rgba(10, 16, 23, 0.22);
}
.v2hpw-advisor__head { background: var(--ink); padding: 22px 24px; }
.v2hpw-advisor__tag { display: inline-flex; align-items: center; gap: 6px; color: #3ECF81; font-size: 10px; margin-bottom: 10px; }
.v2hpw-advisor__tag svg { width: 14px; height: 14px; }
.v2hpw-advisor__h { font-family: var(--font-display); font-weight: 700; font-size: 19px; color: #fff; letter-spacing: -0.015em; margin-bottom: 5px; }
.v2hpw-advisor__sub { font-size: 13.5px; color: #A9B4BF; line-height: 1.5; }
.v2hpw-advisor__body { padding: 22px 24px; }
.v2hpw-advisor__label { display: block; color: var(--slate); margin-bottom: 8px; }
.v2hpw-advisor__select { position: relative; }
.v2hpw-advisor__select select {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    padding: 13px 15px 13px 44px;
    font-family: var(--font-body);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1.5px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2hpw-advisor__select select:hover { border-color: #C9D2DA; }
.v2hpw-advisor__select select:focus-visible { outline: none; border-color: var(--go); background: var(--paper); box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14); }
.v2hpw-advisor__chev { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--slate); pointer-events: none; }
.v2hpw-advisor__result { margin-top: 16px; }
.v2hpw-advisor__empty {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px;
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 12px;
    color: var(--slate);
    font-size: 13.5px;
}
.v2hpw-advisor__empty svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--faint); }
.v2hpw-rc { display: none; background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); border-radius: 14px; padding: 18px 20px; }
.v2hpw-rc.is-on { display: block; animation: v2gprIn 0.35s ease; }
.v2hpw-rc__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.v2hpw-rc__ic {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid rgba(11, 138, 71, 0.25);
    color: var(--go);
}
.v2hpw-rc__ic svg { width: 21px; height: 21px; }
.v2hpw-rc__head h4 { margin: 0 0 3px; font-family: var(--font-display); font-weight: 650; font-size: 15.5px; color: var(--ink); letter-spacing: -0.01em; line-height: 1.25; }
.v2hpw-rc__tag { display: block; font-size: 9.5px; color: var(--go-deep); }
.v2hpw-rc p { font-size: 14px; line-height: 1.65; color: var(--slate); }

/* ---- requirement cards ---- */
.v2hpw-reqs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 24px 0; }
.v2hpw-req { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 20px 20px; }
.v2hpw-req__ic {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--go-tint);
    color: var(--go);
    border: 1px solid rgba(11, 138, 71, 0.18);
    margin-bottom: 13px;
}
.v2hpw-req__ic svg { width: 21px; height: 21px; }
.v2hpw-req__kick { display: block; font-size: 9px; color: var(--faint); margin-bottom: 5px; }
.v2hpw-req__h { font-family: var(--font-display); font-weight: 650; font-size: 15.5px; color: var(--ink); letter-spacing: -0.01em; margin-bottom: 7px; line-height: 1.3; }
.v2hpw-req__p { font-size: 13px; line-height: 1.6; color: var(--slate); }

/* ---- interactive readiness checklist ---- */
.v2hpw-check {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 20px 44px -28px rgba(10, 16, 23, 0.22);
}
.v2hpw-check__head { background: var(--ink); padding: 20px 24px; }
.v2hpw-check__h { display: flex; align-items: center; gap: 9px; font-family: var(--font-display); font-weight: 700; font-size: 17.5px; color: #fff; letter-spacing: -0.015em; margin-bottom: 13px; }
.v2hpw-check__h svg { width: 20px; height: 20px; flex-shrink: 0; color: #3ECF81; }
.v2hpw-check__bar { height: 10px; background: rgba(255, 255, 255, 0.1); border-radius: 999px; overflow: hidden; }
.v2hpw-check__fill { display: block; height: 100%; width: 0; background: var(--go); border-radius: 999px; transition: width 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); }
.v2hpw-check__pct { font-size: 12.5px; color: #A9B4BF; margin-top: 9px; }
.v2hpw-check__pct b { color: #3ECF81; }
.v2hpw-check__body { padding: 8px 16px 14px; }
.v2hpw-ck { display: flex; align-items: flex-start; gap: 12px; padding: 12px 8px; border-bottom: 1px solid var(--line); cursor: pointer; }
.v2hpw-ck:last-child { border-bottom: none; }
.v2hpw-ck input { display: none; }
.v2hpw-ck__box {
    width: 23px;
    height: 23px;
    flex-shrink: 0;
    border-radius: 7px;
    border: 1.8px solid #CBD5E1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    margin-top: 1px;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2hpw-ck__box svg { width: 13px; height: 13px; opacity: 0; transform: scale(0.6); transition: opacity 0.18s ease, transform 0.18s ease; }
.v2hpw-ck input:checked + .v2hpw-ck__box { background: var(--go); border-color: var(--go); }
.v2hpw-ck input:checked + .v2hpw-ck__box svg { opacity: 1; transform: none; }
.v2hpw-ck__t { font-size: 14px; line-height: 1.5; color: var(--slate); }
.v2hpw-ck__t b { color: var(--ink); font-weight: 650; }
.v2hpw-ck input:checked ~ .v2hpw-ck__t { color: var(--faint); text-decoration: line-through; }
.v2hpw-ck input:checked ~ .v2hpw-ck__t b { color: var(--faint); }
.v2hpw-check__msg { margin: 4px 16px 18px; padding: 13px 16px; border-radius: 12px; background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.2); font-size: 13.5px; line-height: 1.6; color: var(--ink); }
.v2hpw-check__msg b { color: var(--go-deep); font-weight: 700; }

/* ---- mobile ---- */
@media (max-width: 640px) {
    .v2hpw-desk { grid-template-columns: 1fr; }
    .v2hpw-desk__seam {
        flex-direction: row;
        justify-content: center;
        gap: 8px;
        border-right: none;
        border-left: none;
        border-top: 1px dashed var(--line);
        border-bottom: 1px dashed var(--line);
        padding: 10px 0;
    }
    .v2hpw-desk__seam svg { transform: rotate(-90deg); }
    .v2hpw-duo { grid-template-columns: 1fr; gap: 12px; }
    .v2hpw-duo__vs { justify-self: center; }
    .v2hpw-geo { grid-template-columns: 1fr; }
    .v2hpw-proof { grid-template-columns: 1fr; }
    .v2hpw-reqs { grid-template-columns: 1fr; }
    .v2hpw-plans { grid-template-columns: 1fr; }
    .v2hpw-clock { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2hpw-passport { flex-direction: column; align-items: flex-start; gap: 12px; }
    .v2hpw-step__top { flex-direction: column; align-items: flex-start; gap: 6px; }
    .v2hpw-advisor__head, .v2hpw-advisor__body { padding: 18px; }
    .v2hpw-check__head { padding: 18px; }
    .v2hpw-check__body { padding: 6px 12px 12px; }
    .v2hpw-check__msg { margin: 4px 12px 14px; }
    .v2hpw-langs, .v2hpw-req, .v2hpw-geo__card, .v2hpw-duo__side, .v2hpw-desk__col { padding: 18px; }
}
@media (max-width: 380px) {
    .v2hpw-clock { grid-template-columns: 1fr; }
    .v2hpw-proof__n { font-size: 25px; }
}

/* Reduced motion: settle every v2hpw transition/animation to end state */
@media (prefers-reduced-motion: reduce) {
    .v2hpw-rail.v2-anim .v2hpw-stn { opacity: 1; transform: none; }
    .v2hpw-check__fill, .v2hpw-rc, .v2hpw-ck__box, .v2hpw-ck__box svg,
    .v2hpw-advisor__select select { transition: none !important; animation: none !important; }
}
/* ============= END BLOG HPW V2 ============= */

/* ============================================================
   BLOG ARTICLE V2 - GOOGLE PLAY REVIEW TIME 2026
   (/blog/google-play-review-time-2026)
   Unique components for the "how long every stage takes" post.
   Reuses the shared v2gpr- article layer (hero, prose, h2, qa,
   toc, tip/note callouts, faq, bottom, docs, related, author,
   rail, chips, scta) and the shared v2-cta band. Prefix: v2rvt-.
   Theme: "the review clock board" - across the page only the ONE
   clock you control (the 14-day test) is green; every Google-held
   clock is neutral. Two dark moments stay: the quick answer capsule
   (.v2gpr-qa) and the final CTA. One rose accent: the checker's
   past-window verdict (.v2rvt-diag.act).
   ============================================================ */

/* Hero: green plaque marks the one clock that is yours */
.v2 .v2rvt-fact--go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.2); }
.v2rvt-fact--go b { color: var(--go-deep); }

/* ---------- Dark quick-answer accent tints (inside .v2gpr-qa) ---------- */
.v2gpr-qa .rvt-qk-warn { color: #FCD34D; }
.v2gpr-qa .rvt-qk-key { color: #7DD3FC; }

/* ---------- Per-section answer capsule ---------- */
.v2gpr-prose > p.v2rvt-ans {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
    border-right: 3px solid var(--go);
    border-radius: 12px 0 0 12px;
    padding: 15px 20px;
    color: var(--ink);
    font-size: 15.5px;
    line-height: 1.75;
    font-weight: 450;
    margin: 24px 0;
}

/* ---------- Shared status chip (board + stage cards) ---------- */
.v2rvt-chip {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.02em;
    padding: 6px 11px;
    border-radius: 8px;
    line-height: 1.3;
    white-space: nowrap;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2rvt-chip.is-go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
    color: var(--go-deep);
}

/* ---------- SIGNATURE: the review clock board ---------- */
.v2rvt-board {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px 22px 16px;
    margin: 8px 0 26px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -26px rgba(10, 16, 23, 0.13);
}
.v2rvt-board__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2rvt-board__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--slate);
    font-size: 10.5px;
}
.v2rvt-board__tag svg { width: 15px; height: 15px; color: var(--go); flex-shrink: 0; }
.v2rvt-board__legend { display: flex; gap: 14px; }
.v2rvt-lg {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    color: var(--faint);
}
.v2rvt-lg__dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.v2rvt-lg__dot.is-google { background: #C9D2DA; }
.v2rvt-lg__dot.is-you { background: var(--go); }
.v2rvt-board__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 116px 150px;
    gap: 12px;
    padding: 12px 12px 4px;
    color: var(--faint);
    font-size: 9.5px;
}
.v2rvt-board__rows { display: flex; flex-direction: column; }
.v2rvt-brow {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 116px 150px;
    gap: 12px;
    align-items: center;
    padding: 13px 12px;
    border-top: 1px dashed var(--line);
}
.v2rvt-brow.is-you {
    background: var(--go-tint);
    border-radius: 14px;
    border-top-color: transparent;
    box-shadow: inset 0 0 0 1px rgba(11, 138, 71, 0.22);
}
.v2rvt-brow.is-you + .v2rvt-brow { border-top-color: transparent; }
.v2rvt-brow__stage { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2rvt-brow__stage b { font-size: 14px; font-weight: 650; color: var(--ink); line-height: 1.35; }
.v2rvt-brow__stage em { font-style: normal; font-size: 11.5px; color: var(--faint); line-height: 1.45; }
.v2rvt-brow__who {
    justify-self: start;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
}
.v2rvt-brow__who.is-google { background: var(--mist); color: var(--slate); border: 1px solid var(--line); }
.v2rvt-brow__who.is-you { background: #fff; color: var(--go-deep); border: 1px solid rgba(11, 138, 71, 0.3); }
.v2rvt-brow__time { justify-self: start; }
.v2rvt-board__foot {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2rvt-board__foot svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 2px; color: var(--faint); }

/* ---------- Stage cards (the five-clock pipeline) ---------- */
.v2rvt-stages { display: flex; flex-direction: column; gap: 10px; margin: 22px 0; }
.v2rvt-stage {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2rvt-stage.is-you { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2rvt-stage__n {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--mist);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: var(--slate);
}
.v2rvt-stage.is-you .v2rvt-stage__n { background: var(--go); border-color: var(--go); color: #fff; }
.v2rvt-stage__main { min-width: 0; }
.v2rvt-stage__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 5px;
}
.v2rvt-stage__name {
    font-family: var(--font-display);
    font-size: 16px;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2rvt-stage__desc { font-size: 14px; line-height: 1.6; color: var(--slate); }

/* ---------- Two-clocks strip ---------- */
.v2rvt-clocks { display: flex; align-items: stretch; gap: 8px; margin: 24px 0; }
.v2rvt-clock {
    flex: 1 1 0;
    min-width: 0;
    border-radius: 14px;
    padding: 16px 16px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2rvt-clock.is-you { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2rvt-clock__tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 10px;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2rvt-clock__tag svg { width: 14px; height: 14px; flex-shrink: 0; }
.v2rvt-clock.is-you .v2rvt-clock__tag { color: var(--go-deep); }
.v2rvt-clock__t {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2rvt-clock__p { font-size: 12.5px; line-height: 1.5; color: var(--slate); }
.v2rvt-clock__arrow { align-self: center; flex-shrink: 0; color: #C9D2DA; }
.v2rvt-clock__arrow svg { width: 22px; height: 22px; display: block; }

/* ---------- Mid-article soft CTA ---------- */
.v2rvt-midcta {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    margin: 26px 0;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2rvt-midcta__ic {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--go);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.v2rvt-midcta__ic svg { width: 24px; height: 24px; }
.v2rvt-midcta p { margin: 0; font-size: 15px; line-height: 1.7; color: var(--ink); }
.v2rvt-midcta a { font-weight: 700; }

/* ---------- Verbatim Google-wording quote ---------- */
.v2rvt-quote {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 4px solid var(--go);
    border-radius: 16px 0 0 16px;
    padding: 22px 26px;
    margin: 24px 0;
}
.v2rvt-quote__mark {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--slate);
    font-size: 10.5px;
    margin-bottom: 12px;
}
.v2rvt-quote__mark svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2rvt-quote__q {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin: 0 0 12px;
}
.v2rvt-quote__cite { display: block; font-style: normal; font-size: 12.5px; line-height: 1.5; color: var(--faint); }

/* ---------- Slow-factor cards ---------- */
.v2rvt-slows {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2rvt-slow { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 18px 18px; }
.v2rvt-slow.is-go { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2rvt-slow__ic {
    display: inline-flex;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    align-items: center;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    margin-bottom: 12px;
}
.v2rvt-slow.is-go .v2rvt-slow__ic { background: var(--go); border-color: var(--go); color: #fff; }
.v2rvt-slow__ic svg { width: 22px; height: 22px; }
.v2rvt-slow__t {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.35;
    margin-bottom: 6px;
}
.v2rvt-slow__p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2rvt-slow__p a { font-weight: 600; }

/* ---------- Interactive tool shell (checker + estimator) ---------- */
.v2rvt-tool {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -26px rgba(10, 16, 23, 0.13);
}
.v2rvt-tool__head { padding: 20px 22px 18px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2rvt-tool__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--go-deep);
    font-size: 10.5px;
    margin-bottom: 10px;
}
.v2rvt-tool__tag svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2rvt-tool__t {
    display: block;
    font-family: var(--font-display);
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2rvt-tool__s { font-size: 14px; line-height: 1.55; color: var(--slate); }
.v2rvt-tool__body { padding: 22px; }
.v2rvt-tool__q { color: var(--faint); font-size: 10.5px; margin-bottom: 11px; }
.v2rvt-tool__q--mt { margin-top: 22px; }
.v2rvt-tool__empty {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    padding: 16px 18px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    color: var(--faint);
    font-size: 14px;
}
.v2rvt-tool__empty svg { width: 20px; height: 20px; flex-shrink: 0; }

/* segmented option pills (shared by both interactives) */
.v2rvt-opts { display: flex; flex-wrap: wrap; gap: 9px; }
.v2rvt-opt { flex: 1 1 auto; min-width: 150px; cursor: pointer; position: relative; margin: 0; }
.v2rvt-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2rvt-opt__face {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font-size: 14px;
    font-weight: 500;
    color: var(--slate);
    line-height: 1.3;
    height: 100%;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}
.v2rvt-opt__face svg { width: 19px; height: 19px; color: var(--faint); flex-shrink: 0; transition: color 0.18s ease; }
.v2rvt-opt:hover .v2rvt-opt__face { border-color: #C9D2DA; }
.v2rvt-opt input:checked + .v2rvt-opt__face {
    border-color: var(--go);
    background: var(--go-tint);
    color: var(--go-deep);
    box-shadow: inset 0 0 0 1px rgba(11, 138, 71, 0.3);
}
.v2rvt-opt input:checked + .v2rvt-opt__face svg { color: var(--go); }
.v2rvt-opt input:focus-visible + .v2rvt-opt__face { outline: 2px solid var(--go); outline-offset: 2px; }

/* ---------- Checker verdict ---------- */
.v2rvt-diag {
    display: none;
    margin-top: 20px;
    border-radius: 14px;
    padding: 18px 20px;
    border: 1px solid var(--line);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}
.v2rvt-diag.show { display: block; opacity: 1; transform: none; }
.v2rvt-diag.ok { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2rvt-diag.edge { background: var(--mist); border-color: var(--line); }
.v2rvt-diag.act { background: #FDF1F0; border-color: rgba(180, 35, 24, 0.18); }
.v2rvt-diag__badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 5px 11px;
    border-radius: 999px;
    margin-bottom: 10px;
    background: #fff;
}
.v2rvt-diag.ok .v2rvt-diag__badge { color: var(--go-deep); border: 1px solid rgba(11, 138, 71, 0.24); }
.v2rvt-diag.edge .v2rvt-diag__badge { color: var(--slate); border: 1px solid var(--line); }
.v2rvt-diag.act .v2rvt-diag__badge { color: #B42318; border: 1px solid rgba(180, 35, 24, 0.2); }
.v2rvt-diag__title {
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 8px;
}
.v2rvt-diag__text { font-size: 14px; line-height: 1.7; color: var(--slate); }

/* ---------- Escalation checklist ---------- */
.v2rvt-check { display: flex; flex-direction: column; gap: 10px; margin: 22px 0; }
.v2rvt-check__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 15px 17px;
}
.v2rvt-check__n {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--go);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
}
.v2rvt-check__body { min-width: 0; }
.v2rvt-check__t {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.35;
    margin-bottom: 4px;
}
.v2rvt-check__body p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2rvt-check__body p a { font-weight: 600; }

/* ---------- Timeline arithmetic strip ---------- */
.v2rvt-math {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 24px 0;
    padding: 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2rvt-math__chip {
    display: flex;
    flex-direction: column;
    gap: 3px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 11px 14px;
    min-width: 0;
}
.v2rvt-math__chip b {
    font-family: var(--font-display);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ink);
    line-height: 1.3;
    white-space: nowrap;
}
.v2rvt-math__chip span { font-size: 9px; color: var(--faint); }
.v2rvt-math__chip.is-you { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2rvt-math__chip.is-you b { color: var(--go-deep); }
.v2rvt-math__chip.is-sum { background: var(--ink); border-color: var(--ink); }
.v2rvt-math__chip.is-sum b { color: #fff; }
.v2rvt-math__chip.is-sum span { color: #93A0AC; }
.v2rvt-math__op { font-size: 15px; font-weight: 700; color: #C9D2DA; flex-shrink: 0; }

/* ---------- Live-date estimator output ---------- */
.v2rvt-eta {
    display: none;
    margin-top: 22px;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s ease;
}
.v2rvt-eta.show { display: block; opacity: 1; transform: none; }
.v2rvt-eta__top {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    background: var(--mist);
    padding: 18px 22px;
    border-bottom: 1px solid var(--line);
}
.v2rvt-eta__slot { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.v2rvt-eta__lab { font-size: 9.5px; color: var(--faint); }
.v2rvt-eta__date {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
}
.v2rvt-eta__date.is-go { color: var(--go-deep); }
.v2rvt-eta__sep { color: #C9D2DA; flex-shrink: 0; }
.v2rvt-eta__sep svg { width: 26px; height: 20px; display: block; }
.v2rvt-eta__note { padding: 16px 22px; font-size: 13.5px; line-height: 1.65; color: var(--slate); background: var(--paper); }
.v2rvt-eta__disc {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 12px 22px 14px;
    font-size: 11.5px;
    line-height: 1.55;
    color: var(--faint);
    background: var(--paper);
    border-top: 1px solid var(--line);
}
.v2rvt-eta__disc svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 1px; color: var(--slate); }
.v2rvt-eta__disc b { color: var(--slate); }

/* ---------- Honest note (light, green-barred) ---------- */
.v2rvt-honest {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin: 24px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 14px;
    padding: 20px 22px;
}
.v2rvt-honest__ic {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2rvt-honest__ic svg { width: 24px; height: 24px; }
.v2rvt-honest__tx { min-width: 0; }
.v2rvt-honest__lab { display: block; color: var(--go-deep); font-size: 10px; margin-bottom: 6px; }
.v2rvt-honest__tx p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }

/* ---------- DIY vs managed comparison table ---------- */
.v2rvt-compare { margin: 24px 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.v2rvt-compare table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.v2rvt-compare th {
    text-align: right;
    padding: 13px 16px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 600;
    background: var(--mist);
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2rvt-compare th.v2rvt-compare__diy { color: var(--faint); }
.v2rvt-compare th.v2rvt-compare__mgd { background: var(--go-tint); color: var(--go-deep); }
.v2rvt-compare td {
    padding: 13px 16px;
    border-top: 1px solid var(--line);
    color: var(--slate);
    line-height: 1.5;
    vertical-align: top;
}
.v2rvt-compare tbody td:last-child { background: rgba(232, 245, 238, 0.55); }
.v2rvt-compare__feat { font-weight: 600; color: var(--ink); }
.v2rvt-compare__same td { background: var(--mist); }
.v2rvt-compare__same td:last-child { background: var(--mist); }
.v2rvt-mk {
    display: inline-block;
    width: 15px;
    height: 15px;
    vertical-align: -2px;
    margin-left: 7px;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 9px;
}
.v2rvt-mk.is-yes {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2rvt-mk.is-no {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 3l6 6M9 3l-6 6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2rvt-mk.is-eq {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 6h6' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* ---------- Inline plan line ---------- */
.v2rvt-plans {
    margin: 24px 0;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2rvt-plans p { margin: 0 0 6px; font-size: 15px; line-height: 1.7; color: var(--ink); }
.v2rvt-plans p a { font-weight: 700; }
.v2rvt-plans small { display: block; font-size: 12px; color: var(--slate); line-height: 1.55; }

/* ---------- Final CTA fee line ---------- */
.v2rvt-cta__fee { font-size: 12px; line-height: 1.55; color: #7A8794; max-width: 540px; margin: 8px auto 0; }

/* ---------- Mobile ---------- */
@media (max-width: 900px) {
    .v2rvt-slows { grid-template-columns: 1fr; }
    .v2rvt-compare { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .v2rvt-compare table { min-width: 560px; }
}
@media (max-width: 768px) {
    .v2rvt-board { padding: 16px 15px 14px; }
    .v2rvt-board__head { display: none; }
    .v2rvt-brow { grid-template-columns: 1fr; gap: 9px; padding: 14px 12px; }
    .v2rvt-brow.is-you { padding: 14px 14px; }
    .v2rvt-clocks { flex-direction: column; }
    .v2rvt-clock__arrow { transform: rotate(-90deg); align-self: flex-start; margin-right: 16px; }
    .v2rvt-quote { padding: 18px 18px; }
    .v2rvt-quote__q { font-size: 18px; }
    .v2rvt-math { padding: 14px; }
    .v2rvt-math__chip b { white-space: normal; }
    .v2rvt-tool__head { padding: 18px 16px 16px; }
    .v2rvt-tool__body { padding: 18px 16px; }
    .v2rvt-tool__t { font-size: 17.5px; }
    .v2rvt-midcta { padding: 18px 16px; }
    .v2rvt-eta__top { flex-direction: column; align-items: flex-start; gap: 12px; }
    .v2rvt-eta__sep { transform: rotate(-90deg); align-self: flex-start; margin-right: 4px; }
}
@media (max-width: 640px) {
    .v2rvt-opt { min-width: 100%; }
    .v2rvt-honest { grid-template-columns: 1fr; gap: 12px; }
    .v2rvt-stage__name { font-size: 15.5px; }
    .v2rvt-slow__t, .v2rvt-check__t { font-size: 15px; }
}
@media (max-width: 480px) {
    .v2rvt-board__legend { gap: 10px; }
    .v2rvt-chip { white-space: normal; }
    .v2rvt-board__bar { gap: 8px; }
}

/* Reduced motion: settle every v2rvt transition to its end state */
@media (prefers-reduced-motion: reduce) {
    .v2rvt-opt__face, .v2rvt-diag, .v2rvt-eta { transition: none !important; }
}
/* ============= END BLOG REVIEW-TIME V2 ============= */


/* =============================================================
   BLOG INVITE TESTERS V2  -  "Set Up Closed Testing & Invite Testers"
   (/blog/how-to-invite-testers-google-play-closed-testing)
   Unique internal components for the invite-testers setup guide.
   Authored MOBILE-FIRST: base rules target phones, min-width
   queries add columns. Signature motifs = the opt-in FUNNEL (a
   narrowing conversion ladder), the STATUS LADDER (Invited ->
   Opted-in -> Installed -> Active), the RESET GRID (this page's one
   rose/danger moment), the 14-DAY RISK MAP heatmap, the opt-in URL
   ANATOMY terminal, the method DUEL cards and the DIY-vs-structured
   table. Green = the accent / opted-in / go-live; rose = reset /
   danger; amber = caution. The two dark bands are the shared
   .v2gpr-qa Quick Answer and the final .v2-cta; the URL anatomy and
   the message templates are dark "developer console" artifacts
   (sanctioned exception). Prefix: v2inv- (plus the JS-coupled
   inv-quiz-* / inv-template-* / inv-copy-* kept from the old view).
   ============================================================= */

/* ---- hero fact tweak: the reset plaque reads as a caution ---- */
.v2inv-fact--warn b { color: #B42318; }

/* ---- Quick Answer inline "go" highlight ---- */
.v2inv-qa .v2gpr-qa__text strong.is-go { color: #3ECF81; }

/* ---- step tips inside the numbered ledgers ---- */
.v2inv-steptip {
    margin-top: 11px;
    padding: 11px 15px 11px 14px;
    background: var(--go-tint);
    border-radius: 11px;
    border-right: 3px solid rgba(11,138,71,.4);
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--ink);
}
.v2inv-steptip strong { color: var(--go-deep); }
.v2inv-steptip code {
    background: #fff;
    border: 1px solid rgba(11,138,71,.18);
    padding: 1px 6px;
    border-radius: 5px;
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--go-deep);
}

/* ---- screenshot caption number chip ---- */
.v2inv-capn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    border-radius: 6px;
    background: var(--go-tint);
    color: var(--go-deep);
    font-size: 11px;
    font-weight: 700;
    margin-left: 8px;
    vertical-align: -2px;
}

/* =============================================================
   1. OPT-IN FUNNEL (narrowing conversion ladder)
============================================================= */
.v2inv-funnel {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 26px 0;
}
.v2inv-fstage {
    display: flex;
    align-items: center;
    gap: 13px;
    width: 100%;
    padding: 14px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2inv-fstage__ic {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
}
.v2inv-fstage__ic svg { width: 21px; height: 21px; }
.v2inv-fstage__body { flex: 1; min-width: 0; }
.v2inv-fstage__body b {
    display: block;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2inv-fstage__body span {
    display: block;
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2inv-fstage__pct {
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    padding: 5px 10px;
    border-radius: 9px;
}
.v2inv-fstage.is-final {
    border-color: rgba(11,138,71,.3);
    background: var(--go-tint);
}
.v2inv-fstage.is-final .v2inv-fstage__ic { background: #fff; color: var(--go); }
.v2inv-fstage.is-final .v2inv-fstage__body b { color: var(--go-deep); }
.v2inv-fstage.is-final .v2inv-fstage__pct { background: var(--go); color: #fff; }

/* =============================================================
   2. RESET-COST PANEL
============================================================= */
.v2inv-cost {
    margin: 26px 0;
    padding: 22px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    display: grid;
    gap: 20px;
}
.v2inv-cost__kicker { color: var(--faint); margin-bottom: 6px; }
.v2inv-cost__num {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 40px;
    line-height: 1;
    letter-spacing: -0.03em;
    color: #B42318;
}
.v2inv-cost__sub {
    margin-top: 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2inv-cost__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.v2inv-cost__stat {
    padding: 13px 14px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2inv-cost__stat b {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2inv-cost__stat span {
    display: block;
    margin-top: 3px;
    font-size: 11px;
    line-height: 1.4;
    color: var(--faint);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* =============================================================
   3. PROPRIETARY-DATA PULL-QUOTE
============================================================= */
.v2inv-data {
    position: relative;
    margin: 30px 0;
    padding: 24px 26px 22px 22px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
}
.v2inv-data__rail {
    position: absolute;
    top: 22px;
    bottom: 22px;
    right: 0;
    width: 4px;
    border-radius: 4px 0 0 4px;
    background: linear-gradient(-180deg, var(--go), var(--go-deep));
}
.v2inv-data__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--go-deep);
    margin-bottom: 14px;
}
.v2inv-data__label svg { width: 15px; height: 15px; }
.v2inv-data__quote {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--ink);
    font-weight: 500;
}
.v2inv-data__quote strong { color: var(--go-deep); font-weight: 700; }
.v2inv-data__stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
}
.v2inv-data__stat { display: flex; align-items: baseline; gap: 10px; }
.v2inv-data__stat b {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.02em;
    color: var(--ink);
    min-width: 96px;
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}
.v2inv-data__stat span { font-size: 11px; color: var(--faint); }
.v2inv-data__meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 15px;
    font-size: 11px;
    color: var(--faint);
}
.v2inv-data__meta strong { color: var(--slate); font-weight: 600; }

/* =============================================================
   4. METHOD DUEL CARDS (list vs group, demo vs license)
============================================================= */
.v2inv-method {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin: 24px 0;
}
.v2inv-method__card {
    position: relative;
    padding: 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2inv-method__card.is-rec {
    border-color: rgba(11,138,71,.32);
    box-shadow: 0 1px 2px rgba(10,16,23,.04), 0 18px 40px -26px rgba(11,138,71,.4);
}
.v2inv-method__tag {
    display: inline-block;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-size: 10px;
    margin-bottom: 12px;
}
.v2inv-method__tag.is-rec {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}
.v2inv-method__title {
    display: flex;
    align-items: center;
    gap: 9px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17.5px;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2inv-method__title svg { width: 20px; height: 20px; color: var(--slate); flex-shrink: 0; }
.v2inv-method__card.is-rec .v2inv-method__title svg { color: var(--go); }
.v2inv-method__best {
    font-size: 13px;
    font-style: italic;
    color: var(--faint);
    margin-bottom: 14px;
}
.v2inv-method__rows { margin: 0; padding: 0; list-style: none; }
.v2inv-method__rows li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 0;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2inv-method__rows li:first-child { border-top: none; }
.v2inv-method__rows li i {
    flex-shrink: 0;
    width: 17px;
    height: 17px;
    margin-top: 1px;
    border-radius: 50%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px;
}
.v2inv-method__rows li.is-good i {
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4l3.2 3.2 6.8-7.6' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2inv-method__rows li.is-meh i {
    background-color: #FDF3E4;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 5.4v5.4M10 13.6v.2' stroke='%23B45309' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2inv-method__rows li.is-bad i {
    background-color: #FDF1F0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M6.5 6.5l7 7M13.5 6.5l-7 7' stroke='%23B42318' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* =============================================================
   5. NUMBERED STEP LIST (method walkthroughs)
============================================================= */
.v2inv-ol {
    margin: 18px 0;
    padding: 0;
    list-style: none;
    counter-reset: invol;
}
.v2inv-ol > li {
    position: relative;
    counter-increment: invol;
    padding: 3px 40px 3px 0;
    margin: 11px 0;
    font-size: 15px;
    line-height: 1.7;
    color: var(--slate);
}
.v2inv-ol > li::before {
    content: counter(invol);
    position: absolute;
    right: 0;
    top: 2px;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 12.5px;
    display: grid;
    place-items: center;
}
.v2inv-ol > li strong { color: var(--ink); font-weight: 650; }

/* =============================================================
   6. OPT-IN URL ANATOMY (dark console artifact)
============================================================= */
.v2inv-url {
    margin: 24px 0;
    padding: 20px;
    background: var(--ink);
    border-radius: 16px;
    overflow: hidden;
}
.v2inv-url__label {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #7A8794;
    margin-bottom: 14px;
}
.v2inv-url__label svg { width: 14px; height: 14px; color: #3ECF81; }
.v2inv-url__line {
    font-family: var(--font-mono);
    font-size: 12.5px;
    line-height: 1.9;
    background: #060B11;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 10px;
    padding: 12px 14px;
    overflow-x: auto;
    white-space: nowrap;
}
.v2inv-url__piece { padding: 2px 5px; border-radius: 5px; }
.v2inv-url__sep { color: #6E7B88; }
.v2inv-url__piece.is-host { background: rgba(255,255,255,.08); color: #A9B4BF; }
.v2inv-url__piece.is-track { background: rgba(62,207,129,.16); color: #3ECF81; font-weight: 700; }
.v2inv-url__piece.is-id { background: rgba(255,255,255,.05); color: #C6D0DA; }
.v2inv-url__legend {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin-top: 14px;
}
.v2inv-url__key {
    padding: 10px 12px;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.5;
    color: #A9B4BF;
}
.v2inv-url__key span:last-child strong { color: #C6D0DA; }
.v2inv-url__key code {
    font-family: var(--font-mono);
    font-size: 11px;
    background: rgba(255,255,255,.07);
    padding: 1px 5px;
    border-radius: 4px;
    color: #C6D0DA;
}
.v2inv-url__keytag {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 4px;
    color: #7A8794;
}
.v2inv-url__keytag.is-track { color: #3ECF81; }
.v2inv-url__keytag.is-id { color: #93A0AC; }

/* two-valid-formats note: the code lines break onto their own row */
.v2inv-urlfmt { margin: 8px 0 0; }
.v2inv-urlfmt code {
    display: inline-block;
    max-width: 100%;
    overflow-x: auto;
    word-break: break-all;
}

/* =============================================================
   7. "WHICH SETTING WHEN" TABLE
============================================================= */
.v2inv-need { margin: 22px 0; }
.v2inv-need__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2inv-need__table th {
    background: var(--mist);
    color: var(--faint);
    font-size: 10px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-align: right;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
}
.v2inv-need__table td {
    padding: 12px 14px;
    font-size: 13.5px;
    color: var(--slate);
    border-top: 1px solid var(--line);
    vertical-align: middle;
}
.v2inv-need__table td strong { color: var(--ink); font-weight: 650; }
.v2inv-need__chip {
    display: inline-block;
    padding: 3px 11px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
}
.v2inv-need__chip.is-req { background: var(--go-tint); color: var(--go-deep); }
.v2inv-need__chip.is-if { background: #FDF3E4; color: #B45309; }
.v2inv-need__chip.is-no { background: var(--mist); color: var(--faint); }

/* =============================================================
   8. STATUS LADDER (invited -> opted-in -> installed -> active)
============================================================= */
.v2inv-ladder {
    position: relative;
    margin: 26px 0;
    padding: 0 28px 0 0;
    list-style: none;
}
.v2inv-ladder::before {
    content: '';
    position: absolute;
    right: 10px;
    top: 16px;
    bottom: 16px;
    width: 3px;
    border-radius: 2px;
    background: linear-gradient(-180deg, #C9D2DA 0%, #9AA6B2 40%, var(--go) 100%);
}
.v2inv-rung {
    position: relative;
    margin-bottom: 12px;
    padding: 16px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2inv-rung::before {
    content: '';
    position: absolute;
    right: -23px;
    top: 20px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: #9AA6B2;
    border: 3px solid var(--paper);
    box-shadow: 0 0 0 2px rgba(10,16,23,.05);
}
.v2inv-rung.is-final { border-color: rgba(11,138,71,.3); background: var(--go-tint); }
.v2inv-rung.is-final::before { background: var(--go); }
.v2inv-rung__badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 6px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-size: 10px;
    margin-bottom: 9px;
}
.v2inv-rung.is-final .v2inv-rung__badge { background: #fff; border-color: rgba(11,138,71,.22); color: var(--go-deep); }
.v2inv-rung__body h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2inv-rung__body > p {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2inv-rung__count {
    margin-top: 9px;
    font-size: 11px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2inv-rung__count b { font-weight: 700; }
.v2inv-rung__count.is-no b { color: #B42318; }
.v2inv-rung__count.is-yes b { color: var(--go-deep); }

/* =============================================================
   9. RESET GRID (this page's one rose / danger moment)
============================================================= */
.v2inv-reset {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 24px 0;
}
.v2inv-reset__card {
    padding: 18px 20px;
    background: #FDF1F0;
    border: 1px solid rgba(180,35,24,.16);
    border-right: 3px solid #B42318;
    border-radius: 14px;
}
.v2inv-reset__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #B42318;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
}
.v2inv-reset__card h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    letter-spacing: -0.01em;
    color: #7A1710;
    margin-bottom: 6px;
    line-height: 1.35;
}
.v2inv-reset__card > p {
    font-size: 13.5px;
    line-height: 1.6;
    color: #8A3A33;
}
.v2inv-reset__card > p strong { color: #7A1710; }
.v2inv-reset__card em { font-style: italic; }
.v2inv-reset__fix {
    margin-top: 11px;
    padding-top: 10px;
    border-top: 1px dashed rgba(180,35,24,.28);
    font-size: 13px;
    line-height: 1.55;
    color: var(--ink);
}
.v2inv-reset__fix strong { color: var(--go-deep); }

/* =============================================================
   10. 14-DAY RISK MAP (heatmap)
============================================================= */
.v2inv-timeline {
    margin: 24px 0;
    padding: 20px 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2inv-timeline__title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--slate);
    margin-bottom: 16px;
}
.v2inv-timeline__title svg { width: 15px; height: 15px; color: #B42318; }
.v2inv-timeline__bar {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    margin-bottom: 15px;
}
.v2inv-day {
    height: 46px;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
}
.v2inv-day b { font-family: var(--font-display); font-weight: 700; font-size: 13px; line-height: 1; }
.v2inv-day span { font-size: 8px; margin-top: 3px; letter-spacing: 0.04em; opacity: .92; }
.v2inv-day.is-high { background: #B42318; }
.v2inv-day.is-med { background: #C97A16; }
.v2inv-day.is-low { background: #4E9E76; }
.v2inv-day.is-done { background: var(--go); }
.v2inv-timeline__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    font-size: 10.5px;
    color: var(--slate);
}
.v2inv-lg { display: inline-flex; align-items: center; gap: 6px; }
.v2inv-lg i { width: 11px; height: 11px; border-radius: 3px; flex-shrink: 0; }
.v2inv-lg i.is-high { background: #B42318; }
.v2inv-lg i.is-med { background: #C97A16; }
.v2inv-lg i.is-low { background: #4E9E76; }
.v2inv-lg i.is-done { background: var(--go); }

/* =============================================================
   11. MESSAGE TEMPLATES (dark console artifacts) - inv-template-*
============================================================= */
.inv-template-card {
    margin: 20px 0;
    background: var(--ink);
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 14px;
    overflow: hidden;
}
.inv-template-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 13px 16px;
    background: #060B11;
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.inv-template-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    color: #E6EAEE;
    line-height: 1.35;
}
.inv-template-title svg { width: 17px; height: 17px; color: #3ECF81; flex-shrink: 0; }
.inv-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid rgba(62,207,129,.3);
    background: rgba(62,207,129,.12);
    color: #3ECF81;
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}
.inv-copy-btn:hover { background: rgba(62,207,129,.2); border-color: #3ECF81; color: #fff; }
.inv-copy-btn.inv-copied { background: var(--go); border-color: var(--go); color: #fff; }
.inv-copy-ic { width: 14px; height: 14px; flex-shrink: 0; }
.inv-template-body {
    padding: 16px 18px;
    color: #C6D0DA;
    font-family: var(--font-body);
    font-size: 13.5px;
    line-height: 1.75;
    white-space: pre-wrap;
    word-break: break-word;
}
.inv-template-body strong { color: #fff; font-weight: 600; }

/* PTL Google Group address (dark chip + copy) */
.v2inv-groupaddr {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 11px;
    padding: 11px 13px;
    background: var(--ink);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 11px;
}
.v2inv-groupaddr code {
    flex: 1;
    min-width: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 600;
    color: #3ECF81;
    word-break: break-all;
}

/* =============================================================
   12. READINESS CALCULATOR (interactive) - inv-quiz-*
============================================================= */
.inv-quiz {
    margin: 30px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10,16,23,.05), 0 26px 54px -30px rgba(10,16,23,.22);
}
.inv-quiz-head {
    padding: 22px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.inv-quiz-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11,138,71,.22);
    color: var(--go-deep);
    font-size: 10px;
    margin-bottom: 12px;
}
.inv-quiz-tag svg { width: 13px; height: 13px; }
.inv-quiz-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 21px;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin: 0 0 5px;
}
.inv-quiz-sub { font-size: 13.5px; color: var(--slate); margin: 0; }
.inv-quiz-body { padding: 22px; }
.inv-quiz-q {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
}
.inv-quiz-q:last-of-type { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.inv-quiz-q-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
    margin: 0 0 12px;
    line-height: 1.5;
}
.inv-quiz-q-num {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    border-radius: 8px;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-display);
    font-size: 12.5px;
    font-weight: 700;
    margin-top: -1px;
}
.inv-quiz-options { display: grid; gap: 8px; }
.inv-quiz-opt {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 14px;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    cursor: pointer;
    background: var(--paper);
    font-size: 13.5px;
    color: var(--slate);
    line-height: 1.4;
    transition: border-color .18s, background .18s, color .18s;
}
.inv-quiz-opt:hover { border-color: #C9D2DA; background: var(--mist); }
.inv-quiz-opt input[type=radio] {
    accent-color: var(--go);
    width: 16px;
    height: 16px;
    cursor: pointer;
    flex-shrink: 0;
    margin: 0;
}
.inv-quiz-opt.inv-opt-selected {
    border-color: rgba(11,138,71,.5);
    background: var(--go-tint);
    color: var(--ink);
    font-weight: 600;
}
.inv-quiz-opt.inv-opt-selected.inv-opt-warn { border-color: rgba(180,83,9,.5); background: #FDF3E4; color: #8A4B0C; }
.inv-quiz-opt.inv-opt-selected.inv-opt-bad { border-color: rgba(180,35,24,.5); background: #FDF1F0; color: #7A1710; }

.inv-quiz-result { display: none; padding: 22px; border-top: 1px solid var(--line); background: var(--mist); }
.inv-quiz-result.inv-result-active { display: block; animation: invFadeIn .35s ease; }
@keyframes invFadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.inv-quiz-result-head { display: flex; align-items: center; gap: 15px; margin-bottom: 16px; }
.inv-quiz-result-badge {
    flex-shrink: 0;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #9AA6B2;
}
.inv-badge-ic { width: 30px; height: 30px; }
.inv-quiz-result-badge.r-low { background: var(--go); }
.inv-quiz-result-badge.r-med { background: #C97A16; }
.inv-quiz-result-badge.r-high { background: #B42318; }
.inv-quiz-result-badge.r-progress { background: #64748B; }
.inv-quiz-result-badge .inv-progress-num {
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -0.02em;
    display: flex;
    align-items: baseline;
    gap: 1px;
}
.inv-quiz-result-badge .inv-progress-num small { font-size: 12px; opacity: .7; font-weight: 600; }
.inv-quiz-result-title {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin: 0 0 3px;
    color: var(--slate);
}
.inv-quiz-result-title.r-low { color: var(--go-deep); }
.inv-quiz-result-title.r-med { color: #B45309; }
.inv-quiz-result-title.r-high { color: #B42318; }
.inv-quiz-result-title.r-progress { color: #64748B; }
.inv-quiz-result-score {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
    margin: 0;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.inv-quiz-result-score span { font-size: 13px; font-weight: 500; color: var(--faint); }
.inv-quiz-result-msg { color: var(--slate); font-size: 14px; line-height: 1.65; margin: 0 0 16px; }
.inv-quiz-result-msg strong { color: var(--ink); }
.inv-quiz-result-issues {
    display: none;
    margin: 0 0 18px;
    padding: 14px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.inv-quiz-result-issues.has-issues { display: block; }
.inv-quiz-result-issues h5 {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--faint);
    margin: 0 0 9px;
}
.inv-quiz-result-issues h5 svg { width: 14px; height: 14px; color: #B42318; }
.inv-quiz-result-issues ul { margin: 0; padding: 0; list-style: none; }
.inv-quiz-result-issues li {
    position: relative;
    padding: 6px 20px 6px 0;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.inv-quiz-result-issues li::before {
    content: '';
    position: absolute;
    right: 4px;
    top: 12px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #B42318;
}
.inv-quiz-result-cta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.inv-cta-primary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    border-radius: 11px;
    background: var(--go);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: background .2s, transform .2s;
}
.inv-cta-primary:hover { background: var(--go-deep); color: #fff; transform: translateY(-1px); }
.inv-cta-primary svg { width: 17px; height: 17px; }
.inv-cta-secondary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--ink);
    font-weight: 600;
    font-size: 14px;
    text-decoration: none;
    transition: border-color .2s, color .2s;
}
.inv-cta-secondary:hover { border-color: var(--go); color: var(--go-deep); }
.inv-cta-secondary svg { width: 17px; height: 17px; }
.inv-quiz-reset-btn {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: none;
    color: var(--faint);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 8px;
    transition: color .2s, background .2s;
}
.inv-quiz-reset-btn:hover { color: var(--ink); background: var(--mist); }
.inv-quiz-reset-btn svg { width: 15px; height: 15px; }

/* =============================================================
   13. PRE-FLIGHT CHECKLIST (interactive tick)
============================================================= */
.v2inv-preflight {
    margin: 24px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color .3s;
}
.v2inv-preflight.is-complete { border-color: rgba(11,138,71,.35); }
.v2inv-preflight__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 15px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2inv-preflight__title { display: inline-flex; align-items: center; gap: 8px; color: var(--slate); }
.v2inv-preflight__title svg { width: 16px; height: 16px; color: var(--go); }
.v2inv-preflight__count { color: var(--faint); }
.v2inv-preflight__count b { color: var(--ink); font-weight: 700; }
.v2inv-preflight__body { padding: 8px 18px; }
.v2inv-preflight__body .v2gpr-ck { padding: 12px 0; }
.v2inv-preflight__body .v2gpr-ck + .v2gpr-ck { border-top: 1px solid var(--line); }
.v2inv-preflight__msg {
    padding: 14px 18px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2inv-preflight__msg b { color: var(--go-deep); }
.v2inv-preflight.is-complete .v2inv-preflight__msg { background: var(--go-tint); }

/* =============================================================
   14. DIY vs STRUCTURED TABLE
============================================================= */
.v2inv-vs { margin: 24px 0; }
.v2inv-vs__table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2inv-vs__table th {
    background: var(--ink);
    color: #C6D0DA;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-align: right;
    padding: 13px 14px;
    vertical-align: middle;
}
.v2inv-vs__table th svg { width: 15px; height: 15px; vertical-align: -3px; margin-left: 5px; }
.v2inv-vs__table th.v2inv-vs__win { background: #0C3D26; color: #7BE0AC; }
.v2inv-vs__table td {
    padding: 13px 14px;
    font-size: 13.5px;
    color: var(--slate);
    border-top: 1px solid var(--line);
    vertical-align: middle;
}
.v2inv-vs__table td:first-child { background: var(--mist); color: var(--ink); }
.v2inv-vs__table td:first-child strong { color: var(--ink); font-weight: 650; }
.v2inv-vs__table td.v2inv-vs__win { background: var(--go-tint); color: var(--go-deep); font-weight: 600; }

/* =============================================================
   15. HELPFUL LINKS + BOTTOM LINE + DOCS
============================================================= */
.v2inv-links {
    margin: 26px 0;
    padding: 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2inv-links__title { display: inline-flex; align-items: center; gap: 8px; color: var(--slate); margin-bottom: 14px; }
.v2inv-links__title svg { width: 16px; height: 16px; color: var(--go); }
.v2inv-links__grid { display: grid; grid-template-columns: 1fr; gap: 9px; }
.v2inv-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    text-decoration: none;
    font-size: 14px;
    color: var(--slate);
    transition: border-color .2s, color .2s;
}
.v2inv-link:hover { border-color: #C9D2DA; color: var(--ink); }
.v2inv-link svg { width: 18px; height: 18px; color: var(--go); flex-shrink: 0; }

.v2inv-bottom {
    margin: 24px 0;
    padding: 22px 24px;
    background: var(--go-tint);
    border: 1px solid rgba(11,138,71,.2);
    border-radius: 16px;
}
.v2inv-bottom__tag { display: inline-flex; align-items: center; gap: 7px; color: var(--go-deep); margin-bottom: 11px; }
.v2inv-bottom__tag svg { width: 15px; height: 15px; }
.v2inv-bottom__text {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--ink);
    font-weight: 500;
}
.v2inv-bottom__text strong { color: var(--go-deep); }
.v2inv-bottom__text em { font-style: italic; color: var(--ink); }
.v2inv-bottom__text a { color: var(--go-deep); font-weight: 650; text-decoration: underline; text-underline-offset: 2px; }

.v2inv-docs {
    margin: 26px 0 0;
    padding: 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2inv-docs__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 12px;
}
.v2inv-docs__title svg { width: 18px; height: 18px; color: var(--slate); }
.v2inv-docs__list { display: grid; gap: 8px; }
.v2inv-docs__list a {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13.5px;
    color: var(--go-deep);
    text-decoration: none;
    line-height: 1.5;
}
.v2inv-docs__list a svg { width: 15px; height: 15px; flex-shrink: 0; color: var(--faint); }
.v2inv-docs__list a:hover { text-decoration: underline; }

/* =============================================================
   >= 560px : phablet - two-up stat grids, 14-day bar full width
============================================================= */
@media (min-width: 560px) {
    .v2inv-data__stats { grid-template-columns: repeat(3, 1fr); }
    .v2inv-data__stat { flex-direction: column; gap: 4px; }
    .v2inv-data__stat b { min-width: 0; }
    .v2inv-data__meta { flex-direction: row; gap: 16px; }
    .v2inv-links__grid { grid-template-columns: 1fr 1fr; }
    .v2inv-timeline__bar { grid-template-columns: repeat(14, 1fr); }
    .v2inv-day { height: 50px; }
    .v2inv-day span { font-size: 8.5px; }
}

/* =============================================================
   >= 720px : desktop - method + reset two-up, funnel narrows
============================================================= */
@media (min-width: 720px) {
    .v2inv-fstage { width: var(--w); }
    .v2inv-cost { grid-template-columns: 1fr 1fr; align-items: center; gap: 26px; padding: 26px 28px; }
    .v2inv-cost__num { font-size: 46px; }
    .v2inv-method { grid-template-columns: 1fr 1fr; }
    .v2inv-reset { grid-template-columns: 1fr 1fr; }
    .v2inv-reset__card.is-wide { grid-column: 1 / -1; }
    .v2inv-url__legend { grid-template-columns: repeat(3, 1fr); }
    .v2inv-data { padding: 28px 34px 26px 30px; }
    .v2inv-data__quote { font-size: 16.5px; }
}

/* =============================================================
   <= 520px : phones - tables collapse to stacked cards
============================================================= */
@media (max-width: 520px) {
    .v2inv-need__table, .v2inv-need__table tbody, .v2inv-need__table tr { display: block; }
    .v2inv-need__table thead { display: none; }
    .v2inv-need__table tr { border-top: 1px solid var(--line); padding: 4px 0; }
    .v2inv-need__table tr:first-child { border-top: none; }
    .v2inv-need__table td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        border-top: none;
        padding: 7px 4px;
    }
    .v2inv-need__table td:first-child { background: transparent; padding-top: 12px; }
    .v2inv-need__table td[data-label]::before {
        content: attr(data-label);
        font-family: var(--font-mono);
        font-size: 10px;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--faint);
    }

    .v2inv-vs__table, .v2inv-vs__table tbody, .v2inv-vs__table tr { display: block; }
    .v2inv-vs__table thead { display: none; }
    .v2inv-vs__table tr { border-top: 8px solid var(--mist); }
    .v2inv-vs__table tr:first-child { border-top: none; }
    .v2inv-vs__table td { display: block; border-top: none; padding: 4px 14px; }
    .v2inv-vs__table td:first-child {
        background: var(--ink);
        color: #fff;
        font-weight: 700;
        text-transform: uppercase;
        font-size: 11px;
        letter-spacing: 0.05em;
        padding: 10px 14px;
    }
    .v2inv-vs__table td:first-child strong { color: #fff; }
    .v2inv-vs__table td[data-label] { padding: 9px 14px; }
    .v2inv-vs__table td[data-label]::before {
        content: attr(data-label) ": ";
        font-weight: 700;
        color: var(--faint);
    }
    .v2inv-vs__table td.v2inv-vs__win[data-label]::before { color: var(--go-deep); }
    .v2inv-vs__table td:last-child { padding-bottom: 12px; }
}

/* =============================================================
   <= 380px : very small phones
============================================================= */
@media (max-width: 380px) {
    .v2inv-cost__grid { grid-template-columns: 1fr; }
    .v2inv-fstage { gap: 11px; padding: 13px 14px; }
    .v2inv-fstage__pct { font-size: 13px; padding: 4px 8px; }
    .v2inv-day span { display: none; }
    .v2inv-day { height: 42px; }
    .inv-quiz-result-cta { flex-direction: column; align-items: stretch; }
    .inv-cta-primary, .inv-cta-secondary { justify-content: center; }
    .inv-quiz-reset-btn { margin-right: 0; align-self: flex-end; }
}

/* reduced motion: kill the result fade */
@media (prefers-reduced-motion: reduce) {
    .inv-quiz-result.inv-result-active { animation: none; }
}
/* ============= END BLOG INVITE TESTERS V2 ============= */


/* ============================================================
   BLOG TESTERS-DIFFERENT-COUNTRIES V2 (geo-)
   Unique country-availability components for
   /blog/testers-different-countries-closed-testing. Reuses the
   shared v2gpr- article layer (hero, rail, chips, prose, callouts,
   qa, toc, faq, bottom, docs, author, related, cta, scta) and adds
   the signature pieces below. Two dark moments only: the shared
   .v2gpr-qa capsule and the final .v2-cta band. Prefix: v2geo-.
============================================================ */
.v2geo-verdict, .v2geo-gates, .v2geo-path, .v2geo-sync, .v2geo-diag,
.v2geo-world, .v2geo-fig, .v2geo-sep, .v2geo-lock, .v2geo-fixgrid,
.v2geo-keys, .v2geo-layer, .v2geo-license, .v2geo-tracks, .v2geo-req,
.v2geo-org, .v2geo-plans {
    --geo-rose:      #B42318;
    --geo-rose-deep: #911D15;
    --geo-rose-tint: #FDF1F0;
    --geo-rose-line: #F3C9C4;
    --geo-amber:     #D9820A;
    --geo-amber-deep: #92400E;
    --geo-amber-body: #7C5310;
    --geo-amber-tint: #FEF6E7;
    --geo-amber-line: #F5DFA8;
    --geo-shadow:    0 1px 2px rgba(10, 16, 23, .04), 0 12px 28px -16px rgba(10, 16, 23, .16);
    --geo-shadow-lg: 0 2px 6px rgba(10, 16, 23, .05), 0 24px 48px -22px rgba(10, 16, 23, .22);
    margin: 30px 0;
}
/* lists / h4 sit outside the base :where(h1,h2,h3,p) reset (gotcha 19) */
.v2geo-sep__list, .v2geo-lock__list, .v2geo-layer__chips, .v2geo-diag__fix { margin: 0; padding: 0; list-style: none; }
.v2geo-layer__tx h4 { margin: 0; }

/* ---------- Hero fact plaque tweak ---------- */
.v2geo-fact--yes b { color: var(--go-deep); }

/* ============================================================
   SIGNATURE: availability verdict panel
============================================================ */
.v2geo-verdict {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--geo-shadow-lg);
}
.v2geo-verdict__main { display: grid; grid-template-columns: 1.12fr 0.88fr; }
.v2geo-verdict__yes {
    position: relative;
    padding: 26px 28px;
    background: linear-gradient(-160deg, var(--go-tint), var(--paper) 82%);
    border-left: 1px solid var(--line);
}
.v2geo-verdict__tag {
    display: flex; align-items: center; gap: 7px;
    font-size: 11px; letter-spacing: 0.11em;
    color: var(--go-deep); margin-bottom: 16px;
}
.v2geo-verdict__tag svg { width: 15px; height: 15px; }
.v2geo-verdict__hd { display: flex; align-items: center; gap: 15px; margin-bottom: 13px; }
.v2geo-verdict__badge {
    width: 52px; height: 52px; flex-shrink: 0; border-radius: 15px;
    background: var(--go); color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 8px 20px -6px rgba(11, 138, 71, 0.5);
}
.v2geo-verdict__badge svg { width: 28px; height: 28px; }
.v2geo-verdict__hdtx b {
    display: block; font-family: var(--font-display); font-weight: 800;
    font-size: 24px; letter-spacing: -0.02em; color: var(--ink); line-height: 1.05;
}
.v2geo-verdict__hdtx span { display: block; margin-top: 4px; font-size: 13px; color: var(--slate); }
.v2geo-verdict__yes > p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2geo-verdict__cond { padding: 26px 28px; display: flex; flex-direction: column; justify-content: center; }
.v2geo-verdict__condlbl {
    display: flex; align-items: center; gap: 7px;
    font-size: 10.5px; letter-spacing: 0.12em; color: var(--faint); margin-bottom: 11px;
}
.v2geo-verdict__condlbl svg { width: 15px; height: 15px; }
.v2geo-verdict__big {
    font-family: var(--font-display); font-weight: 650; font-size: 18px;
    line-height: 1.4; letter-spacing: -0.01em; color: var(--ink); margin-bottom: 9px;
}
.v2geo-verdict__big b { color: var(--go-deep); }
.v2geo-verdict__sm { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2geo-verdict__strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.v2geo-outcome { display: flex; align-items: center; gap: 13px; padding: 16px 22px; }
.v2geo-outcome.is-ok { background: linear-gradient(-135deg, var(--go-tint), var(--paper)); border-left: 1px solid var(--line); }
.v2geo-outcome.is-no { background: linear-gradient(-135deg, var(--geo-rose-tint), var(--paper)); }
.v2geo-outcome__ic {
    width: 44px; height: 44px; flex-shrink: 0; border-radius: 13px; color: #fff;
    display: flex; align-items: center; justify-content: center;
}
.v2geo-outcome.is-ok .v2geo-outcome__ic { background: var(--go); }
.v2geo-outcome.is-no .v2geo-outcome__ic { background: var(--geo-rose); }
.v2geo-outcome__ic svg { width: 24px; height: 24px; }
.v2geo-outcome__l { display: block; font-size: 10px; letter-spacing: 0.09em; margin-bottom: 2px; }
.v2geo-outcome.is-ok .v2geo-outcome__l { color: var(--go-deep); }
.v2geo-outcome.is-no .v2geo-outcome__l { color: var(--geo-rose-deep); }
.v2geo-outcome__t { display: block; font-size: 14px; font-weight: 700; color: var(--ink); line-height: 1.25; }
.v2geo-outcome__s { display: block; font-size: 12px; color: var(--slate); line-height: 1.4; margin-top: 2px; }

/* ============================================================
   SIGNATURE INTERACTIVE: two-gate install checker
============================================================ */
.v2geo-gates {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 22px 20px;
    box-shadow: var(--geo-shadow);
}
.v2geo-gates__label {
    display: flex; align-items: center; gap: 8px;
    font-size: 11px; letter-spacing: 0.1em; color: var(--go-deep); margin-bottom: 6px;
}
.v2geo-gates__label svg { width: 17px; height: 17px; flex-shrink: 0; }
.v2geo-gates__sub { font-size: 13px; line-height: 1.55; color: var(--slate); margin-bottom: 18px; }
.v2geo-gates__sub strong { color: var(--ink); font-weight: 650; }
.v2geo-gates__grid { display: grid; grid-template-columns: 1fr 46px 1fr; gap: 12px; align-items: center; }
.v2geo-gate {
    border: 1.5px solid var(--line); border-radius: 14px; padding: 18px 16px 15px;
    background: var(--paper); text-align: center;
    transition: border-color 0.25s ease, background 0.25s ease;
}
.v2geo-gate.on { border-color: rgba(11, 138, 71, 0.4); background: linear-gradient(-165deg, var(--go-tint), var(--paper)); }
.v2geo-gate.off { border-color: var(--geo-rose-line); background: linear-gradient(-165deg, var(--geo-rose-tint), var(--paper)); }
.v2geo-gate__ic {
    width: 46px; height: 46px; margin: 0 auto 11px; border-radius: 13px; color: #fff;
    display: flex; align-items: center; justify-content: center;
    background: var(--slate); transition: background 0.25s ease;
}
.v2geo-gate.on .v2geo-gate__ic { background: var(--go); }
.v2geo-gate.off .v2geo-gate__ic { background: #AEB8C2; }
.v2geo-gate__ic svg { width: 24px; height: 24px; }
.v2geo-gate__name { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--ink); margin-bottom: 4px; }
.v2geo-gate__desc { font-size: 12px; line-height: 1.5; color: var(--slate); margin-bottom: 14px; min-height: 36px; }
.v2geo-gates__and {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; margin: 0 auto; border-radius: 50%;
    background: var(--mist); border: 1px solid var(--line);
    font-size: 10px; letter-spacing: 0.08em; color: var(--faint);
}
/* Toggle switch is a <button> - scope under .v2 (gotcha 2) */
.v2 .v2geo-switch {
    display: inline-flex; align-items: center; gap: 9px;
    background: none; border: none; padding: 0; cursor: pointer; font-family: inherit;
}
.v2geo-switch__track {
    position: relative; width: 44px; height: 24px; flex-shrink: 0;
    border-radius: 13px; background: #CBD5E1; transition: background 0.25s ease;
}
.v2geo-gate.on .v2geo-switch__track { background: var(--go); }
.v2geo-switch__knob {
    position: absolute; top: 3px; right: 3px; width: 18px; height: 18px; border-radius: 50%;
    background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25); transition: right 0.25s ease;
}
.v2geo-gate.on .v2geo-switch__knob { right: 23px; }
.v2geo-switch__lbl { font-size: 10.5px; letter-spacing: 0.06em; color: var(--faint); }
.v2geo-gate.on .v2geo-switch__lbl { color: var(--go-deep); }
.v2geo-gate.off .v2geo-switch__lbl { color: var(--geo-rose-deep); }
.v2geo-gates__out {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    margin-top: 18px; border-radius: 12px; padding: 14px 18px;
    font-family: var(--font-display); font-weight: 700; font-size: 15px; text-align: center;
    transition: background 0.25s ease, color 0.25s ease;
}
.v2geo-gates__out.allow { background: var(--go-tint); color: var(--go-deep); }
.v2geo-gates__out.block { background: var(--geo-rose-tint); color: var(--geo-rose-deep); }
.v2geo-gates__outic { display: inline-flex; flex-shrink: 0; }
.v2geo-gates__outic svg { width: 22px; height: 22px; }
.v2geo-gates__out .is-block { display: none; }
.v2geo-gates__out.allow .is-allow { display: block; }
.v2geo-gates__out.allow .is-block { display: none; }
.v2geo-gates__out.block .is-allow { display: none; }
.v2geo-gates__out.block .is-block { display: block; }
.v2geo-gates__note { font-size: 12.5px; line-height: 1.55; color: var(--slate); text-align: center; margin-top: 11px; }

/* ============================================================
   Console path stepper
============================================================ */
.v2geo-path { position: relative; }
.v2geo-path__step { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; padding-bottom: 16px; position: relative; }
.v2geo-path__step:last-child { padding-bottom: 0; }
.v2geo-path__step::before {
    content: ''; position: absolute; right: 19px; top: 44px; bottom: 2px; width: 2px;
    background: repeating-linear-gradient(-180deg, var(--line) 0 6px, transparent 6px 11px);
}
.v2geo-path__step:last-child::before { display: none; }
.v2geo-path__n {
    position: relative; z-index: 1; width: 40px; height: 40px; border-radius: 12px;
    background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center;
    font-size: 15px; font-weight: 600; letter-spacing: 0;
}
.v2geo-path__body { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 14px 18px; }
.v2geo-path__t {
    font-family: var(--font-display); font-weight: 600; font-size: 15px; color: var(--ink);
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap; line-height: 1.35; margin-bottom: 6px;
}
.v2geo-path__loc {
    display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px;
    color: var(--go-deep); background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 7px; padding: 3px 9px;
}
.v2geo-path__loc svg { width: 12px; height: 12px; }
.v2geo-path__body p { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2geo-path__body p strong { color: var(--ink); font-weight: 650; }

/* ============================================================
   Synced / unsynced production cards
============================================================ */
.v2geo-sync { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.v2geo-sync__card { border-radius: 14px; padding: 18px 20px; border: 1px solid var(--line); }
.v2geo-sync__card.is-linked { background: linear-gradient(-165deg, var(--geo-amber-tint), var(--paper)); border-color: var(--geo-amber-line); }
.v2geo-sync__card.is-unlinked { background: linear-gradient(-165deg, var(--go-tint), var(--paper)); border-color: rgba(11, 138, 71, 0.25); }
.v2geo-sync__top { display: flex; align-items: center; gap: 12px; margin-bottom: 11px; }
.v2geo-sync__ic {
    width: 40px; height: 40px; flex-shrink: 0; border-radius: 11px; color: #fff;
    display: flex; align-items: center; justify-content: center;
}
.v2geo-sync__card.is-linked .v2geo-sync__ic { background: var(--geo-amber); }
.v2geo-sync__card.is-unlinked .v2geo-sync__ic { background: var(--go); }
.v2geo-sync__ic svg { width: 21px; height: 21px; }
.v2geo-sync__tag { display: block; font-size: 9.5px; letter-spacing: 0.1em; margin-bottom: 2px; }
.v2geo-sync__card.is-linked .v2geo-sync__tag { color: var(--geo-amber-deep); }
.v2geo-sync__card.is-unlinked .v2geo-sync__tag { color: var(--go-deep); }
.v2geo-sync__ttl { display: block; font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--ink); }
.v2geo-sync__card p { font-size: 12.5px; line-height: 1.6; color: var(--slate); }
.v2geo-sync__card p strong { color: var(--ink); font-weight: 650; }

/* ============================================================
   SIGNATURE INTERACTIVE: tester error diagnoser
============================================================ */
.v2geo-diag { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; box-shadow: var(--geo-shadow-lg); }
.v2geo-diag__head { display: flex; align-items: center; gap: 13px; padding: 20px 22px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2geo-diag__badge {
    width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px;
    background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); color: var(--go);
    display: flex; align-items: center; justify-content: center;
}
.v2geo-diag__badge svg { width: 23px; height: 23px; }
.v2geo-diag__ttl { display: block; font-family: var(--font-display); font-weight: 650; font-size: 16.5px; color: var(--ink); }
.v2geo-diag__sub { display: block; font-size: 12.5px; color: var(--slate); margin-top: 2px; }
.v2geo-diag__body { padding: 22px; }
.v2geo-diag__q { font-size: 11px; letter-spacing: 0.1em; color: var(--faint); margin-bottom: 12px; }
.v2geo-diag__chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-bottom: 20px; }
.v2 .v2geo-diag__chip {
    display: flex; align-items: center; gap: 11px; padding: 14px 16px;
    background: var(--mist); border: 1.5px solid var(--line); border-radius: 12px;
    color: var(--slate); font-family: inherit; font-size: 13.5px; font-weight: 500;
    line-height: 1.35; text-align: right; cursor: pointer;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}
.v2 .v2geo-diag__chip svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--faint); transition: color 0.2s ease; }
.v2 .v2geo-diag__chip:hover { border-color: #C9D2DA; background: var(--paper); }
.v2 .v2geo-diag__chip.is-active { border-color: var(--go); background: var(--paper); color: var(--ink); box-shadow: 0 0 0 3px var(--go-tint); }
.v2 .v2geo-diag__chip.is-active svg { color: var(--go); }
.v2geo-diag__out { border: 1px dashed #C9D2DA; border-radius: 13px; padding: 20px; min-height: 118px; background: var(--mist); }
.v2geo-diag__empty { display: flex; align-items: center; gap: 10px; color: var(--faint); font-size: 13.5px; }
.v2geo-diag__empty svg { width: 20px; height: 20px; flex-shrink: 0; }
.v2geo-diag__result { animation: v2geoIn 0.3s ease; }
@keyframes v2geoIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.v2geo-diag__verdict {
    display: inline-block; font-family: var(--font-mono); font-size: 10.5px; font-weight: 600;
    letter-spacing: 0.08em; text-transform: uppercase; padding: 6px 12px; border-radius: 8px; margin-bottom: 12px;
}
.v2geo-diag__verdict.is-geo { background: var(--geo-rose-tint); color: var(--geo-rose-deep); }
.v2geo-diag__verdict.is-acct { background: var(--geo-amber-tint); color: var(--geo-amber-deep); }
.v2geo-diag__verdict.is-part { background: var(--go-tint); color: var(--go-deep); }
.v2geo-diag__cause { font-size: 14.5px; line-height: 1.6; font-weight: 600; color: var(--ink); margin-bottom: 14px; }
.v2geo-diag__fix { counter-reset: gfix; }
.v2geo-diag__fix li {
    display: flex; gap: 11px; align-items: flex-start; font-size: 13.5px; line-height: 1.55;
    color: var(--slate); padding: 8px 0; border-top: 1px solid var(--line);
}
.v2geo-diag__fix li:first-child { border-top: none; }
.v2geo-diag__fix li::before {
    counter-increment: gfix; content: counter(gfix); flex-shrink: 0;
    width: 22px; height: 22px; border-radius: 50%; background: var(--go); color: #fff;
    font-family: var(--font-mono); font-size: 11px; font-weight: 600;
    display: flex; align-items: center; justify-content: center;
}
.v2geo-diag__foot { font-size: 11.5px; line-height: 1.5; color: var(--faint); margin-top: 14px; font-style: italic; }

/* ============================================================
   177 world-coverage meter
============================================================ */
.v2geo-world { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 24px 26px; box-shadow: var(--geo-shadow); }
.v2geo-world__top { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.v2geo-world__num { flex-shrink: 0; text-align: center; }
.v2geo-world__num b {
    display: block; font-family: var(--font-display); font-weight: 800; font-size: 52px;
    line-height: 1; letter-spacing: -0.03em; color: var(--go-deep);
}
.v2geo-world__num .v2-mono { display: block; margin-top: 6px; font-size: 9.5px; color: var(--faint); }
.v2geo-world__bar { flex: 1; min-width: 230px; }
.v2geo-world__meter { height: 14px; background: #E9EDF1; border-radius: 8px; overflow: hidden; margin-bottom: 10px; }
.v2geo-world__meter span {
    display: block; height: 100%; width: 100%; border-radius: 8px;
    background: linear-gradient(-90deg, #34D399, var(--go)); animation: v2geoFill 1.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}
@keyframes v2geoFill { from { width: 0; } }
.v2geo-world__bar p { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2geo-world__reasons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 20px; }
.v2geo-world__reason { display: flex; gap: 10px; align-items: flex-start; background: var(--mist); border: 1px solid var(--line); border-radius: 12px; padding: 13px 15px; }
.v2geo-world__reason svg { width: 19px; height: 19px; flex-shrink: 0; color: var(--go); margin-top: 1px; }
.v2geo-world__reason span { font-size: 12.5px; line-height: 1.55; color: var(--slate); }
.v2geo-world__reason strong { color: var(--ink); font-weight: 650; }

/* ---------- Figure (screenshot) ---------- */
.v2geo-fig { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: var(--paper); box-shadow: var(--geo-shadow); }
.v2geo-fig img { display: block; width: 100%; height: auto; }
.v2geo-fig figcaption {
    display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; line-height: 1.55;
    color: var(--slate); padding: 13px 18px; background: var(--mist); border-top: 1px solid var(--line);
}
.v2geo-fig figcaption svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--go); margin-top: 1px; }

/* ---------- Test vs production separation ---------- */
.v2geo-sep { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: center; }
.v2geo-sep__card { border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; background: var(--paper); }
.v2geo-sep__card.is-test { border-top: 3px solid var(--go); }
.v2geo-sep__card.is-prod { border-top: 3px solid #AEB8C2; }
.v2geo-sep__h { display: flex; align-items: center; gap: 9px; font-family: var(--font-display); font-weight: 700; font-size: 14px; color: var(--ink); margin-bottom: 12px; }
.v2geo-sep__h svg { width: 18px; height: 18px; flex-shrink: 0; }
.v2geo-sep__card.is-test .v2geo-sep__h svg { color: var(--go); }
.v2geo-sep__card.is-prod .v2geo-sep__h svg { color: var(--slate); }
.v2geo-sep__list li { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; line-height: 1.5; color: var(--slate); padding: 5px 0; }
.v2geo-sep__list .v2gpr-mk { margin-top: 1px; }
.v2geo-sep__mid { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.v2geo-sep__node { width: 42px; height: 42px; border-radius: 12px; background: var(--mist); border: 1px solid var(--line); color: var(--slate); display: flex; align-items: center; justify-content: center; }
.v2geo-sep__node svg { width: 21px; height: 21px; }
.v2geo-sep__midtx { font-size: 9px; letter-spacing: 0.08em; color: var(--faint); text-align: center; line-height: 1.3; }

/* ---------- Country switch lock (amber) ---------- */
.v2geo-lock {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center;
    background: linear-gradient(-135deg, var(--geo-amber-tint), var(--paper));
    border: 1px solid var(--geo-amber-line); border-radius: 16px; padding: 24px 26px;
}
.v2geo-lock__ic {
    width: 60px; height: 60px; flex-shrink: 0; border-radius: 16px; background: var(--geo-amber); color: #fff;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px -6px rgba(217, 130, 10, 0.5);
}
.v2geo-lock__ic svg { width: 30px; height: 30px; }
.v2geo-lock__t { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); margin-bottom: 11px; }
.v2geo-lock__list { display: grid; gap: 8px; }
.v2geo-lock__list li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.5; color: var(--geo-amber-body); }
.v2geo-lock__list li svg { width: 17px; height: 17px; flex-shrink: 0; color: var(--geo-amber); margin-top: 1px; }
.v2geo-lock__list li strong { color: var(--ink); font-weight: 700; }

/* ---------- Troubleshooting fix cards ---------- */
.v2geo-fixgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.v2geo-fixcard { background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.v2geo-fixcard:hover { border-color: #C9D2DA; box-shadow: 0 10px 24px -16px rgba(10, 16, 23, 0.16); }
.v2geo-fixcard__top { display: flex; align-items: center; gap: 11px; margin-bottom: 9px; }
.v2geo-fixcard__n {
    width: 28px; height: 28px; flex-shrink: 0; border-radius: 9px; background: var(--mist);
    border: 1px solid var(--line); color: var(--ink); display: flex; align-items: center; justify-content: center;
    font-size: 12.5px; letter-spacing: 0;
}
.v2geo-fixcard__t { font-family: var(--font-display); font-weight: 650; font-size: 14.5px; color: var(--ink); line-height: 1.25; }
.v2geo-fixcard__most {
    margin-right: auto; flex-shrink: 0; font-size: 9px; letter-spacing: 0.08em;
    color: var(--geo-rose-deep); background: var(--geo-rose-tint); border: 1px solid var(--geo-rose-line);
    border-radius: 6px; padding: 3px 8px; white-space: nowrap;
}
.v2geo-fixcard p { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2geo-fixcard p strong { color: var(--ink); font-weight: 650; }

/* ---------- Two keys (who / where) ---------- */
.v2geo-keys { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.v2geo-key { display: flex; align-items: center; gap: 14px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; }
.v2geo-key__ic { width: 46px; height: 46px; flex-shrink: 0; border-radius: 13px; background: var(--mist); border: 1px solid var(--line); color: var(--slate); display: flex; align-items: center; justify-content: center; }
.v2geo-key__ic svg { width: 23px; height: 23px; }
.v2geo-key__tx { min-width: 0; }
.v2geo-key__kl { display: block; font-size: 9.5px; letter-spacing: 0.1em; color: var(--faint); margin-bottom: 2px; }
.v2geo-key__kt { display: block; font-family: var(--font-display); font-weight: 650; font-size: 14.5px; color: var(--ink); line-height: 1.25; }
.v2geo-key__ks { display: block; font-size: 12px; line-height: 1.45; color: var(--slate); margin-top: 3px; }

/* ---------- Two-layer access model ---------- */
.v2geo-layer { display: grid; gap: 13px; }
.v2geo-layer__card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: flex-start; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; background: var(--paper); }
.v2geo-layer__card.is-l1 { border-right: 3px solid var(--ink); }
.v2geo-layer__card.is-l2 { border-right: 3px solid var(--go); }
.v2geo-layer__badge { width: 50px; height: 50px; flex-shrink: 0; border-radius: 13px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; line-height: 1; }
.v2geo-layer__card.is-l1 .v2geo-layer__badge { background: var(--ink); }
.v2geo-layer__card.is-l2 .v2geo-layer__badge { background: var(--go); }
.v2geo-layer__badge b { font-family: var(--font-display); font-size: 18px; font-weight: 800; }
.v2geo-layer__badge .v2-mono { font-size: 8px; letter-spacing: 0.06em; margin-top: 3px; opacity: 0.9; }
.v2geo-layer__tx h4 { font-family: var(--font-display); font-weight: 700; font-size: 14.5px; color: var(--ink); margin-bottom: 4px; }
.v2geo-layer__tx p { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2geo-layer__chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.v2geo-layer__chips span { font-size: 11px; font-weight: 500; color: var(--slate); background: var(--mist); border: 1px solid var(--line); border-radius: 6px; padding: 3px 9px; }

/* ---------- List traps (amber warning rows) ---------- */
.v2geo-trap {
    display: flex; gap: 13px; align-items: flex-start; margin: 13px 0;
    background: var(--geo-amber-tint); border: 1px solid var(--geo-amber-line); border-radius: 12px; padding: 15px 17px;
}
.v2geo-trap__ic { width: 34px; height: 34px; flex-shrink: 0; border-radius: 10px; background: rgba(217, 130, 10, 0.12); color: #B8720A; display: flex; align-items: center; justify-content: center; }
.v2geo-trap__ic svg { width: 19px; height: 19px; }
.v2geo-trap p { font-size: 13.5px; line-height: 1.6; color: var(--geo-amber-body); }
.v2geo-trap p strong { color: var(--geo-amber-deep); font-weight: 700; }

/* ---------- License testing panel ---------- */
.v2geo-license {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: center;
    background: linear-gradient(-135deg, var(--go-tint), var(--paper)); border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 16px; padding: 22px 26px;
}
.v2geo-license__ic {
    width: 56px; height: 56px; flex-shrink: 0; border-radius: 15px; background: var(--go); color: #fff;
    display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 20px -6px rgba(11, 138, 71, 0.5);
}
.v2geo-license__ic svg { width: 28px; height: 28px; }
.v2geo-license__t { font-family: var(--font-display); font-weight: 700; font-size: 15.5px; color: var(--ink); margin-bottom: 7px; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; line-height: 1.3; }
.v2geo-license__tx p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Track comparison cards ---------- */
.v2geo-tracks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.v2geo-track { border: 1px solid var(--line); border-radius: 15px; overflow: hidden; background: var(--paper); }
.v2geo-track.is-key { border: 1.5px solid var(--go); box-shadow: 0 12px 30px -18px rgba(11, 138, 71, 0.4); }
.v2geo-track__head { padding: 16px 18px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2geo-track.is-key .v2geo-track__head { background: var(--ink); border-bottom-color: transparent; }
.v2geo-track__badge { display: inline-block; margin-bottom: 8px; font-size: 8px; letter-spacing: 0.06em; color: #0A1017; background: #3ECF81; border-radius: 5px; padding: 3px 7px; }
.v2geo-track__name { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); }
.v2geo-track__name svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--slate); }
.v2geo-track.is-key .v2geo-track__name { color: #fff; }
.v2geo-track.is-key .v2geo-track__name svg { color: #3ECF81; }
.v2geo-track__sub { display: block; font-size: 11.5px; color: var(--slate); margin-top: 3px; }
.v2geo-track.is-key .v2geo-track__sub { color: #93A0AC; }
.v2geo-track__row { padding: 12px 18px; border-top: 1px solid #F0F2F5; }
.v2geo-track__row:first-of-type { border-top: none; }
.v2geo-track__rl { display: block; font-size: 9.5px; letter-spacing: 0.09em; color: var(--faint); margin-bottom: 4px; }
.v2geo-track__rv { display: block; font-size: 12.5px; line-height: 1.5; color: var(--slate); }
.v2geo-track__rv strong { color: var(--ink); font-weight: 700; }
.v2geo-track__yes { color: var(--go-deep); font-weight: 700; }
.v2geo-track__no { color: var(--geo-rose-deep); font-weight: 700; }

/* ---------- 2026 requirement stat band ---------- */
.v2geo-req { background: var(--mist); border: 1px solid var(--line); border-radius: 16px; padding: 22px 24px; }
.v2geo-req__head { display: flex; align-items: center; gap: 9px; font-size: 11px; letter-spacing: 0.09em; color: var(--slate); margin-bottom: 16px; }
.v2geo-req__head svg { width: 17px; height: 17px; flex-shrink: 0; color: var(--go); }
.v2geo-req__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.v2geo-req__stat { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; padding: 16px 12px; text-align: center; }
.v2geo-req__stat b { display: block; font-family: var(--font-display); font-weight: 800; font-size: 24px; line-height: 1; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.v2geo-req__stat span { display: block; font-size: 9px; letter-spacing: 0.06em; color: var(--faint); margin-top: 7px; line-height: 1.3; }

/* ---------- Organization exempt box ---------- */
.v2geo-org { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 20px 22px; }
.v2geo-org__ic { width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; background: var(--mist); border: 1px solid var(--line); color: var(--slate); display: flex; align-items: center; justify-content: center; }
.v2geo-org__ic svg { width: 26px; height: 26px; }
.v2geo-org p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2geo-org p strong { color: var(--ink); font-weight: 700; }

/* ---------- Pricing cards ---------- */
.v2geo-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; align-items: start; }
.v2geo-plan { position: relative; border: 1px solid var(--line); border-radius: 16px; padding: 26px 22px 24px; background: var(--paper); text-align: center; transition: border-color 0.25s ease, box-shadow 0.25s ease; }
.v2geo-plan:hover { border-color: #C9D2DA; box-shadow: 0 14px 34px -20px rgba(10, 16, 23, 0.2); }
.v2geo-plan.is-feat { border: 1.5px solid var(--go); box-shadow: 0 14px 34px -20px rgba(11, 138, 71, 0.3); }
.v2geo-plan__tag { position: absolute; top: -11px; right: 50%; transform: translateX(50%); background: var(--go); color: #fff; font-size: 9px; letter-spacing: 0.08em; padding: 4px 13px; border-radius: 999px; white-space: nowrap; }
.v2geo-plan__name { font-size: 11px; letter-spacing: 0.1em; color: var(--go-deep); margin-bottom: 8px; }
.v2geo-plan__amt { font-family: var(--font-display); font-weight: 800; font-size: 34px; letter-spacing: -0.02em; color: var(--ink); line-height: 1; }
.v2geo-plan__amt small { font-size: 15px; color: var(--faint); font-weight: 600; }
.v2geo-plan__testers { font-size: 12.5px; line-height: 1.5; color: var(--slate); margin: 9px 0 16px; }
.v2geo-plan__testers b { color: var(--ink); font-size: 14.5px; }
.v2 .v2geo-plan__btn { display: block; background: var(--mist); border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 14px; padding: 12px; border-radius: 10px; text-decoration: none; transition: background 0.2s ease, border-color 0.2s ease; }
.v2 .v2geo-plan__btn:hover { border-color: #C9D2DA; }
.v2 .v2geo-plan.is-feat .v2geo-plan__btn { background: var(--go); border-color: var(--go); color: #fff; }
.v2 .v2geo-plan.is-feat .v2geo-plan__btn:hover { background: var(--go-deep); border-color: var(--go-deep); }

/* ============================================================
   BLOG GEO V2 - responsive
============================================================ */
@media (max-width: 960px) {
    .v2geo-verdict__main { grid-template-columns: minmax(0, 1fr); }
    .v2geo-verdict__yes { border-left: none; border-bottom: 1px solid var(--line); }
}
@media (max-width: 820px) {
    .v2geo-verdict__strip { grid-template-columns: minmax(0, 1fr); }
    .v2geo-outcome.is-ok { border-left: none; border-bottom: 1px solid var(--line); }
    .v2geo-gates__grid { grid-template-columns: minmax(0, 1fr); }
    .v2geo-gates__and { transform: rotate(-90deg); margin: 2px auto; }
    .v2geo-gate__desc { min-height: 0; }
    .v2geo-sync { grid-template-columns: minmax(0, 1fr); }
    .v2geo-diag__chips { grid-template-columns: minmax(0, 1fr); }
    .v2geo-world__reasons { grid-template-columns: minmax(0, 1fr); }
    .v2geo-sep { grid-template-columns: minmax(0, 1fr); }
    .v2geo-sep__mid { flex-direction: row; justify-content: center; gap: 9px; }
    .v2geo-sep__node { transform: rotate(-90deg); }
    .v2geo-lock { grid-template-columns: minmax(0, 1fr); gap: 15px; }
    .v2geo-fixgrid { grid-template-columns: minmax(0, 1fr); }
    .v2geo-keys { grid-template-columns: minmax(0, 1fr); }
    .v2geo-license { grid-template-columns: minmax(0, 1fr); gap: 15px; }
    .v2geo-tracks { grid-template-columns: minmax(0, 1fr); }
    .v2geo-plans { grid-template-columns: minmax(0, 1fr); }
    .v2geo-org { grid-template-columns: minmax(0, 1fr); gap: 14px; }
}
@media (max-width: 640px) {
    .v2geo-verdict__yes, .v2geo-verdict__cond { padding: 22px 18px; }
    .v2geo-verdict__hdtx b { font-size: 22px; }
    .v2geo-gates { padding: 20px 16px 18px; }
    .v2geo-diag__head { padding: 16px 18px; }
    .v2geo-diag__body { padding: 18px 16px; }
    .v2geo-diag__out { padding: 16px; }
    .v2geo-world { padding: 20px 18px; }
    .v2geo-world__num b { font-size: 44px; }
    .v2geo-req__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2geo-path__step { grid-template-columns: 34px minmax(0, 1fr); gap: 13px; }
    .v2geo-path__n { width: 34px; height: 34px; font-size: 14px; }
    .v2geo-path__step::before { right: 16px; top: 40px; }
    .v2geo-plans { gap: 22px; }
    .v2geo-lock { padding: 20px 18px; }
    .v2geo-license { padding: 20px 18px; }
}
@media (max-width: 480px) {
    .v2geo-world__top { gap: 16px; }
    .v2geo-verdict__badge { width: 46px; height: 46px; }
    .v2geo-req__stat b { font-size: 21px; }
}

/* Reduced motion: settle every v2geo animation/transition to its end state */
@media (prefers-reduced-motion: reduce) {
    .v2geo-world__meter span, .v2geo-diag__result { animation: none; }
    .v2geo-gate, .v2geo-gate__ic, .v2geo-switch__track, .v2geo-switch__knob,
    .v2geo-gates__out, .v2geo-fixcard, .v2geo-plan, .v2 .v2geo-diag__chip,
    .v2 .v2geo-plan__btn { transition: none; }
}
/* ============= END BLOG GEO V2 ============= */


/* =============================================================
   BLOG INVITE TESTERS V2 - BUTTON SCOPING FIX
   .inv-copy-btn and .inv-quiz-reset-btn are <button> elements, so
   the base ".v2 button" reset (background:none; border:0;
   color:inherit; padding:0 - specificity 0,1,1) flattens the
   unscoped 0,1,0 component rules and the copy pill renders as
   near-invisible inherited-dark text on the dark template header
   (V2 gotcha 12.2). Re-declare scoped under .v2 (0,2,0) so it wins.
============================================================= */
.v2 .inv-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    padding: 7px 13px;
    border-radius: 9px;
    border: 1px solid rgba(62,207,129,.35);
    background: rgba(62,207,129,.14);
    color: #4FE39A;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}
.v2 .inv-copy-btn:hover { background: rgba(62,207,129,.24); border-color: #4FE39A; color: #fff; }
.v2 .inv-copy-btn.inv-copied { background: var(--go); border-color: var(--go); color: #fff; }
.v2 .inv-copy-btn .inv-copy-ic { width: 14px; height: 14px; flex-shrink: 0; }

.v2 .inv-quiz-reset-btn {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: none;
    border: 0;
    color: var(--faint);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    padding: 8px 11px;
    border-radius: 8px;
    transition: color .2s, background .2s;
}
.v2 .inv-quiz-reset-btn:hover { color: var(--ink); background: var(--mist); }
.v2 .inv-quiz-reset-btn svg { width: 15px; height: 15px; }
@media (max-width: 380px) {
    .v2 .inv-quiz-reset-btn { margin-right: 0; align-self: flex-end; }
}
/* ============= END BLOG INVITE TESTERS V2 BUTTON FIX ============= */

/* ============================================================
   CHECKOUT V2 - per-app redesign (2026-07-18)
   App rows + package chips + inline add picker + empty-state
   package selector + guest trust block additions.
   ============================================================ */
.v2-ck__apphint {
    font-size: 10px;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}

.v2-ck__applist { display: flex; flex-direction: column; gap: 8px; list-style: none; margin: 0; padding: 0; }
/* The base checkout CSS pins .v2-ck__remove to a named grid area that
   does not exist in the compact line grid; reset it here. */
.v2-ck__app-line .v2-ck__remove { grid-area: auto; justify-self: auto; }
.v2-ck__app {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper);
}
.v2-ck__app-line {
    display: grid;
    grid-template-columns: 84px 1fr auto auto auto;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
}
.v2-ck__app-id { display: flex; align-items: center; gap: 8px; min-width: 0; }
.v2-ck__app-sum { min-width: 0; }
.v2-ck__app-sum b { display: block; font: 700 13.5px/1.3 var(--font-body); color: var(--ink); }
.v2-ck__app-sum i { display: block; font: 400 11.5px/1.4 var(--font-body); font-style: normal; color: var(--slate); }
.v2-ck__app-price { font: 700 13px/1.4 var(--font-mono); color: var(--ink); white-space: nowrap; }
.v2 .v2-ck__app-change {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font: 600 12px/1 var(--font-body);
    color: var(--slate);
    padding: 7px 10px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--paper);
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.v2 .v2-ck__app-change:hover { color: var(--ink); border-color: #B9C4CE; background: var(--mist); }
.v2 .v2-ck__app-change svg { width: 12px; height: 12px; transition: transform 0.15s ease; }
.v2 .v2-ck__app-change.is-open { color: var(--go-deep); border-color: rgba(11, 138, 71, 0.45); background: var(--go-tint); }
.v2 .v2-ck__app-change.is-open svg { transform: rotate(-180deg); }
.v2-ck__app-picker {
    border-top: 1px dashed var(--line);
    background: var(--mist);
    padding: 12px 14px;
    border-radius: 0 0 var(--radius) var(--radius);
}
.v2-ck__app-picker .v2-ck__chip { background: var(--paper); }
.v2-ck__app-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--mist);
    color: var(--slate);
    flex: 0 0 auto;
}
.v2-ck__app-ic svg { width: 16px; height: 16px; }
.v2-ck__appno { font-size: 10.5px; color: var(--slate); white-space: nowrap; }

.v2-ck__chips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.v2 .v2-ck__chip {
    position: relative;
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 10px;
    align-items: start;
    padding: 11px 12px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    text-align: right;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.v2 .v2-ck__chip:hover { border-color: #AEBAC5; background: var(--mist); }
.v2-ck__chip-radio {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border: 2px solid #C4CED7;
    border-radius: 50%;
    background: var(--paper);
    transition: border-color 0.15s ease, background 0.15s ease;
}
.v2-ck__chip-radio svg { width: 10px; height: 10px; color: #FFFFFF; opacity: 0; }
.v2 .v2-ck__chip:hover .v2-ck__chip-radio { border-color: #8A99A8; }
.v2-ck__chip-t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2 .v2-ck__chip b { font: 700 13px/1.3 var(--font-body); color: var(--ink); }
.v2 .v2-ck__chip i { font: 400 11px/1.3 var(--font-body); font-style: normal; color: var(--slate); }
.v2 .v2-ck__chip-price { font: 700 12px/1.4 var(--font-mono); color: var(--ink); margin-top: 2px; }
.v2 .v2-ck__chip.is-on {
    border-color: var(--go);
    background: #F0FAF4;
    box-shadow: 0 0 0 2px rgba(11, 138, 71, 0.18);
    cursor: default;
}
.v2 .v2-ck__chip.is-on .v2-ck__chip-radio { border-color: var(--go); background: var(--go); }
.v2 .v2-ck__chip.is-on .v2-ck__chip-radio svg { opacity: 1; }
.v2 .v2-ck__chip.is-on b { color: var(--go-deep); }
.v2 .v2-ck__chip.is-on .v2-ck__chip-price { color: var(--go-deep); }
.v2-ck__chip-tag {
    position: absolute;
    top: -9px;
    left: 10px;
    display: none;
    padding: 3px 8px;
    border-radius: 999px;
    background: var(--go);
    color: #FFFFFF;
    font: 800 9px/1.2 var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    box-shadow: 0 1px 4px rgba(16, 24, 40, 0.18);
}
.v2 .v2-ck__chip.is-on .v2-ck__chip-tag { display: inline-flex; }

.v2-ck__addwrap { margin-top: 12px; }
.v2 .v2-ck__addapp {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font: 700 12.5px/1 var(--font-body);
    color: var(--go-deep);
    padding: 9px 12px;
    border: 1px dashed rgba(11, 138, 71, 0.45);
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.v2 .v2-ck__addapp:hover { background: var(--go-tint); border-color: var(--go); }
.v2 .v2-ck__addapp svg { width: 13px; height: 13px; }
.v2-ck__addpick {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--mist);
}
.v2-ck__addpick > .v2-mono { display: block; font-size: 10px; color: var(--faint); margin-bottom: 8px; }
.v2-ck__addpick-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.v2-ck__addpick-row .v2-ck__chip { background: var(--paper); }

/* Empty-state package selector */
.v2-ck__pickwrap { max-width: 720px; margin: 0 auto; padding: 8px 0 28px; }
.v2-ck__head--pick { text-align: center; margin-bottom: 22px; }
.v2-ck__pick { display: flex; flex-direction: column; gap: 12px; list-style: none; margin: 0; padding: 0; }
.v2 .v2-ck__pickbtn {
    display: grid;
    grid-template-columns: 110px 1fr auto auto;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--paper);
    text-align: right;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.v2 .v2-ck__pickbtn:hover {
    border-color: rgba(11, 138, 71, 0.5);
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.07);
    transform: translateY(-1px);
}
.v2 .v2-ck__pickbtn.is-loading { opacity: 0.55; pointer-events: none; }
.v2-ck__pickname { font-size: 10.5px; color: var(--faint); }
.v2-ck__picktesters { font: 700 15px/1.3 var(--font-body); color: var(--ink); }
.v2-ck__pickprice { display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.v2-ck__pickprice s { font: 500 12px/1 var(--font-body); color: var(--faint); }
.v2-ck__pickprice b { font: 800 16px/1 var(--font-body); color: var(--ink); }
.v2-ck__pickprice i { font: 400 11px/1 var(--font-body); font-style: normal; color: var(--faint); }
.v2-ck__pickgo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font: 700 12.5px/1 var(--font-body);
    color: #FFFFFF;
    background: var(--ink);
    border-radius: 10px;
    padding: 10px 14px;
    white-space: nowrap;
}
.v2 .v2-ck__pickbtn:hover .v2-ck__pickgo { background: var(--go-deep); }
.v2-ck__pickgo .v2-ic { width: 13px; height: 13px; }
.v2-ck__pickfoot { margin-top: 16px; text-align: center; font-size: 10.5px; color: var(--faint); }

/* Guest block additions */
.v2-ck__optpass { margin: 8px 0 0; }
.v2 .v2-ck__optpass button {
    font: 600 12px/1.4 var(--font-body);
    color: var(--slate);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2 .v2-ck__optpass button:hover { color: var(--ink); }
.v2 .v2-ck__optpass button i { font-style: normal; color: var(--faint); }
.v2-ck__afterpay { list-style: none; margin: 12px 0 0; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--mist); }
.v2-ck__afterpay li {
    position: relative;
    padding-right: 20px;
    font: 400 12px/1.55 var(--font-body);
    color: var(--slate);
}
.v2-ck__afterpay li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3.5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.2 3.2L15 7' stroke='%23087038' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 8px 8px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2-ck__reglink { margin: 10px 0 0; font: 400 12px/1.55 var(--font-body); color: var(--faint); }
.v2 .v2-ck__reglink a { color: var(--slate); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.v2 .v2-ck__reglink a:hover { color: var(--ink); }

/* Responsive */
@media (max-width: 640px) {
    .v2-ck__app-line {
        grid-template-columns: 1fr auto auto;
        grid-template-areas:
            "id change remove"
            "sum sum price";
        row-gap: 8px;
    }
    .v2-ck__app-id { grid-area: id; }
    .v2 .v2-ck__app-change { grid-area: change; }
    .v2-ck__app-line .v2-ck__remove { grid-area: remove; }
    .v2-ck__app-sum { grid-area: sum; }
    .v2-ck__app-price { grid-area: price; align-self: end; }
    .v2-ck__chips, .v2-ck__addpick-row { grid-template-columns: 1fr; }
    .v2 .v2-ck__chip { align-items: center; }
    .v2-ck__chip-radio { margin-top: 0; }
    .v2-ck__chip-t { flex-direction: row; align-items: baseline; gap: 8px; }
    .v2 .v2-ck__chip-price { margin-right: auto; margin-top: 0; }
    .v2 .v2-ck__pickbtn { grid-template-columns: 1fr auto; grid-template-rows: auto auto auto; row-gap: 8px; }
    .v2-ck__pickname { grid-row: 1; grid-column: 1 / -1; }
    .v2-ck__picktesters { grid-row: 2; grid-column: 1; }
    .v2-ck__pickprice { grid-row: 2; grid-column: 2; }
    .v2-ck__pickgo { grid-row: 3; grid-column: 1 / -1; justify-content: center; }
}

/* Optimistic-save additions (2026-07-18) */
.v2-ck__saving {
    font-size: 10px;
    color: var(--go-deep);
    animation: ckSavePulse 1.1s ease-in-out infinite;
}
@keyframes ckSavePulse { 50% { opacity: 0.3; } }
@media (prefers-reduced-motion: reduce) { .v2-ck__saving { animation: none; } }
.v2-ck__app.is-pending { opacity: 0.65; display: flex; align-items: center; gap: 12px; padding: 13px 14px; }
.v2-ck__app-pending { font: 400 12.5px/1.4 var(--font-body); color: var(--slate); margin: 0; }

/* Enterprise upsell additions (2026-07-18) */
.v2-ck__chip-best {
    display: inline-flex;
    margin-right: 6px;
    padding: 2.5px 7px;
    border-radius: 999px;
    background: var(--go);
    color: #FFFFFF;
    font: 800 8.5px/1.3 var(--font-mono);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}
.v2 .v2-ck__uprow {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    text-align: right;
    padding: 0 14px 11px;
    border: 0;
    background: none;
    cursor: pointer;
    font: 600 11.5px/1.4 var(--font-body);
    color: var(--go-deep);
}
.v2 .v2-ck__uprow:hover { text-decoration: underline; text-underline-offset: 3px; }
.v2 .v2-ck__uprow svg { width: 12px; height: 12px; flex: 0 0 auto; }

/* Enterprise upsell panel (2026-07-18) */
.v2-ck__upsell {
    margin-top: 12px;
    padding: 14px;
    border: 1px solid rgba(11, 138, 71, 0.35);
    border-radius: var(--radius);
    background: linear-gradient(-180deg, #F1FAF5 0%, #FFFFFF 100%);
}
.v2-ck__upsell-head { display: flex; align-items: flex-start; gap: 10px; }
.v2-ck__upsell-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 10px;
    background: var(--go-tint);
    color: var(--go-deep);
}
.v2-ck__upsell-ic svg { width: 19px; height: 19px; }
.v2-ck__upsell-t b { display: block; font: 700 14.5px/1.35 var(--font-body); color: var(--ink); }
.v2-ck__upsell-t p { margin: 2px 0 0; font: 400 12px/1.5 var(--font-body); color: var(--slate); }
.v2-ck__upsell-why { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.v2-ck__upsell-why li {
    position: relative;
    padding-right: 20px;
    font: 400 12px/1.55 var(--font-body);
    color: var(--slate);
}
.v2-ck__upsell-why li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 3.5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.2 3.2L15 7' stroke='%23087038' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 8px 8px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2 .v2-ck__upsell-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 14px;
    border: 0;
    border-radius: 10px;
    background: var(--ink);
    color: #FFFFFF;
    font: 700 12.5px/1 var(--font-body);
    cursor: pointer;
    transition: background 0.15s ease, transform 0.15s ease;
}
.v2 .v2-ck__upsell-cta:hover { background: var(--go-deep); transform: translateY(-1px); }
.v2 .v2-ck__upsell-cta .v2-mono {
    font-size: 10.5px;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
}
@media (max-width: 640px) {
    .v2 .v2-ck__upsell-cta { width: 100%; justify-content: center; }
}

/* Segmented always-visible package options (2026-07-18) */
.v2-ck__app-line--seg { grid-template-columns: 84px 1fr auto; }
.v2-ck__chips--seg {
    gap: 0;
    border: 1.5px solid var(--line);
    border-radius: 11px;
    overflow: hidden;
    background: var(--paper);
}
.v2 .v2-ck__chips--seg .v2-ck__chip {
    display: block;
    border: 0;
    border-radius: 0;
    border-right: 1px solid var(--line);
    padding: 8px 8px 9px;
    background: var(--paper);
}
.v2 .v2-ck__chips--seg .v2-ck__chip:first-child { border-right: 0; }
.v2 .v2-ck__chips--seg .v2-ck__chip:hover { background: var(--mist); }
.v2-ck__chips--seg .v2-ck__chip-t { align-items: center; text-align: center; gap: 1px; }
.v2 .v2-ck__chips--seg .v2-ck__chip b { font-size: 12px; }
.v2 .v2-ck__chips--seg .v2-ck__chip i { font-size: 10.5px; color: var(--faint); }
.v2 .v2-ck__chips--seg .v2-ck__chip-price { font-size: 11px; margin-top: 1px; }
.v2 .v2-ck__chips--seg .v2-ck__chip.is-on {
    background: var(--go-tint);
    box-shadow: inset 0 0 0 1.5px var(--go);
    cursor: default;
}
.v2 .v2-ck__chips--seg .v2-ck__chip.is-on b,
.v2 .v2-ck__chips--seg .v2-ck__chip.is-on .v2-ck__chip-price { color: var(--go-deep); }
@media (max-width: 640px) {
    .v2-ck__app-line--seg { grid-template-columns: 1fr auto; grid-template-areas: "id remove" "seg seg"; }
    .v2-ck__app-line--seg .v2-ck__app-id { grid-area: id; }
    .v2-ck__app-line--seg .v2-ck__remove { grid-area: remove; }
    .v2-ck__chips--seg { grid-area: seg; }
    .v2 .v2-ck__chips--seg .v2-ck__chip { border-right: 0; border-top: 1px solid var(--line); }
    .v2 .v2-ck__chips--seg .v2-ck__chip:first-child { border-top: 0; }
    .v2-ck__chips--seg .v2-ck__chip-t { text-align: right; gap: 8px; }
}

/* ============================================================
   Package discount prominence (display-only, 2026-07-19)
   SuperGrok-style: tinted % off pill in the head row + bold
   full-offer sentence under the price. Display-only; no charge
   math. Tokens: --go-tint / --go-deep / --ink / --font-mono.
   ============================================================ */
.v2-plan__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 8px;
}
@media (max-width: 900px) {
    .v2-plan__price { justify-content: center; }
}
.v2-plan__price .v2-plan__meta,
.v2-plan__price .v2-plan__per {
    flex: 1 0 100%;
}

/* Head-row % off pill (sits after plan name, before any badge) */
.v2-plan__offpill {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--go-tint);
    color: var(--go-deep);
    font: 700 11px/1.3 var(--font-mono);
    letter-spacing: 0.02em;
    white-space: nowrap;
    vertical-align: middle;
}
.v2-plan--featured .v2-plan__offpill {
    background: rgba(255, 255, 255, 0.16);
    color: #FFFFFF;
}
.v2-plan__offpill--sm {
    font-size: 10px;
    padding: 2.5px 7px;
}

/* Bold offer sentence under the price block */
.v2-plan__offer {
    margin: 10px 0 0;
    font-weight: 700;
    font-size: 15.5px;
    line-height: 1.45;
    color: var(--ink);
}
.v2-plan--featured .v2-plan__offer {
    color: #FFFFFF;
}

/* Head: name + offpill cluster left; badge stays trailing.
   Overrides the base space-between so the offpill is not
   flung to the far edge on non-featured cards. */
.v2-plan__head {
    justify-content: flex-start;
    flex-wrap: wrap;
}
.v2-plan__head .v2-plan__badge {
    margin-right: auto;
}

/* Checkout empty-state selector: offpill sits inline with the name
   (grid column stays 4-wide; pill is nested inside .v2-ck__pickname) */
.v2-ck__pickname {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

/* Stacked cards: re-center the head group and the offer line */
@media (max-width: 900px) {
    .v2-plan__head .v2-plan__badge {
        margin-right: 0;
    }
    .v2-plan__offer {
        text-align: center;
    }
}

.v2 .v2-ck__chip-price s {
    font-size: 85%;
    font-weight: 400;
    color: var(--faint);
    margin-left: 3px;
    text-decoration-thickness: 1px;
}
.v2 .v2-ck__chip.is-on .v2-ck__chip-price s {
    color: rgba(8, 112, 56, 0.55);
}

/* Hide struck anchor inside segmented chips only when very tight
   (360px keeps it visible on standard 390px phones) */
@media (max-width: 360px) {
    .v2-ck__chips--seg .v2-ck__chip-price s {
        display: none;
    }
}

/* ============================================================
   Enterprise discount ribbon (2026-07-20, replaces the rejected
   border notch + giant top-right type): ONE card-level discount
   element, a full-width band on the top edge carrying the
   computed "{n}% OFF". The struck list price in the price block
   below carries the numbers at the decision point. Presence
   comes from the green glow + hover lift, not repeated text.
   Number always from $p['discount']; nothing hardcoded.
   ============================================================ */
.v2-plan--featured {
    position: relative;
    border-color: var(--go);
    border-width: 2px;
    box-shadow: 0 32px 64px -28px rgba(10, 16, 23, 0.5), 0 0 46px -18px rgba(62, 207, 129, 0.4);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.v2-plan--featured:hover {
    transform: translateY(-5px);
    box-shadow: 0 40px 76px -30px rgba(10, 16, 23, 0.55), 0 0 62px -14px rgba(62, 207, 129, 0.55);
}

.v2-plan__ribbon {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 14px;
    border-radius: 18px 18px 0 0;
    background: linear-gradient(-92deg, var(--go-deep) 0%, var(--go) 52%, var(--go-deep) 100%);
    box-shadow: 0 8px 20px -8px rgba(11, 138, 71, 0.6);
    color: #052E18;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
}

/* Slow light sweep across the band */
.v2-plan__ribbon::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: -45%;
    width: 34%;
    background: linear-gradient(-105deg, transparent 0%, rgba(255, 255, 255, 0.38) 50%, transparent 100%);
    transform: skewX(18deg);
    animation: v2RibbonSheen 4.6s ease-in-out infinite;
}

@keyframes v2RibbonSheen {
    0%, 55%   { right: -45%; }
    85%, 100% { right: 112%; }
}

@media (max-width: 640px) {
    .v2-plan__ribbon {
        height: 30px;
        font-size: 11px;
        letter-spacing: 0.18em;
    }
}

@media (prefers-reduced-motion: reduce) {
    .v2-plan__ribbon::after { animation: none; }
    .v2-plan--featured { transition: none; }
    .v2-plan--featured:hover { transform: none; }
}

/* Headroom under the top ribbon (replaces the bigtype-era padding) */
.v2-plan--featured {
    padding-top: clamp(48px, 5vw, 56px);
}

@media (max-width: 640px) {
    .v2-plan--featured {
        padding-top: 44px;
    }
}

/* ============================================================
   Enterprise "was -> now" anchor line (2026-07-20, replaces the
   prose offer sentence on the featured card): struck list price
   rides ABOVE the big price so the drop is read at the decision
   point (the percentage itself lives on the top ribbon). The
   green slash draws in once on load and re-cuts on card hover.
   Numbers come from $p['base_formatted'] and $p['discount'];
   nothing here is hardcoded.
   ============================================================ */
.v2-plan__anchorline {
    flex: 1 0 100%;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 4px;
}

.v2-plan__anchor {
    position: relative;
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: rgba(255, 255, 255, 0.52);
    text-decoration: none;
    white-space: nowrap;
}


/* Light-card anchor (2026-10-26): the struck list price on a white plan card
   (Enterprise + QA). The base rule above is tuned for the dark featured card,
   where white at 52% reads; on white it would be invisible. */
.v2-plan:not(.v2-plan--featured) .v2-plan__anchor {
    color: var(--faint);
}
.v2-plan__anchor::after {
    content: "";
    position: absolute;
    right: -3px;
    left: -3px;
    top: 50%;
    height: 2px;
    border-radius: 2px;
    background: var(--go);
    transform: translateY(-50%) rotate(7deg) scaleX(0);
    transform-origin: right center;
    animation: v2AnchorStrike 0.5s cubic-bezier(0.2, 0.7, 0.3, 1) 0.7s forwards;
}

.v2-plan--featured:hover .v2-plan__anchor::after {
    animation: v2AnchorRecut 0.55s cubic-bezier(0.2, 0.7, 0.3, 1);
}

@keyframes v2AnchorStrike {
    to { transform: translateY(-50%) rotate(7deg) scaleX(1); }
}

@keyframes v2AnchorRecut {
    0%   { transform: translateY(-50%) rotate(7deg) scaleX(1); transform-origin: left center; opacity: 1; }
    45%  { transform: translateY(-50%) rotate(7deg) scaleX(0); transform-origin: left center; opacity: 0.4; }
    55%  { transform: translateY(-50%) rotate(7deg) scaleX(0); transform-origin: right center;  opacity: 0.4; }
    100% { transform: translateY(-50%) rotate(7deg) scaleX(1); transform-origin: right center;  opacity: 1; }
}

@media (max-width: 900px) {
    .v2-plan__anchorline { justify-content: center; }
}

@media (max-width: 640px) {
    .v2-plan__anchor { font-size: 14.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2-plan__anchor::after {
        animation: none;
        transform: translateY(-50%) rotate(7deg) scaleX(1);
    }
    .v2-plan--featured:hover .v2-plan__anchor::after { animation: none; }
}

/* ---- v2-ck coupon (discount code) ---- */
.v2-ck__coupon {
    margin: 0 0 14px;
}
.v2-ck__coupon > summary {
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
    font-size: 12px;
    color: var(--faint);
    cursor: pointer;
    list-style: none;
}
.v2-ck__coupon > summary::-webkit-details-marker { display: none; }
.v2-ck__coupon > summary:hover {
    color: var(--ink);
    text-decoration: underline;
}
.v2-ck__coupon[open] > summary {
    margin-bottom: 8px;
}
.v2-ck__coupon form {
    display: flex;
    gap: 8px;
    align-items: center;
}
.v2-ck__input--coupon {
    flex: 1 1 auto;
    min-width: 0;
    height: 38px;
    padding: 0 12px;
}
.v2-ck__coupon .v2-btn--sm {
    flex: 0 0 auto;
}
.v2-ck__couponon {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin: 0 0 14px;
    padding: 10px 12px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 10px;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--go-deep);
}
.v2-ck__couponon span {
    flex: 1 1 160px;
    min-width: 0;
}
.v2-ck__couponon form {
    display: inline;
    margin: 0;
}
.v2-ck__couponon button {
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    color: var(--ink);
    text-decoration: underline;
    cursor: pointer;
}
.v2-ck__couponon button:hover {
    color: var(--go-deep);
}
@media (max-width: 360px) {
    .v2-ck__coupon form {
        flex-direction: column;
        align-items: stretch;
    }
    .v2-ck__coupon .v2-btn--sm {
        width: 100%;
    }
}

/* ============================================================
   BLOG: FREE ANDROID DEVELOPER ACCOUNTS (2026)
   /blog/free-android-developer-accounts

   Reuses the shared v2gpr-* article furniture (chips, rail,
   hero, toc, prose, qa, note/warn/tip, faq, bottom, docs,
   related, cta). Everything below is UNIQUE to this post.
   Prefix: v2fda-. Signature pieces:
     router   the one-app-three-doors opener
     cmp      three-account table + difference filter
     slots    the 20-device authorization meter
     req      the ID requirements ledger
     steps    the 17-step setup tracker
     flow     the four-step device authorization strip
     status   the launch-state panel
     clash    the two-Google-pages contradiction box
     paths    the two-roads diagram
     finder   the account finder (flagship interactive)
     check    the eight-claim check deck
     time     the 2026 deadline rail
     diy      the DIY vs managed table

   Accent discipline: green means ONE thing on this page, the
   road that ends in a Google Play listing. Rose is spent
   exactly twice (the Limited trap cell, the released-device
   note). The free tier is deliberately neutral.
   ============================================================ */

/* Base reset for this block's lists/figures (gotcha 12.19):
   declared once, first, at (0,1,0) so later margins still win. */
.v2fda-router__lanes, .v2fda-cmp__wrap, .v2fda-slots__grid, .v2fda-req,
.v2fda-steps__list, .v2fda-flow, .v2fda-status, .v2fda-paths, .v2fda-path ol,
.v2fda-finder__opts, .v2fda-check, .v2fda-time, .v2fda-inout ul, .v2fda-quotes,
.v2fda-persona__list, .v2fda-fix__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Signature opener: the router ---------- */

.v2fda-router {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 0 0 16px;
    margin: 8px 0 26px;
    overflow: hidden;
}
.v2fda-router__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2fda-router__bar .v2-mono { color: var(--slate); }
.v2fda-router__dots { display: flex; gap: 5px; flex-shrink: 0; }
.v2fda-router__dots i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #D3DAE1;
}
.v2fda-router__count {
    margin-right: auto;
    flex-shrink: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    color: var(--faint);
}
.v2fda-router__body {
    display: grid;
    grid-template-columns: 168px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 22px 20px 6px;
}
.v2fda-router__src {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    text-align: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 12px;
}
.v2fda-router__srcic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--slate);
    margin-bottom: 4px;
}
.v2fda-router__srcic svg { width: 21px; height: 21px; }
.v2fda-router__src b { font-size: 14.5px; color: var(--ink); font-weight: 650; }
.v2fda-router__src .v2-mono {
    font-size: 9.5px;
    color: var(--faint);
    word-break: break-all;
}
.v2fda-router__lanes { display: grid; gap: 10px; }
.v2fda-router__lane {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto;
    grid-template-areas: 'ic t p' 'ic s p';
    align-items: center;
    column-gap: 12px;
    padding: 12px 14px 12px 16px;
    margin-right: 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
}
.v2fda-router__wire {
    position: absolute;
    right: -26px;
    top: 50%;
    width: 26px;
    height: 2px;
    background: var(--line);
    transform-origin: right center;
}
.v2fda-router__wire::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #C9D2DA;
    transform: translateY(-50%);
}
.v2fda-router__ic {
    grid-area: ic;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--slate);
}
.v2fda-router__ic svg { width: 20px; height: 20px; }
.v2fda-router__t {
    grid-area: t;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.v2fda-router__s {
    grid-area: s;
    font-size: 12.5px;
    color: var(--faint);
    line-height: 1.4;
    margin-top: 2px;
}
.v2fda-router__p {
    grid-area: p;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.v2fda-router__chip {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px 8px;
    font-size: 9px;
    color: var(--slate);
}
.v2fda-router__lane.is-key {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
}
.v2fda-router__lane.is-key .v2fda-router__ic {
    background: var(--paper);
    border-color: rgba(11, 138, 71, 0.3);
    color: var(--go);
}
.v2fda-router__lane.is-key .v2fda-router__t,
.v2fda-router__lane.is-key .v2fda-router__p { color: var(--go-deep); }
.v2fda-router__lane.is-key .v2fda-router__s { color: #4C7A62; }
.v2fda-router__lane.is-key .v2fda-router__wire { background: rgba(11, 138, 71, 0.4); }
.v2fda-router__lane.is-key .v2fda-router__wire::before { background: var(--go); }
.v2fda-router__foot {
    display: flex;
    gap: 8px;
    margin: 14px 20px 0;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fda-router__foot svg { width: 15px; height: 15px; flex-shrink: 0; margin-top: 3px; color: var(--faint); }

.v2fda-router.v2-anim .v2fda-router__lane {
    opacity: 0;
    transform: translateX(10px);
    transition: opacity 0.5s ease, transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: var(--d, 0s);
}
.v2fda-router.v2-anim .v2fda-router__wire {
    transform: scaleX(0);
    transition: transform 0.45s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: var(--d, 0s);
}
.v2fda-router.is-in .v2fda-router__lane { opacity: 1; transform: none; }
.v2fda-router.is-in .v2fda-router__wire { transform: scaleX(1); }

@media (max-width: 640px) {
    .v2fda-router__body {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
        padding: 18px 14px 4px;
    }
    .v2fda-router__src { flex-direction: row; justify-content: flex-start; text-align: right; padding: 12px 14px; gap: 12px; }
    .v2fda-router__srcic { margin-bottom: 0; flex-shrink: 0; }
    .v2fda-router__src b { display: block; }
    .v2fda-router__lane {
        margin-right: 0;
        grid-template-columns: 34px minmax(0, 1fr);
        grid-template-areas: 'ic t' 'ic s' 'p p';
        row-gap: 2px;
        padding: 12px 14px;
    }
    .v2fda-router__wire { display: none; }
    .v2fda-router__ic { width: 34px; height: 34px; }
    .v2fda-router__p { margin-top: 8px; font-size: 17px; }
    .v2fda-router__foot { margin: 12px 14px 0; font-size: 12.5px; }
    .v2fda-router.v2-anim .v2fda-router__lane { transform: translateY(10px); }
}

/* ---------- Answer capsule (one per H2) ---------- */

.v2fda-cap {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 20px;
    margin: 20px 0 24px;
}
.v2fda-cap > .v2-mono { color: var(--faint); margin-bottom: 7px; }
.v2fda-cap > p:last-child {
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--ink);
    font-weight: 450;
}
/* Scoped to beat `.v2gpr-prose > p` (0,1,1), which otherwise wins on
   font-size/color for any direct-child paragraph of the article. */
.v2gpr-prose p.v2fda-fine {
    display: block;
    color: var(--faint);
    font-size: 10.5px;
    line-height: 1.7;
    margin: 14px 2px 0;
    text-transform: none;
    letter-spacing: 0.03em;
}

/* ---------- TOOL 1: three-account comparison ---------- */

.v2fda-cmp {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 24px 0;
    overflow: hidden;
}
.v2fda-cmp__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2fda-cmp__label { color: var(--slate); }
.v2fda-cmp__seg {
    display: flex;
    gap: 4px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px;
}
.v2 .v2fda-cmp__seg button {
    border-radius: 999px;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    line-height: 1;
    transition: background 0.18s ease, color 0.18s ease;
    min-height: 32px;
}
.v2 .v2fda-cmp__seg button:hover { color: var(--ink); }
.v2 .v2fda-cmp__seg button.is-on {
    background: var(--ink);
    color: #fff;
}
.v2fda-cmp__wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.v2fda-cmp__table {
    width: 100%;
    min-width: 740px;
    border-collapse: collapse;
}
.v2fda-cmp__table th,
.v2fda-cmp__table td {
    text-align: right;
    vertical-align: top;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2fda-cmp__table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--paper);
    color: var(--faint);
    font-size: 10px;
    padding-top: 14px;
    padding-bottom: 12px;
    border-bottom: 1px solid #D8DFE5;
}
.v2fda-cmp__table thead th.is-key { color: var(--go-deep); }
.v2fda-cmp__table tbody th {
    width: 22%;
    color: var(--ink);
    font-weight: 650;
    background: var(--paper);
}
.v2fda-cmp__table td b { color: var(--ink); font-weight: 700; }
.v2fda-cmp__table td.is-key { background: var(--go-tint); }
.v2fda-cmp__table td.is-key b { color: var(--go-deep); }
.v2fda-cmp__table td.is-trap {
    background: #FDF1F0;
    color: #8E2C22;
    font-weight: 550;
}
.v2fda-cmp__table tbody tr:last-child th,
.v2fda-cmp__table tbody tr:last-child td { border-bottom: 0; }
.v2fda-cmp__table tbody tr.is-hidden { display: none; }
.v2fda-cmp__src {
    display: block;
    padding: 12px 18px 14px;
    border-top: 1px solid var(--line);
    background: var(--mist);
    color: var(--faint);
    font-size: 9.5px;
    line-height: 1.8;
    text-transform: none;
    letter-spacing: 0.03em;
}

@media (max-width: 900px) {
    .v2fda-cmp__table tbody th {
        position: sticky;
        right: 0;
        z-index: 1;
        width: 150px;
        min-width: 150px;
        box-shadow: -1px 0 0 var(--line);
    }
    .v2fda-cmp__table thead th:first-child {
        position: sticky;
        right: 0;
        z-index: 3;
        box-shadow: -1px 0 0 var(--line);
    }
}
@media (max-width: 640px) {
    .v2fda-cmp__head { padding: 12px 14px; }
    .v2fda-cmp__seg { width: 100%; }
    .v2 .v2fda-cmp__seg button { flex: 1 1 0; padding: 8px 10px; font-size: 12px; min-height: 44px; }
    .v2fda-cmp__table th, .v2fda-cmp__table td { padding: 11px 12px; font-size: 12.5px; }
    .v2fda-cmp__src { padding: 11px 14px 12px; }

    /* Four columns cannot survive a 390px screen: at this width the 740px
       table was a sideways scroller that hid two of the three accounts, so
       each row collapses into its own card instead. The attribute becomes
       the card heading and the three accounts stack under it as labelled
       lines, which drops the horizontal scroll entirely. */
    .v2fda-cmp__wrap { overflow-x: visible; }
    .v2fda-cmp__table { display: block; min-width: 0; }
    .v2fda-cmp__table thead { display: none; }
    .v2fda-cmp__table tbody { display: block; }
    .v2fda-cmp__table tbody tr {
        display: block;
        padding-bottom: 6px;
        border-bottom: 8px solid var(--mist);
    }
    .v2fda-cmp__table tbody tr:last-child { border-bottom: 0; }

    /* Undo the <=900px sticky first column; nothing scrolls sideways now. */
    .v2fda-cmp__table tbody th {
        display: block;
        position: static;
        width: auto;
        min-width: 0;
        box-shadow: none;
        padding: 12px 14px 7px;
        font-size: 13.5px;
    }
    /* Block box with an absolutely positioned label, deliberately NOT grid:
       a grid td promotes every inline child to its own grid item, which
       splits "<b>$25</b> one time" and "<span class=mk></span> Yes" onto
       separate lines. Reserving the label width as padding keeps the value
       as normal inline flow. */
    .v2fda-cmp__table tbody td {
        display: block;
        position: relative;
        border-bottom: 0;
        padding: 7px 116px 7px 14px;
        min-height: 32px;
    }
    /* The dropped <thead> has to come back per cell or the values lose the
       account they belong to. */
    .v2fda-cmp__table tbody td::before {
        content: attr(data-label);
        position: absolute;
        right: 14px;
        top: 7px;
        width: 94px;
        font-family: var(--font-mono);
        font-size: 10px;
        line-height: 1.75;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--faint);
    }
    /* Tints stay full-bleed so they still read as one highlighted account
       rather than an inset box floating inside the card. */
    .v2fda-cmp__table tbody td.is-key::before { color: var(--go-deep); }
}

/* ---------- TOOL 2: the 20-device authorization meter ---------- */

.v2fda-slots {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 20px 20px;
    margin: 24px 0;
}
.v2fda-slots__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2fda-slots__label { color: var(--faint); margin-bottom: 6px; }
.v2fda-slots__count {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--slate);
    letter-spacing: -0.01em;
}
.v2fda-slots__count b {
    font-size: 26px;
    font-weight: 800;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.03em;
    margin-left: 3px;
}
.v2fda-slots__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    padding: 16px 0 4px;
}
.v2 .v2fda-slot {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    padding: 11px 4px 9px;
    min-height: 74px;
    justify-content: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.v2 .v2fda-slot:hover { border-color: #C9D2DA; }
.v2fda-slot__ic {
    position: relative;
    width: 22px;
    height: 22px;
    color: #A6B1BC;
}
.v2fda-slot__ic svg {
    position: absolute;
    inset: 0;
    width: 22px;
    height: 22px;
}
.v2fda-slot__tick { opacity: 0; transform: scale(0.7); transition: opacity 0.16s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1); }
.v2fda-slot__phone { transition: opacity 0.16s ease; }
.v2fda-slot .v2-mono { font-size: 8.5px; letter-spacing: 0.08em; color: var(--faint); }
.v2fda-slot__a { display: none; }
.v2 .v2fda-slot.is-on {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.3);
}
.v2fda-slot.is-on .v2fda-slot__ic { color: var(--go); }
.v2fda-slot.is-on .v2fda-slot__phone { opacity: 0; }
.v2fda-slot.is-on .v2fda-slot__tick { opacity: 1; transform: none; }
.v2fda-slot.is-on .v2fda-slot__e { display: none; }
.v2fda-slot.is-on .v2fda-slot__a { display: block; color: var(--go-deep); }
.v2fda-slots__msg {
    margin-top: 12px;
    padding: 11px 14px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    min-height: 44px;
}
.v2fda-slots__msg.is-warn {
    background: #FDF1F0;
    border-color: rgba(180, 35, 24, 0.16);
    color: #8E2C22;
}
.v2fda-slots__cap {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.65;
    color: var(--faint);
}

@media (max-width: 640px) {
    .v2fda-slots { padding: 16px 14px 18px; }
    .v2fda-slots__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
    .v2 .v2fda-slot { min-height: 66px; padding: 9px 2px 8px; }
    .v2fda-slots__count b { font-size: 23px; }
    .v2fda-slots__msg { font-size: 13px; }
}
@media (max-width: 380px) {
    .v2fda-slots__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
    .v2fda-slot .v2-mono { font-size: 8px; }
}

/* ---------- Included / not included ---------- */

.v2fda-inout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}
.v2fda-inout__col {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2fda-inout__col.is-neg { background: var(--mist); }
.v2fda-inout__h {
    color: var(--go-deep);
    padding-bottom: 11px;
    margin-bottom: 12px;
    border-bottom: 1px solid var(--line);
}
.v2fda-inout__col.is-neg .v2fda-inout__h { color: var(--faint); }
.v2fda-inout ul { display: grid; gap: 9px; }
.v2fda-inout li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2fda-inout li .v2gpr-mk { margin-top: 2px; }

@media (max-width: 768px) {
    .v2fda-inout { grid-template-columns: minmax(0, 1fr); }
    .v2fda-inout__col { padding: 16px 17px; }
    .v2fda-inout li { font-size: 13.5px; }
}

/* ---------- Quote wall ---------- */

.v2fda-quotes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0 0;
}
/* Scoped: `.v2gpr-prose figure` (0,1,1) zeroes padding on every article
   figure, so an unscoped `.v2fda-quote` (0,1,0) loses and the quote
   text ends up sitting on the card border. */
.v2gpr-prose .v2fda-quote {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 12px;
    padding: 14px 16px;
}
.v2fda-quote blockquote {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.5;
    font-weight: 600;
    color: var(--ink);
}
.v2gpr-prose .v2fda-quote figcaption {
    margin: 8px 0 0;
    font-size: 9.5px;
    color: var(--faint);
}

@media (max-width: 768px) {
    .v2fda-quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .v2fda-quotes { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Requirements ledger ---------- */

/* Scoped: `.v2gpr-prose ul/ol` (0,1,1) zeroes list margins. */
.v2gpr-prose .v2fda-req {
    display: grid;
    gap: 8px;
    margin: 22px 0;
}
.v2fda-req__row {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 15px 18px;
}
.v2fda-req__n { color: var(--faint); padding-top: 3px; }
.v2fda-req__body b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2fda-req__body span {
    display: block;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2fda-req__state {
    flex-shrink: 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
    font-size: 9px;
    color: var(--slate);
    white-space: nowrap;
}
.v2fda-req__state.is-soft { color: var(--faint); }
.v2fda-req__row.is-go {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
}
.v2fda-req__row.is-go .v2fda-req__n { color: var(--go-deep); }
.v2fda-req__row.is-go .v2fda-req__body b { color: var(--go-deep); }
.v2fda-req__row.is-go .v2fda-req__body span { color: #45705B; }
.v2fda-req__row.is-go .v2fda-req__state {
    background: var(--paper);
    border-color: rgba(11, 138, 71, 0.3);
    color: var(--go-deep);
}

@media (max-width: 640px) {
    .v2fda-req__row {
        grid-template-columns: 26px minmax(0, 1fr);
        gap: 10px;
        padding: 14px 15px;
    }
    .v2fda-req__state { grid-column: 2; justify-self: start; margin-top: 9px; }
}

/* ---------- TOOL 3: the 17-step setup tracker ---------- */

.v2fda-steps {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 24px 0;
    overflow: hidden;
}
.v2fda-steps__head {
    padding: 16px 20px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2fda-steps__headtop {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 11px;
}
.v2fda-steps__label { color: var(--slate); }
.v2fda-steps__count {
    font-family: var(--font-display);
    font-weight: 700;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
    font-size: 22px;
    white-space: nowrap;
}
.v2fda-steps__count span { font-size: 13px; color: var(--faint); font-weight: 600; }
.v2fda-steps__bar {
    height: 6px;
    border-radius: 999px;
    background: #E2E7EB;
    overflow: hidden;
}
.v2fda-steps__bar i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--go);
    transition: width 0.4s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2fda-steps__msg {
    margin-top: 11px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    min-height: 22px;
}
.v2fda-steps.is-done .v2fda-steps__msg { color: var(--go-deep); font-weight: 550; }
.v2fda-steps__body { padding: 6px 20px 18px; }
.v2fda-steps__group {
    color: var(--faint);
    margin: 18px 0 8px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.v2fda-steps__body > .v2fda-steps__group:first-child { border-top: 0; padding-top: 0; margin-top: 14px; }
.v2fda-steps__list { display: grid; gap: 2px; }
.v2fda-step {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding: 9px 10px;
    margin: 0 -10px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.16s ease;
}
.v2fda-step:hover { background: var(--mist); }
.v2fda-step input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}
.v2fda-step__box {
    width: 20px;
    height: 20px;
    margin-top: 1px;
    border-radius: 6px;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px;
    transition: background-color 0.16s ease, border-color 0.16s ease;
}
.v2fda-step input:checked + .v2fda-step__box {
    background-color: var(--go);
    border-color: var(--go);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2fda-step input:focus-visible + .v2fda-step__box {
    outline: 2px solid var(--go);
    outline-offset: 3px;
}
.v2fda-step__t {
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fda-step input:checked ~ .v2fda-step__t { color: var(--faint); text-decoration: line-through; text-decoration-color: #C9D2DA; }
.v2fda-step__c {
    flex-shrink: 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 8.5px;
    color: var(--slate);
    white-space: nowrap;
    margin-top: 1px;
}
.v2fda-step__c.is-soft { color: var(--faint); background: var(--paper); }

@media (max-width: 640px) {
    .v2fda-steps__head { padding: 15px 15px 16px; }
    .v2fda-steps__body { padding: 4px 15px 16px; }
    .v2fda-step {
        grid-template-columns: 20px minmax(0, 1fr);
        gap: 11px;
        padding: 10px 8px;
        margin: 0 -8px;
    }
    .v2fda-step__c { grid-column: 2; justify-self: start; margin-top: 7px; }
    .v2fda-step__t { font-size: 13.5px; }
    .v2fda-steps__count { font-size: 20px; }
}

/* ---------- Device authorization flow strip ---------- */

.v2gpr-prose .v2fda-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 22px 0;
}
.v2fda-flow__step {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 16px 15px;
}
.v2fda-flow__step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -8px;
    width: 6px;
    height: 6px;
    border-top: 1.6px solid #C9D2DA;
    border-left: 1.6px solid #C9D2DA;
    transform: translateY(-50%) rotate(-45deg);
}
.v2fda-flow__n {
    display: block;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2fda-flow__step b {
    display: block;
    font-size: 14px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.35;
    margin-bottom: 5px;
}
.v2fda-flow__step > span:not(.v2-mono) {
    display: block;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fda-flow__chip {
    display: inline-block;
    margin-top: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 8.5px;
    color: var(--ink);
}

@media (max-width: 860px) {
    .v2gpr-prose .v2fda-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2fda-flow__step:nth-child(2)::after { display: none; }
}
@media (max-width: 520px) {
    .v2gpr-prose .v2fda-flow { grid-template-columns: minmax(0, 1fr); }
    .v2fda-flow__step::after { display: none; }
    .v2fda-flow__step { padding: 15px 15px 14px; }
}

/* ---------- Launch status panel ---------- */

.v2fda-status {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 22px 0;
}
.v2fda-status__tile {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 18px;
}
.v2fda-status__tile b {
    display: block;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1.15;
    margin-bottom: 7px;
}
.v2fda-status__tile > span {
    display: block;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
}
.v2fda-status__tile .v2-mono {
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px solid var(--line);
    font-size: 9px;
    color: var(--faint);
    line-height: 1.6;
}

@media (max-width: 768px) {
    .v2fda-status { grid-template-columns: minmax(0, 1fr); }
    .v2fda-status__tile { padding: 15px 16px; }
    .v2fda-status__tile b { font-size: 18px; }
}

/* ---------- Verbatim Google quote ---------- */

.v2fda-gq {
    margin: 24px 0;
    padding: 22px 24px;
    background: var(--ink);
    border-radius: 16px;
}
.v2fda-gq blockquote {
    margin: 0;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 500;
    line-height: 1.55;
    letter-spacing: -0.012em;
    color: #fff;
    text-wrap: pretty;
}
.v2fda-gq blockquote::before {
    content: '\201C';
    color: #3ECF81;
    margin-left: 2px;
}
.v2fda-gq blockquote::after {
    content: '\201D';
    color: #3ECF81;
}
.v2gpr-prose .v2fda-gq figcaption {
    margin: 13px 0 0;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 9.5px;
    color: #93A0AC;
}

@media (max-width: 640px) {
    .v2fda-gq { padding: 19px 18px; }
    .v2fda-gq blockquote { font-size: 16px; }
}

/* ---------- Testing-track table ---------- */

.v2fda-tracks,
.v2fda-persona {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    margin: 22px 0;
    overflow: hidden;
}
.v2fda-tracks__wrap,
.v2fda-persona__wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.v2fda-tracks__table,
.v2fda-persona__table {
    width: 100%;
    min-width: 660px;
    border-collapse: collapse;
}
.v2fda-tracks__table th,
.v2fda-tracks__table td,
.v2fda-persona__table th,
.v2fda-persona__table td {
    text-align: right;
    vertical-align: top;
    padding: 12px 15px;
    border-bottom: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2fda-tracks__table thead th,
.v2fda-persona__table thead th {
    background: var(--mist);
    color: var(--faint);
    font-size: 10px;
}
.v2fda-tracks__table tbody th,
.v2fda-persona__table tbody th {
    color: var(--ink);
    font-weight: 650;
    width: 26%;
}
.v2fda-persona__table tbody td b { color: var(--ink); font-weight: 700; }
.v2fda-tracks__table tbody tr:last-child th,
.v2fda-tracks__table tbody tr:last-child td,
.v2fda-persona__table tbody tr:last-child th,
.v2fda-persona__table tbody tr:last-child td { border-bottom: 0; }
.v2fda-tracks__table tbody tr.is-key th,
.v2fda-tracks__table tbody tr.is-key td { background: var(--go-tint); }
.v2fda-tracks__table tbody tr.is-key th { color: var(--go-deep); }
.v2fda-tracks__yes,
.v2fda-tracks__no {
    display: inline-block;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 9px;
}
.v2fda-tracks__yes { background: var(--go); color: #fff; }
.v2fda-tracks__no { background: var(--mist); border: 1px solid var(--line); color: var(--faint); }

@media (max-width: 900px) {
    .v2fda-tracks__table tbody th,
    .v2fda-persona__table tbody th {
        position: sticky;
        right: 0;
        z-index: 1;
        width: 170px;
        min-width: 170px;
        background: var(--paper);
        box-shadow: -1px 0 0 var(--line);
    }
    .v2fda-tracks__table tbody tr.is-key th { background: var(--go-tint); }
}
@media (max-width: 640px) {
    .v2fda-tracks__table th, .v2fda-tracks__table td,
    .v2fda-persona__table th, .v2fda-persona__table td { padding: 11px 12px; font-size: 12.5px; }
}

/* ---------- Contradiction box ---------- */

.v2fda-clash {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px;
    margin: 24px 0;
}
.v2fda-clash__pair {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
}
.v2fda-clash__panel {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    align-self: stretch;
}
.v2fda-clash__src {
    color: var(--faint);
    padding-bottom: 10px;
    margin-bottom: 11px;
    border-bottom: 1px solid var(--line);
    line-height: 1.6;
}
.v2fda-clash__panel > p:not(.v2-mono) {
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fda-clash__verdict {
    margin-top: 12px;
    color: var(--ink);
    font-size: 9.5px;
}
.v2fda-clash__vs {
    justify-self: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    color: var(--faint);
}
.v2fda-clash__foot {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--ink);
    font-weight: 550;
}

@media (max-width: 768px) {
    .v2fda-clash { padding: 15px; }
    .v2fda-clash__pair { grid-template-columns: minmax(0, 1fr); }
    .v2fda-clash__vs { width: 30px; height: 30px; }
}

/* ---------- Two roads diagram ---------- */

.v2fda-paths {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 22px 0;
    align-items: start;
}
.v2fda-path {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2fda-path__label {
    color: var(--faint);
    padding-bottom: 11px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--line);
}
.v2fda-path ol { display: grid; gap: 0; }
.v2fda-path li {
    position: relative;
    padding: 11px 26px 11px 0;
}
.v2fda-path li::before {
    content: '';
    position: absolute;
    right: 4px;
    top: 17px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid #C9D2DA;
}
.v2fda-path li:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 8px;
    top: 26px;
    bottom: -4px;
    width: 1px;
    background: var(--line);
}
.v2fda-path li b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.3;
}
.v2fda-path li span {
    display: block;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--faint);
    margin-top: 3px;
}
.v2fda-path__note {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fda-path.is-key {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.28);
}
.v2fda-path.is-key .v2fda-path__label,
.v2fda-path.is-key .v2fda-path__note { border-color: rgba(11, 138, 71, 0.2); }
.v2fda-path.is-key .v2fda-path__label { color: var(--go-deep); }
.v2fda-path.is-key li::before { background: var(--go-tint); border-color: var(--go); }
.v2fda-path.is-key li:not(:last-child)::after { background: rgba(11, 138, 71, 0.3); }
.v2fda-path.is-key li b { color: var(--go-deep); }
.v2fda-path.is-key li span { color: #4C7A62; }
.v2fda-path.is-key .v2fda-path__note { color: #3C6B53; }

@media (max-width: 768px) {
    .v2fda-paths { grid-template-columns: minmax(0, 1fr); }
    .v2fda-path { padding: 16px 17px; }
}

/* ---------- TOOL 4: the account finder ---------- */

.v2fda-finder {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 24px 0;
    overflow: hidden;
}
.v2fda-finder.is-shake { animation: v2sShake 0.42s ease; }
.v2fda-finder__head {
    padding: 16px 20px;
    background: var(--ink);
}
.v2fda-finder__label { color: #3ECF81; margin-bottom: 5px; }
.v2fda-finder__sub { font-size: 13px; line-height: 1.5; color: #A9B4BF; }
.v2fda-finder__body { padding: 6px 20px 20px; }
.v2fda-finder__q {
    padding: 18px 0;
    border-bottom: 1px solid var(--line);
}
.v2fda-finder__ask {
    display: flex;
    gap: 10px;
    align-items: baseline;
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.45;
    margin-bottom: 12px;
}
.v2fda-finder__ask .v2-mono { color: var(--faint); flex-shrink: 0; }
.v2fda-finder__q.is-missing .v2fda-finder__ask .v2-mono { color: #B42318; }
.v2fda-finder__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2fda-finder__opts button {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 10px 16px;
    min-height: 42px;
    font-size: 13.5px;
    font-weight: 550;
    color: var(--slate);
    line-height: 1.3;
    transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.v2 .v2fda-finder__opts button:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2fda-finder__opts button.is-on {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.35);
    color: var(--go-deep);
    font-weight: 650;
}
.v2fda-finder__q.is-missing .v2fda-finder__opts { outline: 1px dashed rgba(180, 35, 24, 0.4); outline-offset: 6px; border-radius: 4px; }
.v2fda-finder__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    padding-top: 18px;
}
.v2fda-finder__out {
    display: grid;
    margin-top: 18px;
    padding: 20px 22px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.28);
    border-radius: 16px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.4s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2fda-finder__out[hidden] { display: none; }
.v2fda-finder__out.is-in { opacity: 1; transform: none; }
.v2fda-finder__outlabel { color: var(--go-deep); margin-bottom: 8px; }
.v2fda-finder__name {
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 1.1rem + 1vw, 1.7rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1.15;
}
.v2fda-finder__cost {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--go-deep);
    margin-top: 4px;
    font-variant-numeric: tabular-nums;
}
.v2fda-finder__why {
    font-size: 14.5px;
    line-height: 1.7;
    color: #35594A;
    margin-top: 12px;
}
.v2fda-finder__warn {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid rgba(11, 138, 71, 0.2);
    border-radius: 11px;
    padding: 12px 14px;
    margin-top: 12px;
}
.v2 .v2fda-finder__link { margin-top: 14px; justify-self: start; }

@media (max-width: 640px) {
    .v2fda-finder__head { padding: 15px 16px; }
    .v2fda-finder__body { padding: 4px 16px 18px; }
    .v2fda-finder__ask { font-size: 14.5px; }
    .v2 .v2fda-finder__opts button { flex: 1 1 100%; text-align: right; padding: 11px 16px; min-height: 46px; }
    .v2fda-finder__actions .v2-btn { flex: 1 1 100%; }
    .v2fda-finder__out { padding: 18px 17px; }
    .v2 .v2fda-finder__link { justify-self: stretch; }
}

/* ---------- TOOL 5: the eight-claim check deck ---------- */

.v2fda-check {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 24px 0;
    overflow: hidden;
}
.v2fda-check__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2fda-check__label { color: var(--slate); }
.v2fda-check__ctrl { display: flex; gap: 8px; }
.v2fda-check__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 16px 18px 18px;
}
.v2 .v2fda-claim {
    display: block;
    text-align: right;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    transition: background 0.16s ease, border-color 0.16s ease;
}
.v2 .v2fda-claim:hover { border-color: #C9D2DA; }
.v2fda-claim__q {
    display: block;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ink);
}
.v2fda-claim__cue {
    display: none;
    margin-top: 10px;
    color: var(--faint);
    font-size: 9px;
}
.v2fda-check.is-live .v2fda-claim__cue { display: block; }
.v2fda-check.is-live .v2fda-claim .v2fda-claim__a { display: none; }
.v2fda-check.is-live .v2fda-claim.is-open .v2fda-claim__a { display: block; }
.v2fda-check.is-live .v2fda-claim.is-open .v2fda-claim__cue { display: none; }
.v2fda-claim__a {
    display: block;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.v2fda-claim__a > span:not(.v2-mono) {
    display: block;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    margin-top: 9px;
}
.v2fda-claim__v {
    display: inline-block;
    background: var(--ink);
    color: #fff;
    border-radius: 999px;
    padding: 4px 11px;
    font-size: 9px;
}
.v2fda-claim__v.is-mixed {
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2 .v2fda-claim.is-open {
    background: var(--paper);
    border-color: #C9D2DA;
}

@media (max-width: 768px) {
    .v2fda-check__grid { grid-template-columns: minmax(0, 1fr); padding: 14px 14px 16px; }
    .v2fda-check__head { padding: 13px 14px; }
    .v2fda-check__ctrl { width: 100%; }
    .v2fda-check__ctrl .v2-btn { flex: 1 1 0; }
    .v2 .v2fda-claim { padding: 15px 16px; }
}

/* ---------- Symptom to fix table ---------- */

.v2fda-fix {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    margin: 22px 0;
    overflow: hidden;
}
.v2fda-fix__wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.v2fda-fix__table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}
.v2fda-fix__table th,
.v2fda-fix__table td {
    text-align: right;
    vertical-align: top;
    padding: 12px 15px;
    border-bottom: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2fda-fix__table thead th {
    background: var(--mist);
    color: var(--faint);
    font-size: 10px;
}
.v2fda-fix__table tbody th {
    width: 30%;
    color: var(--ink);
    font-weight: 550;
    font-style: normal;
}
.v2fda-fix__table tbody tr:last-child th,
.v2fda-fix__table tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 900px) {
    .v2fda-fix__table tbody th {
        position: sticky;
        right: 0;
        z-index: 1;
        width: 190px;
        min-width: 190px;
        background: var(--paper);
        box-shadow: -1px 0 0 var(--line);
    }
}
@media (max-width: 640px) {
    .v2fda-fix__table th, .v2fda-fix__table td { padding: 11px 12px; font-size: 12.5px; }
}

/* ---------- 2026 deadline rail ---------- */

.v2gpr-prose .v2fda-time {
    display: grid;
    gap: 0;
    margin: 22px 0;
    padding-right: 4px;
}
.v2fda-time__item {
    position: relative;
    display: grid;
    grid-template-columns: 108px minmax(0, 1fr);
    gap: 18px;
    padding: 14px 22px 14px 0;
}
.v2fda-time__item::before {
    content: '';
    position: absolute;
    right: 0;
    top: 21px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid #C9D2DA;
    z-index: 1;
}
.v2fda-time__item:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 4.5px;
    top: 31px;
    bottom: -8px;
    width: 1px;
    background: var(--line);
}
.v2fda-time__d {
    color: var(--faint);
    padding-top: 4px;
    white-space: nowrap;
}
.v2fda-time__body b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 4px;
}
.v2fda-time__body span {
    display: block;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fda-time__item.is-past .v2fda-time__body b { color: var(--slate); font-weight: 600; }
.v2fda-time__item.is-past .v2fda-time__body span { color: var(--faint); }
.v2fda-time__item.is-live::before {
    background: var(--go);
    border-color: var(--go);
    box-shadow: 0 0 0 4px rgba(11, 138, 71, 0.12);
}
.v2fda-time__item.is-live .v2fda-time__d { color: var(--go-deep); }

@media (max-width: 640px) {
    .v2fda-time__item {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
        padding: 12px 20px 12px 0;
    }
    .v2fda-time__d { padding-top: 0; }
    .v2fda-time__body b { font-size: 14.5px; }
    .v2fda-time__body span { font-size: 13px; }
}

/* ---------- DIY vs managed ---------- */

.v2fda-diy {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    margin: 22px 0;
    overflow: hidden;
}
.v2fda-diy__wrap {
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}
.v2fda-diy__table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
}
.v2fda-diy__table th,
.v2fda-diy__table td {
    text-align: right;
    vertical-align: top;
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2fda-diy__table thead th {
    background: var(--mist);
    color: var(--faint);
    font-size: 10px;
}
.v2fda-diy__table thead th.is-key { background: var(--go-tint); color: var(--go-deep); }
.v2fda-diy__table tbody th {
    width: 24%;
    color: var(--ink);
    font-weight: 650;
}
.v2fda-diy__table td.is-key {
    background: var(--go-tint);
    color: var(--go-deep);
    font-weight: 550;
}
.v2fda-diy__table tbody tr:last-child th,
.v2fda-diy__table tbody tr:last-child td { border-bottom: 0; }
.v2fda-diy__proof {
    display: block;
    padding: 12px 16px 13px;
    border-top: 1px solid var(--line);
    background: var(--mist);
    color: var(--slate);
    font-size: 9.5px;
    line-height: 1.7;
}

@media (max-width: 900px) {
    .v2fda-diy__table tbody th {
        position: sticky;
        right: 0;
        z-index: 1;
        width: 150px;
        min-width: 150px;
        background: var(--paper);
        box-shadow: -1px 0 0 var(--line);
    }
}
@media (max-width: 640px) {
    .v2fda-diy__table th, .v2fda-diy__table td { padding: 12px 13px; font-size: 12.5px; }
}

/* ---------- Phones: the four wide tables collapse to stacked cards ----------
   tracks (660px), persona (660px), fix (720px) and diy (640px) each sat in an
   overflow-x wrapper, so on a 390px screen 292-372px of every row lived behind
   a sideways swipe that is easy to miss entirely. Same treatment as the
   comparison table further up: one card per row, row heading on top, each
   value on its own labelled line, no horizontal scroll left anywhere. */
@media (max-width: 640px) {
    .v2fda-tracks__wrap,
    .v2fda-persona__wrap,
    .v2fda-fix__wrap,
    .v2fda-diy__wrap { overflow-x: visible; }

    .v2fda-tracks__table,
    .v2fda-persona__table,
    .v2fda-fix__table,
    .v2fda-diy__table { display: block; min-width: 0; }

    .v2fda-tracks__table thead,
    .v2fda-persona__table thead,
    .v2fda-fix__table thead,
    .v2fda-diy__table thead { display: none; }

    .v2fda-tracks__table tbody,
    .v2fda-persona__table tbody,
    .v2fda-fix__table tbody,
    .v2fda-diy__table tbody { display: block; }

    .v2fda-tracks__table tbody tr,
    .v2fda-persona__table tbody tr,
    .v2fda-fix__table tbody tr,
    .v2fda-diy__table tbody tr {
        display: block;
        padding-bottom: 6px;
        border-bottom: 8px solid var(--mist);
    }
    .v2fda-tracks__table tbody tr:last-child,
    .v2fda-persona__table tbody tr:last-child,
    .v2fda-fix__table tbody tr:last-child,
    .v2fda-diy__table tbody tr:last-child { border-bottom: 0; }

    /* Undo the <=900px sticky first column; nothing scrolls sideways now. */
    .v2fda-tracks__table tbody th,
    .v2fda-persona__table tbody th,
    .v2fda-fix__table tbody th,
    .v2fda-diy__table tbody th {
        display: block;
        position: static;
        width: auto;
        min-width: 0;
        box-shadow: none;
        border-bottom: 0;
        padding: 12px 14px 7px;
        font-size: 13.5px;
    }
    /* Block box with an absolutely positioned label, deliberately NOT grid:
       a grid td promotes every inline child to its own grid item, which both
       splits mixed text and stretches the Yes/No pills across the full
       column. Reserving the label width as padding avoids both. */
    .v2fda-tracks__table tbody td,
    .v2fda-persona__table tbody td,
    .v2fda-fix__table tbody td,
    .v2fda-diy__table tbody td {
        display: block;
        position: relative;
        border-bottom: 0;
        padding: 7px 116px 7px 14px;
        min-height: 32px;
    }
    /* The dropped <thead> has to come back per cell or the values lose the
       column they belong to. */
    .v2fda-tracks__table tbody td::before,
    .v2fda-persona__table tbody td::before,
    .v2fda-fix__table tbody td::before,
    .v2fda-diy__table tbody td::before {
        content: attr(data-label);
        position: absolute;
        right: 14px;
        top: 7px;
        width: 94px;
        font-family: var(--font-mono);
        font-size: 10px;
        line-height: 1.75;
        letter-spacing: 0.05em;
        text-transform: uppercase;
        color: var(--faint);
    }

    /* tracks tints its whole qualifying row; diy tints only its own column. */
    .v2fda-tracks__table tbody tr.is-key th,
    .v2fda-tracks__table tbody tr.is-key td { background: var(--go-tint); }
    .v2fda-diy__table tbody td.is-key::before { color: var(--go-deep); }
}

/* ---------- In-article CTA row ---------- */

.v2fda-ctarow {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 24px 0 8px;
}

@media (max-width: 520px) {
    .v2fda-ctarow { flex-direction: column; }
    .v2fda-ctarow .v2-btn { width: 100%; }
}

/* ============================================================
   BLOG API36 V2  -  "Google Play Target API 36 Deadline 2026"
   (/blog/google-play-target-api-level-2026)

   First blog authored natively in V2. Rides the shared v2gpr-
   article layer (rail, chips, H2 counter, callouts, tool shell,
   FAQ, bottom line) and adds a unique v2api- "deadline console"
   motif: a two-stage enforcement clock, evidence-graded chips,
   a form-factor requirement matrix, an affected-checker, an
   install ladder, a build snippet generator, a behaviour risk
   scanner, a warning triage stack and a checklist tracker.

   Dark moments stay at two (quick answer + final CTA).
   The page's ONE rose moment is the checker's "blocked" verdict.
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2api-prose ul, .v2api-prose ol,
.v2api-mx__list, .v2api-chk__opts, .v2api-vd__list, .v2api-ladder__row,
.v2api-gen__tabs, .v2api-scan__list, .v2api-scan__out, .v2api-tri__stack,
.v2api-track__list, .v2api-vs__col, .v2api-split, .v2api-steps {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Evidence grading chips (the post's signature) ---------- */

.v2api-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2api-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2api-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2api-ev.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2api-ev.is-field {
    color: var(--faint);
    background: var(--paper);
    border: 1px dashed #C9D2DA;
}
.v2api-ev.is-none {
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--ink);
}

/* ---------- Two-stage enforcement clock (hero signature) ---------- */

.v2api-clock {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 22px 24px 26px;
    margin-top: clamp(24px, 3.5vw, 34px);
    max-width: 830px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 20px 44px -26px rgba(10, 16, 23, 0.18);
}
.v2api-clock__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 18px;
}
.v2api-clock__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    color: var(--faint);
}
.v2api-clock__label svg { width: 14px; height: 14px; color: var(--go); }
.v2api-clock__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    border-radius: 999px;
    padding: 5px 11px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2api-clock__state i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2api-clock__state.is-live { color: var(--ink); background: var(--mist); border-color: var(--line); }
.v2api-clock__state.is-live i { background: var(--ink); }

.v2api-clock__nums {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}
.v2api-clock__num {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px;
}
.v2api-clock__num b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.7rem, 1.1rem + 2vw, 2.35rem);
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2api-clock__num span {
    display: block;
    margin-top: 7px;
    font-size: 9.5px;
    color: var(--faint);
}
.v2api-clock__num.is-past b { color: var(--faint); }

.v2api-clock__rail {
    position: relative;
    height: 4px;
    border-radius: 999px;
    background: #E9EDF1;
    margin: 40px 0 0;
}
.v2api-clock__fill {
    display: block;
    height: 4px;
    border-radius: 999px;
    background: var(--go);
}
.v2api-clock__mil {
    position: absolute;
    top: -5px;
    transform: translateX(50%);
    text-align: center;
}
.v2api-clock__mil i {
    display: block;
    width: 14px;
    height: 14px;
    margin: 0 auto;
    border-radius: 50%;
    background: var(--paper);
    border: 3px solid #D5DCE2;
}
.v2api-clock__mil.is-done i { border-color: var(--go); background: var(--go); }
.v2api-clock__mil.is-key i { border-color: var(--ink); }
.v2api-clock__mil em {
    display: block;
    margin-top: 9px;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2api-clock__mil.is-key em { color: var(--ink); }
.v2api-clock__mil.is-first { transform: translateX(0); text-align: right; }
.v2api-clock__mil.is-first i { margin: 0; }
.v2api-clock__mil.is-last { transform: translateX(100%); text-align: left; }
.v2api-clock__mil.is-last i { margin: 0 auto 0 0; }
.v2api-clock__now {
    position: absolute;
    top: -24px;
    transform: translateX(50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}
.v2api-clock__now em {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 3px 8px;
    white-space: nowrap;
}
.v2api-clock__now s {
    display: block;
    width: 1px;
    height: 12px;
    background: rgba(11, 138, 71, 0.45);
}
.v2api-clock__foot {
    margin-top: 46px;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2api-clock__foot b { color: var(--ink); font-weight: 650; }

/* ---------- Verbatim policy quote ---------- */

.v2api-quote {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 22px 26px;
    margin: 26px 0;
}
.v2api-quote__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    color: var(--go-deep);
    margin-bottom: 13px;
}
.v2api-quote__tag svg { width: 15px; height: 15px; color: var(--go); }
.v2api-quote p {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 19px;
    line-height: 1.55;
    letter-spacing: -0.012em;
    color: var(--ink);
    text-wrap: pretty;
}
.v2api-quote__src {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    color: var(--faint);
}
.v2api-quote__src a { font-weight: 600; }

/* ---------- Answer capsule under each H2 (AEO) ---------- */

.v2gpr-prose > p.v2api-ans {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 12px;
    padding: 15px 19px;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--slate);
    margin: 0 0 22px;
}
.v2gpr-prose > p.v2api-fine {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 26px;
}

/* ---------- Form-factor requirement matrix ---------- */

.v2api-mx {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -20px rgba(10, 16, 23, 0.14);
}
.v2api-mx__head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 18px 22px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 18px;
}
.v2api-mx__head h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17.5px;
    letter-spacing: -0.014em;
    color: var(--ink);
}
.v2api-seg {
    display: inline-flex;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}
.v2 .v2api-seg button {
    appearance: none;
    border: 0;
    background: none;
    cursor: pointer;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--slate);
    padding: 8px 14px;
    border-radius: 999px;
    transition: background 0.2s ease, color 0.2s ease;
}
.v2 .v2api-seg button:hover { color: var(--ink); }
.v2 .v2api-seg button.is-on {
    background: var(--ink);
    color: #fff;
}
.v2api-mx__cap {
    padding: 14px 22px 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2api-mx__list { padding: 8px 12px 14px; }
.v2api-mx__row {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) 88px minmax(0, 1.6fr);
    align-items: center;
    gap: 14px;
    padding: 13px 10px;
    border-bottom: 1px solid #F0F3F5;
}
.v2api-mx__row:last-child { border-bottom: none; }
.v2api-mx__row.is-key { background: var(--go-tint); border-radius: 12px; border-bottom-color: transparent; }
.v2api-mx__ff {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
}
.v2api-mx__ff svg { width: 19px; height: 19px; color: var(--slate); flex-shrink: 0; }
.v2api-mx__row.is-key .v2api-mx__ff svg { color: var(--go-deep); }
.v2api-mx__lvl {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 7px 0;
    text-align: center;
}
.v2api-mx__row.is-key .v2api-mx__lvl {
    color: #fff;
    background: var(--go);
    border-color: var(--go);
}
.v2api-mx__why { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2api-mx__why b { color: var(--ink); font-weight: 650; }
.v2api-mx__foot {
    border-top: 1px solid var(--line);
    background: var(--mist);
    padding: 14px 22px;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2api-mx[data-view="submit"] .is-avail,
.v2api-mx[data-view="exist"] .is-submit { display: none; }

/* ---------- Two consequence panels ---------- */

.v2api-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 26px 0;
}
.v2api-sp {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2api-sp__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
    margin-bottom: 12px;
}
.v2api-sp__tag svg { width: 15px; height: 15px; }
.v2api-sp h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin-bottom: 9px;
}
.v2api-sp p { font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2api-sp ul { margin-top: 12px; display: grid; gap: 8px; }
.v2api-sp ul li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2api-sp ul li .v2gpr-mk { margin-top: 2px; }
.v2api-sp.is-block { border-right: 3px solid var(--ink); }
.v2api-sp.is-block .v2api-sp__tag { color: var(--ink); }
.v2api-sp.is-hide { border-right: 3px solid #C9D2DA; }

/* ============= RESPONSIVE: clock / quote / matrix / split ============= */

@media (max-width: 960px) {
    .v2api-clock { max-width: none; }
}
@media (max-width: 700px) {
    .v2api-split { grid-template-columns: minmax(0, 1fr); }
    .v2api-mx__row {
        grid-template-columns: minmax(0, 1fr) 74px;
        gap: 10px 12px;
        padding: 14px 10px;
    }
    .v2api-mx__why { grid-column: 1 / -1; font-size: 13px; }
}
@media (max-width: 640px) {
    .v2api-clock { padding: 18px 16px 22px; border-radius: 18px; }
    .v2api-clock__nums { gap: 10px; }
    .v2api-clock__num { padding: 12px 13px; border-radius: 12px; }
    .v2api-clock__rail { margin-top: 36px; }
    .v2api-clock__mil em { font-size: 8px; letter-spacing: 0.05em; }
    .v2api-clock__foot { margin-top: 42px; font-size: 12px; }
    .v2api-quote { padding: 18px 18px; border-radius: 14px; }
    .v2api-quote p { font-size: 16.5px; }
    .v2api-quote__src { font-size: 12px; }
    .v2gpr-prose > p.v2api-ans { font-size: 14.5px; padding: 13px 15px; }
    .v2api-mx__head { padding: 15px 16px; }
    .v2api-mx__head h3 { font-size: 16px; }
    .v2api-mx__cap { padding: 12px 16px 0; font-size: 13px; }
    .v2api-mx__list { padding: 6px 8px 10px; }
    .v2api-mx__ff { font-size: 13.5px; }
    .v2api-mx__foot { padding: 12px 16px; font-size: 12px; }
    .v2 .v2api-seg button { padding: 7px 11px; font-size: 9px; }
    .v2api-sp { padding: 17px 16px; border-radius: 14px; }
    .v2api-sp h4 { font-size: 16px; }
    .v2api-sp p { font-size: 13.5px; }
}
@media (max-width: 400px) {
    .v2api-clock__num b { font-size: 1.55rem; }
    .v2api-mx__row { grid-template-columns: minmax(0, 1fr) 66px; }
    .v2api-mx__lvl { font-size: 12px; }
    .v2api-seg { width: 100%; }
    .v2 .v2api-seg button { flex: 1; }
}

/* ---------- Affected-checker: option pills + verdict ---------- */

.v2api-chk__q { margin-bottom: 20px; }
.v2api-chk__q:last-of-type { margin-bottom: 4px; }
.v2api-chk__qlab {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 10px;
}
.v2api-chk__qlab b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 6px;
    background: var(--ink);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    flex-shrink: 0;
}
.v2api-chk__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.v2api-chk__opt { display: inline-flex; }
.v2api-chk__opt input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2api-chk__face {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 9px 15px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2api-chk__face svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2api-chk__opt:hover .v2api-chk__face { border-color: #C9D2DA; color: var(--ink); }
.v2api-chk__opt input:checked + .v2api-chk__face {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.45);
    color: var(--go-deep);
}
.v2api-chk__opt input:focus-visible + .v2api-chk__face {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2api-chk__reset {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.v2api-chk__reset p { font-size: 12.5px; color: var(--faint); }
.v2 .v2api-chk__clear {
    appearance: none;
    background: none;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 7px 14px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease;
}
.v2 .v2api-chk__clear:hover { border-color: #C9D2DA; color: var(--ink); }

/* Verdict card (the page's ONE rose moment lives in .is-block) */
.v2api-vd {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 16px;
    padding: 20px 22px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2api-vd.is-on { opacity: 1; transform: none; }
.v2api-vd__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.v2api-vd__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 6px 12px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2api-vd__state svg { width: 14px; height: 14px; }
.v2api-vd__lvl {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    margin-right: auto;
}
.v2api-vd__lvl b {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2api-vd h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    letter-spacing: -0.014em;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 9px;
}
.v2api-vd > p { font-size: 14.5px; line-height: 1.72; color: var(--slate); }
.v2api-vd__list { margin-top: 14px; display: grid; gap: 9px; }
.v2api-vd__list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2api-vd__list li .v2gpr-mk { margin-top: 2px; }
.v2api-vd__list li b { color: var(--ink); font-weight: 650; }
.v2api-vd__go {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
}
.v2api-vd__go a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: none;
}
.v2api-vd__go a svg { width: 15px; height: 15px; }
.v2api-vd__go a:hover { text-decoration: underline; }

.v2api-vd.is-ok { border-right-color: var(--go); }
.v2api-vd.is-ok .v2api-vd__state {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2api-vd.is-act { border-right-color: var(--ink); }
.v2api-vd.is-act .v2api-vd__state { color: var(--ink); background: var(--mist); }
.v2api-vd.is-block { border-right-color: #B42318; background: #FDF1F0; border-color: rgba(180, 35, 24, 0.16); }
.v2api-vd.is-block .v2api-vd__state {
    color: #B42318;
    background: rgba(180, 35, 24, 0.08);
    border-color: rgba(180, 35, 24, 0.18);
}
.v2api-vd.is-unknown { border-right-style: dashed; border-right-color: var(--faint); }

/* ---------- Install ladder: targetSdk vs minSdk ---------- */

.v2api-ladder__ctl {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 14px;
    margin-bottom: 20px;
}
.v2api-ladder__ctl > div { flex: 1 1 200px; min-width: 0; }
.v2api-ladder__fixed {
    background: var(--ink);
    border-radius: 12px;
    padding: 11px 16px;
    flex: 0 0 auto;
}
.v2api-ladder__fixed span {
    display: block;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #7A8794;
    margin-bottom: 4px;
}
.v2api-ladder__fixed b {
    font-family: var(--font-display);
    font-size: 19px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: #fff;
}
.v2api-ladder__row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
}
.v2api-rung {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    min-width: 54px;
    padding: 8px 8px 7px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    transition: background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}
.v2api-rung b {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1;
}
.v2api-rung span {
    font-family: var(--font-mono);
    font-size: 8.5px;
    letter-spacing: 0.04em;
    color: var(--faint);
    line-height: 1;
}
.v2api-rung.is-out { opacity: 0.42; background: var(--mist); }
.v2api-rung.is-out b { text-decoration: line-through; color: var(--faint); }
.v2api-rung.is-in { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.3); }
.v2api-rung.is-in b { color: var(--go-deep); }
.v2api-rung.is-in span { color: var(--go-deep); }
.v2api-rung.is-target { background: var(--ink); border-color: var(--ink); }
.v2api-rung.is-target b, .v2api-rung.is-target span { color: #fff; }
.v2api-ladder__out {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.v2api-ladder__out div {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px;
}
.v2api-ladder__out span {
    display: block;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 7px;
}
.v2api-ladder__out p { font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2api-ladder__out p b { color: var(--ink); font-weight: 650; }

/* ---------- Build snippet generator ---------- */

.v2api-gen__tabs {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    margin-bottom: 18px;
    border-bottom: 1px solid var(--line);
}
.v2api-gen__tabs::-webkit-scrollbar { display: none; }
.v2 .v2api-gen__tab {
    appearance: none;
    border: 1px solid var(--line);
    background: var(--paper);
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.v2 .v2api-gen__tab:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2api-gen__tab.is-on {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}
.v2api-gen__pane { display: none; }
.v2api-gen__pane.is-on { display: block; animation: v2RiseIn 0.4s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2api-gen__file {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.v2api-gen__name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 11px;
    word-break: break-all;
}
.v2api-gen__name svg { width: 14px; height: 14px; color: var(--slate); flex-shrink: 0; }
.v2 .v2api-gen__copy {
    appearance: none;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 7px 13px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
}
.v2 .v2api-gen__copy svg { width: 13px; height: 13px; }
.v2 .v2api-gen__copy:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2api-gen__copy.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.3);
    color: var(--go-deep);
}
.v2api-gen__code {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 0;
    overflow-x: auto;
    margin: 0;
}
.v2api-gen__code code {
    display: block;
    font-family: var(--font-mono);
    font-size: 12.5px;
    line-height: 1.9;
    color: var(--ink);
    background: none;
    border: 0;
    padding: 0 16px;
    white-space: pre;
}
/* Diff marks stay INLINE: the code block relies on real newlines so the
   copy button yields valid source, and a block-level line would swallow
   them. Highlight rides the text run instead of the full row. */
.v2api-gen__code i {
    font-style: normal;
    border-radius: 5px;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
.v2api-gen__code i.is-add {
    background: var(--go-tint);
    color: var(--go-deep);
    font-weight: 600;
    padding: 2px 6px;
    margin: 0 -6px;
}
.v2api-gen__code i.is-cut {
    color: var(--faint);
    text-decoration: line-through;
    text-decoration-color: #C0C9D2;
}
.v2api-gen__say {
    margin-top: 12px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2api-gen__say b { color: var(--ink); font-weight: 650; }
.v2api-gen__say code {
    font-family: var(--font-mono);
    font-size: 0.86em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1px 6px;
}

/* ============= RESPONSIVE: checker / ladder / generator ============= */

@media (max-width: 640px) {
    .v2api-chk__face { padding: 9px 13px; font-size: 13px; }
    .v2api-chk__opts { gap: 7px; }
    .v2api-vd { padding: 17px 16px; border-radius: 14px; }
    .v2api-vd h4 { font-size: 16.5px; }
    .v2api-vd__lvl { margin-right: 0; }
    .v2api-vd > p { font-size: 13.5px; }
    .v2api-ladder__ctl { gap: 12px; }
    .v2api-ladder__fixed { width: 100%; }
    .v2api-rung { min-width: 0; flex: 1 1 46px; padding: 7px 4px 6px; }
    .v2api-ladder__out { grid-template-columns: minmax(0, 1fr); }
    .v2api-gen__code code { font-size: 11.5px; }
    .v2api-gen__name { font-size: 10.5px; }
    .v2 .v2api-gen__tab { font-size: 12px; padding: 7px 12px; }
}
@media (max-width: 400px) {
    .v2api-chk__face { font-size: 12.5px; padding: 8px 12px; }
    .v2api-rung b { font-size: 11px; }
    .v2api-rung span { font-size: 8px; }
}

/* ---------- Android 16 behaviour risk scanner ---------- */

.v2api-scan__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 18px;
}
.v2api-scan__item { display: block; }
.v2api-scan__item input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2api-scan__face {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
    cursor: pointer;
    height: 100%;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2api-scan__face i {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border-radius: 6px;
    border: 2px solid #C9D2DA;
    background: var(--paper);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 10px;
    transition: background-color 0.18s ease, border-color 0.18s ease;
}
.v2api-scan__item:hover .v2api-scan__face { border-color: #C9D2DA; }
.v2api-scan__item input:checked + .v2api-scan__face {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.35);
    color: var(--ink);
}
.v2api-scan__item input:checked + .v2api-scan__face i {
    background-color: var(--go);
    border-color: var(--go);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2api-scan__item input:focus-visible + .v2api-scan__face {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2api-scan__out { display: grid; gap: 9px; }
.v2api-scan__hit {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
    animation: v2RiseIn 0.35s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2api-scan__sev {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-align: center;
    border-radius: 999px;
    padding: 5px 0;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2api-scan__sev.is-high { color: #fff; background: var(--ink); border-color: var(--ink); }
.v2api-scan__sev.is-mid { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2api-scan__hit b {
    display: block;
    font-size: 14px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2api-scan__hit p { font-size: 13px; line-height: 1.62; color: var(--slate); }
.v2api-scan__tally {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 13px 15px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-bottom: 14px;
    font-size: 13.5px;
    color: var(--slate);
}
.v2api-scan__tally b {
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
}

/* ---------- Warning triage stack ---------- */

.v2api-tri__stack { display: grid; gap: 9px; margin: 24px 0; }
.v2api-tri {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2api-tri > summary {
    list-style: none;
    cursor: pointer;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 20px;
    align-items: center;
    gap: 12px;
    padding: 15px 18px;
    transition: background 0.18s ease;
}
.v2api-tri > summary::-webkit-details-marker { display: none; }
.v2api-tri > summary:hover { background: var(--mist); }
.v2api-tri__sym {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ink);
}
.v2api-tri__chev {
    width: 20px;
    height: 20px;
    color: var(--faint);
    transition: transform 0.25s ease;
}
.v2api-tri[open] .v2api-tri__chev { transform: rotate(-180deg); }
.v2api-tri__body {
    border-top: 1px solid var(--line);
    padding: 16px 18px;
    background: var(--mist);
}
.v2api-tri__body dl { display: grid; gap: 11px; margin: 0; }
.v2api-tri__body dt {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 3px;
}
.v2api-tri__body dd {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.68;
    color: var(--slate);
}
.v2api-tri__body dd b { color: var(--ink); font-weight: 650; }
.v2api-tri__body dd code {
    font-family: var(--font-mono);
    font-size: 0.86em;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1px 6px;
}

/* ---------- Pre-deadline checklist tracker ---------- */

.v2api-track__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 12px;
}
.v2api-track__count {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2api-track__count b {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--ink);
    vertical-align: -1px;
}
.v2api-track__bar {
    display: flex;
    gap: 3px;
    margin-bottom: 14px;
}
.v2api-track__bar i {
    flex: 1;
    height: 6px;
    border-radius: 3px;
    background: #E9EDF1;
    transition: background 0.25s ease;
}
.v2api-track__bar i.is-on { background: var(--go); }
.v2api-track__msg {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 15px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    margin-bottom: 6px;
}
.v2api-track__msg svg { width: 17px; height: 17px; color: var(--slate); flex-shrink: 0; }
.v2api-track__msg.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
}
.v2api-track__msg.is-done svg { color: var(--go); }
.v2api-track__list { margin-top: 6px; }

/* ---------- DIY vs managed showdown ---------- */

.v2api-vs {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 26px 0;
}
.v2api-vs__row {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
    padding: 14px 20px;
    border-bottom: 1px solid #F0F3F5;
    align-items: start;
}
.v2api-vs__row:last-child { border-bottom: none; }
.v2api-vs__row.is-head {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding-top: 13px;
    padding-bottom: 13px;
}
.v2api-vs__row.is-head span {
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2api-vs__row.is-head span.is-us { color: var(--go-deep); }
.v2api-vs__need { font-size: 14px; font-weight: 650; line-height: 1.5; color: var(--ink); }
.v2api-vs__cell {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2api-vs__cell .v2gpr-mk { margin-top: 2px; }
.v2api-vs__cell.is-us { color: var(--ink); }
.v2api-vs__foot {
    background: var(--mist);
    border-top: 1px solid var(--line);
    padding: 14px 20px;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Numbered stepper (extension route) ---------- */

.v2api-steps { display: grid; gap: 2px; margin: 24px 0; counter-reset: apistep; }
.v2api-steps li {
    counter-increment: apistep;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid #F0F3F5;
}
.v2api-steps li:last-child { border-bottom: none; }
.v2api-steps li::before {
    content: counter(apistep, decimal-leading-zero);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--ink);
}
.v2api-steps b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2api-steps p { font-size: 13.5px; line-height: 1.68; color: var(--slate); }
.v2api-steps p code {
    font-family: var(--font-mono);
    font-size: 0.86em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1px 6px;
}
.v2api-steps .v2api-ev { margin-top: 8px; }

/* ---------- Small shared bits ---------- */

.v2api-path {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 16px;
    margin: 20px 0;
}
.v2api-path span {
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 11px;
}
.v2api-path svg { width: 14px; height: 14px; color: var(--faint); flex-shrink: 0; }

/* ============= RESPONSIVE: scanner / triage / tracker / vs ============= */

@media (max-width: 700px) {
    .v2api-scan__list { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .v2api-scan__face { padding: 11px 12px; font-size: 13px; }
    .v2api-scan__hit { grid-template-columns: minmax(0, 1fr); gap: 9px; padding: 12px 14px; }
    .v2api-scan__sev { justify-self: start; padding: 5px 12px; }
    .v2api-tri > summary { grid-template-columns: minmax(0, 1fr) 20px; padding: 13px 14px; }
    .v2api-tri__sym { font-size: 12px; }
    .v2api-tri > summary .v2api-ev { grid-column: 1 / -1; justify-self: start; }
    .v2api-tri__body { padding: 14px; }
    .v2api-tri__body dd { font-size: 13px; }
    .v2api-track__bar i { height: 5px; }
    .v2api-vs__row { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 14px 16px; }
    .v2api-vs__row.is-head { display: none; }
    /* Label goes on its own line rather than beside the sentence. Inline, it
       plus the tick and two gaps took ~84px of a 246px cell at 320px, which
       wrapped every sentence into a five-line ribbon; full-width prose reads
       as normal copy instead. */
    .v2api-vs__cell {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 9px;
        row-gap: 3px;
        align-items: start;
    }
    .v2api-vs__cell::before {
        content: attr(data-lab);
        grid-column: 1 / -1;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        color: var(--faint);
    }
    .v2api-vs__foot { padding: 13px 16px; font-size: 12px; }
    .v2api-steps li { grid-template-columns: 30px minmax(0, 1fr); gap: 12px; }
    .v2api-steps li::before { width: 30px; height: 30px; font-size: 10px; }
    .v2api-steps b { font-size: 14px; }
    .v2api-steps p { font-size: 13px; }
    .v2api-path { padding: 12px 13px; gap: 7px; }
    .v2api-path span { font-size: 10.5px; padding: 5px 9px; }
}
/* ---------- Evidence ledger (intro) ---------- */

.v2api-led {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
}
.v2api-led__lab {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 10px;
    color: var(--faint);
    margin-bottom: 14px;
}
.v2api-led__lab svg { width: 16px; height: 16px; color: var(--slate); flex-shrink: 0; }
.v2api-led ul { display: grid; gap: 10px; }
.v2api-led li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2api-led li .v2gpr-mk { margin-top: 2px; }
.v2api-led li b { color: var(--ink); font-weight: 650; }

/* ---------- Three-up variant of the consequence panels ---------- */

.v2api-split.is-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2api-sp h4 code {
    font-family: var(--font-mono);
    font-size: 0.92em;
    background: none;
    border: 0;
    padding: 0;
    color: inherit;
}

/* ---------- Generator: legend, inline diff, builder list ---------- */

.v2api-gen__legend {
    font-size: 9.5px;
    color: var(--faint);
    margin-bottom: 14px;
}
.v2api-gen__pane ul {
    margin: 12px 0 0;
    display: grid;
    gap: 9px;
}
.v2api-gen__pane ul li {
    position: relative;
    padding-right: 20px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2api-gen__pane ul li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 9px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: #C9D2DA;
}

/* ---------- Scanner tally (gotcha 3: [hidden] vs display) ---------- */

.v2api-scan__tally[hidden] { display: none; }

/* ---------- Triage body pairs ---------- */

.v2api-tri__body dl > div { min-width: 0; }

/* ---------- Inline CTA row in the payoff section ---------- */

.v2api-ctarow {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 24px 0 0;
}

/* ============= RESPONSIVE: batch 4 ============= */

@media (max-width: 900px) {
    .v2api-split.is-3 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .v2api-led { padding: 17px 16px; border-radius: 14px; }
    .v2api-led li { font-size: 13px; }
    .v2api-ctarow .v2-btn { width: 100%; justify-content: center; }
}

/* TOC label icon: the shared .v2gpr-toc__label does not size an inline
   svg, so an unsized 0 0 20 20 icon fills the <p> and renders its three
   path lines as giant grey bars. Same fix rr26 needed. */
.v2api-toc .v2gpr-toc__label { display: flex; align-items: center; gap: 8px; }
.v2api-toc .v2gpr-toc__label svg { width: 15px; height: 15px; flex-shrink: 0; }

/* Stack the stack-picker on wide screens: the row is a scroll rail on
   phones, but on desktop a clipped last tab reads as a broken layout
   because the scrollbar is hidden. */
@media (min-width: 641px) {
    .v2api-gen__tabs { flex-wrap: wrap; overflow-x: visible; }
}

/* ...and wrap it on phones too. The scroll rail above hides 5 of the 7
   stacks (Flutter, React Native, Capacitor, Unity, No-code) off the right
   edge, and with the scrollbar suppressed there is nothing to indicate they
   exist, so a Flutter reader concludes the tool has no Flutter output. The
   same reason the last tab must not clip on desktop applies harder here. */
@media (max-width: 640px) {
    .v2api-gen__tabs { flex-wrap: wrap; overflow-x: visible; }
}

/* Clock milestone labels: three nowrap mono labels collide on a 360px
   rail. Let them wrap inside a fixed column instead, and give the foot
   copy room for the resulting second line. */
@media (max-width: 700px) {
    .v2api-clock__mil em {
        white-space: normal;
        max-width: 78px;
        margin: 9px auto 0;
        font-size: 7.5px;
        line-height: 1.3;
        letter-spacing: 0.04em;
    }
    .v2api-clock__mil.is-first em { margin-right: 0; }
    .v2api-clock__mil.is-last em { margin-left: 0; }
    .v2api-clock__foot { margin-top: 58px; }
}

/* ============= END BLOG API36 V2 ============= */

/* ============================================================
   BLOG: FIX THE 16 KB PAGE SIZE ERROR ON GOOGLE PLAY
   /blog/google-play-16-kb-page-size-error

   Reuses the shared v2gpr-* article furniture (chips, rail,
   hero, toc, prose, qa, note/warn/tip, faq, bottom, docs,
   author, related, cta). Everything below is UNIQUE to this
   post. Prefix: v2kb-. Signature pieces:
     clock    the supersession rail (hero)
     lab      the twelve-instrument index
     steps    the three-move ledger
     tree     the branching decision diagram
     console  the Play Console warning reconstruction
     seg      segmented pickers
     verdict  the shared result card, seven states
     walk     the four-question triage walker
     mem      the page-boundary visualiser
     tabs/fw  the framework finder
     code     copyable command blocks
     table    the reference tables
     cmd      the command lab
     env      the test environment picker
     tri      the stuck-warning triage
     libs     the reported library index
     gate     the eleven-gate release tracker

   Accent discipline: violet is this page's "alignment" colour
   and means exactly one thing, a value or artifact that has
   been PROVEN. Green is reserved for pass verdicts, rose for
   fail verdicts, amber for superseded or hedged. Nothing here
   is coloured for decoration.
   ============================================================ */

/* Base reset for this block's lists (gotcha 12.19): declared
   once, first, at (0,1,0) so later margins still win. */
.v2kb-lab__grid, .v2kb-steps, .v2kb-tree__split, .v2kb-console__rows,
.v2kb-seg, .v2kb-walk__opts, .v2kb-mem__track, .v2kb-tabs, .v2kb-fw__steps,
.v2kb-env__steps, .v2kb-gate__list, .v2kb-tri__list, .v2kb-libs,
.v2kb-vs__col ul, .v2kb-decay__list, .v2kb-chips, .v2kb-fields,
.v2kb-cmd__rows, .v2kb-segs, .v2kb-actions, .v2kb-verdict__acts,
.v2kb-mem__key {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Hero: the supersession clock ---------- */

.v2kb-hero .v2kb-eyebrow { color: #5A4BE0; }

.v2kb-clock {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px 16px;
    margin-top: 26px;
    box-shadow: 0 10px 34px rgba(10, 16, 23, .06);
}
.v2kb-clock__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2kb-clock__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 11px;
    color: var(--slate);
    letter-spacing: .04em;
    text-transform: uppercase;
}
.v2kb-clock__label svg { width: 15px; height: 15px; color: #5A4BE0; }
.v2kb-clock__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
}
.v2kb-clock__state i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #B4700A;
    flex-shrink: 0;
}
.v2kb-clock__state.is-live i { background: #C2334D; }

.v2kb-clock__nums {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    padding: 18px 0 22px;
}
.v2kb-clock__num b {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(34px, 6vw, 52px);
    line-height: 1;
    font-weight: 750;
    color: #5A4BE0;
    letter-spacing: -.02em;
}
.v2kb-clock__num span {
    display: block;
    margin-top: 7px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--slate);
    max-width: 30ch;
}
.v2kb-clock__num.is-dead b { color: #B9C1CA; }

.v2kb-clock__rail {
    position: relative;
    height: 5px;
    background: var(--mist);
    border-radius: 999px;
    margin: 8px 0 62px;
}
.v2kb-clock__fill {
    position: absolute;
    inset: 0 auto 0 0;
    background: linear-gradient(-90deg, #C9C2F5, #5A4BE0);
    border-radius: 999px;
}
.v2kb-clock__mil {
    position: absolute;
    top: 50%;
    transform: translate(50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.v2kb-clock__mil i {
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--paper);
    border: 3px solid #C9C2F5;
    display: block;
}
.v2kb-clock__mil.is-dead i { border-color: #D3DAE1; }
.v2kb-clock__mil.is-key i {
    border-color: #5A4BE0;
    width: 15px;
    height: 15px;
    box-shadow: 0 0 0 5px rgba(90, 75, 224, .14);
}
.v2kb-clock__mil em {
    position: absolute;
    top: 22px;
    white-space: nowrap;
    font-style: normal;
    font-size: 11px;
    color: var(--slate);
    font-family: var(--font-mono);
}
.v2kb-clock__mil.is-dead em { color: #A6AFB8; }
.v2kb-clock__mil.is-key em { color: var(--ink); font-weight: 600; }
.v2kb-clock__mil.is-first em { transform: translateX(calc(-1*(-50% + 36px))); }
.v2kb-clock__mil.is-last em { transform: translateX(calc(-1*(-50% - 44px))); }

.v2kb-clock__now {
    position: absolute;
    top: -30px;
    transform: translateX(50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}
.v2kb-clock__now em {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--paper);
    background: var(--ink);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.v2kb-clock__now s {
    width: 1px;
    height: 14px;
    background: var(--ink);
    display: block;
    text-decoration: none;
}
.v2kb-clock__foot {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2kb-clock__foot b { color: var(--ink); }
.v2kb-clock__foot s { color: #A6AFB8; }

@media (max-width: 768px) {
    .v2kb-clock { padding: 16px 15px 14px; border-radius: 14px; }
    .v2kb-clock__nums { grid-template-columns: 1fr; gap: 16px; padding: 14px 0 18px; }
    .v2kb-clock__num span { max-width: none; }
    .v2kb-clock__rail { margin-bottom: 56px; }
    .v2kb-clock__mil em { font-size: 9.5px; top: 20px; }
    .v2kb-clock__mil.is-first em { transform: translateX(calc(-1*(-50% + 30px))); }
    .v2kb-clock__mil.is-last em { transform: translateX(calc(-1*(-50% - 36px))); }
    .v2kb-clock__foot { font-size: 12.5px; }
}
@media (max-width: 480px) {
    .v2kb-clock__mil em { font-size: 8.5px; }
    .v2kb-clock__state { font-size: 10px; padding: 4px 9px; }
}

/* ---------- Intro: the Alignment Lab index ---------- */

.v2kb-lab {
    background: var(--ink);
    border-radius: 18px;
    padding: 22px 24px 24px;
    margin: 30px 0;
    color: rgba(255, 255, 255, .8);
}
.v2kb-lab__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 8px;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #B7ADFB;
}
.v2kb-lab__tag svg { width: 15px; height: 15px; }
.v2kb-lab__sub {
    margin: 0 0 18px;
    font-size: 13.5px;
    line-height: 1.65;
    color: rgba(255, 255, 255, .62);
    max-width: 64ch;
}
.v2kb-lab__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
}
.v2kb-lab__item {
    display: block;
    background: rgba(255, 255, 255, .045);
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 11px;
    padding: 11px 13px;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.v2kb-lab__item:hover,
.v2kb-lab__item:focus-visible {
    background: rgba(122, 106, 255, .16);
    border-color: rgba(150, 136, 255, .42);
    transform: translateY(-2px);
}
.v2kb-lab__item span {
    display: block;
    font-size: 10px;
    color: #8E80F0;
    margin-bottom: 3px;
}
.v2kb-lab__item b {
    display: block;
    font-size: 13.5px;
    font-weight: 620;
    color: #fff;
    line-height: 1.3;
}
.v2kb-lab__item em {
    display: block;
    font-style: normal;
    margin-top: 3px;
    font-size: 11.5px;
    line-height: 1.4;
    color: rgba(255, 255, 255, .5);
}
.v2kb-lab.v2-anim .v2kb-lab__item { opacity: 0; transform: translateY(8px); }
.v2kb-lab.v2-anim.is-in .v2kb-lab__item {
    opacity: 1;
    transform: none;
    transition: opacity .45s ease, transform .45s ease;
}

@media (max-width: 900px) { .v2kb-lab__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) {
    .v2kb-lab { padding: 18px 16px 20px; border-radius: 14px; margin: 24px 0; }
    .v2kb-lab__sub { font-size: 12.5px; }
}
@media (max-width: 480px) { .v2kb-lab__grid { grid-template-columns: 1fr; } }

/* ---------- Prose furniture ---------- */

.v2kb-prose code {
    font-family: var(--font-mono);
    font-size: .89em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    color: var(--ink);
    word-break: break-word;
    overflow-wrap: anywhere;
}
.v2kb-prose .v2kb-lab code,
.v2kb-prose .v2kb-code code { background: transparent; border: 0; }

.v2kb-ans {
    border-right: 3px solid #5A4BE0;
    background: #F0EEFD;
    border-radius: 12px 0 0 12px;
    padding: 15px 18px;
    margin: 0 0 22px;
}
.v2kb-ans p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.72;
    color: #2B3540;
}
.v2kb-ans strong { color: var(--ink); }
.v2kb-ans code { background: rgba(255, 255, 255, .7); border-color: #DCD7FA; }

.v2kb-fine {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 0;
}

@media (max-width: 768px) {
    .v2kb-ans { padding: 13px 14px; }
    .v2kb-ans p { font-size: 14.5px; }
}

/* ---------- Section 1: the three-move ledger ---------- */

.v2kb-steps {
    display: grid;
    gap: 12px;
    margin: 22px 0 30px;
}
.v2kb-step {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2kb-step.is-key {
    border-color: #DCD7FA;
    background: linear-gradient(-180deg, #FAF9FF, var(--paper));
}
.v2kb-step__num {
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    color: var(--slate);
}
.v2kb-step.is-key .v2kb-step__num {
    background: #5A4BE0;
    border-color: #5A4BE0;
    color: #fff;
}
.v2kb-step__body h3 {
    margin: 2px 0 6px;
    font-size: 16.5px;
    font-weight: 660;
    color: var(--ink);
    line-height: 1.35;
}
.v2kb-step__body p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.68;
    color: var(--slate);
}
.v2kb-step__go {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 9px;
    font-size: 13px;
    font-weight: 600;
    color: #4335C4;
    text-decoration: none;
}
.v2kb-step__go:hover { text-decoration: underline; }
.v2kb-step__go svg { width: 15px; height: 15px; }

@media (max-width: 768px) {
    .v2kb-step { grid-template-columns: 36px minmax(0, 1fr); gap: 11px; padding: 14px; }
    .v2kb-step__num { width: 32px; height: 32px; font-size: 11.5px; border-radius: 9px; }
    .v2kb-step__body h3 { font-size: 15.5px; }
    .v2kb-step__body p { font-size: 14px; }
}

/* ---------- Section 1: the decision tree ---------- */

.v2kb-tree {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 20px 22px;
    margin: 20px 0 26px;
}
.v2kb-tree__node {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
}
.v2kb-tree__node.is-root { border-color: #C9C2F5; }
.v2kb-tree__node.is-pass { border-color: #B9E2CC; background: #F1FAF5; }
.v2kb-tree__node.is-fail { border-color: #F3C7D0; background: #FDF3F5; }
.v2kb-tree__node.is-act  { border-color: #F0DBB0; background: #FDF8EE; }
.v2kb-tree__q {
    margin: 0;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--ink);
}
.v2kb-tree__verdict {
    margin: 0 0 5px;
    font-size: 13.5px;
    font-weight: 680;
    color: var(--ink);
}
.v2kb-tree__node.is-pass .v2kb-tree__verdict { color: #076B36; }
.v2kb-tree__node.is-fail .v2kb-tree__verdict { color: #9E2038; }
.v2kb-tree__node.is-act  .v2kb-tree__verdict { color: #8A5606; }
.v2kb-tree__node p + p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2kb-tree__split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
    gap: 12px;
    margin-top: 14px;
}
.v2kb-tree__branch {
    position: relative;
    padding-top: 22px;
}
.v2kb-tree__branch::before {
    content: "";
    position: absolute;
    top: 0;
    right: 18px;
    width: 1px;
    height: 16px;
    background: #C6CDD5;
}
.v2kb-tree__edge {
    position: absolute;
    top: -2px;
    right: 28px;
    font-size: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 2px 9px;
    color: var(--slate);
}
.v2kb-tree__edge.is-good { border-color: #B9E2CC; color: #076B36; }
.v2kb-tree__edge.is-bad  { border-color: #F3C7D0; color: #9E2038; }
.v2kb-tree__branch .v2kb-tree__split { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }

@media (max-width: 900px) {
    .v2kb-tree__split,
    .v2kb-tree__branch .v2kb-tree__split { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
    .v2kb-tree { padding: 15px 14px 16px; border-radius: 13px; }
    .v2kb-tree__q { font-size: 13.5px; }
    .v2kb-tree__node { padding: 11px 12px; }
}

/* ---------- Section 2: the Play Console reconstruction ---------- */

.v2kb-console {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0 24px;
    box-shadow: 0 8px 26px rgba(10, 16, 23, .05);
}
.v2kb-console__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2kb-console__bar .v2-mono { font-size: 11px; color: var(--slate); }
.v2kb-console__dots { display: flex; gap: 5px; flex-shrink: 0; }
.v2kb-console__dots i { width: 8px; height: 8px; border-radius: 50%; background: #D3DAE1; }
.v2kb-console__body { padding: 18px 18px 16px; }
.v2kb-console__head {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 15px;
}
.v2kb-console__ic {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #FDF4E5;
    color: #B4700A;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.v2kb-console__ic svg { width: 19px; height: 19px; }
.v2kb-console__title {
    margin: 0;
    font-size: 16px;
    font-weight: 660;
    color: var(--ink);
    line-height: 1.35;
}
.v2kb-console__rows {
    display: grid;
    gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
}
.v2kb-console__row {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    align-items: baseline;
    background: var(--paper);
    padding: 11px 14px;
}
.v2kb-console__row .v2-mono {
    font-size: 10.5px;
    color: var(--faint);
    text-transform: uppercase;
    letter-spacing: .05em;
}
.v2kb-console__row b { font-size: 14px; color: var(--ink); font-weight: 620; }
.v2kb-console__row.is-muted b { color: var(--faint); font-weight: 500; }
.v2kb-console__note {
    margin: 12px 0 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--faint);
}

@media (max-width: 768px) {
    .v2kb-console__body { padding: 15px 14px 14px; }
    .v2kb-console__row { grid-template-columns: 1fr; gap: 3px; padding: 10px 12px; }
    .v2kb-console__title { font-size: 15px; }
}

/* ---------- Shared: segmented picker ---------- */

.v2kb-seg {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 16px;
}
.v2kb-seg__btn {
    flex: 1 1 auto;
    min-width: 0;
    font: inherit;
    font-size: 13px;
    font-weight: 560;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 9px 12px;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.v2kb-seg__btn:hover { border-color: #C9C2F5; color: var(--ink); }
.v2kb-seg__btn.is-on {
    background: #5A4BE0;
    border-color: #5A4BE0;
    color: #fff;
}
.v2kb-seg__btn:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 2px; }

@media (max-width: 480px) {
    .v2kb-seg { flex-direction: column; }
    .v2kb-seg__btn { width: 100%; }
}

/* ---------- Shared: the verdict card, seven states ---------- */

.v2kb-verdict {
    border-radius: 13px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2kb-verdict__stamp {
    display: inline-block;
    margin: 0 0 8px;
    font-size: 10.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--mist);
    color: var(--slate);
    border: 1px solid var(--line);
}
.v2kb-verdict__head {
    margin: 0 0 8px;
    font-size: 15.5px;
    font-weight: 650;
    line-height: 1.5;
    color: var(--ink);
}
.v2kb-verdict__body {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2kb-verdict__src {
    margin: 10px 0 0;
    font-size: 11px;
    color: var(--faint);
    word-break: break-word;
}
.v2kb-verdict__acts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.v2kb-verdict__acts a {
    display: inline-flex;
    align-items: center;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 7px 14px;
    transition: border-color .16s ease, color .16s ease;
}
.v2kb-verdict__acts a:hover { border-color: #5A4BE0; color: #4335C4; }

.v2kb-verdict.is-pass { border-color: #B9E2CC; background: #F4FBF7; }
.v2kb-verdict.is-pass .v2kb-verdict__stamp { background: #E4F5EC; border-color: #B9E2CC; color: #076B36; }
.v2kb-verdict.is-fail { border-color: #F3C7D0; background: #FDF6F7; }
.v2kb-verdict.is-fail .v2kb-verdict__stamp { background: #FBE7EB; border-color: #F3C7D0; color: #9E2038; }
.v2kb-verdict.is-dead,
.v2kb-verdict.is-wrong,
.v2kb-verdict.is-near { border-color: #F0DBB0; background: #FEFAF3; }
.v2kb-verdict.is-dead .v2kb-verdict__stamp,
.v2kb-verdict.is-wrong .v2kb-verdict__stamp,
.v2kb-verdict.is-near .v2kb-verdict__stamp { background: #FBF0DC; border-color: #F0DBB0; color: #8A5606; }
.v2kb-verdict.is-live,
.v2kb-verdict.is-act { border-color: #C9C2F5; background: #FAF9FF; }
.v2kb-verdict.is-live .v2kb-verdict__stamp,
.v2kb-verdict.is-act .v2kb-verdict__stamp { background: #EFEDFD; border-color: #C9C2F5; color: #4335C4; }
.v2kb-verdict.is-unknown { border-color: var(--line); background: var(--mist); }

@media (max-width: 768px) {
    .v2kb-verdict { padding: 14px; }
    .v2kb-verdict__head { font-size: 14.5px; }
    .v2kb-verdict__body { font-size: 13.5px; }
}

/* ---------- Shared: tool card tweaks over v2gpr-tool ---------- */

.v2kb-tool { margin: 20px 0 26px; }
.v2kb-tool .v2gpr-tool__tag i { background: #5A4BE0; }
.v2kb-tool__intro {
    margin: 0 0 14px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2kb-tool__intro code { font-size: .85em; }

/* ---------- Shared: fields, buttons, code blocks ---------- */

.v2kb-fields {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}
.v2kb-fields:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.v2kb-field { display: block; margin-bottom: 14px; }
.v2kb-field > span {
    display: block;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 6px;
}
.v2kb-field input,
.v2kb-field select,
.v2kb-field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    font: inherit;
    font-size: 13.5px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 12px;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.v2kb-field textarea {
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: 1.6;
    resize: vertical;
    min-height: 92px;
}
.v2kb-field input:focus,
.v2kb-field select:focus,
.v2kb-field textarea:focus {
    outline: none;
    border-color: #5A4BE0;
    box-shadow: 0 0 0 3px rgba(90, 75, 224, .12);
}
.v2kb-fields .v2kb-field { margin-bottom: 0; }

.v2kb-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.v2kb-btn {
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: #5A4BE0;
    border: 1px solid #5A4BE0;
    border-radius: 10px;
    padding: 9px 18px;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease;
}
.v2kb-btn:hover { background: #4335C4; border-color: #4335C4; }
.v2kb-btn.is-ghost {
    background: var(--paper);
    color: var(--slate);
    border-color: var(--line);
}
.v2kb-btn.is-ghost:hover { border-color: #C9C2F5; color: var(--ink); background: var(--paper); }
.v2kb-btn:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 2px; }

.v2kb-reset {
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    background: none;
    border: 0;
    border-bottom: 1px solid var(--line);
    padding: 0 0 2px;
    margin-top: 14px;
    cursor: pointer;
}
.v2kb-reset:hover { color: var(--ink); border-color: var(--slate); }

.v2kb-code {
    position: relative;
    background: #10161E;
    border-radius: 11px;
    padding: 14px 16px;
    margin: 12px 0;
    overflow: hidden;
}
.v2kb-code.is-lead { margin: 18px 0 14px; }
.v2kb-code pre {
    margin: 0;
    padding: 0;
    background: none;
    border: 0;
    font-family: var(--font-mono);
    font-size: 12.5px;
    line-height: 1.75;
    color: #D6DEE8;
    white-space: pre;
    overflow-x: auto;
    padding-left: 62px;
}
.v2kb-code pre::-webkit-scrollbar { height: 6px; }
.v2kb-code pre::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, .18); border-radius: 999px; }
.v2kb-code__copy {
    position: absolute;
    top: 10px;
    left: 10px;
    font: inherit;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #9AA6B4;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 7px;
    padding: 4px 9px;
    cursor: pointer;
    transition: color .16s ease, background .16s ease;
}
.v2kb-code__copy:hover { color: #fff; background: rgba(255, 255, 255, .14); }
.v2kb-code__copy.is-done { color: #6FE3A6; border-color: rgba(111, 227, 166, .4); }

@media (max-width: 768px) {
    .v2kb-fields { grid-template-columns: 1fr; }
    .v2kb-fields:has(> :nth-child(2):last-child) { grid-template-columns: 1fr; }
    .v2kb-code { padding: 12px 13px; }
    .v2kb-code pre { font-size: 11.5px; }
}

/* ---------- Shared: confidence pills ---------- */

.v2kb-pill {
    display: inline-block;
    font-size: 9.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    color: var(--slate);
    white-space: nowrap;
}
.v2kb-pill.is-verified   { background: #E4F5EC; border-color: #B9E2CC; color: #076B36; }
.v2kb-pill.is-partial    { background: #FBF0DC; border-color: #F0DBB0; color: #8A5606; }
.v2kb-pill.is-reported   { background: #EFEDFD; border-color: #C9C2F5; color: #4335C4; }
.v2kb-pill.is-unverified { background: #FBE7EB; border-color: #F3C7D0; color: #9E2038; }

/* ---------- Shared: reference tables ---------- */

.v2kb-scroll {
    overflow-x: auto;
    margin: 18px 0 22px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    -webkit-overflow-scrolling: touch;
}
.v2kb-scroll::-webkit-scrollbar { height: 6px; }
.v2kb-scroll::-webkit-scrollbar-thumb { background: #D3DAE1; border-radius: 999px; }

.v2kb-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    font-size: 13.5px;
}
.v2kb-table thead th {
    text-align: right;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--faint);
    font-weight: 600;
    background: var(--mist);
    padding: 11px 14px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2kb-table tbody th {
    text-align: right;
    font-weight: 640;
    color: var(--ink);
    padding: 12px 14px;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
    width: 20%;
}
.v2kb-table tbody td {
    padding: 12px 14px;
    vertical-align: top;
    color: var(--slate);
    line-height: 1.6;
    border-bottom: 1px solid var(--line);
}
.v2kb-table tbody tr:last-child th,
.v2kb-table tbody tr:last-child td { border-bottom: 0; }
.v2kb-table tbody tr:hover th,
.v2kb-table tbody tr:hover td { background: #FAFBFC; }
.v2kb-table code { font-size: .85em; }

@media (max-width: 768px) {
    .v2kb-table { font-size: 12.5px; min-width: 560px; }
    .v2kb-table thead th,
    .v2kb-table tbody th,
    .v2kb-table tbody td { padding: 10px 11px; }
}

/* ---------- Instrument 02: the triage walker ---------- */

.v2kb-walk__bar {
    height: 4px;
    background: var(--mist);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 18px;
}
.v2kb-walk__bar i {
    display: block;
    height: 100%;
    background: linear-gradient(-90deg, #8E80F0, #5A4BE0);
    border-radius: 999px;
    transition: width .3s ease;
}
.v2kb-walk__q { display: none; }
.v2kb-walk__q.is-on { display: block; }
.v2kb-walk__lab {
    margin: 0 0 12px;
    font-size: 15.5px;
    font-weight: 620;
    line-height: 1.5;
    color: var(--ink);
}
.v2kb-walk__lab .v2-mono {
    display: inline-block;
    font-size: 10.5px;
    color: #5A4BE0;
    background: #EFEDFD;
    border-radius: 6px;
    padding: 2px 7px;
    margin-left: 8px;
    vertical-align: 2px;
}
.v2kb-walk__opts { display: grid; gap: 8px; }
.v2kb-walk__opts button {
    font: inherit;
    font-size: 14px;
    text-align: right;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 12px 15px;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.v2kb-walk__opts button:hover {
    border-color: #5A4BE0;
    background: #FAF9FF;
    transform: translateX(-3px);
}
.v2kb-walk__opts button:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 2px; }
.v2kb-walk__opts button code { font-size: .87em; }

@media (max-width: 768px) {
    .v2kb-walk__lab { font-size: 14.5px; }
    .v2kb-walk__opts button { font-size: 13.5px; padding: 11px 13px; }
}

/* ---------- Section 3: the menu path strip ---------- */

.v2kb-path {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 15px;
    margin: 16px 0 18px;
}
.v2kb-path span {
    font-size: 12px;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 11px;
}
.v2kb-path span.is-key {
    border-color: #C9C2F5;
    background: #EFEDFD;
    color: #4335C4;
    font-weight: 600;
}
.v2kb-path svg { width: 14px; height: 14px; color: #B9C1CA; flex-shrink: 0; }

@media (max-width: 480px) {
    .v2kb-path { padding: 10px 12px; gap: 6px; }
    .v2kb-path span { font-size: 11px; padding: 5px 9px; }
}

/* ---------- Instrument 03: the page visualiser ---------- */

.v2kb-mem {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 16px 16px 14px;
    margin-bottom: 16px;
}
.v2kb-mem__lab {
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 10px;
}
.v2kb-mem__track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3px;
    height: 58px;
}
.v2kb-mem__page {
    position: relative;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 7px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 6px;
}
.v2kb-mem__page i {
    font-style: normal;
    font-size: 9.5px;
    color: var(--faint);
}
.v2kb-mem__marks {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.v2kb-mem__mark {
    position: absolute;
    top: 6px;
    width: 2px;
    height: 30px;
    border-radius: 2px;
    transform: translateX(1px);
    transition: background .2s ease;
}
.v2kb-mem__mark.is-ok  { background: #0B8A47; }
.v2kb-mem__mark.is-bad { background: #C2334D; opacity: .75; }
.v2kb-mem__key {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 12px;
}
.v2kb-mem__k {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    color: var(--slate);
}
.v2kb-mem__k i { width: 2px; height: 12px; border-radius: 2px; display: block; }
.v2kb-mem__k.is-ok i  { background: #0B8A47; }
.v2kb-mem__k.is-bad i { background: #C2334D; }

@media (max-width: 480px) {
    .v2kb-mem__track { height: 50px; }
    .v2kb-mem__page i { font-size: 8.5px; }
    .v2kb-mem__mark { height: 24px; }
}

/* ---------- Shared: tab strip ---------- */

.v2kb-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2kb-tabs__t {
    font: inherit;
    font-size: 12.5px;
    font-weight: 580;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 7px 14px;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
}
.v2kb-tabs__t:hover { color: var(--ink); border-color: #C9C2F5; }
.v2kb-tabs__t.is-on {
    background: #EFEDFD;
    border-color: #5A4BE0;
    color: #4335C4;
}
.v2kb-tabs__t:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 2px; }

@media (max-width: 480px) {
    .v2kb-tabs { gap: 5px; }
    .v2kb-tabs__t { font-size: 11.5px; padding: 6px 11px; }
}

/* ---------- Instrument 04: the framework finder ---------- */

.v2kb-fw__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.v2kb-fw__base {
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #5A4BE0;
    margin: 0 0 4px;
}
.v2kb-fw__name {
    margin: 0;
    font-size: 19px;
    font-weight: 680;
    color: var(--ink);
    line-height: 1.25;
}
.v2kb-fw__conf {
    flex-shrink: 0;
    font-size: 9.5px;
    letter-spacing: .07em;
    padding: 4px 9px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    color: var(--slate);
}
.v2kb-fw__conf.is-verified { background: #E4F5EC; border-color: #B9E2CC; color: #076B36; }
.v2kb-fw__conf.is-partial  { background: #FBF0DC; border-color: #F0DBB0; color: #8A5606; }
.v2kb-fw__say {
    margin: 0 0 14px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2kb-fw__steps {
    counter-reset: kbfw;
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.v2kb-fw__steps li {
    counter-increment: kbfw;
    position: relative;
    padding-right: 30px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--ink);
}
.v2kb-fw__steps li::before {
    content: counter(kbfw);
    position: absolute;
    right: 0;
    top: 1px;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: #EFEDFD;
    color: #4335C4;
    font-family: var(--font-mono);
    font-size: 10.5px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2kb-fw__risk {
    background: #FEFAF3;
    border: 1px solid #F0DBB0;
    border-radius: 11px;
    padding: 12px 14px;
}
.v2kb-fw__risk .v2-mono {
    display: block;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #8A5606;
    margin-bottom: 5px;
}
.v2kb-fw__risk p:last-child {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}

@media (max-width: 768px) {
    .v2kb-fw__top { flex-direction: column; gap: 8px; }
    .v2kb-fw__name { font-size: 17px; }
    .v2kb-fw__say { font-size: 13.5px; }
}

/* ---------- Instrument 05: the ELF decoder result ---------- */

.v2kb-segs {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 12px 0;
}
.v2kb-segs__i {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 8px;
    padding: 5px 10px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2kb-segs__i b {
    font-size: 10px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    font-weight: 600;
    word-break: break-all;
}
.v2kb-segs__i i { font-style: normal; font-size: 12px; font-weight: 660; }
.v2kb-segs__i.is-ok  { border-color: #B9E2CC; background: #F1FAF5; }
.v2kb-segs__i.is-ok i  { color: #076B36; }
.v2kb-segs__i.is-bad { border-color: #F3C7D0; background: #FDF3F5; }
.v2kb-segs__i.is-bad i { color: #9E2038; }

/* ---------- Instrument 06: the owner lookup ---------- */

.v2kb-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}
.v2kb-chips button {
    font: inherit;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
    cursor: pointer;
    transition: border-color .16s ease, color .16s ease;
}
.v2kb-chips button:hover { border-color: #5A4BE0; color: #4335C4; }
.v2kb-chips button:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 2px; }

.v2kb-own__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 9px;
}
.v2kb-own__file {
    margin: 0;
    font-size: 14px;
    font-weight: 620;
    color: var(--ink);
    word-break: break-all;
}

/* ---------- Section 7: the artifact split ---------- */

.v2kb-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    margin: 20px 0 22px;
}
.v2kb-split__side {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 15px 17px;
}
.v2kb-split__side.is-key { border-color: #C9C2F5; background: #FAF9FF; }
.v2kb-split__side .v2-mono {
    display: block;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 6px;
}
.v2kb-split__side b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 7px;
    word-break: break-word;
}
.v2kb-split__side p:last-child {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}
.v2kb-split__vs {
    font-size: 11px;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 12px;
    white-space: nowrap;
}

@media (max-width: 768px) {
    .v2kb-split { grid-template-columns: 1fr; gap: 10px; justify-items: center; }
    .v2kb-split__side { width: 100%; }
}

/* ---------- Instrument 07: the command lab ---------- */

.v2kb-cmd__what {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--ink);
    font-weight: 560;
}
.v2kb-cmd__rows {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 12px;
}
.v2kb-cmd__row {
    display: flex;
    flex-direction: column;
    gap: 4px;
    border-radius: 10px;
    padding: 10px 13px;
    border: 1px solid var(--line);
}
.v2kb-cmd__row .v2-mono {
    font-size: 9.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.v2kb-cmd__row b {
    font-size: 13px;
    font-weight: 620;
    word-break: break-word;
}
.v2kb-cmd__row.is-pass { border-color: #B9E2CC; background: #F4FBF7; }
.v2kb-cmd__row.is-pass .v2-mono { color: #0B8A47; }
.v2kb-cmd__row.is-pass b { color: #076B36; }
.v2kb-cmd__row.is-fail { border-color: #F3C7D0; background: #FDF6F7; }
.v2kb-cmd__row.is-fail .v2-mono { color: #C2334D; }
.v2kb-cmd__row.is-fail b { color: #9E2038; }
.v2kb-cmd__note {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--slate);
}

@media (max-width: 600px) {
    .v2kb-cmd__rows { grid-template-columns: 1fr; }
}

/* ---------- Instrument 09: the environment picker ---------- */

.v2kb-env__name {
    margin: 0 0 4px;
    font-size: 17px;
    font-weight: 660;
    color: var(--ink);
}
.v2kb-env__req {
    margin: 0 0 14px;
    font-size: 11.5px;
    line-height: 1.55;
    color: #4335C4;
    background: #EFEDFD;
    border: 1px solid #C9C2F5;
    border-radius: 8px;
    padding: 7px 11px;
    display: inline-block;
}
.v2kb-env__steps {
    counter-reset: kbenv;
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}
.v2kb-env__steps li {
    counter-increment: kbenv;
    position: relative;
    padding-right: 30px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--ink);
}
.v2kb-env__steps li::before {
    content: counter(kbenv);
    position: absolute;
    right: 0;
    top: 1px;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    font-family: var(--font-mono);
    font-size: 10.5px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.v2kb-env__lim {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 12px 14px;
    margin-bottom: 18px;
}
.v2kb-env__lim .v2-mono {
    display: block;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 5px;
}
.v2kb-env__lim p:last-child {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}

.v2kb-gate {
    background: #10161E;
    border-radius: 13px;
    padding: 15px 16px 16px;
}
.v2kb-gate__lab {
    margin: 0;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #8E80F0;
}
.v2kb-gate .v2kb-code { background: rgba(255, 255, 255, .05); margin: 10px 0 10px; }
.v2kb-gate__need {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: rgba(255, 255, 255, .68);
}
.v2kb-gate__need b { color: #6FE3A6; }

@media (max-width: 768px) {
    .v2kb-env__name { font-size: 15.5px; }
    .v2kb-env__req { font-size: 11px; }
}

/* ---------- Instrument 10: the stuck-warning triage ---------- */

.v2kb-tri {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}
.v2kb-tri__list {
    display: grid;
    gap: 4px;
    max-height: 380px;
    overflow-y: auto;
    padding-left: 4px;
}
.v2kb-tri__list::-webkit-scrollbar { width: 5px; }
.v2kb-tri__list::-webkit-scrollbar-thumb { background: #D3DAE1; border-radius: 999px; }
.v2kb-tri__list button {
    font: inherit;
    font-size: 12.5px;
    line-height: 1.45;
    text-align: right;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid transparent;
    border-radius: 9px;
    padding: 9px 11px;
    cursor: pointer;
    transition: border-color .16s ease, color .16s ease, background .16s ease;
}
.v2kb-tri__list button:hover { color: var(--ink); border-color: #C9C2F5; }
.v2kb-tri__list button.is-on {
    background: #FAF9FF;
    border-color: #C9C2F5;
    border-right-color: #5A4BE0;
    color: var(--ink);
    font-weight: 600;
}
.v2kb-tri__list button:focus-visible { outline: 2px solid #5A4BE0; outline-offset: 1px; }
.v2kb-tri__list code { font-size: .88em; }

.v2kb-tri__pane {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 16px 18px;
}
.v2kb-tri__sym {
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 660;
    line-height: 1.4;
    color: var(--ink);
}
.v2kb-tri__row {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    margin-bottom: 8px;
}
.v2kb-tri__row:last-child { margin-bottom: 0; }
.v2kb-tri__row .v2-mono {
    display: block;
    font-size: 9.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 5px;
}
.v2kb-tri__row p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2kb-tri__row.is-do { border-color: #B9E2CC; background: #F4FBF7; }
.v2kb-tri__row.is-do .v2-mono { color: #0B8A47; }
.v2kb-tri__row.is-dont { border-color: #F3C7D0; background: #FDF6F7; }
.v2kb-tri__row.is-dont .v2-mono { color: #C2334D; }

@media (max-width: 900px) {
    .v2kb-tri { grid-template-columns: 1fr; }
    .v2kb-tri__list { max-height: 230px; }
}
@media (max-width: 768px) {
    .v2kb-tri__pane { padding: 14px; }
    .v2kb-tri__sym { font-size: 14.5px; }
}

/* ---------- Instrument 11: the reported library index ---------- */

.v2kb-libs__count {
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    margin: 0 0 12px;
}
.v2kb-libs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.v2kb-lib {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 15px;
}
.v2kb-lib__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 9px;
    margin-bottom: 5px;
}
.v2kb-lib__top b { font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.3; }
.v2kb-lib__file {
    margin: 0 0 8px;
    font-size: 11px;
    color: #4335C4;
    word-break: break-all;
}
.v2kb-lib p:last-child {
    margin: 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}

@media (max-width: 768px) { .v2kb-libs { grid-template-columns: 1fr; } }

/* ---------- Section 12: the two-requirement comparison ---------- */

.v2kb-vs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 20px 0 24px;
}
.v2kb-vs__col {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2kb-vs__col.is-key { border-color: #C9C2F5; background: #FAF9FF; }
.v2kb-vs__tag {
    margin: 0 0 5px;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2kb-vs__col.is-key .v2kb-vs__tag { color: #5A4BE0; }
.v2kb-vs__col > b {
    display: block;
    font-size: 17px;
    font-weight: 680;
    color: var(--ink);
    margin-bottom: 12px;
}
.v2kb-vs__col ul { display: grid; gap: 9px; }
.v2kb-vs__col li {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    padding-right: 0;
}
.v2kb-vs__col li .v2-mono {
    display: block;
    font-size: 9.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 2px;
}

@media (max-width: 768px) { .v2kb-vs { grid-template-columns: 1fr; } }

/* ---------- Instrument 12: the release gate tracker ---------- */

.v2kb-gate__top {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 16px;
    margin-bottom: 16px;
    border-bottom: 1px solid var(--line);
}
.v2kb-ring { position: relative; width: 72px; height: 72px; flex-shrink: 0; }
.v2kb-ring svg { width: 72px; height: 72px; transform: rotate(90deg); }
.v2kb-ring circle { fill: none; stroke-width: 6; }
.v2kb-ring__bg { stroke: var(--mist); }
.v2kb-ring__fg {
    stroke: #5A4BE0;
    stroke-linecap: round;
    transition: stroke-dashoffset .4s ease, stroke .3s ease;
}
.v2kb-ring b {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 650;
    color: var(--ink);
}
.v2kb-gate__count {
    margin: 0 0 4px;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #5A4BE0;
}
.v2kb-gate__msg {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2kb-gate__list { display: grid; gap: 6px; }
.v2kb-gate__list label {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease;
}
.v2kb-gate__list label:hover { border-color: #C9C2F5; }
.v2kb-gate__list input { position: absolute; opacity: 0; width: 0; height: 0; }
.v2kb-gate__face {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    border: 1.5px solid #C6CDD5;
    background: var(--paper);
    position: relative;
    margin-top: 1px;
    transition: background .16s ease, border-color .16s ease;
}
.v2kb-gate__face::after {
    content: "";
    position: absolute;
    right: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #fff;
    border-width: 0 0 2px 2px;
    transform: rotate(-45deg) scale(0);
    transition: transform .16s ease;
}
.v2kb-gate__list input:checked + .v2kb-gate__face {
    background: #0B8A47;
    border-color: #0B8A47;
}
.v2kb-gate__list input:checked + .v2kb-gate__face::after { transform: rotate(-45deg) scale(1); }
.v2kb-gate__list input:focus-visible + .v2kb-gate__face { outline: 2px solid #5A4BE0; outline-offset: 2px; }
.v2kb-gate__list b {
    display: block;
    font-size: 14px;
    font-weight: 620;
    color: var(--ink);
    line-height: 1.35;
}
.v2kb-gate__list em {
    display: block;
    font-style: normal;
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2kb-gate__list input:checked ~ b { color: var(--slate); }
.v2kb-gate__list code { font-size: .85em; }
#kbGate.is-done .v2kb-ring__fg { stroke: #0B8A47; }
#kbGate.is-done .v2kb-gate__count { color: #0B8A47; }

@media (max-width: 768px) {
    .v2kb-gate__top { gap: 12px; }
    .v2kb-ring, .v2kb-ring svg { width: 60px; height: 60px; }
    .v2kb-ring b { font-size: 12.5px; }
    .v2kb-gate__msg { font-size: 12.5px; }
    .v2kb-gate__list label { grid-template-columns: 20px minmax(0, 1fr); gap: 9px; padding: 10px 11px; }
    .v2kb-gate__list b { font-size: 13.5px; }
}

/* ---------- Close: the decay panel ---------- */

.v2kb-decay {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px 20px;
    margin: 22px 0 8px;
}
.v2kb-decay__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2kb-decay__tag svg { width: 15px; height: 15px; color: #5A4BE0; }
.v2kb-decay__list { display: grid; gap: 10px; }
.v2kb-decay__list li {
    font-size: 13.5px;
    line-height: 1.68;
    color: var(--slate);
    padding-right: 16px;
    position: relative;
}
.v2kb-decay__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #C9C2F5;
}
.v2kb-decay__list b { color: var(--ink); font-weight: 640; }
.v2kb-decay__foot {
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 10.5px;
    letter-spacing: .04em;
    color: var(--faint);
}

@media (max-width: 768px) {
    .v2kb-decay { padding: 15px 15px; }
    .v2kb-decay__list li { font-size: 13px; }
}

/* ---------- Global safety nets for this post ---------- */

.v2kb-prose .v2gpr-tool__body > *:last-child { margin-bottom: 0; }
.v2kb-prose img,
.v2kb-prose table,
.v2kb-prose pre { max-width: 100%; }
.v2kb-prose .v2gpr-tool { max-width: 100%; overflow: hidden; }

/* ============= END BLOG 16KB V2 ============= */

/* The 16 KB post's author band uses an H3 (not the shared H4) so the
   document outline never skips a level after the Bottom Line H2.
   Mirrors .v2gpr-author__body h4 exactly; only this post emits it. */
.v2gpr-author__body h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.015em;
    margin: 0;
}
.v2gpr-author__body h3 a { color: var(--ink); text-decoration: none; }
.v2gpr-author__body h3 a:hover { color: var(--go-deep); }

/* Narrow rails: three nowrap milestone labels do not fit side by side on a
   phone, so drop the trailing qualifier word ("original" / "extension" /
   "current") and retighten the first/last offsets to the shorter width.
   The dates themselves are the load-bearing part of the visual. */
@media (max-width: 560px) {
    .v2kb-clock__mil em span { display: none; }
    .v2kb-clock__mil.is-first em { transform: translateX(calc(-1*(-50% + 28px))); }
    .v2kb-clock__mil.is-last em { transform: translateX(calc(-1*(-50% - 28px))); }
}

/* Release-gate rows are a 2-column grid with THREE in-flow children (face,
   b, em), so em auto-placed into the 22px checkbox column and wrapped one
   word per line. Pin each child to its column explicitly. */
.v2kb-gate__list .v2kb-gate__face { grid-column: 1; grid-row: 1; }
.v2kb-gate__list b,
.v2kb-gate__list em { grid-column: 2; min-width: 0; }

/* ---------- v2kb: button-reset escape hatch ----------
   `.v2 button` (line ~49) is specificity (0,1,1) and resets font,
   background, border, colour and padding on every <button> inside the
   V2 shell. Single-class rules like `.v2kb-tabs__t` are (0,1,0) and
   lose to it, so the pills rendered as bare text. Descendant rules
   such as `.v2kb-walk__opts button` are (0,1,1) and already win on
   source order; only the class-on-the-button rules need re-stating at
   higher specificity. Same trap the hch chips and inv copy buttons
   hit - see the notes at lines ~9292 and ~33281. */

.v2 .v2kb-seg__btn {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 560;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 9px 12px;
}
.v2 .v2kb-seg__btn:hover { border-color: #C9C2F5; color: var(--ink); background: var(--paper); }
.v2 .v2kb-seg__btn.is-on { background: #5A4BE0; border-color: #5A4BE0; color: #fff; }

.v2 .v2kb-tabs__t {
    font-size: 12.5px;
    font-weight: 580;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 7px 14px;
}
.v2 .v2kb-tabs__t:hover { color: var(--ink); border-color: #C9C2F5; }
.v2 .v2kb-tabs__t.is-on { background: #EFEDFD; border-color: #5A4BE0; color: #4335C4; }

.v2 .v2kb-btn {
    font-size: 13px;
    font-weight: 600;
    color: #fff;
    background: #5A4BE0;
    border: 1px solid #5A4BE0;
    border-radius: 10px;
    padding: 9px 18px;
}
.v2 .v2kb-btn:hover { background: #4335C4; border-color: #4335C4; }
.v2 .v2kb-btn.is-ghost { background: var(--paper); color: var(--slate); border-color: var(--line); }
.v2 .v2kb-btn.is-ghost:hover { border-color: #C9C2F5; color: var(--ink); background: var(--paper); }

.v2 .v2kb-reset {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    background: none;
    border: 0;
    border-bottom: 1px solid var(--line);
    padding: 0 0 2px;
    margin-top: 14px;
}
.v2 .v2kb-reset:hover { color: var(--ink); border-bottom-color: var(--slate); }

.v2 .v2kb-code__copy {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #9AA6B4;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 7px;
    padding: 4px 9px;
}
.v2 .v2kb-code__copy:hover { color: #fff; background: rgba(255, 255, 255, .14); }
.v2 .v2kb-code__copy.is-done { color: #6FE3A6; border-color: rgba(111, 227, 166, .4); }

@media (max-width: 480px) {
    .v2 .v2kb-seg__btn { width: 100%; }
    .v2 .v2kb-tabs__t { font-size: 11.5px; padding: 6px 11px; }
}

/* Decision tree, deep-nesting widths.
   Each split halves the space available to the next one, so by the third
   level the columns were ~95px and PAGE_ALIGNMENT_16K wrapped mid-token.
   Give the "main" branch more of each split, and let the third level -
   two terminal verdicts, no further questions - stack instead of split. */
.v2kb-tree__split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); }
.v2kb-tree__branch .v2kb-tree__split { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); }
.v2kb-tree__branch .v2kb-tree__branch .v2kb-tree__split { grid-template-columns: minmax(0, 1fr); }

/* Inside the tree, tokens are short enough to fit once the columns are
   sane, so drop the article-wide anywhere-break that was splitting
   PAGE_ALIGNMENT_16K across lines. */
.v2kb-tree code {
    overflow-wrap: normal;
    word-break: normal;
    font-size: .84em;
}

@media (max-width: 900px) {
    .v2kb-tree__split,
    .v2kb-tree__branch .v2kb-tree__split,
    .v2kb-tree__branch .v2kb-tree__branch .v2kb-tree__split { grid-template-columns: 1fr; }
}

/* ============================================================
   BLOG ADV V2  -  "Android Developer Verification 2026"
   (/blog/android-developer-verification-2026)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, FAQ, bottom line, docs, author,
   related, CTA) and adds a unique v2adv- "compliance board" motif:
   two gates feeding one date, an open-ended 2027 terminus drawn
   deliberately unfinished, evidence-graded chips, a two-layer
   enforcement split, a scope explorer, a pre-submit document
   audit with a readiness meter, a D-U-N-S lead-time planner, a
   symptom triage console and a readiness tracker.

   Dark moments stay at two (quick answer + final CTA).
   No rose/danger palette on this page: the honest reading of the
   sources is "restricted, not deleted", so the strongest state is
   ink-on-mist rather than alarm red.
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2adv-prose ul, .v2adv-prose ol,
.v2adv-split, .v2adv-steps, .v2adv-tl, .v2adv-flow, .v2adv-q__opts,
.v2adv-vd__list, .v2adv-layer ul, .v2adv-docs__c ul, .v2adv-does__col ul,
.v2adv-audit, .v2adv-track, .v2adv-pat__c ul, .v2adv-led ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Evidence grading chips (used across the post) ---------- */

.v2adv-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2adv-ev + .v2adv-ev { margin-right: 6px; }
.v2adv-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2adv-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2adv-ev.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2adv-ev.is-field {
    color: var(--faint);
    background: var(--paper);
    border: 1px dashed #C9D2DA;
}
.v2adv-ev.is-none {
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--ink);
}

/* ---------- Shared prose atoms ---------- */

.v2gpr-prose > p.v2adv-ans,
.v2adv-ans {
    border-right: 3px solid var(--go);
    background: var(--go-tint);
    border-radius: 14px 0 0 14px;
    padding: 16px 20px;
    margin: 20px 0 26px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--ink);
}
.v2gpr-prose > p.v2adv-fine,
.v2adv-fine {
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.02em;
    color: var(--faint);
    margin: 12px 0 22px;
}
.v2gpr-prose > p.v2adv-fine.is-last,
.v2adv-fine.is-last { margin-top: 26px; }
.v2adv-fine a { color: var(--slate); }

/* ---------- Evidence ledger (intro) ---------- */

.v2adv-led {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
}
.v2adv-led__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--faint);
}
.v2adv-led__lab svg { width: 15px; height: 15px; color: var(--slate); }
.v2adv-led ul { display: grid; gap: 11px; }
.v2adv-led li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2adv-led li b { color: var(--ink); font-weight: 650; }
.v2adv-toc { margin-top: 28px; }

/* ---------- Two-gate compliance board (hero signature) ---------- */

.v2adv-board {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 22px 24px 26px;
    margin-top: clamp(24px, 3.5vw, 34px);
    max-width: 900px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 20px 44px -26px rgba(10, 16, 23, 0.18);
}
.v2adv-board__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 18px;
}
.v2adv-board__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    color: var(--faint);
}
.v2adv-board__label svg { width: 14px; height: 14px; color: var(--go); }
.v2adv-board__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    border-radius: 999px;
    padding: 5px 11px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2adv-board__state i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    animation: v2Pulse 2.4s ease-out infinite;
}
.v2adv-board__state.is-live { color: var(--ink); background: var(--mist); border-color: var(--line); }
.v2adv-board__state.is-live i { background: var(--ink); }

.v2adv-board__gates {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.v2adv-gate {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
}
.v2adv-gate__n {
    display: inline-block;
    font-size: 9px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 3px 9px;
    margin-bottom: 10px;
}
.v2adv-gate b {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2adv-gate p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    margin-bottom: 10px;
}
.v2adv-gate__where {
    display: block;
    font-size: 9.5px;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 9px;
    overflow-wrap: anywhere;
}

.v2adv-board__clock {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    margin-bottom: 26px;
}
.v2adv-board__num { text-align: center; min-width: 118px; }
.v2adv-board__num b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.9rem, 1.2rem + 2.2vw, 2.6rem);
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2adv-board__num span {
    display: block;
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2adv-board__num.is-past b { color: var(--faint); }
.v2adv-board__note {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
    border-right: 1px solid var(--line);
    padding-right: 20px;
}

.v2adv-board__rail {
    position: relative;
    height: 2px;
    background: var(--line);
    border-radius: 2px;
    margin: 0 6px 58px;
}
.v2adv-board__fill {
    position: absolute;
    right: 0;
    top: 0;
    height: 2px;
    background: var(--go);
    border-radius: 2px;
}
.v2adv-board__mil {
    position: absolute;
    top: 0;
    transform: translateX(50%);
}
.v2adv-board__mil i {
    display: block;
    width: 11px;
    height: 11px;
    margin: -4.5px auto 0;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2adv-board__mil.is-done i { background: var(--go); border-color: var(--go); }
.v2adv-board__mil.is-key i {
    width: 14px;
    height: 14px;
    margin-top: -6px;
    background: var(--paper);
    border: 3px solid var(--ink);
}
.v2adv-board__mil.is-key.is-done i { background: var(--ink); }
.v2adv-board__mil em {
    display: block;
    margin-top: 9px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-style: normal;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
    text-align: center;
}
.v2adv-board__mil.is-key em { color: var(--ink); font-weight: 700; }
.v2adv-board__mil.is-first em { transform: translateX(-28%); }
/* Pull the final (left:100%) label back inside the board. It is keyed off an
   explicit .is-end class, NOT :last-of-type: the "Today" marker is another
   <span> in the same rail, so :last-of-type matched IT and the September 30
   caption overflowed the board's right edge. */
.v2adv-board__mil.is-end em { transform: translateX(26%); }
.v2adv-board__now {
    position: absolute;
    top: 0;
    transform: translateX(50%);
}
.v2adv-board__now s {
    display: block;
    width: 1px;
    height: 26px;
    margin: 4px auto 0;
    background: #C9D2DA;
}
.v2adv-board__now em {
    display: block;
    font-family: var(--font-mono);
    font-size: 8.5px;
    font-style: normal;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 8px;
    margin-top: -30px;
    white-space: nowrap;
}

.v2adv-board__open {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    border: 1px dashed #C9D2DA;
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 16px;
}
.v2adv-board__dash {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: repeating-linear-gradient(-90deg, #C9D2DA 0 6px, transparent 6px 12px);
}
.v2adv-board__open p {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2adv-board__open b {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2adv-board__foot {
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.75;
    letter-spacing: 0.02em;
    color: var(--faint);
}
.v2adv-board__foot b { color: var(--ink); }

@media (max-width: 720px) {
    .v2adv-board { padding: 18px 16px 20px; }
    .v2adv-board__gates { grid-template-columns: minmax(0, 1fr); }
    .v2adv-board__clock { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .v2adv-board__num { text-align: right; }
    .v2adv-board__note { border-right: 0; border-top: 1px solid var(--line); padding: 14px 0 0; }
    .v2adv-board__rail { margin-bottom: 52px; }
    .v2adv-board__mil em { font-size: 8px; letter-spacing: 0.04em; white-space: normal; width: 66px; }
    /* Four labels on a 340px rail collide (Jun 18 ran into Jul 22). Keep the
       dots so progress still reads, drop the two intermediate captions: the
       same milestones are spelled out in full in the timeline section below. */
    .v2adv-board__mil:not(.is-first):not(.is-key) em { display: none; }
    .v2adv-board__mil.is-first em { transform: translateX(-34%); }
    .v2adv-board__mil.is-end em { transform: translateX(32%); }
    .v2adv-board__now { display: none; }
    .v2adv-board__open { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2adv-board__dash { width: 46px; }
}

/* ---------- Quoted-fragment block ---------- */

.v2adv-quote {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 24px 0;
}
.v2adv-quote__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 12px;
}
.v2adv-quote__tag svg { width: 16px; height: 16px; color: var(--slate); }
.v2adv-quote > p:not([class]) {
    font-size: 15px;
    line-height: 1.85;
    color: var(--ink);
    font-weight: 500;
}
.v2adv-quote__src {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.8;
    letter-spacing: 0.02em;
    color: var(--faint);
}

/* ---------- Two-column split (gate 1 / gate 2) ---------- */

.v2adv-split {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2adv-sp {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2adv-sp.is-two { background: var(--mist); }
.v2adv-sp__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    padding: 4px 10px;
    margin-bottom: 12px;
}
.v2adv-sp__tag svg { width: 14px; height: 14px; }
.v2adv-sp h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17.5px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2adv-sp > p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
    margin-bottom: 12px;
}
.v2adv-sp ul { display: grid; gap: 9px; }
.v2adv-sp li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2adv-sp li b { color: var(--ink); font-weight: 650; }

@media (max-width: 720px) {
    .v2adv-split { grid-template-columns: minmax(0, 1fr); }
    .v2adv-sp { padding: 17px 18px; }
}

/* ---------- Ordered step cards (the one-minute answer) ---------- */

.v2adv-steps { display: grid; gap: 12px; margin: 24px 0; }
.v2adv-steps > li {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 19px;
}
.v2adv-steps__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 11px;
    color: var(--ink);
    font-weight: 700;
}
.v2adv-steps h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    letter-spacing: -0.013em;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2adv-steps p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }

@media (max-width: 560px) {
    .v2adv-steps > li { grid-template-columns: 32px minmax(0, 1fr); gap: 12px; padding: 15px 16px; }
    .v2adv-steps__n { width: 32px; height: 32px; border-radius: 9px; font-size: 10px; }
}

/* ---------- Chronology rail ---------- */

.v2adv-tl {
    position: relative;
    display: grid;
    gap: 4px;
    margin: 26px 0;
    padding-right: 4px;
}
.v2adv-tl__i {
    position: relative;
    display: grid;
    grid-template-columns: 132px minmax(0, 1fr);
    gap: 20px;
    padding: 0 0 22px 0;
}
.v2adv-tl__i::before {
    content: "";
    position: absolute;
    right: 138px;
    top: 8px;
    bottom: -6px;
    width: 2px;
    background: var(--line);
}
.v2adv-tl__i:last-child::before { display: none; }
.v2adv-tl__i::after {
    content: "";
    position: absolute;
    right: 133px;
    top: 5px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2adv-tl__i.is-done::after { background: var(--go); border-color: var(--go); }
.v2adv-tl__i.is-key::after {
    width: 14px;
    height: 14px;
    right: 132px;
    top: 4px;
    border-width: 3px;
    border-color: var(--ink);
    background: var(--paper);
}
.v2adv-tl__i.is-key.is-done::after { background: var(--ink); }
.v2adv-tl__i.is-open::after {
    background: var(--paper);
    border-style: dashed;
    border-color: #C9D2DA;
}
.v2adv-tl__i.is-open::before { background: repeating-linear-gradient(-180deg, #C9D2DA 0 5px, transparent 5px 10px); }
.v2adv-tl__d {
    text-align: left;
    padding-top: 4px;
    font-size: 10px;
    color: var(--faint);
    line-height: 1.5;
}
.v2adv-tl__i.is-key .v2adv-tl__d { color: var(--ink); font-weight: 700; }
.v2adv-tl__b { padding-right: 20px; }
.v2adv-tl__b h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    letter-spacing: -0.013em;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2adv-tl__b p { font-size: 14.5px; line-height: 1.72; color: var(--slate); }
.v2adv-tl__inf {
    margin-top: 9px;
    font-size: 13.5px !important;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 13px;
}
.v2adv-tl__inf b { color: var(--ink); }
.v2adv-tl__i.is-next .v2adv-tl__b h4 { color: var(--go-deep); }

@media (max-width: 720px) {
    .v2adv-tl { padding-right: 0; }
    .v2adv-tl__i { grid-template-columns: minmax(0, 1fr); gap: 6px; padding-right: 26px; padding-bottom: 20px; }
    .v2adv-tl__i::before { right: 5px; top: 20px; }
    .v2adv-tl__i::after { right: 0; top: 5px; }
    .v2adv-tl__i.is-key::after { right: -1px; top: 4px; }
    .v2adv-tl__d { text-align: right; padding-top: 2px; }
    .v2adv-tl__b { padding-right: 0; }
}

/* ---------- Two enforcement layers ---------- */

.v2adv-layers {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2adv-layer {
    border-radius: 16px;
    padding: 20px 22px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2adv-layer.is-a { border-right: 3px solid var(--ink); }
.v2adv-layer.is-b { background: var(--mist); }
.v2adv-layer__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    color: var(--faint);
    margin-bottom: 10px;
}
.v2adv-layer__tag svg { width: 15px; height: 15px; color: var(--slate); }
.v2adv-layer h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2adv-layer__scope {
    font-size: 13px;
    color: var(--slate);
    margin-bottom: 13px;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
.v2adv-layer__scope b { color: var(--ink); }
.v2adv-layer ul { display: grid; gap: 9px; }
.v2adv-layer li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2adv-layer li b { color: var(--ink); font-weight: 650; }
.v2adv-layer__foot {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
}

@media (max-width: 720px) {
    .v2adv-layers { grid-template-columns: minmax(0, 1fr); }
    .v2adv-layer { padding: 17px 18px; }
}

/* ---------- Country cards + store chips ---------- */

.v2adv-geo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0 22px;
}
.v2adv-geo__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 14px;
    text-align: center;
}
.v2adv-geo__c b {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2adv-geo__c span { display: block; margin-top: 5px; font-size: 9px; color: var(--faint); }

.v2adv-stores {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 18px 0 10px;
}
.v2adv-store {
    display: inline-flex;
    align-items: center;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 7px 13px;
}
.v2adv-store.is-play {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}

@media (max-width: 640px) {
    .v2adv-geo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Tool inputs: question blocks + option pills ---------- */

.v2adv-q { margin-bottom: 20px; }
.v2adv-q__lab {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 11px;
}
.v2adv-q__lab b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: var(--ink);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 700;
    flex-shrink: 0;
}
.v2adv-q__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.v2adv-opt { display: inline-flex; cursor: pointer; }
.v2adv-opt input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2adv-opt__face {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 9px 15px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--slate);
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2adv-opt:hover .v2adv-opt__face { border-color: #C9D2DA; color: var(--ink); }
.v2adv-opt input:checked + .v2adv-opt__face {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.4);
    color: var(--go-deep);
}
.v2adv-opt input:focus-visible + .v2adv-opt__face {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2adv-q__reset {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2adv-q__reset p {
    font-family: var(--font-mono);
    font-size: 10px;
    line-height: 1.7;
    letter-spacing: 0.02em;
    color: var(--faint);
    max-width: 460px;
}
.v2 .v2adv-clear {
    appearance: none;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 8px 15px;
    min-height: 38px;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.18s ease, color 0.18s ease;
}
.v2 .v2adv-clear:hover { border-color: #C9D2DA; color: var(--ink); }

@media (max-width: 560px) {
    .v2adv-opt { width: 100%; }
    .v2adv-opt__face { width: 100%; }
    .v2 .v2adv-clear { width: 100%; }
    .v2adv-q__reset { flex-direction: column; align-items: stretch; }
}

/* ---------- Verdict card (scope explorer output) ---------- */

.v2adv-vd {
    border-radius: 14px;
    padding: 19px 21px;
    border: 1px solid var(--line);
    background: var(--paper);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.32s ease, transform 0.32s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2adv-vd.is-on { opacity: 1; transform: none; }
.v2adv-vd.is-ok { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.24); }
.v2adv-vd.is-act { background: var(--mist); border-right: 3px solid var(--ink); }
.v2adv-vd.is-block { background: var(--paper); border-right: 3px solid var(--ink); }
.v2adv-vd__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 14px;
    margin-bottom: 12px;
}
.v2adv-vd__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--ink);
}
.v2adv-vd.is-ok .v2adv-vd__state { color: var(--go-deep); }
.v2adv-vd__state svg { width: 16px; height: 16px; }
.v2adv-vd__date {
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
}
.v2adv-vd h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.014em;
    line-height: 1.32;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2adv-vd > p { font-size: 14.5px; line-height: 1.72; color: var(--slate); }
.v2adv-vd__list { display: grid; gap: 9px; margin-top: 14px; }
.v2adv-vd__list li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2adv-vd__list li b { color: var(--ink); font-weight: 650; }
.v2adv-vd__go {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 15px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2adv-vd__go a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
}
.v2adv-vd__go a svg { width: 15px; height: 15px; }
.v2adv-vd__go a:hover { text-decoration: underline; }

/* ---------- "Where to look" cards ---------- */

.v2adv-where {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2adv-where__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 17px 19px;
}
.v2adv-where__n {
    display: inline-block;
    font-size: 9px;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
    margin-bottom: 10px;
}
.v2adv-where__c b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15.5px;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2adv-where__c p { font-size: 13.5px; line-height: 1.68; color: var(--slate); }

@media (max-width: 640px) {
    .v2adv-where { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Tables ---------- */

.v2adv-tw {
    margin: 24px 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2adv-tbl {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--paper);
}
.v2adv-tbl.is-wide { min-width: 700px; }
.v2adv-tbl.is-vs { min-width: 680px; }
/* Table captions: named so screen-reader users know what each comparison
   answers before entering the grid. Visually quiet, not hidden, because the
   caption doubles as a one-line summary for sighted readers too. */
.v2adv-cap {
    caption-side: top;
    text-align: right;
    padding: 13px 16px 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
    background: var(--mist);
}

.v2adv-tbl thead th {
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 13px 16px;
    white-space: nowrap;
}
.v2adv-tbl tbody th {
    text-align: right;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.55;
    padding: 14px 16px;
    vertical-align: top;
    width: 27%;
}
.v2adv-tbl tbody td {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    padding: 14px 16px;
    vertical-align: top;
}
.v2adv-tbl tbody tr + tr th,
.v2adv-tbl tbody tr + tr td { border-top: 1px solid var(--line); }
.v2adv-tbl tbody td b, .v2adv-tbl tbody th b { color: var(--ink); font-weight: 700; }
.v2adv-tbl tbody tr.is-other { background: var(--mist); }
.v2adv-tbl tbody tr.is-hot th { color: var(--ink); }
.v2adv-tbl tbody tr.is-hot { background: var(--go-tint); }
.v2adv-tbl tbody tr.is-hot td { color: var(--ink); }
.v2adv-path {
    display: inline-block;
    font-size: 10px;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 5px 9px;
    line-height: 1.5;
}

/* Tables become stacked cards below 720px.
   The overflow-x wrapper is technically scrollable, but a 620-700px table
   inside a ~333px column shows half of two columns and reads as broken
   markup, not as a scroll affordance. Each row becomes its own card, the
   row header becomes the card title, and every cell is labelled from its
   column header via data-label. Same pattern as the .v2adv-vs showdown. */
@media (max-width: 720px) {
    .v2adv-tw {
        border: 0;
        border-radius: 0;
        overflow-x: visible;
    }
    .v2adv-tbl,
    .v2adv-tbl.is-wide,
    .v2adv-tbl.is-vs {
        min-width: 0;
        width: 100%;
        display: block;
        background: transparent;
    }
    .v2adv-tbl thead { display: none; }
    .v2adv-cap { display: block; background: transparent; padding: 0 2px 12px; }
    .v2adv-tbl tbody { display: grid; gap: 10px; }
    .v2adv-tbl tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 14px;
        overflow: hidden;
    }
    .v2adv-tbl tbody tr.is-other { background: var(--paper); border-color: #C9D2DA; }
    .v2adv-tbl tbody tr.is-hot { background: var(--paper); border-color: rgba(11, 138, 71, 0.3); }
    .v2adv-tbl tbody th,
    .v2adv-tbl tbody td { display: block; width: auto; }
    .v2adv-tbl tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 13px 15px;
        font-size: 14px;
        line-height: 1.45;
    }
    .v2adv-tbl tbody tr.is-hot th { background: var(--go-tint); color: var(--go-deep); }
    .v2adv-tbl tbody td { padding: 12px 15px 14px; font-size: 13.5px; }
    /* the desktop row-separator borders would land between stacked cells */
    .v2adv-tbl tbody tr + tr th,
    .v2adv-tbl tbody tr + tr td { border-top: 0; }
    .v2adv-tbl tbody tr + tr th { border-bottom: 1px solid var(--line); }
    .v2adv-tbl tbody td + td { border-top: 1px solid var(--line); }
    .v2adv-tbl tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
    .v2adv-tbl tbody tr.is-hot td[data-label]::before { color: var(--go-deep); }
}

/* ---------- Does / does not columns ---------- */

.v2adv-does {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2adv-does__col {
    border-radius: 16px;
    padding: 19px 21px;
    border: 1px solid var(--line);
}
.v2adv-does__col.is-yes { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2adv-does__col.is-no { background: var(--mist); }
.v2adv-does__lab { margin-bottom: 13px; }
.v2adv-does__col.is-yes .v2adv-does__lab { color: var(--go-deep); }
.v2adv-does__col ul { display: grid; gap: 10px; }
.v2adv-does__col li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}

@media (max-width: 720px) {
    .v2adv-does { grid-template-columns: minmax(0, 1fr); }
    .v2adv-does__col { padding: 16px 17px; }
}

/* ---------- Manual registration flow ---------- */

.v2adv-flow {
    display: grid;
    gap: 0;
    margin: 24px 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
}
.v2adv-flow > li {
    position: relative;
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    gap: 0;
    background: var(--paper);
}
.v2adv-flow > li + li { border-top: 1px solid var(--line); }
.v2adv-flow__n {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 18px 0;
    background: var(--mist);
    border-left: 1px solid var(--line);
}
.v2adv-flow__n span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--paper);
    border: 1px solid var(--line);
    font-size: 10.5px;
    font-weight: 700;
    color: var(--ink);
}
.v2adv-flow > li.is-last .v2adv-flow__n span {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.3);
    color: var(--go-deep);
}
.v2adv-flow__b { padding: 17px 20px; }
.v2adv-flow__b h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    letter-spacing: -0.013em;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2adv-flow__b p { font-size: 14px; line-height: 1.7; color: var(--slate); }

@media (max-width: 560px) {
    .v2adv-flow > li { grid-template-columns: 46px minmax(0, 1fr); }
    .v2adv-flow__n { padding: 15px 0; }
    .v2adv-flow__n span { width: 26px; height: 26px; border-radius: 8px; font-size: 9.5px; }
    .v2adv-flow__b { padding: 15px 16px; }
}

/* ---------- Country-specific document examples ---------- */

.v2adv-docs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0;
}
.v2adv-docs__c {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 19px 21px;
}
.v2adv-docs__lab { margin-bottom: 13px; color: var(--faint); }
.v2adv-docs__c ul { display: grid; gap: 9px; }
.v2adv-docs__c li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

@media (max-width: 640px) {
    .v2adv-docs { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Checkbox rows: pre-submit audit + readiness tracker ---------- */

.v2adv-audit, .v2adv-track { display: grid; gap: 10px; }
.v2adv-audit__row, .v2adv-track__row {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 15px 17px;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2adv-audit__row:hover, .v2adv-track__row:hover { border-color: #C9D2DA; }
.v2adv-audit__row input, .v2adv-track__row input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2adv-audit__box, .v2adv-track__box {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: var(--mist);
    border: 1px solid #C9D2DA;
    background-position: center;
    background-repeat: no-repeat;
    background-size: 12px;
    margin-top: 1px;
    transition: background-color 0.18s ease, border-color 0.18s ease;
}
.v2adv-audit__row input:checked ~ .v2adv-audit__box,
.v2adv-track__row input:checked ~ .v2adv-track__box {
    background-color: var(--go);
    border-color: var(--go);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.2 6.4 4.8 9l5-6' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2adv-audit__row input:focus-visible ~ .v2adv-audit__box,
.v2adv-track__row input:focus-visible ~ .v2adv-track__box {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2adv-audit__row input:checked ~ .v2adv-audit__txt b,
.v2adv-track__row input:checked ~ .v2adv-track__txt b { color: var(--go-deep); }
.v2adv-audit__txt, .v2adv-track__txt {
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}
.v2adv-audit__txt b, .v2adv-track__txt b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.45;
    margin-bottom: 5px;
    transition: color 0.18s ease;
}
.v2adv-track__txt a {
    display: inline-block;
    margin-top: 7px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
}
.v2adv-track__txt a:hover { text-decoration: underline; }

/* ---------- Readiness meter (shared by both trackers) ---------- */

.v2adv-meter {
    margin-top: 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
}
.v2adv-meter__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.v2adv-meter__top .v2-mono { font-size: 10px; }
.v2adv-meter__top b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 19px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2adv-meter__track {
    height: 7px;
    border-radius: 999px;
    background: #E9EDF1;
    overflow: hidden;
}
.v2adv-meter__track i {
    display: block;
    height: 7px;
    border-radius: 999px;
    background: var(--ink);
    transition: width 0.35s cubic-bezier(0.22, 0.8, 0.26, 1), background 0.25s ease;
}
.v2adv-meter.is-ready .v2adv-meter__track i { background: var(--go); }
.v2adv-meter.is-ready .v2adv-meter__top b { color: var(--go-deep); }
.v2adv-meter__msg {
    margin-top: 12px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2adv-meter__msg b { color: var(--ink); font-weight: 700; }
.v2adv-meter.is-ready .v2adv-meter__msg b { color: var(--go-deep); }

/* ---------- D-U-N-S lead-time planner ---------- */

.v2adv-duns {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px;
    margin: 24px 0;
}
.v2adv-duns.is-tight { border-right: 3px solid var(--ink); background: var(--mist); }
.v2adv-duns.is-past { background: var(--mist); }
.v2adv-duns__head { margin-bottom: 16px; }
.v2adv-duns__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2adv-duns__tag svg { width: 14px; height: 14px; color: var(--slate); }
.v2adv-duns__head h3 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    letter-spacing: -0.014em;
    color: var(--ink);
}
.v2adv-duns__nums {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    margin-bottom: 16px;
}
.v2adv-duns__num {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px 16px;
    text-align: center;
}
.v2adv-duns.is-tight .v2adv-duns__num { background: var(--paper); }
.v2adv-duns__num b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.6rem, 1.1rem + 1.6vw, 2.1rem);
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2adv-duns.is-fits .v2adv-duns__num:first-child b { color: var(--go-deep); }
.v2adv-duns__num span { display: block; margin-top: 7px; font-size: 9px; color: var(--faint); }
.v2adv-duns__vs {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2adv-duns__verdict {
    font-size: 14.5px;
    line-height: 1.72;
    color: var(--slate);
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2adv-duns__verdict b { color: var(--ink); font-weight: 650; }
.v2adv-duns__src {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    line-height: 1.75;
    letter-spacing: 0.02em;
    color: var(--faint);
}

@media (max-width: 560px) {
    .v2adv-duns { padding: 17px 18px; }
    .v2adv-duns__nums { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2adv-duns__vs { text-align: center; }
}

/* ---------- Symptom triage console ---------- */

.v2adv-tri {
    display: grid;
    grid-template-columns: 232px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}
/* All ten symptoms are shown at once on desktop. An earlier max-height +
   overflow-y version clipped the last chip mid-row, which reads as broken
   rather than scrollable. The rail is the tallest column, and the pane
   stretches to match it. */
.v2adv-tri__rail {
    display: grid;
    align-content: start;
    gap: 6px;
}
.v2 .v2adv-tri__chip {
    appearance: none;
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 10px 13px;
    min-height: 40px;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--slate);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2 .v2adv-tri__chip:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2adv-tri__chip.is-on {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}
.v2adv-tri__pane {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 19px 21px;
}
.v2 .v2adv-tri__pane:focus-visible { outline: none; }
.v2adv-tri__pane.is-in { animation: v2advFade 0.3s ease; }
@keyframes v2advFade {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}
.v2adv-tri__lab { color: var(--faint); margin-bottom: 7px; }
.v2adv-tri__lab + p { margin-bottom: 0; }
.v2adv-tri__pane h4 {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.014em;
    line-height: 1.32;
    color: var(--ink);
    margin-bottom: 9px;
}
.v2adv-tri__pane p { font-size: 14px; line-height: 1.72; color: var(--slate); }
.v2adv-tri__meta { margin: 14px 0; }
.v2adv-tri__ev { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.v2adv-tri__ev .v2adv-ev + .v2adv-ev { margin-right: 0; }
.v2adv-tri__pane .v2adv-tri__lab:nth-of-type(2) { margin-top: 14px; }

@media (max-width: 860px) {
    .v2adv-tri { grid-template-columns: minmax(0, 1fr); }
    .v2adv-tri__rail {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 2px 2px 8px;
        scrollbar-width: none;
    }
    .v2adv-tri__rail::-webkit-scrollbar { display: none; }
    .v2 .v2adv-tri__chip { flex: 0 0 auto; border-radius: 999px; white-space: nowrap; }
    .v2adv-tri__pane { padding: 17px 18px; }
}

/* ---------- Evidence-strength pattern columns ---------- */

.v2adv-pat {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2adv-pat__c {
    border-radius: 16px;
    padding: 19px 21px;
    border: 1px solid var(--line);
}
.v2adv-pat__c.is-strong { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2adv-pat__c.is-soft { background: var(--paper); border-style: dashed; border-color: #C9D2DA; }
.v2adv-pat__lab { margin-bottom: 13px; color: var(--faint); }
.v2adv-pat__c.is-strong .v2adv-pat__lab { color: var(--go-deep); }
.v2adv-pat__c ul { display: grid; gap: 10px; }
.v2adv-pat__c li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2adv-pat__c li b { color: var(--ink); font-weight: 650; }

@media (max-width: 720px) {
    .v2adv-pat { grid-template-columns: minmax(0, 1fr); }
    .v2adv-pat__c { padding: 16px 17px; }
}

/* ---------- Tracker branch note ---------- */

.v2adv-track__branch {
    margin-top: 16px;
    background: var(--paper);
    border: 1px dashed #C9D2DA;
    border-radius: 14px;
    padding: 16px 18px;
}
.v2adv-track__blab {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2adv-track__blab svg { width: 15px; height: 15px; color: var(--slate); flex-shrink: 0; }
.v2adv-track__branch p { font-size: 13.5px; line-height: 1.72; color: var(--slate); }
.v2adv-track__branch p b { color: var(--ink); font-weight: 700; }
.v2adv-track__branch a { font-weight: 700; color: var(--go-deep); text-decoration: none; }
.v2adv-track__branch a:hover { text-decoration: underline; }

/* ---------- DIY vs managed showdown ---------- */

.v2adv-vs {
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0;
}
.v2adv-vs__row {
    display: grid;
    grid-template-columns: 1.05fr 1.3fr 1.3fr;
    gap: 0;
    border-bottom: 1px solid var(--line);
}
.v2adv-vs__row:last-of-type { border-bottom: 0; }
.v2adv-vs__row.is-head {
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2adv-vs__row.is-head span { padding: 13px 16px; }
.v2adv-vs__row.is-head .is-us { color: var(--go-deep); background: var(--go-tint); }
.v2adv-vs__need {
    padding: 15px 16px;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.5;
    background: var(--paper);
}
.v2adv-vs__cell {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    padding: 15px 16px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    border-right: 1px solid var(--line);
    background: var(--paper);
}
.v2adv-vs__cell.is-us { background: var(--go-tint); }
.v2adv-vs__foot {
    padding: 14px 16px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--faint);
}

@media (max-width: 860px) {
    .v2adv-vs__row { grid-template-columns: minmax(0, 1fr); }
    .v2adv-vs__row.is-head { display: none; }
    .v2adv-vs__need {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        font-size: 13px;
    }
    .v2adv-vs__cell { border-right: 0; }
    .v2adv-vs__cell::before {
        content: attr(data-lab);
        display: block;
        grid-column: 1 / -1;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 4px;
    }
    .v2adv-vs__cell.is-us::before { color: var(--go-deep); }
    .v2adv-vs__row .v2adv-vs__cell + .v2adv-vs__cell { border-top: 1px solid var(--line); }
}

/* ---------- Mid-article CTA row ---------- */

.v2adv-ctarow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0 8px;
}

@media (max-width: 560px) {
    .v2adv-ctarow { flex-direction: column; }
    .v2adv-ctarow .v2-btn { width: 100%; }
}

/* ---------- Article-wide density pass on phones ---------- */

@media (max-width: 560px) {
    .v2gpr-prose > p.v2adv-ans, .v2adv-ans { padding: 14px 16px; font-size: 14.5px; }
    .v2adv-quote { padding: 17px 18px; }
    .v2adv-quote > p:not([class]) { font-size: 14px; }
    .v2adv-led { padding: 17px 18px; }
    .v2adv-where__c, .v2adv-docs__c, .v2adv-pat__c { padding: 16px 17px; }
    .v2adv-audit__row, .v2adv-track__row { padding: 14px 15px; }
    .v2adv-meter { padding: 14px 16px; }
    .v2adv-store { font-size: 12px; padding: 6px 11px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2adv-vd, .v2adv-tri__pane.is-in, .v2adv-meter__track i { transition: none; animation: none; }
    .v2adv-vd { opacity: 1; transform: none; }
    .v2adv-board__state i { animation: none; }
}

/* TOC label icon: the shared .v2gpr-toc__label does not size an inline
   svg, so an unsized icon stretches to the full column width (it rendered
   as three giant grey bars above the section index). Same fix the API 36
   and rejection-rate posts needed. */
.v2adv-toc .v2gpr-toc__label { display: flex; align-items: center; gap: 8px; }
.v2adv-toc .v2gpr-toc__label svg { width: 15px; height: 15px; flex-shrink: 0; }

/* ============= END BLOG ADV V2 ============= */

/* ============================================================
   BLOG TOS V2  -  "Test on Screen on Google Play"
   (/blog/test-on-screen-google-play)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, FAQ, bottom line, docs, author,
   related, CTA) and adds a unique v2tos- "evidence instrument"
   motif. The post's subject is a feature name with no source
   behind it, so the visual language is a laboratory notebook
   rather than a countdown: a claim board with a verified/
   unverified meter, evidence-grade chips on individual
   sentences, a dual-thread timeline, three resolver tools and a
   copyable observation report.

   Written MOBILE FIRST: every grid starts at one column and
   widens at 620px / 900px. Dark moments stay at two (quick
   answer + final CTA). No rose/danger palette in the article
   body except the single "do not rebuild your app" card, because
   the honest reading is "unknown", not "dangerous".
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2tos-prose ul, .v2tos-prose ol,
.v2tos-led ul, .v2tos-kt__list, .v2tos-unk ul, .v2tos-fcard ul,
.v2tos-flow ol, .v2tos-steps ol, .v2tos-proto__col ul, .v2tos-vd__list,
.v2tos-q__opts, .v2tos-tl, .v2tos-decay, .v2tos-fc, .v2tos-three,
.v2tos-facts3, .v2tos-split, .v2tos-myth, .v2tos-why, .v2tos-layers,
.v2tos-proto, .v2tos-rec, .v2tos-nums {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Evidence grading chips (used across the post) ---------- */

.v2tos-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2tos-ev + .v2tos-ev { margin-right: 6px; }
.v2tos-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2tos-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2tos-ev.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2tos-ev.is-field {
    color: var(--faint);
    background: var(--paper);
    border: 1px dashed #C9D2DA;
}
.v2tos-ev.is-none {
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--ink);
}

/* ---------- Shared prose atoms ---------- */

.v2gpr-prose > p.v2tos-ans {
    border-right: 3px solid var(--go);
    background: var(--go-tint);
    border-radius: 14px 0 0 14px;
    padding: 15px 17px;
    margin: 20px 0 26px;
    font-size: 15px;
    line-height: 1.75;
    color: var(--ink);
}
.v2gpr-prose > p.v2tos-fine,
.v2tos-fine {
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.75;
    letter-spacing: 0.02em;
    color: var(--faint);
    margin: 12px 0 22px;
}
.v2tos-fine.is-last { margin-top: 26px; }
.v2tos-fine a { color: var(--slate); }

.v2tos-path {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 3px 7px;
    white-space: nowrap;
}

/* ============================================================
   HERO: THE EVIDENCE BOARD
   ============================================================ */

.v2tos-board {
    margin-top: 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 16px 16px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 18px 40px -26px rgba(10, 16, 23, 0.2);
}
.v2tos-board__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2tos-board__label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--faint);
}
.v2tos-board__label svg { width: 14px; height: 14px; color: var(--slate); }
.v2tos-board__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    color: var(--slate);
}
.v2tos-board__state i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2tos-board__state.is-fresh {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2tos-board__state.is-fresh i { animation: v2tosPulse 2.6s ease-in-out infinite; }
.v2tos-board__state.is-stale { color: var(--ink); border-color: var(--ink); background: var(--paper); }

@keyframes v2tosPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.35; }
}

/* The two verdict cards */
.v2tos-board__verdict {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 16px 0;
}
.v2tos-vc {
    border-radius: 14px;
    padding: 15px 16px;
    border: 1px solid var(--line);
    background: var(--mist);
}
.v2tos-vc__tag {
    display: block;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2tos-vc b {
    display: block;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: -0.016em;
    color: var(--ink);
    line-height: 1.2;
    margin-bottom: 8px;
}
.v2tos-vc p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    margin: 0 0 10px;
}
.v2tos-vc__stamp {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    border-top: 1px dashed var(--line);
    padding-top: 9px;
    width: 100%;
}
.v2tos-vc.is-none { background: var(--paper); border-color: var(--ink); }
.v2tos-vc.is-none .v2tos-vc__tag { color: var(--ink); }
.v2tos-vc.is-yes { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2tos-vc.is-yes b { color: var(--go-deep); }
.v2tos-vc.is-yes .v2tos-vc__tag { color: var(--go-deep); }

/* Evidence meter */
.v2tos-board__meter { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.v2tos-meter {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
}
.v2tos-meter__top {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 10px;
}
.v2tos-meter__top span {
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2tos-meter__top b {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
}
.v2tos-meter__bar {
    display: block;
    height: 10px;
    border-radius: 999px;
    background: repeating-linear-gradient(-135deg, #E2E7EC 0 5px, #EFF2F5 5px 10px);
    overflow: hidden;
}
.v2tos-meter__fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(-90deg, var(--go), var(--go-deep));
    transition: width 0.9s cubic-bezier(0.22, 1, 0.36, 1);
}
.v2tos-meter__key {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin-top: 11px;
}
.v2tos-meter__key span {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--slate);
}
.v2tos-meter__key i {
    width: 9px;
    height: 9px;
    border-radius: 3px;
    flex-shrink: 0;
}
.v2tos-meter__key i.is-yes { background: var(--go); }
.v2tos-meter__key i.is-none { background: repeating-linear-gradient(-135deg, #C6CFD8 0 3px, #E5EAEF 3px 6px); }
.v2tos-board__note {
    font-size: 13px;
    line-height: 1.7;
    color: var(--slate);
    margin: 12px 0 0;
}

/* The four neighbouring systems */
.v2tos-board__rowlab {
    display: block;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    padding: 15px 0 11px;
}
.v2tos-board__nb {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}
.v2tos-nb {
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 13px;
    background: var(--paper);
}
.v2tos-nb__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}
.v2tos-nb__head b {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2tos-nb__pill {
    font-size: 8.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 3px 7px;
    border-radius: 999px;
    white-space: nowrap;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.2);
}
.v2tos-nb.is-gone { background: var(--mist); }
.v2tos-nb.is-gone .v2tos-nb__pill { color: var(--faint); background: var(--paper); border-color: var(--line); }
.v2tos-nb.is-gone .v2tos-nb__btn { color: var(--faint); text-decoration: line-through; }
.v2tos-nb__btn {
    display: inline-block;
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 7px;
    padding: 4px 9px;
    margin-bottom: 8px;
}
.v2tos-nb.is-gone .v2tos-nb__btn { background: var(--paper); }
.v2tos-nb p { font-size: 12.5px; line-height: 1.6; color: var(--slate); }

.v2tos-board__foot {
    font-size: 12px;
    line-height: 1.7;
    color: var(--faint);
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2tos-board__foot b { color: var(--slate); font-weight: 650; }

/* ============================================================
   INTRO: EVIDENCE LEDGER + KEY TAKEAWAYS
   ============================================================ */

.v2tos-led {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 17px;
    margin: 26px 0;
}
.v2tos-led__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--faint);
}
.v2tos-led__lab svg { width: 15px; height: 15px; color: var(--slate); flex-shrink: 0; }
.v2tos-led ul { display: grid; gap: 11px; }
.v2tos-led li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2tos-led li b { color: var(--ink); font-weight: 650; }
.v2tos-led__foot {
    font-size: 12px;
    line-height: 1.6;
    color: var(--faint);
    margin: 13px 0 0;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
}

.v2tos-kt {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 17px;
    margin: 28px 0;
    background: var(--paper);
}
.v2tos-kt__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 15px;
    color: var(--go-deep);
}
.v2tos-kt__lab svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2tos-kt__list { display: grid; gap: 13px; }
.v2tos-kt__list li {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    gap: 11px;
    align-items: start;
}
.v2tos-kt__n {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--faint);
    padding-top: 3px;
}
.v2tos-kt__list li p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
    margin: 0;
}
.v2tos-kt__list li p b { color: var(--ink); font-weight: 700; }

.v2tos-toc { margin-top: 28px; }

/* ============================================================
   TABLES
   ============================================================ */

.v2tos-tw {
    position: relative;
    margin: 24px 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2tos-tw__hint {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    padding: 9px 14px 0;
    margin: 0;
}
.v2tos-tw__hint svg { width: 13px; height: 13px; }
.v2tos-tbl {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--paper);
}
.v2tos-tw.is-wide { border-radius: 16px; }
.v2tos-tbl.is-quad { min-width: 860px; }
.v2tos-tbl.is-spec { min-width: 480px; }
.v2tos-tbl__cap {
    caption-side: top;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    color: var(--faint);
    background: var(--mist);
    padding: 11px 14px;
    line-height: 1.5;
}
.v2tos-tbl thead th {
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 12px 14px;
    white-space: nowrap;
}
.v2tos-tbl thead th.is-none { color: var(--ink); }
.v2tos-tbl tbody th {
    text-align: right;
    font-size: 13px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.55;
    padding: 13px 14px;
    vertical-align: top;
    width: 26%;
}
.v2tos-tbl tbody td {
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
    padding: 13px 14px;
    vertical-align: top;
}
.v2tos-tbl tbody tr + tr th,
.v2tos-tbl tbody tr + tr td { border-top: 1px solid var(--line); }
.v2tos-tbl tbody td b, .v2tos-tbl tbody th b { color: var(--ink); font-weight: 700; }
.v2tos-tbl tbody td code { font-size: 0.86em; }
.v2tos-tbl tbody tr.is-other { background: var(--mist); }
.v2tos-tbl tbody tr.is-hot { background: var(--go-tint); }
.v2tos-tbl tbody tr.is-hot th, .v2tos-tbl tbody tr.is-hot td { color: var(--ink); }
.v2tos-tbl tbody td.is-none { background: rgba(10, 16, 23, 0.035); }
.v2tos-tbl tbody tr.is-hot td.is-none { background: rgba(10, 16, 23, 0.05); }

/* ============================================================
   THE NINE UNKNOWNS + THE SEARCH LOG
   ============================================================ */

.v2tos-unk {
    border: 1px solid var(--ink);
    border-radius: 16px;
    padding: 18px 17px;
    margin: 24px 0;
    background: var(--paper);
}
.v2tos-unk__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--ink);
}
.v2tos-unk__lab svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2tos-unk ul { display: grid; gap: 11px; }
.v2tos-unk li {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2tos-unk li b { color: var(--ink); font-weight: 650; }
.v2tos-unk__n {
    font-size: 10px;
    font-weight: 700;
    color: var(--faint);
    padding-top: 2px;
}
.v2tos-unk__foot {
    font-size: 12px;
    line-height: 1.65;
    color: var(--faint);
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
}

.v2tos-log {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--mist);
    padding: 6px 15px 15px;
    margin: 22px 0;
}
.v2tos-log__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 13px 0;
    border-bottom: 1px dashed var(--line);
}
.v2tos-log__q {
    font-size: 11.5px;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 7px 10px;
    word-break: break-word;
    overflow-wrap: anywhere;
}
.v2tos-log__r { font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2tos-log__foot {
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 13px 0 0;
}

/* ============================================================
   QUOTE PLAQUE + COMMUNITY VOICES
   ============================================================ */

.v2tos-quote {
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 14px 0 0 14px;
    background: var(--paper);
    padding: 16px 17px;
    margin: 24px 0;
}
.v2tos-quote__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 11px;
}
.v2tos-quote__tag svg { width: 15px; height: 15px; color: var(--go); flex-shrink: 0; }
.v2tos-quote p {
    font-size: 14.5px;
    line-height: 1.8;
    color: var(--ink);
}
.v2tos-quote__src {
    font-size: 12px !important;
    line-height: 1.65 !important;
    color: var(--faint) !important;
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
}
.v2tos-quote__src a { font-weight: 600; }

.v2tos-voice {
    margin: 14px 0;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 12px 0 0 12px;
    background: var(--mist);
}
.v2tos-voice.is-solo { margin: 20px 0 24px; }
.v2tos-voice p {
    font-size: 14.5px !important;
    line-height: 1.65 !important;
    color: var(--ink) !important;
    margin: 0 0 8px !important;
    font-weight: 500;
}
.v2tos-voice cite {
    display: block;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.02em;
    line-height: 1.6;
    color: var(--faint);
}
.v2tos-voice cite b { color: var(--slate); font-weight: 650; }

/* ============================================================
   FEATURE CARDS
   ============================================================ */

.v2tos-fc {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 24px 0;
}
.v2tos-fcard {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 17px 16px;
    background: var(--paper);
    display: flex;
    flex-direction: column;
}
.v2tos-fcard__ic {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--go-tint);
    color: var(--go-deep);
    margin-bottom: 12px;
}
.v2tos-fcard__ic svg { width: 20px; height: 20px; }
.v2tos-fcard h4 {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 650;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 0 0 7px;
    line-height: 1.3;
}
.v2tos-fcard__what {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    margin: 0 0 12px;
}
.v2tos-fcard__what b { color: var(--ink); font-weight: 650; }
.v2tos-fcard ul { display: grid; gap: 8px; margin-bottom: 13px; }
.v2tos-fcard li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2tos-fcard li b { color: var(--ink); font-weight: 650; }
.v2tos-fcard__grade { margin-top: auto; }
.v2tos-fcard.is-gone { background: var(--mist); }
.v2tos-fcard.is-gone .v2tos-fcard__ic { background: var(--paper); color: var(--faint); border: 1px solid var(--line); }

/* ============================================================
   PROCESS FLOW + STEP CARDS
   ============================================================ */

.v2tos-flow {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 17px 16px;
    margin: 24px 0;
}
.v2tos-flow ol { display: grid; gap: 0; }
.v2tos-flow li {
    position: relative;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 13px;
    padding-bottom: 18px;
}
.v2tos-flow li::before {
    content: "";
    position: absolute;
    right: 16px;
    top: 30px;
    bottom: 2px;
    width: 2px;
    background: linear-gradient(-180deg, var(--line), #EFF2F5);
}
.v2tos-flow li.is-last { padding-bottom: 0; }
.v2tos-flow li.is-last::before { display: none; }
.v2tos-flow__n {
    position: relative;
    z-index: 1;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2tos-flow li.is-last .v2tos-flow__n { color: var(--slate); background: var(--mist); border-color: var(--line); }
.v2tos-flow__b { padding-top: 5px; }
.v2tos-flow__b b {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 5px;
    line-height: 1.35;
}
.v2tos-flow__b p { font-size: 13.5px; line-height: 1.7; color: var(--slate); }
.v2tos-flow__b p b { display: inline; font-size: inherit; }
.v2tos-flow__foot {
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 15px 0 0;
    padding-top: 13px;
    border-top: 1px dashed var(--line);
}

.v2tos-steps { margin: 22px 0; }
.v2tos-steps ol { display: grid; gap: 11px; }
.v2tos-steps li {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
    background: var(--paper);
}
.v2tos-steps li.is-key { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2tos-steps__n {
    width: 32px;
    height: 32px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2tos-steps li.is-key .v2tos-steps__n { color: var(--go-deep); background: var(--paper); border-color: rgba(11, 138, 71, 0.3); }
.v2tos-steps h4 {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 650;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 3px 0 5px;
    line-height: 1.3;
}
.v2tos-steps p { font-size: 13.5px; line-height: 1.7; color: var(--slate); }
.v2tos-steps.is-compact li { padding: 12px 13px; }
.v2tos-steps.is-compact h4 { font-size: 15px; }
.v2tos-steps.is-compact p { font-size: 13px; }

/* ============================================================
   FACT TRIOS, SPLITS, MYTHS, REASONS, LAYERS
   ============================================================ */

.v2tos-facts3, .v2tos-three, .v2tos-layers, .v2tos-myth {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 24px 0;
}
.v2tos-f3, .v2tos-t3 {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    background: var(--paper);
}
.v2tos-f3 b, .v2tos-t3 b {
    display: block;
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.018em;
    color: var(--ink);
    line-height: 1.15;
    margin-bottom: 5px;
}
.v2tos-f3 > span.v2-mono, .v2tos-t3 .v2tos-t3__who {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2tos-f3 p, .v2tos-t3 p { font-size: 13px; line-height: 1.65; color: var(--slate); }
.v2tos-f3 p b, .v2tos-t3 p b { display: inline; font-size: inherit; font-weight: 650; }
.v2tos-f3.is-gone { background: var(--mist); }
.v2tos-f3.is-gone b { color: var(--slate); }

.v2tos-t3 { display: flex; flex-direction: column; gap: 0; }
.v2tos-t3__pill {
    display: inline-flex;
    align-self: flex-start;
    font-size: 8.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 999px;
    margin-bottom: 10px;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2tos-t3 p:not(.v2tos-t3__who) { margin-bottom: 11px; }
.v2tos-t3 .v2tos-ev { align-self: flex-start; margin-top: auto; }
.v2tos-t3.is-live { border-color: rgba(11, 138, 71, 0.28); }
.v2tos-t3.is-live .v2tos-t3__pill { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2tos-t3.is-gone { background: var(--mist); }
.v2tos-t3.is-gone b { color: var(--slate); text-decoration: line-through; text-decoration-color: #C9D2DA; }
.v2tos-t3.is-unk { border-color: var(--ink); }
.v2tos-t3.is-unk .v2tos-t3__pill { color: var(--ink); background: var(--paper); border-color: var(--ink); }

.v2tos-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    margin: 24px 0;
}
.v2tos-sp {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    background: var(--paper);
}
.v2tos-sp__tag {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2tos-sp b {
    display: block;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 7px;
}
.v2tos-sp p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2tos-sp.is-stale { background: var(--mist); }
.v2tos-sp.is-stale b { color: var(--slate); }
.v2tos-sp.is-key { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2tos-sp.is-key .v2tos-sp__tag { color: var(--go-deep); }
.v2tos-split__vs {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9.5px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2tos-myth__side {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    background: var(--paper);
}
.v2tos-myth__tag {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    margin-bottom: 9px;
    color: var(--faint);
}
.v2tos-myth__side b {
    display: block;
    font-size: 15.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 7px;
}
.v2tos-myth__side p { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2tos-myth__side.is-wrong { background: var(--mist); }
.v2tos-myth__side.is-wrong b { color: var(--slate); }
.v2tos-myth__side.is-right { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2tos-myth__side.is-right .v2tos-myth__tag { color: var(--go-deep); }

.v2tos-why { display: grid; gap: 11px; margin: 22px 0; }
.v2tos-why__i {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
    background: var(--paper);
}
.v2tos-why__n {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2tos-why__i b {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
    margin: 3px 0 6px;
}
.v2tos-why__i p { font-size: 13.5px; line-height: 1.7; color: var(--slate); }
.v2tos-why__i p b { display: inline; font-size: inherit; margin: 0; }

.v2tos-layer {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    background: var(--paper);
}
.v2tos-layer__tag {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2tos-layer h4 {
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 650;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 0 0 7px;
    line-height: 1.3;
}
.v2tos-layer p { font-size: 13.5px; line-height: 1.68; color: var(--slate); margin-bottom: 11px; }
.v2tos-layer.is-a { border-color: rgba(11, 138, 71, 0.28); background: var(--go-tint); }
.v2tos-layer.is-a .v2tos-layer__tag { color: var(--go-deep); }
.v2tos-layer.is-b { background: var(--mist); }

/* ============================================================
   THE RULE PLAQUE
   ============================================================ */

.v2tos-rule {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 17px 16px;
    margin: 24px 0;
}
.v2tos-rule__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--faint);
    margin-bottom: 14px;
}
.v2tos-rule__lab svg { width: 15px; height: 15px; color: var(--go); flex-shrink: 0; }
.v2tos-rule__pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.v2tos-rule__n {
    border: 1px solid rgba(11, 138, 71, 0.22);
    background: var(--go-tint);
    border-radius: 12px;
    padding: 13px 14px;
    text-align: center;
}
.v2tos-rule__n b {
    display: block;
    font-family: var(--font-display);
    font-size: 34px;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: var(--go-deep);
    margin-bottom: 7px;
}
.v2tos-rule__n span {
    display: block;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    line-height: 1.4;
}
.v2tos-rule__txt {
    font-size: 13.5px;
    line-height: 1.75;
    color: var(--slate);
    margin: 14px 0 0;
}
.v2tos-rule__txt b { color: var(--ink); font-weight: 650; }

/* ============================================================
   TOOL INTERNALS: QUESTIONS, OPTIONS, VERDICTS, FIELDS
   ============================================================ */

.v2tos-q { margin-bottom: 18px; }
.v2tos-q__lab {
    display: flex;
    align-items: baseline;
    gap: 9px;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 11px;
    line-height: 1.45;
}
.v2tos-q__lab b {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    align-self: flex-start;
}
.v2tos-q__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.v2tos-q__opts.is-stack { flex-direction: column; flex-wrap: nowrap; }
.v2tos-opt { display: inline-flex; cursor: pointer; }
.v2tos-q__opts.is-stack .v2tos-opt { width: 100%; }
.v2tos-opt input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}
.v2tos-opt__face {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    width: 100%;
    padding: 10px 15px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--slate);
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: 11px;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.v2tos-opt:hover .v2tos-opt__face { border-color: #B9C4CE; color: var(--ink); }
.v2tos-opt input:checked + .v2tos-opt__face {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: var(--go);
    box-shadow: 0 0 0 2px rgba(11, 138, 71, 0.14);
}
.v2tos-opt input:focus-visible + .v2tos-opt__face {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}

.v2tos-q__reset {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed var(--line);
}
.v2tos-q__reset p {
    flex: 1 1 240px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 0;
}
.v2 .v2tos-clear {
    min-height: 40px;
    padding: 9px 16px;
    font-size: 12.5px;
    font-weight: 650;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    transition: border-color 0.15s ease, color 0.15s ease;
}
.v2 .v2tos-clear:hover { border-color: #B9C4CE; color: var(--ink); }

/* Verdict card produced by all three tools */
.v2tos-vd {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 15px;
    background: var(--paper);
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.v2tos-vd.is-on { opacity: 1; transform: none; }
.v2tos-vd__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 12px;
}
.v2tos-vd__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--ink);
}
.v2tos-vd__state svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2tos-vd__date {
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.06em;
    color: var(--faint);
    white-space: nowrap;
}
.v2tos-vd h4 {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 650;
    letter-spacing: -0.014em;
    color: var(--ink);
    line-height: 1.32;
    margin: 0 0 8px;
}
.v2tos-vd > p { font-size: 13.5px; line-height: 1.7; color: var(--slate); margin: 0 0 13px; }
.v2tos-vd__list { display: grid; gap: 9px; }
.v2tos-vd__list li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2tos-vd__list li b { color: var(--ink); font-weight: 650; }
.v2tos-vd.is-ok { border-color: rgba(11, 138, 71, 0.32); background: var(--go-tint); }
.v2tos-vd.is-ok .v2tos-vd__state { color: var(--go-deep); }
.v2tos-vd.is-off { background: var(--mist); }
.v2tos-vd.is-off .v2tos-vd__state { color: var(--slate); }
.v2tos-vd.is-warn { border-color: var(--ink); border-right-width: 3px; }
.v2tos-vd__go {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px dashed var(--line);
}
.v2tos-vd__go a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: none;
    min-height: 32px;
}
.v2tos-vd__go a svg { width: 15px; height: 15px; }
.v2tos-vd__go a:hover { text-decoration: underline; }

/* Text fields (observation recorder) */
.v2tos-rec {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-bottom: 18px;
}
.v2tos-fld { display: block; min-width: 0; margin-bottom: 18px; }
.v2tos-rec .v2tos-fld { margin-bottom: 0; }
.v2tos-fld > span {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 7px;
}
.v2 .v2tos-fld input,
.v2 .v2tos-fld textarea {
    display: block;
    width: 100%;
    min-height: 46px;
    padding: 12px 14px;
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.v2 .v2tos-fld textarea { resize: vertical; min-height: 84px; }
.v2 .v2tos-fld input::placeholder,
.v2 .v2tos-fld textarea::placeholder { color: #A9B3BD; }
.v2 .v2tos-fld input:focus,
.v2 .v2tos-fld textarea:focus {
    outline: none;
    border-color: var(--go);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--go-tint);
}

/* Copyable code / query block */
.v2tos-code {
    position: relative;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    overflow: hidden;
}
.v2tos-code + .v2tos-code { margin-top: 9px; }
.v2tos-code pre {
    margin: 0;
    padding: 14px 15px 14px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    line-height: 1.8;
    color: var(--ink);
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-height: 420px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.v2 .v2tos-code__copy {
    float: left;
    margin: 9px 10px 0 9px;
    min-height: 34px;
    padding: 7px 13px;
    font-family: var(--font-body);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--go-deep);
    background: var(--paper);
    border: 1px solid rgba(11, 138, 71, 0.3);
    border-radius: 9px;
    white-space: nowrap;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.v2 .v2tos-code__copy:hover { background: var(--go-tint); border-color: var(--go); }
.v2 .v2tos-code__copy.is-done { color: #FFFFFF; background: var(--go); border-color: var(--go); }

/* Re-check bench */
.v2tos-bench {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 15px 14px;
    margin: 22px 0;
}
.v2tos-bench__foot {
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 14px 0 0;
    padding-top: 13px;
    border-top: 1px dashed var(--line);
}

/* Numeric fields (qualification checker) */
.v2tos-nums {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 11px;
    margin-bottom: 4px;
}
.v2tos-num { display: block; }
.v2tos-num > span {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 7px;
}
.v2 .v2tos-num input {
    width: 100%;
    min-height: 48px;
    padding: 12px 15px;
    font-family: var(--font-mono);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.v2 .v2tos-num input:focus {
    outline: none;
    border-color: var(--go);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--go-tint);
}

/* ============================================================
   OBSERVATION PROTOCOL (two-column field list)
   ============================================================ */

.v2tos-proto {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 24px 0;
}
.v2tos-proto__col {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 17px 16px;
}
.v2tos-proto__lab {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    padding-bottom: 12px;
    margin-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
.v2tos-proto__col ul { display: grid; gap: 11px; }
.v2tos-proto__col li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2tos-proto__col li b { color: var(--ink); font-weight: 650; }

/* ============================================================
   DECAY LEDGER
   ============================================================ */

.v2tos-decay {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 24px 0;
}
.v2tos-decay__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 14px 0 0 14px;
    background: var(--paper);
    padding: 14px 16px;
}
.v2tos-decay__risk {
    justify-self: start;
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}
.v2tos-decay__row b {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
    margin-bottom: 6px;
}
.v2tos-decay__row p { font-size: 13px; line-height: 1.7; color: var(--slate); margin: 0; }
.v2tos-decay__row p b { display: inline; font-size: inherit; margin: 0; }
.v2tos-decay__row.is-hot { border-right-color: var(--ink); }
.v2tos-decay__row.is-hot .v2tos-decay__risk { color: var(--ink); background: var(--paper); border-color: var(--ink); }
.v2tos-decay__row.is-good {
    border-right-color: var(--go);
    border-right-style: dashed;
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
}
.v2tos-decay__row.is-good .v2tos-decay__risk {
    color: var(--go-deep);
    background: var(--paper);
    border-color: rgba(11, 138, 71, 0.3);
}

/* ============================================================
   TIMELINE
   ============================================================ */

.v2tos-tl {
    display: grid;
    gap: 0;
    margin: 24px 0;
}
.v2tos-tl__i {
    position: relative;
    display: grid;
    grid-template-columns: 60px minmax(0, 1fr);
    gap: 14px;
    padding-bottom: 20px;
}
.v2tos-tl__i::before {
    content: "";
    position: absolute;
    right: 29px;
    top: 34px;
    bottom: 0;
    width: 2px;
    background: var(--line);
}
.v2tos-tl__i:last-child { padding-bottom: 0; }
.v2tos-tl__i:last-child::before { display: none; }
.v2tos-tl__i.is-open::before { background: repeating-linear-gradient(-180deg, var(--line) 0 5px, transparent 5px 10px); }
.v2tos-tl__d {
    position: relative;
    z-index: 1;
    font-size: 9.5px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 8px 4px;
    height: fit-content;
    letter-spacing: 0.02em;
}
.v2tos-tl__i.is-key .v2tos-tl__d { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2tos-tl__i.is-now .v2tos-tl__d { color: #FFFFFF; background: var(--ink); border-color: var(--ink); }
.v2tos-tl__i.is-open .v2tos-tl__d { background: var(--paper); border-style: dashed; color: var(--faint); }
.v2tos-tl__i.is-soft .v2tos-tl__d { border-style: dashed; }
.v2tos-tl__b { padding-top: 1px; }
.v2tos-tl__b h4 {
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 650;
    letter-spacing: -0.014em;
    color: var(--ink);
    line-height: 1.3;
    margin: 0 0 6px;
}
.v2tos-tl__b p { font-size: 13.5px; line-height: 1.7; color: var(--slate); margin: 0 0 9px; }
.v2tos-tl__b p b { color: var(--ink); font-weight: 650; }
.v2tos-tl__i.is-open .v2tos-tl__b h4 { color: var(--slate); }

/* ============================================================
   DIY VS MANAGED + CTA ROW
   ============================================================ */

.v2tos-vs {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0;
    background: var(--paper);
}
.v2tos-vs__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    border-bottom: 1px solid var(--line);
}
.v2tos-vs__row.is-head { display: none; }
.v2tos-vs__need {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--ink);
    background: var(--mist);
    padding: 11px 15px;
    line-height: 1.5;
}
.v2tos-vs__cell {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    padding: 13px 15px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2tos-vs__cell::before {
    content: attr(data-lab);
    grid-column: 1 / -1;
    font-family: var(--font-mono);
    font-size: 8.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: -4px;
}
.v2tos-vs__cell.is-us { background: var(--go-tint); color: var(--ink); }
.v2tos-vs__cell.is-us::before { color: var(--go-deep); }
.v2tos-vs__foot {
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--faint);
    padding: 14px 15px;
    margin: 0;
    background: var(--mist);
}

.v2tos-ctarow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 24px 0 6px;
}
.v2tos-ctarow .v2-btn { flex: 1 1 240px; justify-content: center; }

/* ============================================================
   RESPONSIVE: 620px and up
   ============================================================ */

@media (min-width: 620px) {
    .v2tos-board { padding: 22px 22px 20px; }
    .v2tos-board__verdict { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .v2tos-board__nb { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-vc b { font-size: 22px; }

    .v2gpr-prose > p.v2tos-ans { padding: 16px 20px; font-size: 15.5px; }

    .v2tos-led, .v2tos-kt, .v2tos-unk, .v2tos-rule, .v2tos-flow,
    .v2tos-proto__col { padding: 20px 22px; }
    .v2tos-bench { padding: 18px 18px; }
    .v2tos-log { padding: 6px 20px 18px; }
    .v2tos-log__row { grid-template-columns: minmax(0, 260px) minmax(0, 1fr); gap: 16px; align-items: center; }

    .v2tos-fc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-facts3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2tos-three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2tos-layers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-myth { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-proto { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2tos-rec { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .v2tos-fld.is-full { grid-column: 1 / -1; }

    .v2tos-split { grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr); gap: 0; }
    .v2tos-split__vs { writing-mode: horizontal-tb; }

    .v2tos-tl__i { grid-template-columns: 74px minmax(0, 1fr); gap: 18px; }
    .v2tos-tl__i::before { right: 36px; }
    .v2tos-tl__d { font-size: 10.5px; padding: 9px 6px; }

    .v2tos-vs__row { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr); }
    .v2tos-vs__row.is-head {
        display: grid;
        background: var(--mist);
    }
    .v2tos-vs__row.is-head span {
        font-family: var(--font-mono);
        font-size: 9px;
        letter-spacing: 0.11em;
        text-transform: uppercase;
        color: var(--faint);
        padding: 12px 15px;
    }
    .v2tos-vs__row.is-head span.is-us { color: var(--go-deep); background: var(--go-tint); }
    .v2tos-vs__need { background: var(--paper); border-left: 1px solid var(--line); }
    .v2tos-vs__cell::before { display: none; }
    .v2tos-vs__cell + .v2tos-vs__cell { border-right: 1px solid var(--line); }

    .v2tos-decay__row { grid-template-columns: 108px minmax(0, 1fr); gap: 16px; align-items: start; }
    .v2tos-decay__risk { margin-top: 3px; }
    .v2tos-code pre { font-size: 12px; }
}

/* ============================================================
   RESPONSIVE: 900px and up
   ============================================================ */

@media (min-width: 900px) {
    .v2tos-board__nb { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .v2tos-fc { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2tos-tw__hint { display: none; }
    .v2tos-tbl { min-width: 0; }
    .v2tos-tbl.is-quad { min-width: 780px; }
    .v2tos-kt__list { gap: 15px; }
    .v2tos-rec { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ============================================================
   ACCESSIBILITY / MOTION
   ============================================================ */

@media (prefers-reduced-motion: reduce) {
    .v2tos-vd { opacity: 1; transform: none; transition: none; }
    .v2tos-meter__fill { transition: none; }
    .v2tos-board__state.is-fresh i { animation: none; }
}

/* Print: expand the log, drop the interactive furniture */
@media print {
    .v2tos-q__reset, .v2tos-code__copy, .v2tos-ctarow { display: none !important; }
    .v2tos-tw { overflow: visible; }
    .v2tos-tbl { min-width: 0; }
    .v2tos-code pre { max-height: none; overflow: visible; }
}


/* ---------- Post-audit additions (2026-08-09 editorial pass) ---------- */

/* Evidence-meter methodology note: the meter is only defensible if the
   reader can see what "a claim" means, so the definition ships with it. */
.v2tos-meter__method {
    font-size: 11.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 11px 0 0;
    padding-top: 10px;
    border-top: 1px dashed var(--line);
}
.v2tos-meter__method b { color: var(--slate); font-weight: 650; }
.v2tos-meter__method a { color: var(--slate); }

/* Reassurance block: reaches the worried reader before the evidence
   machinery does. Deliberately quiet - no accent fill, no icon badge. */
.v2tos-calm {
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px 0 0 16px;
    background: var(--paper);
    padding: 17px 16px;
    margin: 24px 0;
}
.v2tos-calm__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--go-deep);
    margin-bottom: 13px;
}
.v2tos-calm__lab svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2tos-calm ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.v2tos-calm li {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
    padding-right: 15px;
    position: relative;
}
.v2tos-calm li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 2px;
    background: var(--go);
}
.v2tos-calm li b { color: var(--ink); font-weight: 700; }

/* Inline source line under the closed-test rule plaque. */
.v2tos-rule__src {
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 11px 0 0;
    padding-top: 10px;
    border-top: 1px dashed var(--line);
}
.v2tos-rule__src a { color: var(--slate); }

/* "Good practice, not a requirement" qualifier inside the comparison rail. */
.v2tos-vs__need i {
    display: block;
    font-style: normal;
    font-family: var(--font-body);
    font-size: 10.5px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    color: var(--faint);
    margin-top: 4px;
}

@media (min-width: 620px) {
    .v2tos-calm { padding: 20px 22px; }
}

/* ============= END BLOG TOS V2 ============= */

/* ============================================================
   MOBILE TABLE COLLAPSE  -  cross-post fix (2026-08-09)

   Three blog tables carried a wide min-width with no mobile rule
   at all, so inside the ~335px article column on a phone they
   spilled past the card and read as broken markup rather than as
   a scroll affordance:

     .v2own-cmp__tbl  min-width 620px, no @media rule
     .v2b12-matrix    min-width 580px, no @media rule
     .v2kb-table      min-width 640px, only relaxed to 560px @768

   Each row becomes its own card below 720px, the row header
   becomes the card title, and every cell is labelled from its
   own column header via data-label (added per locale, so the
   translated headers stay translated).

   The .v2adv-tbl family is handled in the ADV block above.
   Tables that already collapse (.v2fda-*, .v2inv-*) or that have
   no min-width (.v2paq-table, .v2upd-tbl, .v2x20-eligtable,
   .v2ggc-cmp, .v2csx-table) are deliberately untouched.
   ============================================================ */

@media (max-width: 720px) {
    .v2own-cmp__scroll,
    .v2b12-matrixwrap,
    .v2kb-scroll { overflow-x: visible; }

    .v2own-cmp__tbl,
    .v2b12-matrix,
    .v2kb-table {
        display: block;
        width: 100%;
        min-width: 0;
        border-collapse: collapse;
        background: transparent;
    }
    .v2own-cmp__tbl thead,
    .v2b12-matrix thead,
    .v2kb-table thead { display: none; }

    .v2own-cmp__tbl tbody,
    .v2b12-matrix tbody,
    .v2kb-table tbody {
        display: grid;
        gap: 10px;
        padding: 12px;
    }
    .v2own-cmp__tbl tbody tr,
    .v2b12-matrix tbody tr,
    .v2kb-table tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2own-cmp__tbl tbody th,
    .v2own-cmp__tbl tbody td,
    .v2b12-matrix tbody th,
    .v2b12-matrix tbody td,
    .v2kb-table tbody th,
    .v2kb-table tbody td {
        display: block;
        width: auto;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2own-cmp__tbl tbody th,
    .v2b12-matrix tbody th,
    .v2kb-table tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 12px 14px;
        font-size: 14px;
        line-height: 1.45;
        color: var(--ink);
    }
    .v2own-cmp__tbl tbody td,
    .v2b12-matrix tbody td,
    .v2kb-table tbody td {
        padding: 11px 14px 13px;
        font-size: 13.5px;
        line-height: 1.6;
    }
    .v2own-cmp__tbl tbody td + td,
    .v2b12-matrix tbody td + td,
    .v2kb-table tbody td + td { border-top: 1px solid var(--line); }

    .v2own-cmp__tbl tbody td[data-label]::before,
    .v2b12-matrix tbody td[data-label]::before,
    .v2kb-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
    /* keep the highlighted "our service" row readable as a card */
    .v2own-cmp__tbl tbody tr.is-ptl { border-color: rgba(11, 138, 71, 0.3); }
    .v2own-cmp__tbl tbody tr.is-ptl th { background: var(--go-tint); color: var(--go-deep); }
}

/* ============= END MOBILE TABLE COLLAPSE ============= */

/* ============================================================
   BLOG APK V2  -  "Can Testers Still Install Your APK?"
   (/blog/sideload-apk-after-developer-verification)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, checkbox, FAQ, bottom line, docs,
   stats, author, related, CTA) and adds a unique v2apk- motif:
   the DELIVERY LANE BOARD. The thesis is that September 30, 2026
   checks a LANE rather than a calendar, so every component in
   this block is built to answer "which lane is this?" - two-lane
   hero board, three-row scope splitter, seven-route matrix, a
   route picker whose verdict names the lane, and a decay panel
   that publishes the article's own expiry conditions.

   Dark moments stay at two (quick answer + final CTA).
   No rose/danger palette on the enforcement copy: the honest
   reading of the sources is "not covered yet", not "blocked", so
   the strongest state on the page is ink-on-mist rather than
   alarm red. Rose appears only on the picker's one blocked
   verdict, where the reader genuinely has work to do.
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2apk-prose ul, .v2apk-prose ol,
.v2apk-led ul, .v2apk-scope, .v2apk-keep, .v2apk-tl, .v2apk-chain,
.v2apk-audit ul, .v2apk-two ul, .v2apk-steps ol, .v2apk-tri,
.v2apk-flow, .v2apk-q__opts, .v2apk-vd__list, .v2apk-vs,
.v2apk-myths, .v2apk-fix, .v2apk-decay, .v2apk-plans,
.v2apk-grid4, .v2apk-track__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Evidence grading chips (used across the post) ---------- */

.v2apk-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2apk-ev + .v2apk-ev { margin-right: 6px; }
.v2apk-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2apk-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2apk-ev.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2apk-ev.is-field {
    color: var(--faint);
    background: var(--paper);
    border: 1px dashed #C9D2DA;
}
.v2apk-ev.is-none {
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--ink);
}

/* ---------- Shared prose atoms ---------- */

.v2gpr-prose > p.v2apk-ans,
.v2apk-ans {
    border-right: 3px solid var(--go);
    background: var(--go-tint);
    border-radius: 14px 0 0 14px;
    padding: 16px 20px;
    margin: 20px 0 26px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--ink);
}
.v2gpr-prose > p.v2apk-fine,
.v2apk-fine {
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.02em;
    color: var(--faint);
    margin: 12px 0 22px;
}
.v2gpr-prose > p.v2apk-fine.is-last,
.v2apk-fine.is-last { margin-top: 26px; }
.v2apk-fine a { color: var(--slate); }

/* ---------- Evidence ledger (intro) ---------- */

.v2apk-led {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
}
.v2apk-led__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    color: var(--faint);
}
.v2apk-led__lab svg { width: 15px; height: 15px; color: var(--slate); }
.v2apk-led ul { display: grid; gap: 11px; }
.v2apk-led li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2apk-led li b { color: var(--ink); font-weight: 650; }
.v2apk-led li .v2gpr-mk { margin-top: 4px; } /* centre the icon on the first text line */
.v2apk-toc { margin-top: 28px; }

/* ---------- Delivery lane board (hero signature) ---------- */

.v2apk-board {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 22px 24px 26px;
    margin-top: clamp(24px, 3.5vw, 34px);
    max-width: 920px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 20px 44px -26px rgba(10, 16, 23, 0.18);
}
.v2apk-board__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 14px;
}
.v2apk-board__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    color: var(--faint);
}
.v2apk-board__label svg { width: 14px; height: 14px; color: var(--go); }
.v2apk-board__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    border-radius: 999px;
    padding: 5px 11px;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2apk-board__state i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}
.v2apk-board__state.is-live { color: var(--ink); background: var(--mist); border-color: var(--line); }
.v2apk-board__intro {
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
    margin-bottom: 18px;
}
.v2apk-board__intro b { color: var(--ink); font-weight: 650; }

.v2apk-board__lanes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}
.v2apk-lane {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 16px 17px 15px;
    background: var(--mist);
}
.v2apk-lane.is-open {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
}
.v2apk-lane__n {
    display: block;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2apk-lane.is-open .v2apk-lane__n { color: var(--go-deep); }
.v2apk-lane > b {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2apk-lane > p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
    margin-bottom: 10px;
}
.v2apk-lane__tag {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 9px;
}

.v2apk-board__clock {
    display: grid;
    grid-template-columns: minmax(0, 200px) minmax(0, 1fr);
    gap: 18px 24px;
    align-items: center;
    padding: 18px 0 22px;
    border-top: 1px solid var(--line);
}
.v2apk-board__num b {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 1.8rem + 2.4vw, 3.3rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.03em;
    color: var(--ink);
}
.v2apk-board__num.is-past b { color: var(--go); }
.v2apk-board__num span {
    display: block;
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    line-height: 1.6;
}
.v2apk-board__note {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}

.v2apk-board__rail {
    position: relative;
    height: 2px;
    background: var(--line);
    border-radius: 2px;
    margin: 0 6px 58px;
}
.v2apk-board__fill {
    position: absolute;
    right: 0;
    top: 0;
    height: 2px;
    background: var(--go);
    border-radius: 2px;
}
.v2apk-board__mil {
    position: absolute;
    top: 0;
    transform: translateX(50%);
}
.v2apk-board__mil i {
    display: block;
    width: 11px;
    height: 11px;
    margin: -4.5px auto 0;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2apk-board__mil.is-done i { background: var(--go); border-color: var(--go); }
.v2apk-board__mil.is-key i {
    width: 14px;
    height: 14px;
    margin-top: -6px;
    background: var(--paper);
    border: 3px solid var(--ink);
}
.v2apk-board__mil.is-key.is-done i { background: var(--ink); }
.v2apk-board__mil em {
    display: block;
    margin-top: 9px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-style: normal;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
    text-align: center;
}
.v2apk-board__mil.is-key em { color: var(--ink); font-weight: 700; }
.v2apk-board__mil.is-first em { transform: translateX(-28%); }
.v2apk-board__mil.is-end em { transform: translateX(26%); }
.v2apk-board__now {
    position: absolute;
    top: 0;
    transform: translateX(50%);
}
/* Connector: crosses the rail, centred on the today point (a bit above and a bit below) */
.v2apk-board__now s {
    position: absolute;
    right: 50%;
    bottom: -10px;
    transform: translateX(50%);
    width: 1px;
    height: 18px;
    background: #C9D2DA;
}
.v2apk-board__now em {
    position: absolute;
    right: 50%;
    bottom: 12px;
    transform: translateX(50%);
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    font-family: var(--font-mono);
    font-size: 8.5px;
    font-style: normal;
    letter-spacing: 0.1em;
    text-indent: 0.1em; /* offset the trailing letter-space so the word sits centred */
    text-transform: uppercase;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 8px;
    white-space: nowrap;
}

.v2apk-board__open {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    border: 1px dashed #C9D2DA;
    border-radius: 14px;
    padding: 14px 16px;
    margin-bottom: 16px;
}
.v2apk-board__dash {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: repeating-linear-gradient(-90deg, #C9D2DA 0 6px, transparent 6px 12px);
}
.v2apk-board__open p {
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-board__open b {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2apk-board__foot {
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.75;
    letter-spacing: 0.02em;
    color: var(--faint);
}
.v2apk-board__foot b { color: var(--ink); }

/* ---------- Quoted-fragment card ---------- */

.v2apk-quote {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--mist);
    padding: 18px 20px;
    margin: 24px 0;
}
.v2apk-quote__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 12px;
}
.v2apk-quote__tag svg { width: 16px; height: 16px; color: var(--slate); flex-shrink: 0; }
.v2apk-quote > p:not(.v2apk-quote__tag):not(.v2apk-quote__src) {
    font-family: var(--font-display);
    font-size: clamp(1rem, 0.95rem + 0.3vw, 1.12rem);
    font-weight: 600;
    line-height: 1.6;
    color: var(--ink);
}
.v2apk-quote__src {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.75;
    color: var(--faint);
}
.v2apk-quote__src a { color: var(--slate); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Three-row scope splitter ---------- */

.v2apk-scope {
    display: grid;
    gap: 12px;
    margin: 24px 0;
}
.v2apk-scope__row {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 17px 19px;
    background: var(--paper);
}
.v2apk-scope__row.is-clear { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.25); }
.v2apk-scope__row.is-hit { background: var(--mist); }
.v2apk-scope__mark {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
}
.v2apk-scope__mark svg { width: 18px; height: 18px; }
.v2apk-scope__row.is-clear .v2apk-scope__mark { color: var(--go-deep); border-color: rgba(11, 138, 71, 0.3); }
.v2apk-scope__row.is-hit .v2apk-scope__mark { color: var(--ink); }
.v2apk-scope__lab {
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 6px;
}
.v2apk-scope__row.is-clear .v2apk-scope__lab { color: var(--go-deep); }
.v2apk-scope__row > div > b {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2apk-scope__row > div > p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}

/* ---------- Tables ---------- */

.v2apk-tw {
    margin: 24px 0;
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    /* Pure-CSS scroll shadows: the six-column matrix is wider than the
       article column on a laptop, and a table that scrolls with no hint
       reads as a table with missing columns. background-attachment:local
       ties the white masks to the scrolled content, so each shadow shows
       only while there is really something hidden on that side. */
    background:
        linear-gradient(to left, var(--paper) 30%, rgba(255, 255, 255, 0)) right center,
        linear-gradient(to right, var(--paper) 30%, rgba(255, 255, 255, 0)) left center,
        radial-gradient(farthest-side at 0 50%, rgba(10, 16, 23, 0.11), rgba(10, 16, 23, 0)) right center,
        radial-gradient(farthest-side at 100% 50%, rgba(10, 16, 23, 0.11), rgba(10, 16, 23, 0)) left center;
    background-repeat: no-repeat;
    background-size: 44px 100%, 44px 100%, 15px 100%, 15px 100%;
    background-attachment: local, local, scroll, scroll;
}
.v2apk-tbl {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--paper);
    font-size: 14px;
}
.v2apk-tbl.is-wide { min-width: 820px; }
.v2apk-cap {
    caption-side: top;
    text-align: right;
    padding: 13px 15px 12px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--slate);
    line-height: 1.6;
}
.v2apk-tbl thead th {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 12px 15px;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2apk-tbl tbody th,
.v2apk-tbl tbody td {
    padding: 13px 15px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
    line-height: 1.65;
    color: var(--slate);
    text-align: right;
}
.v2apk-tbl tbody th {
    font-weight: 650;
    color: var(--ink);
    min-width: 150px;
}
.v2apk-tbl tbody tr:last-child th,
.v2apk-tbl tbody tr:last-child td { border-bottom: 0; }
.v2apk-tbl tbody tr.is-hot { background: var(--go-tint); }
.v2apk-tbl tbody tr.is-hot th { color: var(--go-deep); }
.v2apk-tbl tbody tr.is-other { background: var(--mist); }
.v2apk-tbl code {
    font-family: var(--font-mono);
    font-size: 12.5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
}

.v2apk-yn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 650;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    margin-left: 4px;
}
.v2apk-yn.is-yes { color: var(--go-deep); background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); }
.v2apk-yn.is-no { color: var(--ink); background: var(--paper); border: 1px solid var(--ink); }
.v2apk-yn.is-soft { color: var(--slate); background: var(--mist); border: 1px solid var(--line); }

/* ---------- Country plaques ---------- */

.v2apk-grid4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 22px 0;
}
.v2apk-cty {
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--mist);
    padding: 14px 15px;
    text-align: center;
}
.v2apk-cty b {
    display: block;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2apk-cty span {
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}

/* ---------- "What does not change" list ---------- */

.v2apk-keep {
    display: grid;
    gap: 10px;
    margin: 22px 0;
}
.v2apk-keep__i {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    padding: 14px 16px;
}
.v2apk-keep__i b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
    line-height: 1.45;
}
.v2apk-keep__i p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2apk-keep__i a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 2px; }
.v2apk-keep__i .v2gpr-mk { margin-top: 3px; } /* centre the tick on the heading line */
.v2apk-keep__i .v2gpr-mk.is-check { background-position: 50% 58%; } /* centre the check glyph in the circle */

/* ---------- Vertical timeline ---------- */

.v2apk-tl {
    position: relative;
    display: grid;
    gap: 14px;
    margin: 26px 0;
    padding-right: 26px;
}
.v2apk-tl::before {
    content: "";
    position: absolute;
    right: 5px;
    top: 10px;
    bottom: 40px;
    width: 2px;
    background: var(--line);
    border-radius: 2px;
}
.v2apk-tl__i { position: relative; }
.v2apk-tl__i::before {
    content: "";
    position: absolute;
    right: 0.4px;
    top: 1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2apk-tl__i.is-done::before { background: var(--go); border-color: var(--go); }
.v2apk-tl__i.is-now::before { background: var(--paper); border-color: var(--go); box-shadow: 0 0 0 4px var(--go-tint); }
.v2apk-tl__i.is-key::before { border-color: var(--ink); border-width: 3px; }
.v2apk-tl__i.is-key.is-done::before { background: var(--ink); }
.v2apk-tl__i.is-open::before,
.v2apk-tl__i.is-unknown::before { border-style: dashed; border-color: #C9D2DA; background: var(--paper); }
.v2apk-tl__d {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 12px;
    margin-right: 20px;
}
.v2apk-tl__i.is-key .v2apk-tl__d { color: var(--ink); font-weight: 700; }
.v2apk-tl__b {
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
    padding: 15px 17px;
}
.v2apk-tl__i.is-key .v2apk-tl__b { background: var(--mist); }
.v2apk-tl__i.is-open .v2apk-tl__b,
.v2apk-tl__i.is-unknown .v2apk-tl__b { border-style: dashed; border-color: #C9D2DA; }
.v2apk-tl__b h4 {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    margin: 0 0 7px;
}
.v2apk-tl__b > p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-tl__pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.v2apk-tl__pair span {
    display: block;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--mist);
    padding: 10px 12px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2apk-tl__pair span.is-good {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
    color: var(--go-deep);
}
.v2apk-tl__pair b {
    display: block;
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 4px;
}
.v2apk-tl__pair span.is-good b { color: var(--go-deep); }

/* ---------- Identity -> package -> key chain ---------- */

.v2apk-chain {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 26px minmax(0, 1fr) 26px minmax(0, 1fr) 26px minmax(0, 1fr);
    gap: 8px;
    align-items: stretch;
    margin: 26px 0;
}
.v2apk-chain__n {
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
    padding: 16px 15px;
}
.v2apk-chain__n.is-out { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.25); }
.v2apk-chain__i {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    color: var(--slate);
    margin-bottom: 11px;
}
.v2apk-chain__i svg { width: 17px; height: 17px; }
.v2apk-chain__n.is-out .v2apk-chain__i { background: var(--paper); color: var(--go-deep); border-color: rgba(11, 138, 71, 0.3); }
.v2apk-chain__n > b {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 7px;
}
.v2apk-chain__n > p {
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
    margin-bottom: 10px;
}
.v2apk-chain__n code {
    font-family: var(--font-mono);
    font-size: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 4px;
}
.v2apk-chain__t {
    display: inline-block;
    font-size: 8.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2apk-chain__arw {
    display: grid;
    place-items: center;
    color: #C9D2DA;
}
.v2apk-chain__arw svg { width: 20px; height: 20px; }

/* ---------- Audit list ---------- */

.v2apk-audit {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--mist);
    padding: 20px 22px;
    margin: 24px 0;
}
.v2apk-audit__lab {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 14px;
}
.v2apk-audit__lab svg { width: 15px; height: 15px; color: var(--slate); flex-shrink: 0; }
.v2apk-audit ul { display: grid; gap: 11px; }
.v2apk-audit li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2apk-audit li b { color: var(--ink); font-weight: 650; }
.v2apk-audit li a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 2px; }
.v2apk-audit li .v2gpr-mk { margin-top: 4px; } /* centre the icon on the first text line */

/* ---------- Good for / bad for ---------- */

.v2apk-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2apk-two__c {
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 19px;
    background: var(--paper);
}
.v2apk-two__c.is-good { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.25); }
.v2apk-two__c.is-bad { background: var(--mist); }
.v2apk-two__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    margin-bottom: 13px;
    color: var(--slate);
}
.v2apk-two__c.is-good .v2apk-two__tag { color: var(--go-deep); }
.v2apk-two__c.is-bad .v2apk-two__tag { color: var(--ink); }
.v2apk-two__tag svg { width: 17px; height: 17px; flex-shrink: 0; }
.v2apk-two ul { display: grid; gap: 10px; }
.v2apk-two li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2apk-two li .v2gpr-mk { margin-top: 3px; } /* centre the icon on the first text line */

/* ---------- Terminal console with copy buttons ---------- */

.v2apk-cmd {
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
    padding: 20px 22px 18px;
    margin: 26px 0;
}
.v2apk-cmd__head { margin-bottom: 16px; }
.v2apk-cmd__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    margin-bottom: 10px;
}
.v2apk-cmd__tag svg { width: 14px; height: 14px; color: var(--slate); }
.v2apk-cmd__head p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-cmd__row {
    border: 1px solid var(--line);
    border-radius: 13px;
    overflow: hidden;
    margin-bottom: 10px;
}
.v2apk-cmd__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 9px 13px;
}
.v2apk-cmd__name {
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    line-height: 1.5;
}
.v2 .v2apk-cmd__copy {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 11px;
    min-height: 30px;
    flex-shrink: 0;
    transition: color .18s ease, border-color .18s ease, background .18s ease;
}
.v2 .v2apk-cmd__copy svg { width: 13px; height: 13px; }
.v2 .v2apk-cmd__copy:hover { color: var(--ink); border-color: #C9D2DA; }
.v2 .v2apk-cmd__copy.is-done { color: var(--go-deep); border-color: rgba(11, 138, 71, 0.35); background: var(--go-tint); }
.v2apk-cmd__code {
    margin: 0;
    padding: 14px 15px;
    background: var(--paper);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2apk-cmd__code code {
    font-family: var(--font-mono);
    font-size: 13px;
    line-height: 1.7;
    color: var(--ink);
    white-space: pre;
}
.v2apk-cmd__foot {
    margin-top: 14px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-cmd__foot b { color: var(--ink); font-weight: 650; }
.v2apk-cmd__foot code {
    font-family: var(--font-mono);
    font-size: 12.5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
}

/* ---------- Advanced-flow stepper ---------- */

.v2apk-steps { margin: 26px 0; }
.v2apk-steps ol { display: grid; gap: 10px; }
.v2apk-step {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
    padding: 15px 17px;
}
.v2apk-step.is-wait { background: var(--mist); }
.v2apk-step.is-out { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.25); }
.v2apk-step__n {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 11px;
    font-weight: 650;
    color: var(--slate);
}
.v2apk-step.is-wait .v2apk-step__n { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.v2apk-step.is-out .v2apk-step__n { background: var(--paper); border-color: rgba(11, 138, 71, 0.3); color: var(--go-deep); }
.v2apk-step__b h4 {
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    margin: 0 0 6px;
}
.v2apk-step__b > p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
    margin-bottom: 8px;
}
.v2apk-step__why {
    display: inline-block;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    line-height: 1.5;
}
.v2apk-step.is-wait .v2apk-step__why { background: var(--paper); color: var(--ink); }
.v2apk-step.is-out .v2apk-step__why { background: var(--paper); color: var(--go-deep); border-color: rgba(11, 138, 71, 0.3); }

/* ---------- Three quick corrections ---------- */

.v2apk-tri {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2apk-tri__c {
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--mist);
    padding: 16px 17px;
}
.v2apk-tri__q {
    font-family: var(--font-display);
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.4;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2apk-tri__a {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2apk-tri__a b { color: var(--go-deep); font-weight: 700; }
.v2apk-tri__a a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Firebase flow ---------- */

.v2apk-flow {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
}
.v2apk-flow__s {
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
    padding: 16px 15px;
}
.v2apk-flow__s.is-out { background: var(--mist); }
.v2apk-flow__n {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2apk-flow__s b {
    display: block;
    font-family: var(--font-display);
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2apk-flow__s p {
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Route picker (tool questions) ---------- */

.v2apk-q { margin-bottom: 22px; }
.v2apk-q__lab {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 12px;
}
.v2apk-q__lab b {
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    background: var(--ink);
    color: var(--paper);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 650;
    flex-shrink: 0;
}
.v2apk-q__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.v2apk-q__opt { display: inline-flex; cursor: pointer; }
.v2apk-q__opt input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
}
.v2apk-q__face {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font-size: 13.5px;
    line-height: 1.4;
    color: var(--slate);
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.v2 .v2apk-q__face {
    will-change: transform;
    transition: border-color .2s ease, background .2s ease, color .2s ease,
                transform .28s cubic-bezier(.34, 1.56, .64, 1), box-shadow .26s ease !important;
}
.v2apk-q__opt:hover .v2apk-q__face {
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    color: var(--ink);
    background: var(--go-tint);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px -12px rgba(10, 16, 23, 0.28);
}
.v2apk-q__opt:active .v2apk-q__face { transform: translateY(0); }
.v2apk-q__opt input:checked + .v2apk-q__face {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--paper);
    font-weight: 600;
}
.v2apk-q__opt input:focus-visible + .v2apk-q__face {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2apk-q__reset {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2apk-q__reset p {
    font-family: var(--font-mono);
    font-size: 10px;
    line-height: 1.7;
    color: var(--faint);
    flex: 1 1 260px;
}
.v2 .v2apk-q__clear {
    appearance: none;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 9px 16px;
    min-height: 38px;
    background: var(--paper);
    cursor: pointer;
    will-change: transform;
    transition: color .2s ease, border-color .2s ease, background .2s ease,
                transform .28s cubic-bezier(.34, 1.56, .64, 1), box-shadow .26s ease !important;
}
.v2 .v2apk-q__clear:hover {
    color: var(--go-deep);
    border-color: color-mix(in srgb, var(--go) 45%, var(--line));
    background: var(--go-tint);
    transform: translateY(-2px);
    box-shadow: 0 8px 18px -10px rgba(11, 138, 71, 0.35);
}
.v2 .v2apk-q__clear:active { transform: translateY(0); transition-duration: .08s !important; }

/* ---------- Picker verdict card ---------- */

.v2apk-vd {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 18px 20px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .26s ease, transform .26s ease;
}
.v2apk-vd.is-on { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
    .v2apk-vd { opacity: 1; transform: none; transition: none; }
}
.v2apk-vd.is-ok { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2apk-vd.is-block { background: #FEF2F3; border-color: #F3CBD0; }
.v2apk-vd.is-act { background: var(--mist); }
.v2apk-vd__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 14px;
    margin-bottom: 12px;
}
.v2apk-vd__state {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2apk-vd__state svg { width: 17px; height: 17px; flex-shrink: 0; }
.v2apk-vd.is-ok .v2apk-vd__state { color: var(--go-deep); }
.v2apk-vd.is-block .v2apk-vd__state { color: #B4232F; }
.v2apk-vd.is-act .v2apk-vd__state { color: var(--ink); }
.v2apk-vd__lvl {
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 11px;
}
.v2apk-vd__lvl.is-yes { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.3); }
.v2apk-vd h4 {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    margin: 0 0 8px;
}
.v2apk-vd > p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-vd__list {
    display: grid;
    gap: 9px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}
.v2apk-vd__list li {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2apk-vd__list b { color: var(--ink); font-weight: 650; }
.v2apk-vd__go {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 15px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2apk-vd__go a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 38px;
    padding: 9px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    transition: border-color .16s ease;
}
.v2apk-vd__go a:hover { border-color: var(--ink); }
.v2apk-vd__go svg { width: 15px; height: 15px; }

/* ---------- Side-by-side comparison board ---------- */

.v2apk-vs {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 24px 0;
}
.v2apk-vs__row {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr) minmax(0, 1fr);
    gap: 0;
    border-bottom: 1px solid var(--line);
}
.v2apk-vs__row:last-of-type { border-bottom: 0; }
.v2apk-vs__row.is-head {
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 650;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2apk-vs__row.is-head > span { padding: 12px 15px; }
.v2apk-vs__row.is-head .is-play { color: var(--go-deep); background: var(--go-tint); }
.v2apk-vs__need {
    padding: 13px 15px;
    font-size: 13.5px;
    font-weight: 650;
    line-height: 1.55;
    color: var(--ink);
    background: var(--paper);
}
.v2apk-vs__cell {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    padding: 13px 15px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    border-right: 1px solid var(--line);
}
.v2apk-vs__cell:not(:has(.v2gpr-mk)) { grid-template-columns: minmax(0, 1fr); }
.v2apk-vs__cell.is-play { background: var(--go-tint); }
.v2apk-vs__cell b { color: var(--ink); font-weight: 650; }
.v2apk-vs__cell .v2gpr-mk { margin-top: 3px; } /* centre the icon on the first text line */
.v2apk-vs__foot {
    padding: 13px 15px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.75;
    color: var(--faint);
}

/* ---------- Myth ledger ---------- */

.v2apk-myths {
    display: grid;
    gap: 16px;
    margin: 24px 0;
}
.v2apk-myth {
    border: 1px solid var(--line);
    border-radius: 15px;
    overflow: hidden;
    background: var(--paper);
}
.v2apk-myth__c,
.v2apk-myth__r {
    padding: 13px 16px;
    font-size: 14px;
    line-height: 1.65;
}
.v2apk-myth__c {
    background: var(--mist);
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2apk-myth__r { color: var(--ink); }
.v2apk-myth__r b { font-weight: 650; }
.v2apk-myth__t {
    display: inline-block;
    font-size: 8.5px;
    font-weight: 650;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 3px 8px;
    margin-left: 8px;
    vertical-align: 1px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--faint);
}
.v2apk-myth__r .v2apk-myth__t {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
    color: var(--go-deep);
}

/* ---------- Symptom triage accordion ---------- */

.v2apk-fix {
    display: grid;
    gap: 8px;
    margin: 24px 0;
}
.v2apk-fix__i {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    overflow: hidden;
}
.v2apk-fix__i[open] { background: var(--mist); }
.v2apk-fix__i summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 17px;
    min-height: 52px;
    cursor: pointer;
    list-style: none;
    font-size: 14.5px;
    font-weight: 650;
    line-height: 1.45;
    color: var(--ink);
}
.v2apk-fix__i summary::-webkit-details-marker { display: none; }
.v2apk-fix__plus {
    position: relative;
    width: 26px;
    height: 26px;
    flex-shrink: 0;
}
.v2apk-fix__plus i {
    position: absolute;
    right: 50%;
    top: 50%;
    width: 11px;
    height: 2px;
    background: var(--slate);
    border-radius: 2px;
    transform: translate(50%, -50%);
    transition: transform .22s ease, opacity .22s ease;
}
.v2apk-fix__plus i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
.v2 .v2apk-fix__plus i { transition: transform .25s cubic-bezier(.22, 1, .36, 1), background .2s ease !important; }
/* Plus -> minus like the FAQ icon: rotate the vertical bar flat + turn green (no fade). */
.v2apk-fix__i[open] .v2apk-fix__plus i { background: var(--go); }
.v2apk-fix__i[open] .v2apk-fix__plus i:last-child { transform: translate(50%, -50%) rotate(0); }
/* Icon driven by .is-open so it syncs with the animated open/close (scoped to this list). */
#apkFixList .v2apk-fix__i.is-open .v2apk-fix__plus i { background: var(--go); }
#apkFixList .v2apk-fix__i.is-open .v2apk-fix__plus i:last-child { transform: translate(50%, -50%) rotate(0); }
#apkFixList .v2apk-fix__i[open]:not(.is-open) .v2apk-fix__plus i { background: var(--slate); }
#apkFixList .v2apk-fix__i[open]:not(.is-open) .v2apk-fix__plus i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
.v2apk-fix__b {
    padding: 0 17px;
    display: grid;
    gap: 9px;
}
.v2apk-fix__b > :last-child { padding-bottom: 16px; }
#apkFixList .v2apk-fix__b {
    transition-property: max-height, opacity !important;
    transition-duration: .22s !important;
    transition-timing-function: cubic-bezier(.22, .8, .26, 1) !important;
}
.v2apk-fix__b p {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2apk-fix__b b { color: var(--ink); font-weight: 650; }
.v2apk-fix__b a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 2px; }
.v2apk-fix__ev { margin-top: 2px; }

/* ---------- Checklist tracker ---------- */

.v2apk-track__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.v2apk-track__count {
    font-size: 10.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2apk-track__count b { color: var(--ink); font-size: 15px; }
.v2apk-track__bar {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 4px;
    margin-bottom: 14px;
}
.v2apk-track__bar i {
    display: block;
    height: 6px;
    border-radius: 3px;
    background: var(--line);
    transition: background .2s ease;
}
.v2apk-track__bar i.is-on { background: var(--go); }
.v2apk-track__msg {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 11px 14px;
    margin-bottom: 16px;
}
.v2apk-track__msg svg { width: 16px; height: 16px; color: var(--faint); flex-shrink: 0; }
.v2apk-track__msg.is-done {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
    color: var(--go-deep);
}
.v2apk-track__msg.is-done svg { color: var(--go-deep); }
.v2apk-track__list { display: grid; gap: 4px; }

/* ---------- Decay panel ---------- */

.v2apk-decay {
    display: grid;
    gap: 10px;
    margin: 24px 0;
}
.v2apk-decay__i {
    display: grid;
    grid-template-columns: minmax(0, 150px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    padding: 14px 16px;
}
.v2apk-decay__i.is-hot { background: var(--mist); }
.v2apk-decay__d {
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    line-height: 1.6;
    padding-top: 2px;
}
.v2apk-decay__i.is-hot .v2apk-decay__d { color: var(--ink); font-weight: 700; }
.v2apk-decay__i b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
    line-height: 1.4;
}
.v2apk-decay__i p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Plan plaques ---------- */

.v2apk-plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 24px 0;
}
.v2apk-plan {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 18px 18px 16px;
    text-align: center;
}
.v2apk-plan.is-mid { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.25); }
.v2apk-plan__n {
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2apk-plan.is-mid .v2apk-plan__n { color: var(--go-deep); }
.v2apk-plan > b {
    display: block;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2apk-plan__p {
    display: block;
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 1.3rem + 0.7vw, 1.85rem);
    font-weight: 800;
    letter-spacing: -0.025em;
    color: var(--go-deep);
    margin-bottom: 9px;
}
.v2apk-plan p {
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Mid-article CTA row ---------- */

.v2apk-ctarow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 26px 0 10px;
}

/* ============= RESPONSIVE: board / lanes / scope ============= */

@media (max-width: 900px) {
    .v2apk-chain {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }
    .v2apk-chain__arw { transform: rotate(-90deg); height: 26px; }
    .v2apk-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2apk-tri { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 780px) {
    .v2apk-vs__row {
        grid-template-columns: minmax(0, 1fr);
        border-bottom: 0;
        border-radius: 13px;
        border: 1px solid var(--line);
        margin: 10px;
        overflow: hidden;
    }
    .v2apk-vs { border: 0; border-radius: 0; overflow: visible; margin-inline: -10px; }
    .v2apk-vs__row.is-head { display: none; }
    .v2apk-vs__need {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        font-size: 14px;
    }
    .v2apk-vs__cell { border-right: 0; border-top: 1px solid var(--line); }
    .v2apk-vs__cell::before {
        content: attr(data-lab);
        grid-column: 1 / -1;
        display: block;
        font-family: var(--font-mono);
        font-size: 8.5px;
        font-weight: 650;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
    .v2apk-vs__cell.is-play::before { color: var(--go-deep); }
    .v2apk-vs__foot {
        margin: 10px;
        border: 1px solid var(--line);
        border-radius: 13px;
    }
}

@media (max-width: 720px) {
    .v2apk-board { padding: 18px 16px 20px; border-radius: 17px; }
    .v2apk-board__lanes { grid-template-columns: minmax(0, 1fr); }
    .v2apk-board__clock { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2apk-board__rail { margin-bottom: 92px; }
    .v2apk-board__mil em { font-size: 8px; white-space: normal; width: 62px; }
    .v2apk-board__mil.is-first em { transform: translateX(-20%); }
    .v2apk-board__mil.is-end em { transform: translateX(20%); }
    /* Four milestones inside a ~300px rail collide on a phone. Drop the
       second label onto its own row and tether it with a hairline so the
       stagger still reads as belonging to that dot. */
    .v2apk-board__mil:nth-of-type(2) em { margin-top: 39px; }
    .v2apk-board__mil:nth-of-type(2)::after {
        content: "";
        position: absolute;
        right: 50%;
        top: 8px;
        width: 1px;
        height: 28px;
        background: var(--line);
        transform: translateX(50%);
    }
    .v2apk-board__now em { font-size: 8px; padding: 2px 6px; }
    .v2apk-board__open { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2apk-board__dash { width: 46px; }

    .v2apk-scope__row { grid-template-columns: minmax(0, 1fr); gap: 11px; padding: 15px 16px; }
    .v2apk-grid4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2apk-two { grid-template-columns: minmax(0, 1fr); }
    .v2apk-flow { grid-template-columns: minmax(0, 1fr); }
    .v2apk-plans { grid-template-columns: minmax(0, 1fr); }
    .v2apk-tl__pair { grid-template-columns: minmax(0, 1fr); }
    .v2apk-decay__i { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .v2apk-track__bar { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .v2apk-ctarow .v2-btn { width: 100%; justify-content: center; }
}

/* ============= RESPONSIVE: table collapse ============= */

@media (max-width: 720px) {
    .v2apk-tw { overflow-x: visible; border: 0; border-radius: 0; background: none; }
    .v2apk-tbl,
    .v2apk-tbl.is-wide {
        display: block;
        width: 100%;
        min-width: 0;
        border-collapse: collapse;
        background: transparent;
    }
    .v2apk-tbl thead { display: none; }
    .v2apk-cap {
        display: block;
        border: 1px solid var(--line);
        border-radius: 13px 13px 0 0;
        border-bottom: 0;
        background: var(--mist);
        margin-bottom: -1px;
    }
    .v2apk-tbl tbody {
        display: grid;
        gap: 10px;
    }
    .v2apk-tbl tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2apk-tbl tbody tr.is-hot { border-color: rgba(11, 138, 71, 0.3); }
    .v2apk-tbl tbody th,
    .v2apk-tbl tbody td {
        display: block;
        width: auto;
        min-width: 0;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2apk-tbl tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 12px 14px;
        font-size: 14px;
        line-height: 1.45;
        color: var(--ink);
    }
    .v2apk-tbl tbody tr.is-hot th { background: var(--go-tint); color: var(--go-deep); }
    .v2apk-tbl tbody td {
        padding: 11px 14px 13px;
        font-size: 13.5px;
        line-height: 1.6;
    }
    .v2apk-tbl tbody td + td { border-top: 1px solid var(--line); }
    .v2apk-tbl tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
}

/* ============= RESPONSIVE: small phones ============= */

@media (max-width: 420px) {
    .v2apk-q__face { font-size: 13px; padding: 10px 13px; }
    .v2apk-step { grid-template-columns: 36px minmax(0, 1fr); gap: 11px; padding: 14px 14px; }
    .v2apk-step__n { width: 30px; height: 30px; border-radius: 9px; font-size: 10px; }
    .v2apk-cmd { padding: 16px 15px 15px; }
    .v2apk-cmd__bar { flex-wrap: wrap; gap: 8px; }
    .v2apk-grid4 { grid-template-columns: minmax(0, 1fr); }
    .v2apk-vd__go a { width: 100%; justify-content: space-between; }
}

/* ============= END BLOG APK V2 ============= */

/* ============================================================
   TOS BLOG - 2026-08-13 correction pass
   New classes introduced when the "Test on Screen" post was
   corrected for Google's April 13, 2026 You-tab no-install
   games note. The old numeric evidence meter (.v2tos-meter*)
   is no longer emitted by the EN post but is KEPT above because
   the 13 locale copies still render it until they are
   re-translated. Do not delete it before that wave lands.
   ============================================================ */

/* Correction notice, used inline at the top of the locale hero
   lead and bottom line until those pages are fully re-translated. */
.v2tos-corr {
    display: block;
    margin-bottom: 10px;
    padding: 11px 13px;
    border-radius: 12px;
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    background: var(--mist);
    font-size: 0.94em;
}

/* Per-topic evidence status ledger (replaced the percentage meter) */
.v2tos-status {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
}
.v2tos-status__lab,
.v2tos-cover__lab {
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 10px;
}
.v2tos-status__list { list-style: none; margin: 0; padding: 0; }
.v2tos-status__list li {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 14px;
    padding: 7px 0;
    border-bottom: 1px dashed var(--line);
}
.v2tos-status__list li:last-child { border-bottom: 0; }
.v2tos-status__t { font-size: 13.5px; color: var(--ink); }
.v2tos-status__method,
.v2tos-cover__note {
    margin-top: 11px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--faint);
}

/* Source-class coverage, the complement to the freshness stamp */
.v2tos-cover {
    margin-top: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
}
.v2tos-cover__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 7px 18px;
}
.v2tos-cover__list li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 13px;
    color: var(--ink);
}

/* Commercial CTA split out of the neutral Quick Answer capsule */
.v2tos-qacta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 18px;
    margin: 14px 0 26px;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--mist);
}
.v2tos-qacta p { margin: 0; font-size: 13.5px; line-height: 1.6; }

/* Compact establishes / does-not-establish lists in the You-tab section */
.v2tos-mini { list-style: none; margin: 10px 0 0; padding: 0; }
.v2tos-mini li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 6px 0;
    font-size: 13.5px;
    line-height: 1.55;
}

/* Modifiers on existing blocks */
.v2tos-board__verdict.is-trio { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.v2tos-vc.is-gap { border-style: dashed; }
.v2tos-board__nb.is-five { grid-template-columns: repeat(auto-fit, minmax(215px, 1fr)); }
.v2tos-why__i.is-soft { opacity: 0.88; }
.v2tos-code.is-key { border-color: var(--go); }
.v2tos-num.is-wide { grid-column: 1 / -1; }
.v2tos-q__hint {
    margin: -4px 0 14px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* ============================================================
   BLOG PTS V2  -  "Are Paid Google Play Tester Services Worth It?"
   (/blog/are-paid-tester-services-worth-it)

   Rides the shared v2gpr- article layer (rail, chips, hero, quick
   answer, TOC, tool shell, callout family, FAQ, bottom line, docs,
   author + related + CTA bands) and adds a unique v2pts- motif:
   EVIDENCE GRADING AS A VISUAL SYSTEM.

   The thesis of the post is that competing pages fuse a Google
   rule, a Help Community opinion and pure folklore into one
   confident sentence. So the grade chip (.v2pts-ev) is the atom of
   this block, the hero is a three-rung ladder of those grades, and
   every table, card and verdict in the post carries one.

   Palette: violet (#5B34C7) for the post's own furniture, and the
   shared semantic colours held to their existing meanings - --go
   for VERIFIED, --star for REPORTED, grey for UNVERIFIED, rose
   only where Google itself prohibits something. Violet never means
   "danger" here; it just means "this page built it".

   Dark moments stay at two (quick answer + final CTA).

   Mobile-first: every grid in this block is auto-fit/minmax so a
   390px phone gets one column with no media query at all, and the
   explicit collapse rules below are belt-and-braces. Wide blocks
   (comparison tables, the vetting scorecard) live inside
   .v2pts-tw overflow wrappers, never the page.
   ============================================================ */

.v2pts-prose {
    --pts-accent: #5B34C7;
    --pts-deep:   #3F2090;
    --pts-tint:   #F2EEFC;
    --pts-line:   #DDD2F5;
}

/* Block-scoped reset: the base reset skips lists inside prose */
.v2pts-prose ul, .v2pts-prose ol,
.v2pts-ladder__rungs, .v2pts-rung__claims, .v2pts-bench__grid,
.v2pts-split ul, .v2pts-cards, .v2pts-q__opts, .v2pts-vd__list,
.v2pts-flags, .v2pts-ask__list, .v2pts-plan, .v2pts-bars {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Two-part quick answer ----------
   The capsule now leads with a ~65-word answer an assistant or a snippet
   can lift whole, then keeps the fully-qualified version underneath.
   .v2gpr-qa__text carries no margin of its own (and .v2gpr-prose > p does
   not reach inside the capsule), so the pair needs its own spacing. */

.v2pts-qa__short {
    font-size: 18px;
    line-height: 1.72;
    color: #fff;
    font-weight: 500;
}
.v2pts-qa__more {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-size: 15.5px;
}
.v2pts-qa__morelab {
    display: block;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: #8FA3B4;
    margin-bottom: 8px;
}
@media (max-width: 768px) {
    .v2pts-qa__short { font-size: 16.5px; }
    .v2pts-qa__more  { font-size: 15px; }
}

/* ---------- Evidence grade chips (the atom of this post) ---------- */

.v2pts-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2pts-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
.v2pts-ev.is-verified   { color: var(--go-deep);  background: var(--go-tint); }
.v2pts-ev.is-reported   { color: #8A5A00;         background: #FDF3DF; }
.v2pts-ev.is-unverified { color: var(--faint);    background: var(--mist); }
.v2pts-ev.is-banned     { color: #A81E38;         background: #FDECEF; }
.v2pts-ev.is-partial    { color: var(--pts-deep); background: var(--pts-tint); }
.v2pts-ev + .v2pts-ev { margin-right: 6px; }

/* ---------- Section answer capsule ---------- */

.v2pts-ans {
    border-right: 3px solid var(--pts-accent);
    background: linear-gradient(-97deg, var(--pts-tint), rgba(242, 238, 252, 0));
    padding: 15px 17px;
    border-radius: 12px 0 0 12px;
    margin: 0 0 24px;
    font-size: 16.5px;
    line-height: 1.75;
    color: var(--ink);
}
.v2pts-ans strong { font-weight: 700; }
.v2pts-ans b { font-weight: 650; }

/* Small print used under tables and instruments for source lines */
.v2pts-fine {
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--faint);
    margin: 10px 0 0;
}
.v2pts-fine a { color: var(--slate); }

/* Horizontal-scroll wrapper for anything wider than a phone.
   The page itself must never scroll sideways. */
.v2pts-tw {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 0 0 8px;
    border-radius: 14px;
}
.v2pts-tw::-webkit-scrollbar { display: none; }

/* ---------- Hero accents ---------- */

.v2pts-eyebrow { color: var(--pts-accent); }

.v2pts-hero {
    background:
        radial-gradient(1100px 420px at 82% -8%, rgba(91, 52, 199, 0.09), transparent 62%),
        radial-gradient(760px 340px at 6% 4%, rgba(91, 52, 199, 0.05), transparent 60%);
}

/* The freshness chip changes tone once the source check ages past
   90 days: an honest page says so instead of implying it is current. */
.v2gpr-byline__fresh.is-aging {
    color: #8A5A00;
    background: #FDF3DF;
    border-color: #F3E1B4;
}

/* ---------- THE EVIDENCE LADDER (hero signature) ---------- */

.v2pts-ladder {
    margin-top: 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 16px 16px;
    box-shadow: 0 18px 42px rgba(10, 16, 23, 0.07);
}
.v2pts-ladder__top { margin-bottom: 14px; }
.v2pts-ladder__label {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pts-accent);
    margin: 0 0 6px;
}
.v2pts-ladder__label svg { width: 15px; height: 15px; flex: none; }
.v2pts-ladder__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

.v2pts-ladder__rungs {
    display: grid;
    gap: 10px;
}

.v2pts-rung {
    display: grid;
    gap: 10px;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 13px 14px;
    background: var(--mist);
}
.v2pts-rung.is-verified   { background: linear-gradient(-180deg, var(--go-tint), rgba(232, 245, 238, 0.35)); border-color: #C9E7D6; }
.v2pts-rung.is-reported   { background: linear-gradient(-180deg, #FDF7E8, rgba(253, 247, 232, 0.35)); border-color: #F0E2BE; }
.v2pts-rung.is-unverified { background: var(--mist); border-style: dashed; }

.v2pts-rung__head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.v2pts-rung__src {
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2pts-rung__claims {
    display: grid;
    gap: 7px;
}
.v2pts-rung__claims li {
    position: relative;
    padding-right: 20px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.v2pts-rung__claims li::before {
    content: "";
    position: absolute;
    right: 3px;
    top: 8px;
    width: 8px;
    height: 8px;
    border-radius: 2px;
    background: currentColor;
    opacity: 0.35;
}
.v2pts-rung.is-verified .v2pts-rung__claims li::before   { background: var(--go); opacity: 1; }
.v2pts-rung.is-reported .v2pts-rung__claims li::before   { background: var(--star); opacity: 1; }
.v2pts-rung.is-unverified .v2pts-rung__claims li         { color: var(--slate); }
.v2pts-rung.is-unverified .v2pts-rung__claims li::before { background: var(--faint); opacity: 0.5; }
.v2pts-rung__claims s { text-decoration-thickness: 1.5px; text-decoration-color: rgba(168, 30, 56, 0.5); }

.v2pts-ladder__foot {
    margin: 13px 0 0;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}

/* ---------- THE DECISION BENCH (instrument index) ---------- */

.v2pts-bench {
    margin: 30px 0;
    border: 1px solid var(--pts-line);
    border-radius: 18px;
    background: linear-gradient(-180deg, var(--pts-tint), var(--paper) 68%);
    padding: 18px 16px 16px;
}
.v2pts-bench__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pts-deep);
    margin: 0 0 6px;
}
.v2pts-bench__tag svg { width: 15px; height: 15px; flex: none; }
.v2pts-bench__sub {
    margin: 0 0 14px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2pts-bench__grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
}
.v2pts-bench__item {
    display: block;
    background: var(--paper);
    border: 1px solid var(--pts-line);
    border-radius: 13px;
    padding: 13px 14px;
    text-decoration: none;
    min-height: 44px;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.v2pts-bench__item span {
    display: block;
    font-size: 10px;
    letter-spacing: 0.12em;
    color: var(--pts-accent);
    margin-bottom: 5px;
}
.v2pts-bench__item b {
    display: block;
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2pts-bench__item em {
    display: block;
    font-style: normal;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}
.v2pts-bench__item:hover,
.v2pts-bench__item:focus-visible {
    transform: translateY(-2px);
    border-color: var(--pts-accent);
    box-shadow: 0 12px 26px rgba(91, 52, 199, 0.13);
}
.v2pts-bench__item:focus-visible { outline: 2px solid var(--pts-accent); outline-offset: 2px; }

/* Reveal-on-scroll for the hero and the bench (JS adds .v2-anim/.is-in) */
.v2pts-hero.v2-anim .v2pts-ladder,
.v2pts-bench.v2-anim {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .55s ease, transform .55s ease;
}
.v2pts-hero.v2-anim.is-in .v2pts-ladder,
.v2pts-bench.v2-anim.is-in {
    opacity: 1;
    transform: none;
}

/* ---------- Quick answer accent ---------- */

.v2pts-qa .v2gpr-qa__text .is-go { color: #7FE7B0; }

/* The pitch that used to close the Quick Answer capsule. Pulled out into its
   own labelled box so the capsule stays neutral and quotable, and so the
   commercial sentence is visibly a commercial sentence. Deliberately quiet:
   it sits directly under the darkest element on the page. */

.v2pts-qacta {
    margin: 14px 0 0;
    padding: 13px 15px;
    border: 1px solid var(--pts-line);
    border-right: 3px solid var(--pts-accent);
    border-radius: 12px;
    background: var(--pts-tint);
}
.v2pts-qacta__tag {
    margin: 0 0 5px;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pts-deep);
}
.v2pts-qacta p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.62;
    color: var(--slate);
}
.v2pts-qacta a {
    color: var(--pts-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.v2pts-qacta a:hover { color: var(--pts-accent); }

/* ============= RESPONSIVE: ladder + bench + capsules ============= */

@media (min-width: 769px) {
    /* Wider than a phone: the rung label becomes a left gutter so the
       claims read as a single column of evidence. */
    .v2pts-rung {
        grid-template-columns: 168px minmax(0, 1fr);
        align-items: start;
        gap: 16px;
        padding: 15px 17px;
    }
    .v2pts-rung__head { flex-direction: column; align-items: flex-start; gap: 6px; }
    .v2pts-ladder { padding: 22px 22px 20px; }
    .v2pts-bench { padding: 22px 22px 20px; }
}

@media (max-width: 900px) {
    .v2pts-ladder { margin-top: 22px; }
}

@media (max-width: 768px) {
    .v2pts-bench__grid { grid-template-columns: minmax(0, 1fr); }
    .v2pts-ladder__sub, .v2pts-bench__sub { font-size: 13px; }
    .v2pts-ans { font-size: 15.5px; padding: 13px 15px; }
}

@media (max-width: 480px) {
    .v2pts-ladder { padding: 15px 13px 14px; border-radius: 15px; }
    .v2pts-bench { padding: 15px 13px 14px; border-radius: 15px; }
    .v2pts-rung { padding: 12px 12px; border-radius: 12px; }
    .v2pts-rung__claims li { font-size: 14px; padding-right: 18px; }
    .v2pts-ladder__foot { font-size: 13px; }
    .v2pts-bench__item b { font-size: 14.5px; }
}

@media (max-width: 390px) {
    .v2pts-rung__src { font-size: 9px; }
    .v2pts-ev { font-size: 8.5px; padding: 3px 8px; }
    .v2pts-rung__claims li { font-size: 13.5px; }
    .v2pts-ans { font-size: 15px; padding: 12px 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2pts-hero.v2-anim .v2pts-ladder,
    .v2pts-bench.v2-anim,
    .v2pts-bench__item {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ---------- Shared instrument furniture (buttons, foot, verdict) ---------- */

.v2pts-btn {
    appearance: none;
    border: 1px solid var(--pts-line);
    background: var(--paper);
    color: var(--pts-deep);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 650;
    border-radius: 10px;
    padding: 12px 15px;
    min-height: 44px;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.v2pts-btn:hover { background: var(--pts-tint); border-color: var(--pts-accent); }
.v2pts-btn:focus-visible { outline: 2px solid var(--pts-accent); outline-offset: 2px; }
.v2pts-btn.is-quiet { color: var(--slate); border-color: var(--line); }
.v2pts-btn.is-quiet:hover { background: var(--mist); border-color: var(--faint); }
.v2pts-btn.is-done { background: var(--go-tint); border-color: var(--go); color: var(--go-deep); }

.v2pts-toolfoot {
    display: grid;
    gap: 11px;
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px dashed var(--line);
}
.v2pts-toolfoot p {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
}
.v2pts-toolfoot__btns { display: flex; flex-wrap: wrap; gap: 9px; }
.v2pts-toolfoot__btns .v2pts-btn { flex: 1 1 auto; }

/* Copy source: available to the clipboard handler, out of the visual flow */
.v2pts-copysrc {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: pre-line;
    border: 0;
}

/* The verdict panel, shared by every instrument in this post */
.v2pts-verdict {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 15px 14px;
    background: var(--paper);
    animation: v2ptsIn .3s ease both;
}
@keyframes v2ptsIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}
.v2pts-verdict__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.v2pts-verdict__grade {
    font-family: var(--font-display);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--ink);
}
.v2pts-verdict__pct {
    font-size: 21px;
    font-weight: 700;
    color: var(--pts-accent);
    white-space: nowrap;
}
.v2pts-verdict__pct i { font-style: normal; font-size: 11px; color: var(--faint); }
.v2pts-verdict__bar {
    height: 7px;
    border-radius: 99px;
    background: var(--mist);
    overflow: hidden;
    margin-bottom: 11px;
}
.v2pts-verdict__bar i {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: var(--pts-accent);
    transition: width .4s ease;
}
.v2pts-verdict__text {
    margin: 0 0 9px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-verdict__meta {
    margin: 0;
    font-size: 10.5px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2pts-verdict.is-good { border-color: #C9E7D6; background: linear-gradient(-180deg, var(--go-tint), var(--paper) 60%); }
.v2pts-verdict.is-good .v2pts-verdict__pct,
.v2pts-verdict.is-good .v2pts-verdict__bar i { color: var(--go-deep); background-color: var(--go); }
.v2pts-verdict.is-good .v2pts-verdict__pct { background: none; color: var(--go-deep); }
.v2pts-verdict.is-mid  { border-color: #F0E2BE; background: linear-gradient(-180deg, #FDF7E8, var(--paper) 60%); }
.v2pts-verdict.is-mid .v2pts-verdict__pct { color: #8A5A00; }
.v2pts-verdict.is-mid .v2pts-verdict__bar i { background: var(--star); }
.v2pts-verdict.is-weak { border-color: var(--line); }
.v2pts-verdict.is-weak .v2pts-verdict__pct { color: var(--slate); }
.v2pts-verdict.is-weak .v2pts-verdict__bar i { background: var(--faint); }
.v2pts-verdict.is-stop { border-color: #F3C9D2; background: linear-gradient(-180deg, #FDECEF, var(--paper) 60%); }
.v2pts-verdict.is-stop .v2pts-verdict__pct { color: #A81E38; }
.v2pts-verdict.is-stop .v2pts-verdict__bar i { background: #C42A4A; }

/* ---------- Vetting scorecard rows ---------- */

.v2pts-ask__list { display: grid; gap: 11px; margin-bottom: 15px; }

.v2pts-askrow {
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 13px 13px 12px;
    background: var(--paper);
    transition: border-color .18s ease, background .18s ease;
}
.v2pts-askrow.is-flagged {
    border-color: #E9A5B4;
    background: linear-gradient(-180deg, #FDECEF, var(--paper) 55%);
}
.v2pts-askrow__q {
    margin: 0 0 5px;
    font-size: 15px;
    line-height: 1.55;
    color: var(--ink);
    display: flex;
    gap: 9px;
    align-items: baseline;
}
.v2pts-askrow__q span {
    font-size: 10.5px;
    color: var(--pts-accent);
    flex: none;
    letter-spacing: 0.08em;
}
.v2pts-askrow__q b { font-weight: 650; }
.v2pts-askrow__why {
    margin: 0 0 10px;
    padding-right: 28px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}
.v2pts-askrow__why span.v2-mono {
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
    margin-left: 4px;
}
.v2pts-askrow__opts { display: grid; gap: 7px; padding-right: 28px; }

/* Option pills: hidden native input, styled face. Full width on phones. */
.v2pts-opt { display: block; cursor: pointer; }
.v2pts-opt input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}
.v2pts-opt__face {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 44px;
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--mist);
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.v2pts-opt__face::before {
    content: "";
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid var(--faint);
    flex: none;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.v2pts-opt input:checked + .v2pts-opt__face {
    background: var(--paper);
    color: var(--ink);
    font-weight: 600;
}
.v2pts-opt input:focus-visible + .v2pts-opt__face {
    outline: 2px solid var(--pts-accent);
    outline-offset: 2px;
}
.v2pts-opt.is-good input:checked + .v2pts-opt__face { border-color: var(--go); }
.v2pts-opt.is-good input:checked + .v2pts-opt__face::before { border-color: var(--go); box-shadow: inset 0 0 0 3px var(--go); }
.v2pts-opt.is-mid input:checked + .v2pts-opt__face { border-color: var(--star); }
.v2pts-opt.is-mid input:checked + .v2pts-opt__face::before { border-color: var(--star); box-shadow: inset 0 0 0 3px var(--star); }
.v2pts-opt.is-bad input:checked + .v2pts-opt__face { border-color: #C42A4A; }
.v2pts-opt.is-bad input:checked + .v2pts-opt__face::before { border-color: #C42A4A; box-shadow: inset 0 0 0 3px #C42A4A; }

/* ---------- Card grid (conversation enders, and reused later) ---------- */

.v2pts-cards {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
    margin: 18px 0 8px;
}
.v2pts-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 15px 13px;
    background: var(--paper);
}
.v2pts-card__tag {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin: 0 0 7px;
}
.v2pts-card h4 {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}
.v2pts-card p {
    margin: 0 0 9px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-card p:last-child { margin-bottom: 0; }
.v2pts-card__do {
    border-top: 1px dashed var(--line);
    padding-top: 9px;
    font-size: 13.5px;
}
.v2pts-card__do span.v2-mono {
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--go-deep);
    margin-left: 5px;
}
.v2pts-card.is-stop { border-color: #F3C9D2; background: linear-gradient(-180deg, #FDECEF 0%, var(--paper) 42%); }
.v2pts-card.is-stop h4 { color: #8E1730; }
.v2pts-card.is-go { border-color: #C9E7D6; background: linear-gradient(-180deg, var(--go-tint) 0%, var(--paper) 42%); }

/* ============= RESPONSIVE: scorecard + cards ============= */

@media (min-width: 769px) {
    /* Room for three option pills side by side once the rail is not
       squeezing the column. Below this they stay stacked and full width. */
    .v2pts-askrow__opts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2pts-opt__face { min-height: 56px; align-items: flex-start; }
}

@media (max-width: 768px) {
    .v2pts-cards { grid-template-columns: minmax(0, 1fr); }
    .v2pts-askrow__opts { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
    .v2pts-askrow { padding: 12px 11px 11px; }
    .v2pts-askrow__q { font-size: 14.5px; gap: 7px; }
    .v2pts-askrow__why, .v2pts-askrow__opts { padding-right: 0; }
    .v2pts-opt__face { font-size: 13px; padding: 9px 11px; }
    .v2pts-verdict__grade { font-size: 17.5px; }
    .v2pts-verdict__pct { font-size: 19px; }
    .v2pts-card { padding: 13px 13px 12px; }
    .v2pts-card h4 { font-size: 15.5px; }
    .v2pts-toolfoot__btns .v2pts-btn { flex: 1 1 100%; }
}

@media (max-width: 390px) {
    .v2pts-askrow__q { font-size: 14px; }
    .v2pts-opt__face { font-size: 12.5px; gap: 7px; }
    .v2pts-verdict { padding: 13px 12px 12px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2pts-verdict { animation: none; }
    .v2pts-verdict__bar i { transition: none; }
}

/* ---------- Condition list ("paying is defensible when...") ---------- */

.v2pts-when { display: grid; gap: 9px; margin: 0 0 22px; }
.v2pts-when li {
    position: relative;
    padding: 11px 38px 11px 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--mist);
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-when li b { color: var(--ink); font-weight: 650; }
.v2pts-when li::before {
    content: "";
    position: absolute;
    right: 14px;
    top: 17px;
    width: 12px;
    height: 7px;
    border-right: 2px solid var(--pts-accent);
    border-bottom: 2px solid var(--pts-accent);
    transform: rotate(45deg);
}

/* ---------- Question blocks (shared by the meter and the planner) ---------- */

.v2pts-q { margin-bottom: 16px; }
.v2pts-q.is-gate {
    border: 1px solid var(--pts-line);
    background: var(--pts-tint);
    border-radius: 13px;
    padding: 13px 13px 12px;
}
.v2pts-q__lab {
    margin: 0 0 9px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--ink);
}
.v2pts-q__lab span.v2-mono {
    font-size: 10px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--pts-accent);
    margin-left: 7px;
}
.v2pts-q__opts { display: grid; gap: 7px; }

/* ---------- Factor breakdown bars ---------- */

.v2pts-bars {
    display: grid;
    gap: 7px;
    margin: 12px 0 11px;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
}
.v2pts-bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 82px 26px;
    align-items: center;
    gap: 9px;
}
.v2pts-bar__lab {
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2pts-bar__track {
    height: 6px;
    border-radius: 99px;
    background: var(--mist);
    overflow: hidden;
}
.v2pts-bar__track i {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: var(--pts-accent);
    opacity: 0.75;
    transition: width .35s ease;
}
.v2pts-bar__val {
    font-size: 11px;
    color: var(--faint);
    text-align: left;
}

/* ---------- Data tables ---------- */

.v2pts-tbl {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    font-size: 14px;
}
.v2pts-tbl--3 { min-width: 620px; }
.v2pts-tbl--4 { min-width: 760px; }
/* Caption on the market-price table: the figures are a dated snapshot, so the
   date travels with the table rather than only with the paragraph above it. */
.v2pts-tbl__cap {
    caption-side: top;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--faint);
    padding: 0 0 9px;
}
.v2pts-tbl th, .v2pts-tbl td {
    padding: 12px 14px;
    text-align: right;
    vertical-align: top;
    line-height: 1.65;
    border-bottom: 1px solid var(--line);
}
.v2pts-tbl thead th {
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
    white-space: nowrap;
}
.v2pts-tbl tbody td { color: var(--slate); }
.v2pts-tbl tbody td b { color: var(--ink); font-weight: 650; }
.v2pts-tbl tbody tr:last-child td { border-bottom: 0; }
.v2pts-tbl tbody tr:nth-child(even) td { background: rgba(245, 247, 248, 0.55); }

.v2pts-rec { font-weight: 650; }
.v2pts-rec.is-diy   { color: var(--go-deep); }
.v2pts-rec.is-pay   { color: var(--pts-deep); }
.v2pts-rec.is-check { color: #8A5A00; }
.v2pts-rec.is-stop  { color: #A81E38; }

/* ============= RESPONSIVE: meter, bars, table collapse ============= */

@media (min-width: 769px) {
    .v2pts-q__opts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 190px), 1fr)); }
}

@media (max-width: 768px) {
    .v2pts-q__opts { grid-template-columns: minmax(0, 1fr); }

    /* Tables become stacked cards: the header row is dropped and each cell
       reprints its column name, so nothing needs sideways scrolling. */
    .v2pts-tw { overflow-x: visible; }
    .v2pts-tbl,
    .v2pts-tbl--3,
    .v2pts-tbl--4 {
        min-width: 0;
        border: 0;
        background: none;
        display: block;
    }
    .v2pts-tbl thead { display: none; }
    .v2pts-tbl tbody, .v2pts-tbl tr, .v2pts-tbl td { display: block; width: auto; }
    .v2pts-tbl tbody tr {
        border: 1px solid var(--line);
        border-radius: 13px;
        background: var(--paper);
        padding: 4px 0;
        margin-bottom: 10px;
        overflow: hidden;
    }
    .v2pts-tbl tbody tr:nth-child(even) td { background: none; }
    .v2pts-tbl tbody td {
        border-bottom: 1px dashed var(--line);
        padding: 10px 14px;
    }
    .v2pts-tbl tbody tr td:last-child { border-bottom: 0; }
    .v2pts-tbl tbody td::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
}

@media (max-width: 480px) {
    .v2pts-when li { font-size: 14px; padding: 10px 34px 10px 12px; }
    .v2pts-when li::before { right: 12px; }
    .v2pts-q__lab { font-size: 14.5px; }
    .v2pts-bar { grid-template-columns: minmax(0, 1fr) 58px 24px; gap: 7px; }
    .v2pts-bar__lab { font-size: 12px; }
    .v2pts-tbl tbody td { padding: 9px 12px; font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2pts-q__lab { font-size: 14px; }
    .v2pts-bar { grid-template-columns: minmax(0, 1fr) 44px 22px; }
    .v2pts-when li { font-size: 13.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2pts-bar__track i { transition: none; }
}

/* ---------- Post-14-days flow ---------- */

.v2pts-flow { display: grid; gap: 9px; margin: 0 0 22px; }
.v2pts-flow__step {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    padding: 13px 14px;
}
.v2pts-flow__step.is-key { border-color: var(--pts-line); background: linear-gradient(-97deg, var(--pts-tint), var(--paper) 62%); }
.v2pts-flow__step.is-warn { border-color: #F0E2BE; background: linear-gradient(-97deg, #FDF7E8, var(--paper) 62%); }
.v2pts-flow__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--pts-tint);
    color: var(--pts-deep);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
}
.v2pts-flow__step.is-warn .v2pts-flow__n { background: #FBEFD4; color: #8A5A00; }
.v2pts-flow__step h4 {
    margin: 0 0 4px;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
}
.v2pts-flow__step p {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-flow__step p b { color: var(--ink); font-weight: 650; }

/* ---------- Verbatim Google quote ---------- */

.v2pts-quote {
    margin: 22px 0;
    padding: 17px 18px 15px;
    border: 1px solid var(--line);
    border-right: 3px solid var(--pts-accent);
    border-radius: 14px 0 0 14px;
    background: var(--mist);
}
.v2pts-quote p {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.6;
    color: var(--ink);
}
.v2pts-quote cite {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
}

/* ---------- Text and date inputs ---------- */

.v2pts-input {
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    font-family: var(--font-body);
    font-size: 15px;
    color: var(--ink);
    transition: border-color .16s ease, box-shadow .16s ease;
}
.v2pts-input:focus {
    outline: none;
    border-color: var(--pts-accent);
    box-shadow: 0 0 0 3px rgba(91, 52, 199, 0.14);
}
.v2pts-input:focus-visible { outline: 2px solid transparent; }
.v2pts-q__hint {
    margin: 6px 0 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- Projected date rows ---------- */

.v2pts-dates {
    display: grid;
    gap: 6px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}
.v2pts-dates li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 9px 12px;
    border-radius: 10px;
    background: var(--mist);
}
.v2pts-dates li span.v2-mono {
    font-size: 10px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2pts-dates li b {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
    white-space: nowrap;
}
.v2pts-dates li.is-key { background: var(--pts-tint); }
.v2pts-dates li.is-key span.v2-mono { color: var(--pts-deep); }
.v2pts-dates li.is-key b { color: var(--pts-deep); }

/* ============= RESPONSIVE: flow, quote, planner ============= */

@media (max-width: 768px) {
    .v2pts-quote p { font-size: 16px; }
}

@media (max-width: 480px) {
    .v2pts-flow__step { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 12px 12px; }
    .v2pts-flow__n { width: 30px; height: 30px; border-radius: 9px; font-size: 10px; }
    .v2pts-flow__step h4 { font-size: 15px; }
    .v2pts-flow__step p { font-size: 13.5px; }
    .v2pts-quote { padding: 14px 14px 13px; }
    .v2pts-quote p { font-size: 15.5px; }
    .v2pts-dates li { padding: 8px 11px; }
    .v2pts-dates li b { font-size: 14px; }
}

@media (max-width: 390px) {
    .v2pts-flow__step { grid-template-columns: minmax(0, 1fr); }
    .v2pts-flow__n { width: 28px; height: 28px; }
    .v2pts-quote p { font-size: 15px; }
    .v2pts-verdict__pct { font-size: 15px; }
}

/* ---------- Three-lane permitted / partial / prohibited split ---------- */

.v2pts-split {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
    margin: 0 0 24px;
}
.v2pts-lane {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 15px 15px 14px;
    background: var(--paper);
}
.v2pts-lane.is-ok   { border-color: #C9E7D6; background: linear-gradient(-180deg, var(--go-tint) 0%, var(--paper) 38%); }
.v2pts-lane.is-grey { border-color: var(--pts-line); background: linear-gradient(-180deg, var(--pts-tint) 0%, var(--paper) 38%); }
.v2pts-lane.is-no   { border-color: #F3C9D2; background: linear-gradient(-180deg, #FDECEF 0%, var(--paper) 38%); }
.v2pts-lane__head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}
.v2pts-lane__head h3 {
    margin: 0;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}
.v2pts-lane__sub {
    margin: 0 0 11px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--faint);
}
.v2pts-lane ul { display: grid; gap: 6px; }
.v2pts-lane li {
    position: relative;
    padding-right: 18px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2pts-lane li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 8px;
    width: 7px;
    height: 7px;
    border-radius: 2px;
    background: var(--faint);
}
.v2pts-lane.is-ok li::before   { background: var(--go); }
.v2pts-lane.is-grey li::before { background: var(--pts-accent); }
.v2pts-lane.is-no li::before   { background: #C42A4A; }
.v2pts-lane__note {
    margin: 11px 0 0;
    padding-top: 10px;
    border-top: 1px dashed var(--line);
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
}

/* ============= RESPONSIVE: lanes ============= */

@media (max-width: 768px) {
    .v2pts-split { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
    .v2pts-lane { padding: 13px 13px 12px; border-radius: 13px; }
    .v2pts-lane__head h3 { font-size: 15.5px; }
    .v2pts-lane li { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2pts-lane li { font-size: 13px; padding-right: 16px; }
    .v2pts-lane__sub { font-size: 12.5px; }
}

/* ---------- Requirement plaques: REMOVED ----------

   .v2pts-req / .v2pts-req__item styled four plaques reading "12 / 14 /
   Closed / Review" directly above a table whose first five rows say the
   same thing, on a page that had already said it in the hero plaques, the
   evidence ladder and the Quick Answer. The markup came out; these rules
   would have been dead weight, and .v2pts-card.is-stop below is likewise
   unused now that the duplicate "conversation ender" cards are gone. That
   one is kept: it is a variant of a card family the post still uses. */

/* ---------- Red flag list ---------- */

.v2pts-flags { display: grid; gap: 10px; margin: 0 0 22px; }
.v2pts-flag {
    border: 1px solid var(--line);
    border-right: 3px solid var(--faint);
    border-radius: 13px 0 0 13px;
    background: var(--paper);
    padding: 13px 14px 12px;
}
.v2pts-flag.is-crit { border-right-color: #C42A4A; background: linear-gradient(-97deg, #FDECEF, var(--paper) 55%); }
.v2pts-flag.is-high { border-right-color: var(--star); background: linear-gradient(-97deg, #FDF7E8, var(--paper) 55%); }
.v2pts-flag.is-med  { border-right-color: var(--faint); }
.v2pts-flag__top {
    display: flex;
    align-items: baseline;
    gap: 9px;
    flex-wrap: wrap;
    margin-bottom: 9px;
}
.v2pts-flag__sev {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    background: var(--mist);
    color: var(--faint);
    white-space: nowrap;
    flex: none;
}
.v2pts-flag.is-crit .v2pts-flag__sev { background: #FBDDE3; color: #8E1730; }
.v2pts-flag.is-high .v2pts-flag__sev { background: #FBEFD4; color: #8A5A00; }
.v2pts-flag__top b {
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.v2pts-flag p {
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-flag p:last-child { margin-bottom: 0; }
.v2pts-flag p span.v2-mono {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin-left: 6px;
}

/* ============= RESPONSIVE: red flags ============= */

@media (max-width: 480px) {
    .v2pts-flag { padding: 12px 12px 11px; }
    .v2pts-flag__top b { font-size: 15px; }
    .v2pts-flag p { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2pts-flag__top { gap: 7px; }
    .v2pts-flag__top b { font-size: 14.5px; }
    .v2pts-flag p { font-size: 13px; }
}

/* ---------- Two-column can-buy / cannot-buy ---------- */

.v2pts-two {
    display: grid;
    gap: 11px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
    margin: 0 0 24px;
}
.v2pts-two__col {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 15px 15px 14px;
    background: var(--paper);
}
.v2pts-two__col.is-yes { border-color: #C9E7D6; background: linear-gradient(-180deg, var(--go-tint) 0%, var(--paper) 34%); }
.v2pts-two__col.is-no  { border-color: var(--line); background: linear-gradient(-180deg, var(--mist) 0%, var(--paper) 34%); }
.v2pts-two__col h3 {
    margin: 0 0 12px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}
.v2pts-two__col ul { display: grid; gap: 9px; }
.v2pts-two__col li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-two__col li b { color: var(--ink); font-weight: 650; }
.v2pts-two__col.is-yes li::before {
    content: "";
    position: absolute;
    right: 4px;
    top: 8px;
    width: 11px;
    height: 6px;
    border-right: 2px solid var(--go);
    border-bottom: 2px solid var(--go);
    transform: rotate(45deg);
}
.v2pts-two__col.is-no li::before {
    content: "";
    position: absolute;
    right: 5px;
    top: 11px;
    width: 11px;
    height: 2px;
    background: var(--faint);
}

/* ---------- Labelled anecdote cards ---------- */

.v2pts-anec {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
    margin: 18px 0 20px;
}
.v2pts-anec__item {
    border: 1px dashed var(--line);
    border-radius: 13px;
    padding: 14px 14px 12px;
    background: var(--mist);
}
.v2pts-anec__q {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--ink);
}
.v2pts-anec__src {
    margin: 0;
    padding-top: 9px;
    border-top: 1px dashed var(--line);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}
.v2pts-anec__src .v2pts-ev { margin-left: 6px; }

/* ============= RESPONSIVE: two-column + anecdotes ============= */

@media (max-width: 768px) {
    .v2pts-two { grid-template-columns: minmax(0, 1fr); }
    .v2pts-anec { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 480px) {
    .v2pts-two__col { padding: 13px 13px 12px; }
    .v2pts-two__col h3 { font-size: 16px; }
    .v2pts-two__col li { font-size: 13.5px; padding-right: 23px; }
    .v2pts-anec__q { font-size: 15px; }
}

@media (max-width: 390px) {
    .v2pts-two__col li { font-size: 13px; }
    .v2pts-anec__q { font-size: 14.5px; }
}

/* ---------- Community sources panel ----------

   Same shape as the decay panel below it, in the REPORTED amber rather than
   the post's violet, because that is the grade every row in it carries. It
   sits under Primary Sources so the two lists read as one hierarchy: what
   Google published, then what people reported. */

.v2pts-comm {
    margin: 22px 0 0;
    border: 1px solid #F0E2BE;
    border-radius: 15px;
    background: linear-gradient(-180deg, #FDF7E8, var(--paper) 42%);
    padding: 16px 16px 14px;
}
.v2pts-comm__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #8A5A00;
    margin: 0 0 12px;
}
.v2pts-comm__tag svg { width: 15px; height: 15px; flex: none; }
.v2pts-comm__list {
    display: grid;
    gap: 9px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}
.v2pts-comm__list li {
    position: relative;
    padding-right: 19px;
    font-size: 13.5px;
    line-height: 1.68;
    color: var(--slate);
}
.v2pts-comm__list li b { color: var(--ink); font-weight: 650; }
.v2pts-comm__list li::before {
    content: "";
    position: absolute;
    right: 3px;
    top: 8px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    border: 1.5px solid var(--star);
}
/* The sourcing rationale is reader-facing copy, not fine print: it explains
   why a page built on evidence grading is listing venues instead of
   permalinks. It needs body size, unlike the mono foot below it. */
.v2pts-comm__why {
    margin: 0 0 10px;
    padding-top: 11px;
    border-top: 1px solid #F0E2BE;
    font-size: 13px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-comm__why b { color: var(--ink); font-weight: 650; }
.v2pts-comm__foot {
    margin: 0;
    font-size: 10.5px;
    line-height: 1.7;
    color: var(--faint);
}

@media (max-width: 640px) {
    .v2pts-comm { padding: 14px 13px 12px; border-radius: 13px; }
    .v2pts-comm__list li { font-size: 13px; }
    .v2pts-comm__why { font-size: 12.5px; }
}

/* ---------- Freshness and decay panel ---------- */

.v2pts-decay {
    margin: 26px 0 0;
    border: 1px dashed var(--pts-line);
    border-radius: 15px;
    background: var(--mist);
    padding: 16px 16px 14px;
}
.v2pts-decay__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pts-deep);
    margin: 0 0 12px;
}
.v2pts-decay__tag svg { width: 15px; height: 15px; flex: none; }
.v2pts-decay__list {
    display: grid;
    gap: 8px;
    margin: 0 0 13px;
    padding: 0;
    list-style: none;
}
.v2pts-decay__list li {
    position: relative;
    padding-right: 19px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2pts-decay__list li b { color: var(--ink); font-weight: 650; }
.v2pts-decay__list li::before {
    content: "";
    position: absolute;
    right: 3px;
    top: 9px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    border: 1.5px solid var(--pts-accent);
}
.v2pts-decay__foot {
    margin: 0;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
    font-size: 10.5px;
    letter-spacing: 0.05em;
    line-height: 1.7;
    color: var(--faint);
}

/* ============= RESPONSIVE: decay panel ============= */

@media (max-width: 480px) {
    .v2pts-decay { padding: 14px 13px 12px; border-radius: 13px; }
    .v2pts-decay__list li { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2pts-decay__list li { font-size: 13px; padding-right: 17px; }
}

/* ---------- Sticky mobile CTA repair (scoped to this post) ----------

   The FAQ block's <=768px rule sets .v2-faq__wa { flex: 1 1 100% }, and the
   shared .v2gpr-scta override only resets flex-shrink, so the WhatsApp button
   resolves to flex: 1 0 100%: at 390px it measures 362px starting at x=68 and
   runs ~40px off-screen, while the primary button collapses to its 44px
   minimum and shows no label. Measured identically on the 16 KB and Test on
   Screen posts, so this is shared furniture rather than anything this post
   introduced. Repaired here only, because changing the shared rule would move
   the layout of six posts that currently render against it. */

.v2 .v2pts-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2pts-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2pts-scta { gap: 8px; padding-right: 11px; padding-left: 11px; }
    .v2 .v2pts-scta .v2-btn { font-size: 13px; }
}

/* ---------- Hero plaques carrying a phrase instead of a number ----------

   .v2gpr-fact b is a 20px display face built for "12" and "14". The two
   findings plaques carry a phrase ("No Explicit Ban Found"), which at that
   size wraps to three ragged lines in a ~163px grid column. Dropping to
   15px keeps them to two tidy lines at every width without touching the
   numeric plaques, which stay large on purpose. */

.v2pts-facts .v2gpr-fact.is-phrase b {
    font-size: 15px;
    line-height: 1.24;
    letter-spacing: -0.01em;
    text-wrap: balance;
}

/* The full negative finding, at readable size. It sits under the plaque row
   rather than inside a 9.5px caption, because the precision is the point. */
.v2pts-facts__note {
    margin: 12px 0 0;
    max-width: 830px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}

@media (max-width: 640px) {
    .v2pts-facts .v2gpr-fact.is-phrase b { font-size: 13.5px; }
    .v2pts-facts__note { font-size: 12.5px; }
}

/* ---------- No-JavaScript fallback for the three instruments ---------- */

.v2pts-nojs {
    margin: 0;
    padding: 11px 13px;
    border: 1px dashed var(--pts-line);
    border-radius: 11px;
    background: var(--pts-tint);
    color: var(--pts-deep);
    font-size: 13px;
    line-height: 1.6;
}

/* ---------- Partial-score meter for the two scored instruments ----------

   Both tools used to divide by the FULL weight of every question, so an
   unanswered question scored as zero risk / zero quality and dragged the
   verdict toward a confident answer the reader never gave. They now score
   answered weight only and show how much of the instrument is filled in. */

.v2pts-progress {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
}
.v2pts-progress__track {
    flex: 1 1 auto;
    height: 5px;
    border-radius: 999px;
    background: var(--mist);
    overflow: hidden;
}
.v2pts-progress__track i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--pts-accent);
    transition: width .25s ease;
}
.v2pts-progress__lab {
    flex: none;
    font-size: 10.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2pts-verdict.is-partial {
    border-style: dashed;
}
.v2pts-verdict__provisional {
    display: inline-block;
    margin-right: 8px;
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--mist);
    color: var(--slate);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    vertical-align: 2px;
}

/* ============= END BLOG PTS V2 ============= */

/* ============================================================
   BLOG CAL V2  -  "Google Play Policy Updates 2026"
   (/blog/google-play-policy-updates-2026)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, checkbox, FAQ, bottom line, docs,
   author, related, CTA) and adds a unique v2cal- motif: the
   REGISTER. Every component answers one of three questions about
   a date - when, who, and is the date even settled - so the block
   is built around a status vocabulary rather than around alarm.

   Three states carry the whole design:
     confirmed   ink on paper, green tick
     disputed    amber, and always shows BOTH Google dates
     dead        greyed, struck, kept on purpose

   Amber is the post's accent because the story is ambiguity, not
   danger. Rose appears nowhere: no row on this page justifies it.
   Dark moments stay at two (quick answer + final CTA).

   Mobile first throughout: the master calendar is a card list
   that gains columns on wide screens rather than a table that
   loses them, and the only real table (the target API matrix)
   collapses to row cards at 720px.
   ============================================================ */

/* Block-scoped reset (the base reset skips lists and figures) */
.v2cal-prose ul, .v2cal-prose ol,
.v2cal-year__grid, .v2cal-year__key, .v2cal-lab__grid,
.v2cal-rows, .v2cal-row__meta, .v2cal-legend, .v2cal-prof__opts,
.v2cal-sw__pair, .v2cal-look__out, .v2cal-dead, .v2cal-two,
.v2cal-steps, .v2cal-decay__list, .v2cal-plans, .v2cal-src__list,
.v2cal-chk {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Accent tokens (scoped, never global) ---------- */

.v2cal-hero, .v2cal-prose {
    --cal-am: #B45309;
    --cal-am-tint: #FDF4E7;
    --cal-am-line: rgba(180, 83, 9, 0.22);
    --cal-dead: #8A94A0;
    --cal-dead-tint: #F5F7F8;
}

.v2cal-eyebrow { color: var(--cal-am); }

/* ---------- Status badge family (used on every dated row) ---------- */

.v2cal-st {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2cal-st::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
/* Kind marker: separates Play commercial/program milestones from Developer
   Program Policy requirements. Deliberately a square outline rather than a
   dotted pill, so it never reads as one more status value. */
.v2cal-kind {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 4px;
    padding: 4px 8px;
    white-space: nowrap;
    vertical-align: 2px;
    color: var(--slate);
    background: transparent;
    border: 1px dashed var(--line-strong, var(--line));
}
.v2cal-st.is-confirmed {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2cal-st.is-conflict {
    color: var(--cal-am);
    background: var(--cal-am-tint);
    border: 1px solid var(--cal-am-line);
}
.v2cal-st.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2cal-st.is-notice,
.v2cal-st.is-clarified {
    color: var(--faint);
    background: var(--paper);
    border: 1px dashed #C9D2DA;
}
.v2cal-st.is-superseded,
.v2cal-st.is-wrong {
    color: var(--cal-dead);
    background: var(--cal-dead-tint);
    border: 1px solid var(--line);
    text-decoration: line-through;
}
.v2cal-st.is-unannounced {
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--ink);
}
/* Time state, shown next to the status */
.v2cal-when {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2cal-when.is-soon { color: var(--cal-am); }
.v2cal-when.is-today { color: var(--go-deep); }

/* ---------- Prose atoms ---------- */

.v2gpr-prose > p.v2cal-ans,
.v2cal-ans {
    border-right: 3px solid var(--go);
    background: var(--go-tint);
    border-radius: 14px 0 0 14px;
    padding: 16px 20px;
    margin: 20px 0 26px;
    font-size: 15.5px;
    line-height: 1.75;
    color: var(--ink);
}
.v2gpr-prose > p.v2cal-fine,
.v2cal-fine {
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.02em;
    color: var(--faint);
    margin: 12px 0 22px;
}
.v2cal-fine a { color: var(--slate); }

/* Changelog note. Deliberately quieter than .v2cal-ans: it is a correction
   notice, not the answer, and it sits directly under the opening framing
   paragraph where a reader holding the superseded date will hit it early. */
.v2cal-upd {
    border: 1px solid var(--line);
    border-right: 3px solid var(--cal-am);
    background: var(--cal-am-tint);
    border-radius: 13px 0 0 13px;
    padding: 13px 17px;
    margin: 22px 0 26px;
}
.v2cal-upd__tag {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--cal-am);
    margin: 0 0 5px;
}
.v2gpr-prose .v2cal-upd p:last-child,
.v2cal-upd p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2cal-upd a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

/* Verbatim Google quote with its answer-number citation */
.v2cal-quote {
    position: relative;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 14px 0 0 14px;
    padding: 18px 22px;
    margin: 22px 0;
}
.v2cal-quote p {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.6;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin: 0 0 10px;
}
.v2cal-quote cite {
    display: block;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    font-style: normal;
}
.v2cal-quote cite a { color: var(--slate); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- HERO: the policy year grid (instrument 01) ---------- */

.v2cal-year {
    margin-top: 30px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 20px 18px 18px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 18px 44px -26px rgba(10, 16, 23, 0.18);
}
.v2cal-year__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.v2cal-year__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ink);
    letter-spacing: 0.08em;
}
.v2cal-year__label svg { width: 15px; height: 15px; color: var(--cal-am); flex-shrink: 0; }
.v2cal-year__hint {
    font-size: 12px;
    color: var(--faint);
}

.v2cal-year__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
.v2cal-mo {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: space-between;
    min-height: 68px;
    padding: 9px 10px 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
a.v2cal-mo:hover {
    background: var(--paper);
    border-color: #C9D2DA;
    transform: translateY(-2px);
}
.v2cal-mo__m {
    font-size: 10px;
    letter-spacing: 0.1em;
    color: var(--slate);
}
.v2cal-mo__n {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 22px;
    line-height: 1;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2cal-mo__yr {
    position: absolute;
    top: 8px;
    left: 9px;
    font-size: 8.5px;
    letter-spacing: 0.08em;
    color: var(--faint);
}
.v2cal-mo__dots {
    position: absolute;
    left: 9px;
    bottom: 9px;
    display: flex;
    gap: 3px;
}
.v2cal-mo__dots i,
.v2cal-year__key i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    display: block;
}
.v2cal-mo__dots i.is-conf,   .v2cal-year__key i.is-conf     { background: var(--go); }
.v2cal-mo__dots i.is-conflict,.v2cal-year__key i.is-conflict { background: var(--cal-am); }
.v2cal-mo__dots i.is-soft,   .v2cal-year__key i.is-soft     { background: #C9D2DA; }

.v2cal-mo.is-empty {
    background: transparent;
    border-style: dashed;
}
.v2cal-mo.is-empty .v2cal-mo__n { color: #C9D2DA; }
.v2cal-mo.is-past { opacity: 0.62; }
.v2cal-mo.is-past .v2cal-mo__n { color: var(--slate); }
.v2cal-mo.is-now {
    background: var(--paper);
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(10, 16, 23, 0.06);
    opacity: 1;
}
.v2cal-mo.is-next {
    background: var(--cal-am-tint);
    border-color: var(--cal-am-line);
}
.v2cal-mo.is-next .v2cal-mo__n { color: var(--cal-am); }
.v2cal-mo.is-next::after {
    content: "NEXT";
    position: absolute;
    top: -1px;
    left: -1px;
    font-family: var(--font-mono);
    font-size: 7.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    color: var(--paper);
    background: var(--cal-am);
    border-radius: 12px 0 8px 0;
    padding: 3px 7px 3px 6px;
}
.v2cal-mo.is-next .v2cal-mo__yr { display: none; }

.v2cal-year__key {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2cal-year__key span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    color: var(--slate);
}
.v2cal-year__foot {
    margin-top: 12px;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2cal-year__foot b { color: var(--ink); font-weight: 650; }

/* Reveal on scroll, respecting reduced motion (the .v2-anim contract) */
.v2cal-hero.v2-anim .v2cal-year {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.5s ease 0.18s, transform 0.5s ease 0.18s;
}
.v2cal-hero.v2-anim.is-in .v2cal-year {
    opacity: 1;
    transform: none;
}

/* ---------- Quick answer tint ---------- */

.v2cal-qa .v2gpr-qa__text strong.is-go { color: #6EE7A8; }

/* ---------- Instrument index ---------- */

.v2cal-lab {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 20px 18px;
    margin: 30px 0;
}
.v2cal-lab__head { margin-bottom: 14px; }
.v2cal-lab__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--cal-am);
    letter-spacing: 0.1em;
    margin-bottom: 8px;
}
.v2cal-lab__tag svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2cal-lab__sub {
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2cal-lab__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}
.v2cal-lab__item {
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr);
    align-items: baseline;
    gap: 4px 10px;
    padding: 12px 14px;
    min-height: 46px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    text-decoration: none;
    transition: border-color 0.18s ease, transform 0.18s ease;
}
.v2cal-lab__item:hover { border-color: #C9D2DA; transform: translateY(-1px); }
.v2cal-lab__item > span { color: var(--faint); font-size: 10px; }
.v2cal-lab__item b {
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    letter-spacing: -0.008em;
}
.v2cal-lab__item em {
    grid-column: 2;
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2cal-lab.v2-anim .v2cal-lab__item {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.v2cal-lab.v2-anim.is-in .v2cal-lab__item { opacity: 1; transform: none; }
.v2cal-lab.v2-anim.is-in .v2cal-lab__item:nth-child(2) { transition-delay: 0.06s; }
.v2cal-lab.v2-anim.is-in .v2cal-lab__item:nth-child(3) { transition-delay: 0.12s; }
.v2cal-lab.v2-anim.is-in .v2cal-lab__item:nth-child(4) { transition-delay: 0.18s; }

/* ============================================================
   RESPONSIVE: foundation
   Written with the components above, not bolted on. The grid
   GAINS columns as the screen widens; 3-up at 390px is the
   design, not a fallback.
   ============================================================ */

@media (min-width: 560px) {
    .v2cal-year__grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
    .v2cal-lab__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
    .v2cal-year { padding: 24px 24px 20px; }
    .v2cal-year__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 9px; }
    .v2cal-mo { min-height: 76px; padding: 10px 12px 9px; }
    .v2cal-mo__n { font-size: 25px; }
    .v2cal-lab__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .v2cal-lab__item { grid-template-columns: minmax(0, 1fr); min-height: 0; }
    .v2cal-lab__item em { grid-column: 1; }
}

@media (max-width: 767.9px) {
    .v2cal-year__hint { display: none; }
}

@media (max-width: 480px) {
    .v2cal-year { padding: 16px 14px 14px; border-radius: 16px; }
    .v2cal-year__grid { gap: 7px; }
    .v2cal-mo { min-height: 62px; padding: 8px 9px 7px; border-radius: 11px; }
    .v2cal-mo__n { font-size: 20px; }
    .v2cal-mo__m { font-size: 9.5px; }
    .v2cal-year__key { gap: 8px 12px; }
    .v2cal-year__key span { font-size: 11px; }
    .v2cal-year__foot { font-size: 13px; }
    .v2cal-quote { padding: 15px 17px; }
    .v2cal-quote p { font-size: 15.5px; }
    .v2gpr-prose > p.v2cal-ans, .v2cal-ans { padding: 14px 16px; font-size: 14.5px; }
    .v2cal-lab { padding: 16px 15px 15px; }
    .v2cal-lab__item b { font-size: 14px; }
}

@media (max-width: 390px) {
    .v2cal-year__grid { gap: 6px; }
    .v2cal-mo { min-height: 58px; padding: 7px 8px 6px; }
    .v2cal-mo__n { font-size: 18px; }
    .v2cal-mo.is-next::after { font-size: 7px; padding: 2px 6px 2px 5px; }
    .v2cal-mo__dots { left: 7px; bottom: 7px; }
    .v2cal-mo__dots i { width: 5px; height: 5px; }
}

/* ============================================================
   CAL V2  -  status legend, profiler, the register
   ============================================================ */

/* ---------- Status legend ---------- */

.v2cal-legend {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 20px 0 26px;
}
.v2cal-legend li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    padding: 13px 15px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
}
.v2cal-legend li > span { justify-self: start; }
.v2cal-legend li p {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Checkbox rows (profiler) ---------- */

.v2cal-prof__opts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}
.v2cal-chkrow {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    min-height: 48px;
    padding: 13px 14px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease;
}
.v2cal-chkrow:hover { border-color: #C9D2DA; }
.v2cal-chkrow input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}
.v2cal-chkrow__box {
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: var(--paper);
    border: 1.5px solid #C9D2DA;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.16s ease, border-color 0.16s ease;
}
.v2cal-chkrow__box svg {
    width: 15px;
    height: 15px;
    color: var(--paper);
    opacity: 0;
    transform: scale(0.7);
    transition: opacity 0.16s ease, transform 0.16s ease;
}
.v2cal-chkrow input:checked + .v2cal-chkrow__box {
    background: var(--go);
    border-color: var(--go);
}
.v2cal-chkrow input:checked + .v2cal-chkrow__box svg { opacity: 1; transform: none; }
.v2cal-chkrow input:focus-visible + .v2cal-chkrow__box {
    outline: 2px solid var(--go);
    outline-offset: 2px;
}
.v2cal-chkrow__txt {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
}
.v2cal-chkrow input:checked ~ .v2cal-chkrow__txt { font-weight: 600; }

/* ---------- Profiler footer + verdict ---------- */

.v2cal-prof__foot {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.v2 .v2cal-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 15px;
    font-size: 13px;
    font-weight: 650;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease;
}
.v2 .v2cal-btn:hover { border-color: #C9D2DA; background: var(--mist); }
.v2cal-prof__count {
    flex: 1 1 220px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2cal-prof__out {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 17px;
}
.v2cal-prof__stamp {
    color: var(--go-deep);
    letter-spacing: 0.11em;
    margin-bottom: 8px;
}
.v2cal-prof__head {
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--ink);
    margin-bottom: 12px;
}
.v2cal-prof__next {
    display: grid;
    gap: 8px;
}
.v2cal-prof__next li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 3px;
    padding: 12px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2cal-prof__next li b {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--ink);
}
.v2cal-prof__next li em {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--cal-am);
}
.v2cal-prof__next li span {
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
}
.v2cal-prof__next li a {
    justify-self: start;
    margin-top: 4px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---------- The register ---------- */

.v2cal-reg {
    margin: 26px 0 30px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: 16px 14px 14px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -22px rgba(10, 16, 23, 0.14);
}
.v2cal-reg__bar {
    display: grid;
    gap: 10px;
    margin-bottom: 12px;
}
.v2cal-seg {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 4px;
    padding: 4px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2 .v2cal-seg button {
    min-height: 40px;
    padding: 0 6px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
    background: transparent;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease;
}
.v2 .v2cal-seg button:hover { color: var(--ink); }
.v2 .v2cal-seg button.is-on {
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.08);
}
.v2cal-reg__count { color: var(--faint); letter-spacing: 0.1em; }
/* The [hidden] attribute has to beat these display rules: the UA sheet's
   [hidden]{display:none} loses to any class selector that sets display. */
.v2cal-reg__month[hidden],
.v2cal-prof__out[hidden],
.v2cal-reg__empty[hidden],
.v2cal-look__out[hidden],
.v2cal-rows > li[hidden] { display: none; }

.v2cal-reg__month {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 9px 13px;
    margin-bottom: 10px;
    background: var(--cal-am-tint);
    border: 1px solid var(--cal-am-line);
    border-radius: 11px;
}
.v2cal-reg__month span { color: var(--cal-am); letter-spacing: 0.08em; }
.v2 .v2cal-reg__month button {
    font-size: 12px;
    font-weight: 700;
    color: var(--cal-am);
    text-decoration: underline;
    text-underline-offset: 3px;
    min-height: 32px;
}
.v2cal-reg__empty {
    padding: 18px 16px;
    text-align: center;
    font-size: 14px;
    color: var(--slate);
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 12px;
}

/* ---------- One dated row ---------- */

.v2cal-rows { display: grid; gap: 7px; }
.v2cal-row {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    overflow: hidden;
}
.v2cal-row[data-cal-st="conflict"] {
    background: var(--cal-am-tint);
    border-color: var(--cal-am-line);
}
.v2cal-row[data-cal-when="past"] summary .v2cal-row__d,
.v2cal-row[data-cal-when="past"] summary .v2cal-row__t b { color: var(--slate); }
.v2cal-row > summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 26px;
    grid-template-areas:
        "date  x"
        "title x"
        "badge badge";
    gap: 4px 8px;
    align-items: center;
    padding: 13px 14px;
    min-height: 48px;
    cursor: pointer;
    list-style: none;
}
.v2cal-row > summary::-webkit-details-marker { display: none; }
.v2cal-row > summary:focus-visible {
    outline: 2px solid var(--go);
    outline-offset: -2px;
    border-radius: 12px;
}
.v2cal-row__d {
    grid-area: date;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--ink);
}
.v2cal-row__t {
    grid-area: title;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--ink);
}
.v2cal-row__t b { font-weight: 600; }
.v2cal-row__badges {
    grid-area: badge;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.v2cal-row__x {
    grid-area: x;
    position: relative;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    background: var(--paper);
    border: 1px solid var(--line);
    justify-self: end;
    align-self: start;
}
.v2cal-row__x i {
    position: absolute;
    right: 50%;
    top: 50%;
    width: 10px;
    height: 1.7px;
    background: var(--slate);
    border-radius: 2px;
    transform: translate(50%, -50%);
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.v2cal-row__x i:last-child { transform: translate(50%, -50%) rotate(-90deg); }
.v2cal-row[open] .v2cal-row__x i:last-child { transform: translate(50%, -50%) rotate(0deg); opacity: 0; }
.v2cal-row__body {
    padding: 0 14px 14px;
    border-top: 1px solid var(--line);
    margin-top: 2px;
    padding-top: 12px;
}
.v2cal-row__meta { display: grid; gap: 10px; }
.v2cal-row__meta li {
    display: grid;
    gap: 3px;
}
.v2cal-row__meta li > span {
    font-size: 9px;
    letter-spacing: 0.12em;
    color: var(--faint);
}
.v2cal-row__meta li p {
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2cal-row__meta li a { color: var(--go-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.v2cal-row__go {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 12px;
    min-height: 40px;
    padding: 0 14px;
    font-size: 13px;
    font-weight: 700;
    color: var(--go-deep);
    background: var(--paper);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 999px;
    text-decoration: none;
}
.v2cal-row__go:hover { background: var(--go-tint); }
.v2cal-row__go .v2-ic { width: 15px; height: 15px; }

/* ============================================================
   RESPONSIVE: legend / profiler / register
   ============================================================ */

@media (min-width: 560px) {
    .v2cal-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
    .v2cal-prof__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2cal-prof__next li {
        grid-template-columns: 118px minmax(0, 1fr) auto;
        align-items: center;
        gap: 4px 14px;
    }
    .v2cal-prof__next li b { grid-row: 1; }
    .v2cal-prof__next li em { grid-row: 2; grid-column: 1; }
    .v2cal-prof__next li span { grid-row: 1 / span 2; grid-column: 2; }
    .v2cal-prof__next li a { grid-row: 1 / span 2; grid-column: 3; margin-top: 0; white-space: nowrap; }

    .v2cal-reg { padding: 18px 18px 16px; }
    .v2cal-reg__bar {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }
    .v2cal-seg { grid-template-columns: repeat(4, auto); justify-self: start; }
    .v2 .v2cal-seg button { padding: 0 16px; }

    .v2cal-row > summary {
        grid-template-columns: 104px minmax(0, 1fr) auto 26px;
        grid-template-areas: "date title badge x";
        gap: 14px;
        padding: 14px 16px;
    }
    .v2cal-row__badges { margin-top: 0; justify-content: flex-end; }
    .v2cal-row__body { padding: 12px 16px 16px; }
    .v2cal-row__meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px 22px;
    }
    .v2cal-row__meta li:nth-child(5) { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
    .v2cal-reg { padding: 14px 12px 12px; border-radius: 16px; }
    .v2cal-seg { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 14px; }
    .v2 .v2cal-seg button { border-radius: 11px; }
    .v2cal-row > summary { padding: 12px 12px; }
    .v2cal-row__t { font-size: 14px; }
    .v2cal-row__body { padding: 11px 12px 13px; }
    .v2cal-row__meta li p { font-size: 13.5px; }
    .v2cal-chkrow { padding: 12px 12px; }
    .v2cal-chkrow__txt { font-size: 14px; }
    .v2cal-legend li { padding: 12px 13px; }
    .v2cal-prof__count { font-size: 13px; }
}

@media (max-width: 390px) {
    .v2cal-row__badges { gap: 6px; }
    .v2cal-st { font-size: 8.5px; padding: 3px 8px; }
    .v2cal-when { font-size: 8.5px; }
    .v2cal-row__d { font-size: 10.5px; }
}

/* ============================================================
   CAL V2  -  conflict switcher
   ============================================================ */

.v2cal-seg--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2 .v2cal-seg--two button { font-size: 10.5px; }

.v2cal-sw__src {
    margin: 14px 0 4px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cal-sw__src b { color: var(--ink); font-weight: 650; }
.v2cal-sw__src a {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.v2cal-sw__pair {
    display: grid;
    gap: 9px;
    margin-top: 14px;
}
.v2cal-sw__pair li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    padding: 14px 15px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 13px 0 0 13px;
    transition: border-color 0.2s ease, background 0.2s ease;
}
.v2cal-sw__pair li.is-earlier {
    background: var(--cal-am-tint);
    border-color: var(--cal-am-line);
    border-right-color: var(--cal-am);
}
/* A row whose two Google surfaces have been reconciled. Reads as settled
   rather than as a warning, so the one row still in conflict keeps the
   amber treatment to itself and stays the thing the eye lands on. */
.v2cal-sw__pair li.is-agreed {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.22);
    border-right-color: var(--go-deep);
}
.v2cal-sw__pair li.is-agreed .v2cal-sw__date { color: var(--go-deep); }
.v2cal-sw__pair li.is-agreed .v2cal-sw__verdict { border-top-color: rgba(11, 138, 71, 0.22); }
.v2cal-sw__name {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2cal-sw__date {
    font-family: var(--font-display);
    font-weight: 750;
    font-size: 22px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2cal-sw__pair li.is-earlier .v2cal-sw__date { color: var(--cal-am); }
.v2cal-sw__other {
    font-size: 13px;
    color: var(--faint);
}
.v2cal-sw__other s { color: var(--slate); }
.v2cal-sw__verdict {
    margin-top: 3px;
    padding-top: 9px;
    border-top: 1px dashed #C9D2DA;
    font-size: 13.5px;
    color: var(--slate);
}
.v2cal-sw__verdict b { color: var(--ink); font-weight: 650; }

@media (min-width: 768px) {
    .v2cal-sw__pair li {
        grid-template-columns: minmax(0, 1.1fr) auto;
        align-items: center;
        gap: 6px 20px;
    }
    .v2cal-sw__name { grid-column: 1; grid-row: 1; }
    .v2cal-sw__date { grid-column: 1; grid-row: 2; font-size: 25px; }
    .v2cal-sw__other { grid-column: 1; grid-row: 3; }
    .v2cal-sw__verdict {
        grid-column: 2;
        grid-row: 1 / span 3;
        margin: 0;
        padding: 0 20px 0 0;
        border-top: 0;
        border-right: 1px dashed #C9D2DA;
        text-align: left;
        max-width: 190px;
    }
}

@media (max-width: 480px) {
    .v2cal-sw__pair li { padding: 12px 13px; }
    .v2cal-sw__date { font-size: 20px; }
    .v2cal-sw__other, .v2cal-sw__verdict { font-size: 12.5px; }
    .v2 .v2cal-seg--two button { font-size: 9.5px; letter-spacing: 0.05em; }
}

@media (max-width: 390px) {
    .v2cal-sw__date { font-size: 18px; }
}


/* ============================================================
   CAL V2  -  date cards, two-up compares, the split, the matrix
   ============================================================ */

/* ---------- "What lands on this date" card ---------- */

.v2cal-day {
    margin: 22px 0 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -24px rgba(10, 16, 23, 0.14);
}
.v2cal-day__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 14px 16px;
    background: var(--ink);
}
.v2cal-day__date {
    font-family: var(--font-display);
    font-weight: 750;
    font-size: 19px;
    letter-spacing: -0.018em;
    color: var(--paper);
}
.v2cal-day__head .v2cal-when { color: rgba(255, 255, 255, 0.62); }
.v2cal-day__head .v2cal-when.is-soon { color: #F5B95C; }
.v2cal-day__head .v2cal-when.is-today { color: #6EE7A8; }
.v2cal-day > ul { display: grid; }
.v2cal-day > ul > li {
    display: grid;
    gap: 6px;
    padding: 15px 16px;
    border-top: 1px solid var(--line);
}
.v2cal-day > ul > li:first-child { border-top: 0; }
.v2cal-day > ul > li > span.v2cal-st { justify-self: start; }
.v2cal-day__t {
    font-size: 15.5px;
    font-weight: 650;
    line-height: 1.45;
    letter-spacing: -0.008em;
    color: var(--ink);
}
.v2cal-day__who,
.v2cal-day__act {
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2cal-day__who span,
.v2cal-day__act span {
    display: inline-block;
    min-width: 30px;
    margin-left: 4px;
    font-size: 9px;
    letter-spacing: 0.12em;
    color: var(--faint);
}
.v2cal-day__act span { color: var(--go-deep); }

/* ---------- Two-up compare (source A vs source B, rule 1 vs rule 2) ---------- */

.v2cal-two {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 20px 0 24px;
}
.v2cal-two li {
    display: grid;
    gap: 5px;
    padding: 15px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2cal-two li > span {
    font-size: 9.5px;
    letter-spacing: 0.12em;
    color: var(--faint);
}
.v2cal-two li > b {
    font-family: var(--font-display);
    font-weight: 750;
    font-size: 21px;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2cal-two li > em {
    font-style: normal;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Play program dates (kept out of the policy register) ---------- */
.v2cal-prog {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin: 20px 0 24px;
}
.v2cal-prog li {
    display: grid;
    gap: 4px;
    padding: 13px 15px;
    background: var(--paper);
    border: 1px dashed var(--line);
    border-radius: 12px;
}
.v2cal-prog__d {
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2cal-prog__t {
    font-size: 15px;
    font-weight: 650;
    line-height: 1.4;
    letter-spacing: -0.006em;
    color: var(--ink);
}
.v2cal-prog__w {
    font-style: normal;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- The split (two requirements, one date) ---------- */

.v2cal-split {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 22px 0 26px;
}
.v2cal-split__p {
    padding: 17px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-top: 3px solid var(--ink);
    border-radius: 3px 3px 16px 16px;
}
.v2cal-split__p:nth-child(2) { border-top-color: var(--cal-am); }
.v2cal-split__tag {
    color: var(--faint);
    letter-spacing: 0.13em;
    margin-bottom: 7px;
}
.v2cal-split__p:nth-child(2) .v2cal-split__tag { color: var(--cal-am); }
.v2cal-split__t {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 17.5px;
    line-height: 1.3;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin-bottom: 13px;
}
.v2cal-split__p dl { margin: 0; }
.v2cal-split__p dt {
    font-size: 9px;
    letter-spacing: 0.12em;
    color: var(--faint);
    margin-bottom: 3px;
}
.v2cal-split__p dd {
    margin: 0 0 11px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cal-split__p dd:last-child { margin-bottom: 0; }

/* ---------- The form-factor matrix (the page's only table) ---------- */

.v2cal-scroll {
    margin: 20px 0 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2cal-scroll::-webkit-scrollbar { display: none; }
.v2cal-mx {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--paper);
}
.v2cal-mx th, .v2cal-mx td {
    text-align: right;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2cal-mx thead th {
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2cal-mx tbody th {
    font-size: 14px;
    font-weight: 650;
    color: var(--ink);
}
.v2cal-mx tbody td {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2cal-mx tbody td b {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--ink);
}
.v2cal-mx tbody tr:last-child th,
.v2cal-mx tbody tr:last-child td { border-bottom: 0; }

/* ============================================================
   RESPONSIVE: date cards / compares / split / matrix
   The matrix does not just scroll on a phone, it stops being a
   table: each row becomes its own card with cells labelled from
   their column headers, because a horizontally scrolled table
   hides the column that matters most.
   ============================================================ */

@media (min-width: 620px) {
    .v2cal-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2cal-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 768px) {
    .v2cal-day__date { font-size: 21px; }
    .v2cal-day > ul > li {
        grid-template-columns: 128px minmax(0, 1fr);
        gap: 6px 18px;
        padding: 16px 18px;
    }
    .v2cal-day > ul > li > span.v2cal-st { grid-column: 1; grid-row: 1; margin-top: 2px; }
    .v2cal-day__t { grid-column: 2; grid-row: 1; }
    .v2cal-day__who { grid-column: 2; grid-row: 2; }
    .v2cal-day__act { grid-column: 2; grid-row: 3; }
}

@media (max-width: 720px) {
    .v2cal-scroll { overflow-x: visible; border: 0; background: transparent; }
    .v2cal-mx {
        display: block;
        width: 100%;
        min-width: 0;
        background: transparent;
    }
    .v2cal-mx thead { display: none; }
    .v2cal-mx tbody { display: grid; gap: 10px; }
    .v2cal-mx tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2cal-mx tbody th,
    .v2cal-mx tbody td {
        display: block;
        width: auto;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2cal-mx tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 12px 14px;
        font-size: 14px;
        line-height: 1.45;
    }
    .v2cal-mx tbody td { padding: 11px 14px 13px; }
    .v2cal-mx tbody td + td { border-top: 1px solid var(--line); }
    .v2cal-mx tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
}

@media (max-width: 480px) {
    .v2cal-day { border-radius: 15px; }
    .v2cal-day__head { padding: 12px 14px; }
    .v2cal-day__date { font-size: 17.5px; }
    .v2cal-day > ul > li { padding: 13px 14px; }
    .v2cal-day__t { font-size: 15px; }
    .v2cal-day__who, .v2cal-day__act { font-size: 13.5px; }
    .v2cal-two li { padding: 13px 14px; }
    .v2cal-two li > b { font-size: 19px; }
    .v2cal-split__p { padding: 15px 15px; }
    .v2cal-split__t { font-size: 16.5px; }
    .v2cal-split__p dd { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2cal-day__date { font-size: 16.5px; }
    .v2cal-two li > b { font-size: 18px; }
}

/* ============================================================
   CAL V2  -  passed rows, dead dates, lookup, symptom list
   ============================================================ */

/* ---------- Passed rows, grouped by month ---------- */

.v2cal-past {
    display: grid;
    gap: 14px;
    margin: 22px 0 10px;
}
.v2cal-past__g {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 14px 15px;
}
.v2cal-past__m {
    color: var(--ink);
    letter-spacing: 0.13em;
    margin-bottom: 10px;
}
.v2cal-past__g ul { display: grid; gap: 7px; }
.v2cal-past__g li {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: baseline;
    gap: 4px 12px;
    padding: 10px 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
}
.v2cal-past__d {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--faint);
}
.v2cal-past__t {
    font-size: 14px;
    line-height: 1.5;
    color: var(--ink);
}
.v2cal-past__g li > .v2cal-st { grid-column: 2; justify-self: start; margin-top: 3px; }

/* ---------- Dead and misread dates ---------- */

.v2cal-dead {
    display: grid;
    gap: 11px;
    margin: 22px 0 26px;
}
.v2cal-dead__i {
    padding: 15px 16px;
    background: var(--cal-dead-tint);
    border: 1px solid var(--line);
    border-right: 3px solid var(--cal-dead);
    border-radius: 14px 0 0 14px;
}
.v2cal-dead__i.is-conflict {
    background: var(--cal-am-tint);
    border-color: var(--cal-am-line);
    border-right-color: var(--cal-am);
}
.v2cal-dead__i.is-wrong {
    background: var(--paper);
    border-right-color: var(--ink);
}
.v2cal-dead__top {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}
.v2cal-dead__d {
    font-family: var(--font-display);
    font-weight: 750;
    font-size: 18px;
    letter-spacing: -0.016em;
    color: var(--slate);
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
}
.v2cal-dead__i.is-conflict .v2cal-dead__d {
    color: var(--cal-am);
    text-decoration: none;
}
.v2cal-dead__i.is-wrong .v2cal-dead__d { color: var(--ink); }
.v2cal-dead__what,
.v2cal-dead__now,
.v2cal-dead__say {
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    margin-bottom: 7px;
}
.v2cal-dead__say { margin-bottom: 0; }
.v2cal-dead__what span,
.v2cal-dead__now span,
.v2cal-dead__say span {
    display: block;
    font-size: 9px;
    letter-spacing: 0.12em;
    color: var(--faint);
    margin-bottom: 2px;
}
.v2cal-dead__say {
    margin-top: 10px;
    padding: 11px 13px;
    background: var(--paper);
    border: 1px dashed #C9D2DA;
    border-radius: 10px;
    color: var(--ink);
}
.v2cal-dead__say span { color: var(--go-deep); }

/* ---------- The lookup ---------- */

.v2cal-look {
    position: relative;
    margin-bottom: 12px;
}
.v2cal-look > svg {
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--faint);
    pointer-events: none;
}
.v2 .v2cal-look input {
    width: 100%;
    min-height: 50px;
    padding: 13px 43px 13px 16px;
    font-family: var(--font-body);
    font-size: 15.5px;
    font-weight: 500;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2cal-look input::placeholder { color: var(--faint); }
.v2 .v2cal-look input:focus {
    outline: none;
    border-color: var(--go);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--go-tint);
}
.v2 .v2cal-look input::-webkit-search-cancel-button { -webkit-appearance: none; }

.v2cal-look__eg {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}
.v2cal-look__eg > span { color: var(--faint); letter-spacing: 0.12em; }
.v2 .v2cal-look__eg button {
    min-height: 36px;
    padding: 0 12px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    cursor: pointer;
    transition: border-color 0.16s ease, color 0.16s ease;
}
.v2 .v2cal-look__eg button:hover { border-color: #C9D2DA; color: var(--ink); }

.v2cal-look__out { display: grid; gap: 9px; }
.v2cal-look__r {
    display: grid;
    gap: 5px;
    padding: 14px 15px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 13px 0 0 13px;
}
.v2cal-look__r.is-conflict { border-right-color: var(--cal-am); background: var(--cal-am-tint); border-color: var(--cal-am-line); }
.v2cal-look__r.is-superseded,
.v2cal-look__r.is-wrong { border-right-color: var(--cal-dead); }
.v2cal-look__r.is-clarified,
.v2cal-look__r.is-notice,
.v2cal-look__r.is-partial,
.v2cal-look__r.is-unannounced { border-right-color: #C9D2DA; }
.v2cal-look__top {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
}
.v2cal-look__top b {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--ink);
}
.v2cal-look__t {
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ink);
}
.v2cal-look__a {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cal-look__r a {
    justify-self: start;
    margin-top: 3px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2cal-look__none {
    padding: 15px 16px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    background: var(--mist);
    border: 1px dashed #C9D2DA;
    border-radius: 12px;
}

/* ---------- Symptom to date ---------- */

.v2cal-sym {
    display: grid;
    gap: 10px;
    margin: 22px 0 26px;
}
.v2cal-sym li {
    display: grid;
    gap: 6px;
    padding: 15px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2cal-sym__q {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.v2cal-sym__c {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--faint);
}
.v2cal-sym__a {
    padding-top: 9px;
    border-top: 1px dashed #C9D2DA;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cal-sym__a a {
    display: inline-block;
    margin-right: 4px;
    font-weight: 700;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}

/* ============================================================
   RESPONSIVE: passed / dead / lookup / symptoms
   ============================================================ */

@media (min-width: 768px) {
    .v2cal-past__g li {
        grid-template-columns: 58px minmax(0, 1fr) auto;
        align-items: center;
    }
    .v2cal-past__g li > .v2cal-st { grid-column: 3; margin-top: 0; }
    .v2cal-dead__i { padding: 17px 19px; }
    .v2cal-dead__d { font-size: 20px; }
    .v2cal-sym li {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
        gap: 6px 20px;
    }
    .v2cal-sym__q { grid-column: 1; grid-row: 1; }
    .v2cal-sym__c { grid-column: 1; grid-row: 2; }
    .v2cal-sym__a {
        grid-column: 2;
        grid-row: 1 / span 2;
        padding-top: 0;
        padding-right: 20px;
        border-top: 0;
        border-right: 1px dashed #C9D2DA;
    }
}

@media (max-width: 480px) {
    .v2cal-past__g { padding: 12px 12px; }
    .v2cal-past__g li { padding: 9px 11px; grid-template-columns: 48px minmax(0, 1fr); }
    .v2cal-past__t { font-size: 13.5px; }
    .v2cal-dead__i { padding: 13px 14px; }
    .v2cal-dead__d { font-size: 16.5px; }
    .v2cal-dead__what, .v2cal-dead__now, .v2cal-dead__say { font-size: 13.5px; }
    .v2 .v2cal-look input { font-size: 15px; padding-right: 40px; }
    .v2cal-look > svg { right: 13px; width: 16px; height: 16px; }
    .v2cal-sym li { padding: 13px 14px; }
    .v2cal-sym__q { font-size: 12.5px; }
    .v2cal-look__t { font-size: 14px; }
}

@media (max-width: 390px) {
    .v2cal-past__g li { grid-template-columns: minmax(0, 1fr); }
    .v2cal-past__g li > .v2cal-st { grid-column: 1; }
    .v2cal-dead__d { font-size: 15.5px; }
    .v2 .v2cal-look__eg button { font-size: 10.5px; padding: 0 10px; }
}

/* ============================================================
   CAL V2  -  method: numbered rules, copy block, decay list
   ============================================================ */

.v2cal-steps {
    display: grid;
    gap: 10px;
    margin: 22px 0 26px;
}
.v2cal-steps li {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 15px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2cal-steps__n {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--cal-am);
    padding-top: 2px;
}
.v2cal-steps li b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.45;
    letter-spacing: -0.008em;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2cal-steps li p {
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Copyable source list ---------- */

.v2cal-code {
    margin: 20px 0 8px;
    background: var(--ink);
    border-radius: 16px;
    overflow: hidden;
}
.v2cal-code__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    background: rgba(255, 255, 255, 0.05);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.v2cal-code__bar span { color: rgba(255, 255, 255, 0.55); letter-spacing: 0.12em; }
.v2 .v2cal-copy {
    min-height: 34px;
    padding: 0 12px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink);
    background: var(--paper);
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease;
}
.v2 .v2cal-copy:hover { background: #E8F5EE; }
.v2 .v2cal-copy.is-done { background: var(--go); color: var(--paper); }
.v2cal-code pre {
    margin: 0;
    padding: 14px 15px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.v2cal-code pre::-webkit-scrollbar { display: none; }
.v2cal-code code {
    display: block;
    font-family: var(--font-mono);
    font-size: 11.5px;
    line-height: 2;
    color: #C9D6E2;
    white-space: pre;
    background: none;
    border: 0;
    padding: 0;
    overflow-wrap: anywhere;
}

/* ---------- Decay list ---------- */

.v2cal-decay__list {
    display: grid;
    gap: 9px;
    margin: 20px 0 26px;
}
.v2cal-decay__list li {
    padding: 13px 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 12px 0 0 12px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cal-decay__list li b { color: var(--ink); font-weight: 650; }
.v2cal-decay__list li:first-child { border-right-color: var(--cal-am); }

/* Compact service box. Replaces the three-plan grid on this post: the page
   is a broad policy reference, so the offer gets one block and the pricing
   page gets the comparison. Stacks under 640px. */
.v2cal-svc {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px;
    padding: 20px 22px;
    margin: 22px 0 26px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 16px;
}
.v2cal-svc__body { flex: 1 1 300px; min-width: 0; }
.v2cal-svc__tag {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--go-deep);
    margin: 0 0 6px;
}
.v2gpr-prose .v2cal-svc__lead,
.v2cal-svc__lead {
    margin: 0 0 8px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2cal-svc__lead b { color: var(--ink); font-weight: 650; }
.v2gpr-prose .v2cal-svc__fine,
.v2cal-svc__fine {
    margin: 0;
    font-size: 11px;
    letter-spacing: 0.02em;
    color: var(--faint);
}
.v2 .v2cal-svc .v2-btn { flex: 0 0 auto; }

@media (max-width: 560px) {
    .v2cal-svc { padding: 17px 18px; gap: 14px; }
    .v2 .v2cal-svc .v2-btn { width: 100%; }
}

/* Changelog. Newest entry carries the accent so a returning reader can see
   at a glance whether anything moved since they last read the page. */
.v2cal-log {
    display: grid;
    gap: 9px;
    margin: 16px 0 20px;
    padding: 0;
    list-style: none;
}
.v2cal-log li {
    padding: 13px 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid #C9D2DA;
    border-radius: 12px 0 0 12px;
}
.v2cal-log li:first-child { border-right-color: var(--cal-am); }
.v2cal-log__d {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
    margin: 0 0 5px;
}
.v2cal-log li:first-child .v2cal-log__d { color: var(--cal-am); }
.v2gpr-prose .v2cal-log li p:last-child,
.v2cal-log li p:last-child {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}

/* ============================================================
   RESPONSIVE: method block
   The URL list is the one place a long unbreakable string exists,
   so it scrolls inside its own pre rather than widening the page.
   ============================================================ */

@media (max-width: 480px) {
    .v2cal-steps li { padding: 13px 14px; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; }
    .v2cal-steps li b { font-size: 14.5px; }
    .v2cal-code code { font-size: 10.5px; line-height: 1.95; }
    .v2cal-code__bar { padding: 10px 12px; }
    .v2cal-decay__list li { padding: 12px 13px; font-size: 13.5px; }
    .v2cal-log li { padding: 12px 13px; }
    .v2cal-log li p:last-child { font-size: 13.5px; }
    .v2cal-upd { padding: 12px 14px; }
    .v2cal-upd p:last-child { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2cal-code code { font-size: 9.5px; }
    .v2 .v2cal-copy { font-size: 9.5px; padding: 0 10px; }
}

/* ============================================================
   CAL V2  -  touch targets
   Caught by the 390px interaction pass: the example chips (36px),
   the copy button (34px), the month-clear link (32px) and the
   segmented pills / small buttons (40px) were all under the 44px
   minimum on a phone. Desktop keeps the tighter sizes; phones get
   the full 44px, and the segmented control gets a taller track to
   hold it.
   ============================================================ */

@media (max-width: 768px) {
    .v2 .v2cal-seg button,
    .v2 .v2cal-btn,
    .v2 .v2cal-copy,
    .v2 .v2cal-look__eg button,
    .v2 .v2cal-reg__month button,
    .v2cal-row__go { min-height: 44px; }

    .v2cal-row__go { padding: 0 16px; }
    .v2 .v2cal-reg__month button { display: inline-flex; align-items: center; }
    .v2cal-row > summary { min-height: 56px; }
    .v2cal-chkrow { min-height: 52px; }
    .v2cal-mo { min-height: 64px; }
}

@media (max-width: 480px) {
    /* The four-up segmented control wraps to 2x2 here, so each cell has room
       for the taller pill without the row becoming a scroll trap. */
    .v2cal-seg { padding: 5px; gap: 5px; }
    .v2cal-mo { min-height: 62px; }
}

/* ---------- Sticky mobile CTA: scoped overflow repair ----------

   Measured at 390px on this post: the shared .v2-faq__wa recipe resolves to
   flex: 1 0 100% (it is a full-width button in its FAQ home) and the shared
   .v2gpr-scta rule resets flex-shrink without resetting that 100% basis, so
   the WhatsApp button lays out 362px wide from x=68 and ends at 430px, while
   the pricing button collapses to its 44px minimum with no visible label.
   Reproduced identically on the sibling V2 posts, so this is shared-layer
   behaviour rather than anything this post introduced. Repaired for this post
   only: changing the shared rule would move the layout of every V2 blog at
   once. */

.v2 .v2cal-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2cal-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2cal-scta { padding-right: 10px; padding-left: 10px; }
    .v2 .v2cal-scta .v2-btn { font-size: 14px; }
    .v2 .v2cal-scta .v2-faq__wa { padding-right: 13px; padding-left: 13px; }
}




/* ---------- Sticky mobile CTA: scoped overflow fix ---------- */

/* ---------- Specificity correction ----------

   The shared .v2gpr-prose b rule (0,1,1) sets font-weight: 650 and beats a
   single-class rule on a bare <b>, so .v2cal-sw__date rendered at 650 rather
   than the 750 it asks for. Measured on the rendered page, not assumed.
   Sibling rules like .v2cal-two li > b already win on their own (0,1,2);
   this is the only element that needed help. */

.v2gpr-prose .v2cal-sw__date { font-weight: 750; }

/* ============= END BLOG CAL V2 ============= */

/* ---------- Section answer capsule (opens every H2) ---------- */

.v2stat-ans {
    margin: 18px 0 22px;
    padding: 15px 18px;
    background: var(--mist);
    border-right: 3px solid var(--stat-a);
    border-radius: 13px 0 0 13px;
}
.v2stat-ans p { font-size: 15.5px; line-height: 1.7; color: var(--ink); }
.v2stat-ans p + p { margin-top: 9px; }

/* ---------- Statistic record cards (one claim, one source) ---------- */

.v2stat-five { display: grid; gap: 10px; margin: 22px 0 28px; }

.v2stat-rec {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "num body" "grade grade";
    gap: 4px 12px;
    align-items: start;
    padding: 15px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2stat-rec__n {
    grid-area: num;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--stat-a);
    padding-top: 3px;
}
.v2stat-rec__body { grid-area: body; min-width: 0; }
.v2stat-rec__claim {
    font-size: 15.5px;
    line-height: 1.65;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.v2stat-rec__claim strong { font-weight: 650; }
.v2stat-rec__src {
    margin-top: 8px;
    font-size: 10px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--faint);
    line-height: 1.5;
}
.v2stat-rec .v2stat-grade {
    grid-area: grade;
    justify-self: start;
    margin-top: 10px;
}

/* ---------- Shared tool furniture for this post ---------- */

.v2stat-tool__intro {
    margin-top: 10px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2stat-lab {
    display: block;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 8px;
    padding: 0;
}
.v2stat-fs { border: 0; padding: 0; margin: 0; }

/* Option pills: real radios, styled siblings, full width on phones */
.v2stat-cc__opts,
.v2stat-tcp__opts,
.v2stat-yn__opts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}
.v2stat-pill { position: relative; display: block; }
.v2stat-pill input {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    right: 0;
    top: 0;
    margin: 0;
    cursor: pointer;
}
.v2stat-pill span {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.v2stat-pill input:hover + span { border-color: #C9D2DA; }
.v2stat-pill input:checked + span {
    color: var(--stat-deep);
    background: var(--stat-tint);
    border-color: var(--stat-a);
}
.v2stat-pill input:focus-visible + span {
    outline: 2px solid var(--stat-a);
    outline-offset: 2px;
}

/* ---------- Citation Composer ---------- */

.v2stat-cc__row { margin-bottom: 16px; }

.v2stat-cc__out {
    border: 1px solid var(--stat-edge);
    border-radius: 14px;
    overflow: hidden;
    background: var(--stat-tint);
}
.v2stat-cc__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--stat-edge);
}
.v2stat-copy {
    min-height: 44px;
    padding: 7px 18px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--stat-deep);
    background: var(--paper);
    border: 1px solid var(--stat-edge);
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2stat-copy:hover { background: var(--stat-a); color: #fff; border-color: var(--stat-a); }
.v2stat-copy:focus-visible { outline: 2px solid var(--stat-a); outline-offset: 2px; }
.v2stat-copy.is-done { background: var(--go); border-color: var(--go); color: #fff; }

.v2stat-cc__text {
    margin: 0;
    padding: 14px 15px 16px;
    background: var(--paper);
    font-family: var(--font-body);
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--ink);
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.v2stat-cc__text:focus-visible { outline: 2px solid var(--stat-a); outline-offset: -2px; }

.v2stat-cc__note {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- RESPONSIVE: records + composer ---------- */

@media (min-width: 620px) {
    .v2stat-rec {
        grid-template-columns: auto 1fr auto;
        grid-template-areas: "num body grade";
        align-items: center;
        gap: 14px;
    }
    .v2stat-rec .v2stat-grade { margin-top: 0; }
    .v2stat-cc__opts { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .v2stat-ans { padding: 13px 15px; }
    .v2stat-ans p { font-size: 15px; }
    .v2gpr-tool .v2stat-tool__intro { font-size: 13.5px; }
}

@media (max-width: 480px) {
    .v2stat-rec { padding: 13px 14px; border-radius: 13px; }
    .v2stat-rec__claim { font-size: 14.5px; }
    .v2stat-cc__text { font-size: 14px; padding: 12px 13px 14px; }
    .v2stat-cc__bar { padding: 8px 10px; }
}

@media (max-width: 390px) {
    .v2stat-rec { gap: 3px 9px; }
    .v2stat-pill span { font-size: 13.5px; }
}

/* ---------- Verbatim Google quote ---------- */

.v2stat-quote {
    margin: 24px 0;
    padding: 20px 22px;
    background: var(--ink);
    border-radius: 16px;
    color: #fff;
}
.v2stat-quote p {
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.62;
    letter-spacing: -0.008em;
    color: #fff;
}
.v2stat-quote cite {
    display: block;
    margin-top: 12px;
    font-style: normal;
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
}

/* ---------- Record tables ---------- */

.v2stat-scroll {
    margin: 22px 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.v2stat-scroll::-webkit-scrollbar { display: none; }
.v2stat-scroll:focus-visible { outline: 2px solid var(--stat-a); outline-offset: 2px; }

.v2stat-tbl {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: 14px;
}
.v2stat-tbl__cap {
    caption-side: bottom;
    padding: 11px 16px 13px;
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    line-height: 1.55;
    color: var(--faint);
    text-align: right;
}
.v2stat-tbl thead th {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 12px 16px;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--slate);
    white-space: nowrap;
}
.v2stat-tbl tbody th {
    padding: 13px 16px;
    text-align: right;
    font-weight: 650;
    font-size: 14px;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2stat-tbl tbody td {
    padding: 13px 16px;
    color: var(--slate);
    line-height: 1.6;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2stat-tbl tbody tr:last-child th,
.v2stat-tbl tbody tr:last-child td { border-bottom: 0; }
.v2stat-tbl tbody td:first-of-type {
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--stat-deep);
    white-space: nowrap;
}
.v2stat-tbl tbody tr.is-dead th,
.v2stat-tbl tbody tr.is-dead td { color: var(--faint); }
.v2stat-tbl tbody tr.is-dead td:first-of-type { color: var(--faint); text-decoration: line-through; }
.v2stat-tbl tbody tr.is-key { background: var(--stat-tint); }
.v2stat-tbl tbody tr.is-ptl th { background: var(--go-tint); color: var(--go-deep); }

/* ---------- Scope note grade line ---------- */

.v2stat-note p + p { margin-top: 9px; }
.v2stat-note__grade {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    font-size: 13px;
    color: var(--faint);
}

/* ---------- Google says / does not say ---------- */

.v2stat-says {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 24px 0;
}
.v2stat-says__col {
    padding: 17px 18px 18px;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2stat-says__col.is-yes { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2stat-says__col.is-no  { border-color: var(--line); background: var(--mist); }
.v2stat-says__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.v2stat-says__col.is-yes .v2stat-says__tag { color: var(--go-deep); }
.v2stat-says__col.is-no .v2stat-says__tag { color: var(--slate); }
.v2stat-says__tag svg { width: 15px; height: 15px; flex: none; }
.v2stat-says ul { display: grid; gap: 9px; }
.v2stat-says li {
    position: relative;
    padding-right: 15px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2stat-says li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.42;
}
.v2stat-says li b { color: var(--ink); font-weight: 650; }

/* ---------- Your Numbers verdict + column output ---------- */

.v2stat-yn__q { margin-bottom: 16px; }

.v2stat-vd {
    padding: 16px 18px;
    border-radius: 15px;
    border: 1px solid var(--line);
    background: var(--mist);
}
.v2stat-vd.is-in   { border-color: var(--stat-edge); background: var(--stat-tint); }
.v2stat-vd.is-out  { border-color: rgba(11, 138, 71, 0.28); background: var(--go-tint); }
.v2stat-vd.is-unknown { border-color: var(--line); background: var(--mist); }
.v2stat-vd__tag {
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 7px;
}
.v2stat-vd__head {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 18px;
    line-height: 1.35;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2stat-vd__note,
.v2stat-vd__warn {
    margin-top: 9px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2stat-vd__warn {
    padding-top: 10px;
    border-top: 1px dashed rgba(10, 16, 23, 0.14);
    color: var(--ink);
}

.v2stat-yn__cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 18px;
}
.v2stat-yn__out { display: grid; gap: 7px; }
.v2stat-yn__out li {
    position: relative;
    padding-right: 20px;
    font-size: 14.5px;
    line-height: 1.55;
}
.v2stat-yn__out li::before {
    position: absolute;
    right: 0;
    top: 0;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
}
.v2stat-yn__out.is-on li::before { content: "+"; color: var(--go); }
.v2stat-yn__out.is-off li::before { content: "-"; color: var(--faint); }
.v2stat-yn__out.is-on li a { color: var(--ink); border-bottom: 1px solid var(--stat-edge); }
.v2stat-yn__out.is-off li a { color: var(--faint); }
.v2stat-yn__out li a:hover { color: var(--stat-deep); }
.v2stat-yn__out li a:focus-visible { outline: 2px solid var(--stat-a); outline-offset: 2px; }

/* ---------- RESPONSIVE: rule section ---------- */

@media (min-width: 700px) {
    .v2stat-says { grid-template-columns: 1fr 1fr; }
    .v2stat-yn__cols { grid-template-columns: 1fr 1fr; }
    .v2stat-yn__opts { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .v2stat-quote { padding: 17px 18px; border-radius: 14px; }
    .v2stat-quote p { font-size: 16px; }
}

/* Below 720px every record table becomes one card per row, with each
   cell labelled from its own column header via data-label. */
@media (max-width: 720px) {
    .v2stat-scroll { overflow-x: visible; }
    .v2stat-tbl {
        display: block;
        width: 100%;
        min-width: 0;
        background: transparent;
    }
    .v2stat-tbl thead { display: none; }
    .v2stat-tbl tbody {
        display: grid;
        gap: 10px;
        padding: 12px;
    }
    .v2stat-tbl tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2stat-tbl tbody th,
    .v2stat-tbl tbody td {
        display: block;
        width: auto;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2stat-tbl tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 11px 14px;
        font-size: 14px;
        line-height: 1.45;
    }
    .v2stat-tbl tbody td {
        padding: 11px 14px 12px;
        font-size: 13.5px;
        line-height: 1.6;
    }
    .v2stat-tbl tbody td + td { border-top: 1px solid var(--line); }
    .v2stat-tbl tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
    .v2stat-tbl tbody tr.is-key { border-color: var(--stat-edge); }
    .v2stat-tbl tbody tr.is-key th { background: var(--stat-tint); color: var(--stat-deep); }
    .v2stat-tbl tbody tr.is-ptl { border-color: rgba(11, 138, 71, 0.3); }
    .v2stat-tbl__cap {
        border-top: 0;
        border-bottom: 1px solid var(--line);
        caption-side: top;
    }
}

@media (max-width: 480px) {
    .v2stat-says__col { padding: 15px 15px 16px; border-radius: 14px; }
    .v2stat-says li { font-size: 14px; }
    .v2stat-vd { padding: 14px 15px; }
    .v2stat-vd__head { font-size: 17px; }
    .v2stat-vd__note, .v2stat-vd__warn { font-size: 14px; }
    .v2stat-yn__out li { font-size: 14px; }
}

@media (max-width: 390px) {
    .v2stat-quote p { font-size: 15.5px; }
    .v2stat-tbl tbody th { font-size: 13.5px; }
}

/* ---------- Callout tints for this post ---------- */

.v2stat-danger p + p,
.v2stat-tip p + p { margin-top: 7px; }
.v2stat-danger a,
.v2stat-tip a,
.v2stat-note a {
    color: var(--stat-deep);
    border-bottom: 1px solid var(--stat-edge);
}
.v2stat-danger a:hover,
.v2stat-tip a:hover,
.v2stat-note a:hover { border-bottom-color: var(--stat-a); }

/* ---------- Track Cap Planner ---------- */

.v2stat-tcp__q { margin-bottom: 16px; }

.v2 .v2stat-num {
    width: 100%;
    min-height: 48px;
    padding: 12px 16px;
    font-family: var(--font-mono);
    font-size: 17px;
    font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.v2 .v2stat-num:hover { border-color: #C9D2DA; }
.v2 .v2stat-num:focus {
    outline: none;
    border-color: var(--stat-a);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--stat-tint);
}

.v2stat-vd.is-warn {
    border-color: rgba(183, 121, 31, 0.34);
    background: var(--stat-part-tint, #FDF6E7);
}

.v2stat-caps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
    margin-top: 14px;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2stat-caps li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 14px;
    padding: 11px 15px;
    background: var(--paper);
}
.v2stat-caps li span {
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2stat-caps li b {
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 650;
    color: var(--ink);
    text-align: left;
    overflow-wrap: anywhere;
}

.v2stat-tcp__foot {
    margin-top: 11px;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--faint);
    line-height: 1.55;
}

/* ---------- RESPONSIVE: tracks section ---------- */

@media (min-width: 700px) {
    .v2stat-tcp__opts { grid-template-columns: repeat(3, 1fr); }
    .v2stat-caps { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 480px) {
    .v2stat-caps li { padding: 10px 13px; gap: 10px; }
    .v2stat-caps li b { font-size: 13.5px; }
    .v2 .v2stat-num { font-size: 16px; min-height: 46px; }
}

@media (max-width: 390px) {
    .v2stat-caps li { flex-direction: column; align-items: flex-start; gap: 3px; }
    .v2stat-caps li b { text-align: right; }
}

/* ---------- Qualify / apply / review sequence ---------- */

.v2stat-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 24px 0;
    counter-reset: statstep;
}
.v2stat-step {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 16px 17px 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 15px;
}
.v2stat-step.is-key {
    border-color: var(--stat-edge);
    background: var(--stat-tint);
}
.v2stat-step__n {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-a);
}
.v2stat-step__t {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.018em;
    color: var(--ink);
}
.v2stat-step p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2stat-step__m {
    margin-top: 6px;
    padding-top: 9px;
    border-top: 1px solid var(--line);
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2stat-step.is-key .v2stat-step__m {
    border-top-color: var(--stat-edge);
    color: var(--stat-deep);
    font-weight: 600;
}

/* Connector arrows only appear once the steps sit side by side */
@media (min-width: 760px) {
    .v2stat-steps { grid-template-columns: repeat(3, 1fr); gap: 26px; }
    .v2stat-step + .v2stat-step::before {
        content: "";
        position: absolute;
        right: -19px;
        top: 50%;
        width: 12px;
        height: 12px;
        margin-top: -6px;
        border-left: 2px solid var(--stat-edge);
        border-bottom: 2px solid var(--stat-edge);
        transform: rotate(45deg);
    }
}

/* ---------- Three application sections ---------- */

.v2stat-q3 {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 22px 0;
}
.v2stat-q3__card {
    padding: 15px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2stat-q3__n {
    display: block;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-a);
    margin-bottom: 6px;
}
.v2stat-q3__card b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    letter-spacing: -0.012em;
    color: var(--ink);
}
.v2stat-q3__card p {
    margin-top: 5px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}

@media (min-width: 760px) {
    .v2stat-q3 { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 480px) {
    .v2stat-step { padding: 14px 15px 13px; }
    .v2stat-step__t { font-size: 18px; }
    .v2stat-q3__card { padding: 13px 14px; }
}

/* ---------- Changed-deadline callout ---------- */

.v2stat-change {
    margin: 22px 0;
    padding: 18px 20px;
    background: var(--stat-tint);
    border: 1px solid var(--stat-edge);
    border-radius: 16px;
}
.v2stat-change__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-deep);
}
.v2stat-change__tag svg { width: 15px; height: 15px; flex: none; }
.v2stat-change__body {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
    font-family: var(--font-display);
    font-size: clamp(19px, 5.2vw, 26px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.25;
    color: var(--ink);
}
.v2stat-change__body s { color: var(--faint); font-weight: 500; }
.v2stat-change__body span { color: var(--stat-a); }
.v2stat-change__note {
    margin-top: 11px;
    font-size: 14.5px;
    line-height: 1.68;
    color: var(--slate);
}
.v2stat-change__grade {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--stat-edge);
    font-size: 13px;
    color: var(--faint);
}

@media (max-width: 480px) {
    .v2stat-change { padding: 15px 16px; border-radius: 14px; }
    .v2stat-change__note { font-size: 14px; }
}

/* ---------- Policy timeline (vertical spine at every width) ---------- */

.v2stat-tl {
    position: relative;
    display: grid;
    gap: 14px;
    margin: 24px 0;
    padding-right: 26px;
}
.v2stat-tl::before {
    content: "";
    position: absolute;
    right: 6px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--line);
    border-radius: 2px;
}
.v2stat-tl__item {
    position: relative;
    padding: 14px 16px 15px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2stat-tl__item::before {
    content: "";
    position: absolute;
    right: -26px;
    top: 20px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2stat-tl__item.is-key::before { border-color: var(--stat-a); background: var(--stat-a); }
.v2stat-tl__item.is-now::before { border-color: var(--go); background: var(--go); }
.v2stat-tl__item.is-key { border-color: var(--stat-edge); background: var(--stat-tint); }
.v2stat-tl__item.is-now { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2stat-tl__d {
    display: block;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-a);
    margin-bottom: 5px;
}
.v2stat-tl__item.is-now .v2stat-tl__d { color: var(--go-deep); }
.v2stat-tl__item b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 17px;
    letter-spacing: -0.014em;
    color: var(--ink);
}
.v2stat-tl__item p {
    margin-top: 6px;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2stat-tl__item .v2stat-grade { margin-top: 11px; }

@media (max-width: 480px) {
    .v2stat-tl { padding-right: 22px; }
    .v2stat-tl::before { right: 5px; }
    .v2stat-tl__item { padding: 13px 14px 14px; }
    .v2stat-tl__item::before { right: -22px; top: 18px; width: 12px; height: 12px; }
    .v2stat-tl__item b { font-size: 16px; }
    .v2stat-tl__item p { font-size: 14px; }
}

/* ============================================================
   BLOG STAT V2  -  "Google Play Closed Testing Statistics 2026"
   (/blog/google-play-closed-testing-statistics)

   Rides the shared v2gpr- article layer (rail, chips, H2 blocks,
   quick answer, TOC, tool shell, note/tip/danger callouts, FAQ,
   bottom line, docs, author, related, CTA) and adds a unique
   v2stat- motif: the REFERENCE DESK.

   The page is a citation target, not a tutorial, so the visual
   language is an instrument panel rather than a journey: oversized
   display numerals on a rail, a confidence chip beside every
   figure, source stamps in mono, and tables that read as records.

   Accent is deep cyan-teal (#0E7A86), unused elsewhere in the
   suite: kb is violet, adv/tos/apk are ink-on-mist, and --go green
   stays reserved for CTAs and approval states only. The three
   confidence grades reuse go-green / amber / slate so that
   "verified" always reads as the same colour as "approved".

   Written MOBILE FIRST: every grid starts at one column, every
   wide record sits in its own overflow-x track, and each component
   carries its 900 / 768 / 480 / 390 rules in the same batch that
   creates it.

   Dark moments stay at two (quick answer + final CTA).
   ============================================================ */

/* Block-scoped reset (gotcha 19: base reset skips lists/figures) */
.v2stat-prose ul, .v2stat-prose ol,
.v2stat-rail__track, .v2stat-legend__list, .v2stat-desk__grid,
.v2stat-five, .v2stat-cmp__list, .v2stat-says ul, .v2stat-steps,
.v2stat-caps, .v2stat-yn__opts, .v2stat-cc__opts, .v2stat-tcp__opts,
.v2stat-yn__out, .v2stat-un, .v2stat-decay, .v2stat-tl,
.v2stat-vs__list, .v2stat-q3 {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Scoped tokens ---------- */

.v2stat-hero, .v2stat-prose, .v2stat-desk {
    --stat-a:    #0E7A86;
    --stat-deep: #0A5C66;
    --stat-tint: #E4F3F5;
    --stat-edge: #B6DCE1;
    --stat-part: #B7791F;
    --stat-part-tint: #FDF6E7;
}

/* ---------- Confidence grading chips (used across the post) ---------- */

.v2stat-cf {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: none;
    vertical-align: 0.5px;
}
.v2stat-cf.is-ok   { background: var(--go); }
.v2stat-cf.is-part { background: var(--stat-part, #B7791F); }
.v2stat-cf.is-un   { background: var(--faint); }

.v2stat-grade {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 4px 10px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
}
.v2stat-grade.is-ok {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2stat-grade.is-part {
    color: #8A5B14;
    background: var(--stat-part-tint, #FDF6E7);
    border: 1px solid rgba(183, 121, 31, 0.26);
}
.v2stat-grade.is-un {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}

/* ---------- Hero eyebrow ---------- */

.v2stat-eyebrow {
    display: inline-flex;
    align-items: center;
    color: var(--stat-deep);
    background: var(--stat-tint);
    border: 1px solid var(--stat-edge);
    border-radius: 999px;
    padding: 6px 14px;
}

/* ---------- THE NUMBER RAIL (hero signature) ---------- */

.v2stat-rail {
    margin-top: 34px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 18px 40px -24px rgba(10, 16, 23, 0.18);
}
.v2stat-rail__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 15px 20px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2stat-rail__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-deep);
}
.v2stat-rail__label svg { width: 14px; height: 14px; flex: none; }
.v2stat-rail__asof {
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
}

/* The track is a single horizontal scroller at every width. Below
   ~1080px the five plinths cannot fit without shrinking the numerals
   past legibility, so they scroll and snap instead of wrapping into
   a second row that would double the hero height on a phone. */
.v2stat-rail__track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(196px, 1fr);
    gap: 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.v2stat-rail__track::-webkit-scrollbar { display: none; }

.v2stat-plinth {
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 20px 18px 18px;
    border-left: 1px solid var(--line);
    background: var(--paper);
}
.v2stat-plinth:last-child { border-left: 0; }

.v2stat-plinth__n {
    font-family: var(--font-display);
    font-weight: 750;
    font-size: clamp(38px, 8.5vw, 56px);
    line-height: 1;
    letter-spacing: -0.035em;
    color: var(--stat-a);
    font-variant-numeric: tabular-nums;
}
.v2stat-plinth__u {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--ink);
    margin-top: 2px;
}
.v2stat-plinth__c {
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
    margin-top: 6px;
}
.v2stat-plinth__src {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding-top: 12px;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2stat-rail__hint {
    padding: 9px 20px 11px;
    border-top: 1px solid var(--line);
    background: var(--mist);
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    text-align: center;
}

/* Reveal stagger, only when the hero opts into animation */
.v2stat-hero.v2-anim .v2stat-plinth {
    opacity: 0;
    transform: translateY(10px);
}
.v2stat-hero.v2-anim.is-in .v2stat-plinth {
    opacity: 1;
    transform: none;
    transition: opacity 0.5s ease var(--d, 0s), transform 0.5s ease var(--d, 0s);
}

/* ---------- Hero date plaques + confidence legend ---------- */

.v2stat-facts { margin-top: 16px; }

.v2stat-legend {
    margin-top: 16px;
    padding: 14px 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2stat-legend__lead {
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 9px;
}
.v2stat-legend__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}
.v2stat-legend__list li {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
}
.v2stat-legend__list b {
    color: var(--ink);
    font-weight: 650;
    flex: none;
}

/* ---------- THE REFERENCE DESK index (intro) ---------- */

.v2stat-desk {
    margin: 30px 0;
    border: 1px solid var(--stat-edge);
    border-radius: 20px;
    overflow: hidden;
    background: var(--paper);
}
.v2stat-desk__head {
    padding: 20px 22px 18px;
    background: var(--stat-tint);
    border-bottom: 1px solid var(--stat-edge);
}
.v2stat-desk__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-deep);
}
.v2stat-desk__tag svg { width: 15px; height: 15px; flex: none; }
.v2stat-desk__sub {
    margin-top: 9px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2stat-desk__grid {
    display: grid;
    grid-template-columns: 1fr;
}
.v2stat-desk__item {
    display: block;
    padding: 16px 20px;
    border-bottom: 1px solid var(--line);
    transition: background 0.18s ease;
    min-height: 44px;
}
.v2stat-desk__item:last-child { border-bottom: 0; }
.v2stat-desk__item:hover { background: var(--mist); }
.v2stat-desk__item:focus-visible {
    outline: 2px solid var(--stat-a);
    outline-offset: -3px;
}
.v2stat-desk__item span {
    display: block;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    color: var(--stat-a);
    margin-bottom: 4px;
}
.v2stat-desk__item b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16px;
    letter-spacing: -0.012em;
    color: var(--ink);
}
.v2stat-desk__item em {
    display: block;
    margin-top: 3px;
    font-style: normal;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
}
.v2stat-desk.v2-anim .v2stat-desk__item { opacity: 0; transform: translateY(8px); }
.v2stat-desk.v2-anim.is-in .v2stat-desk__item {
    opacity: 1;
    transform: none;
    transition: opacity 0.45s ease, transform 0.45s ease;
}
.v2stat-desk.v2-anim.is-in .v2stat-desk__item:nth-child(2) { transition-delay: 0.07s; }
.v2stat-desk.v2-anim.is-in .v2stat-desk__item:nth-child(3) { transition-delay: 0.14s; }

/* ---------- RESPONSIVE: hero + desk ---------- */

@media (min-width: 700px) {
    .v2stat-legend__list { grid-template-columns: repeat(3, 1fr); }
    .v2stat-legend__list li { flex-direction: column; gap: 3px; }
    .v2stat-desk__grid { grid-template-columns: repeat(3, 1fr); }
    .v2stat-desk__item { border-bottom: 0; border-left: 1px solid var(--line); }
    .v2stat-desk__item:last-child { border-left: 0; }
}

@media (min-width: 1080px) {
    .v2stat-rail__track { grid-auto-columns: 1fr; overflow-x: visible; }
    .v2stat-rail__hint { display: none; }
}

@media (max-width: 768px) {
    .v2stat-rail { margin-top: 26px; border-radius: 17px; }
    .v2stat-rail__head { padding: 13px 16px; }
    .v2stat-plinth { padding: 17px 15px 15px; }
    .v2stat-desk { margin: 24px 0; border-radius: 17px; }
    .v2stat-desk__head { padding: 17px 18px 15px; }
}

@media (max-width: 480px) {
    .v2stat-rail__track { grid-auto-columns: minmax(74%, 1fr); }
    .v2stat-rail__head { gap: 4px; }
    .v2stat-rail__asof { font-size: 9px; }
    .v2stat-plinth__c { font-size: 12.5px; }
    .v2stat-legend { padding: 12px 14px; }
    .v2stat-desk__sub { font-size: 13.5px; }
    .v2stat-desk__item { padding: 14px 16px; }
}

@media (max-width: 390px) {
    .v2stat-rail__track { grid-auto-columns: minmax(80%, 1fr); }
    .v2stat-plinth { padding: 15px 14px 14px; }
    .v2stat-desk__item b { font-size: 15.5px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2stat-hero.v2-anim .v2stat-plinth,
    .v2stat-desk.v2-anim .v2stat-desk__item {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .v2stat-rail__track { scroll-snap-type: none; }
}


/* ---------- Absence list (numbers with no source) ---------- */

.v2stat-un {
    display: grid;
    gap: 10px;
    margin: 24px 0;
}
.v2stat-un__item {
    padding: 15px 17px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 15px;
    border-right: 3px solid var(--faint);
}
.v2stat-un__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}
.v2stat-un__head b {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 16.5px;
    letter-spacing: -0.013em;
    color: var(--ink);
    flex: 1 1 200px;
    min-width: 0;
}
.v2stat-un__item p {
    margin-top: 8px;
    font-size: 14.5px;
    line-height: 1.68;
    color: var(--slate);
}

@media (max-width: 480px) {
    .v2stat-un__item { padding: 14px 15px; border-radius: 13px; }
    .v2stat-un__head b { font-size: 16px; }
    .v2stat-un__item p { font-size: 14px; }
}

/* ---------- Decay block (the page publishes its own expiry) ---------- */

.v2stat-decaybox {
    margin: 28px 0 8px;
    padding: 20px 22px;
    background: var(--ink);
    border-radius: 18px;
    color: rgba(255, 255, 255, 0.82);
}
.v2stat-decaybox__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 14px;
}
.v2stat-decaybox__tag svg { width: 15px; height: 15px; flex: none; }
.v2stat-decay { display: grid; gap: 11px; }
.v2stat-decay li {
    position: relative;
    padding-right: 16px;
    font-size: 14.5px;
    line-height: 1.68;
}
.v2stat-decay li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--stat-a);
}
.v2stat-decay li b { color: #fff; font-weight: 650; }
.v2stat-decaybox__foot {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 480px) {
    .v2stat-decaybox { padding: 17px 17px 18px; border-radius: 15px; }
    .v2stat-decay li { font-size: 14px; }
}

/* ---------- Inline table source line ----------
   Sits directly beneath a .v2stat-scroll block, so a reader who stops at
   the table still sees where its numbers came from without scrolling to
   the Primary Sources list at the foot of the page. Deliberately OUTSIDE
   the scroll wrapper: inside it, the line would scroll out of view
   sideways whenever a reader panned a wide table on a phone.
   The negative top margin closes the scroll block's own 22px gap so the
   source reads as part of the table rather than as loose body copy. */

/* Specificity note: the shared `.v2gpr-prose > p` rule is (0,1,1) and sets
   16.5px / 18px margins, so a bare `.v2stat-src` class (0,1,0) loses to it
   no matter where it sits in the file. Qualified the same way the sibling
   posts qualify their own prose paragraph variants. */
.v2gpr-prose > p.v2stat-src {
    margin: -14px 0 24px;
    font-size: 10px;
    letter-spacing: 0.05em;
    line-height: 1.6;
    color: var(--faint);
}
.v2stat-src a {
    color: var(--stat-a);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.v2stat-src a:hover { color: var(--ink); }

/* Foot note under the Primary Sources list. Scoped to this post rather
   than added to the shared .v2gpr-docs block, which every V2 article uses. */
.v2stat-docs__foot {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 10px;
    letter-spacing: 0.05em;
    line-height: 1.65;
    color: var(--faint);
}

/* ---------- Appendix divider (adjacent statistics) ---------- */

.v2stat-appendix {
    margin: 44px 0 10px;
    padding-top: 30px;
    border-top: 2px solid var(--line);
}
.v2stat-appendix__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--stat-a);
}
.v2stat-appendix__tag svg { width: 14px; height: 14px; flex: none; }
.v2 .v2stat-appendix__h { margin-top: 14px; }
.v2stat-appendix__lead {
    margin-top: 10px;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--slate);
}

@media (max-width: 480px) {
    .v2stat-appendix { margin-top: 34px; padding-top: 24px; }
    .v2stat-appendix__lead { font-size: 14.5px; }
}

/* ---------- Rail group divider ---------- */

.v2stat-rail__div {
    margin: 14px 0 6px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.v2stat-rail__div span {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}

/* ---------- Safety nets ---------- */

.v2stat-prose code,
.v2stat-prose pre { overflow-wrap: anywhere; word-break: break-word; }
.v2stat-prose > * { max-width: 100%; }
.v2stat-prose a:focus-visible,
.v2stat-hero a:focus-visible { outline: 2px solid var(--stat-a); outline-offset: 2px; }


/* The freshness chip inherits white-space:nowrap from the shared
   .v2gpr-byline__fresh recipe. That fits the English string at 390px and
   overflows in eight of the thirteen translations - Polish runs +94px past
   the viewport, Indonesian +62px, French +59px - because the sentence is
   "Last updated and verified against Google docs:" plus a localised date,
   and no language is obliged to be as short as English. Letting it wrap is
   the fix; it is scoped to this post rather than applied to .v2gpr-*, which
   every V2 blog shares. */
@media (max-width: 700px) {
    .v2 .v2stat-hero .v2gpr-byline__fresh {
        white-space: normal;
        align-items: flex-start;
        text-align: start;
        max-width: 100%;
    }
    .v2 .v2stat-hero .v2gpr-byline__fresh svg { flex: 0 0 auto; margin-top: 2px; }
}


/* The shared .v2-faq__wa recipe resolves to flex:1 0 100% (it is a
   full-width button in its FAQ home), and the shared .v2gpr-scta rule
   sets flex-shrink:0 without resetting that 100% basis. The result on
   a 390px phone is a WhatsApp button laid out 362px wide inside a
   362px row that also has to hold the pricing button, so it runs past
   the right edge. Reproduced identically on the sibling posts, so this
   is a shared-layer bug: fixed here for this post only rather than
   changing every V2 blog at once. */
.v2 .v2stat-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
}
.v2 .v2stat-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2stat-scta { padding-right: 10px; padding-left: 10px; }
    .v2 .v2stat-scta .v2-btn { font-size: 14px; }
    .v2 .v2stat-scta .v2-faq__wa { padding-right: 13px; padding-left: 13px; }
}

/* ============= END BLOG STAT V2 ============= */



/* ============================================================
   BLOG GME V2  -  "Closed Testing for Android Games"
   (/blog/google-play-closed-testing-for-games)

   Rides the shared v2gpr- article layer (rail, chips, quick
   answer, TOC, H2/H3 blocks, tool shell, note/tip/warn/danger
   callouts, FAQ, bottom line, docs, author, related, CTA) and
   adds a unique v2gme- motif: THE TWO GATES.

   Gate A is the counter Google publishes (12 testers, 14
   continuous days) and reads as a machine: pips, a track, a
   filled bar. Gate B is the game-only risk stack the counter
   never measures and reads as a list of judgement calls. The
   whole post is that contrast, so the two cards are deliberately
   styled as different kinds of object rather than as a matched
   pair.

   Accent is arcade magenta (#A5176B), unused anywhere else in
   the suite: pts and kb are violet, stat is cyan-teal, cal is
   amber, rose is reserved for ban/risk states and --go green
   stays reserved for CTAs and approval states only. Amber
   (--gme-part) marks every "Google does not publish this"
   caveat, which this post carries more of than any sibling.

   MOBILE FIRST: every grid starts at one column, every wide
   record sits in its own overflow-x track or collapses to row
   cards, and each component carries its 900 / 768 / 480 / 390
   rules in the same batch that creates it.

   Dark moments stay at two (quick answer + final CTA).

   NOTE ON LAYOUT IN THIS FILE: this block is NOT contiguous. It was
   appended in batches on 2026-08-12 while two other posts (BLOG ITS
   V2 and BLOG OPN V2) were being appended to the same file from
   other sessions, so their blocks landed between ours. Nothing
   collides, because every selector here is v2gme- prefixed and our
   batches kept their relative order, which is what the overrides
   depend on. To find every fragment: grep "BLOG GME V2". The last
   one ends with "END BLOG GME V2 (last fragment)".
   ============================================================ */

/* Block-scoped reset (the base reset skips lists and figures) */
.v2gme-prose ul, .v2gme-prose ol,
.v2gme-risks, .v2gme-cohort, .v2gme-bench__grid,
.v2gme-meter__opts, .v2gme-meter__out, .v2gme-lab__opts,
.v2gme-charge__opts, .v2gme-charge__out, .v2gme-modes,
.v2gme-matrix, .v2gme-stack, .v2gme-dd__list, .v2gme-steps,
.v2gme-frames, .v2gme-dl__list, .v2gme-gauge__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Scoped tokens ---------- */

.v2gme-hero, .v2gme-prose, .v2gme-bench {
    --gme-a:    #A5176B;
    --gme-deep: #7C0F4F;
    --gme-tint: #FCEBF3;
    --gme-edge: #F2C9DD;
    --gme-part: #B7791F;
    --gme-part-tint: #FDF6E7;
    --gme-slate: #2B3540;
}

.v2gme-hero .v2gme-eyebrow { color: var(--gme-a); }

.v2gme-prose code {
    font-family: var(--font-mono);
    font-size: .88em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    color: var(--ink);
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* ---------- The per-H2 answer capsule ---------- */

.v2gme-ans {
    border-right: 3px solid var(--gme-a);
    background: var(--gme-tint);
    border-radius: 12px 0 0 12px;
    padding: 15px 18px;
    margin: 0 0 22px;
}
.v2gme-ans p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.72;
    color: var(--gme-slate);
}
.v2gme-ans strong { color: var(--ink); }
.v2gme-ans code { background: rgba(255, 255, 255, .7); border-color: var(--gme-edge); }

.v2gme-fine {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 0;
}

/* Confidence chip: every "Google does not publish this" caveat */
.v2gme-part {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--gme-part-tint);
    border: 1px solid rgba(183, 121, 31, .28);
    color: #8A5B12;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2gme-part::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gme-part);
    flex: none;
}

@media (max-width: 768px) {
    .v2gme-ans { padding: 13px 14px; }
    .v2gme-ans p { font-size: 14.5px; }
}

/* ---------- Quick answer accent (dark moment #1) ---------- */

.v2gme-qa { border-color: rgba(165, 23, 107, .5); }
.v2gme-qa .v2gpr-qa__tag { color: #F7A8CE; }
.v2gme-qa .v2gpr-qa__tag i { background: #F7A8CE; }

/* ---------- HERO: the two gates ---------- */

.v2gme-gates {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: stretch;
    margin-top: clamp(22px, 3vw, 30px);
    max-width: 980px;
}
.v2gme-gate {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 18px 20px;
    min-width: 0;
}
.v2gme-gate.is-a {
    border-color: var(--gme-edge);
    background: linear-gradient(-170deg, var(--gme-tint) 0%, #FFFFFF 62%);
}
.v2gme-gate__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gme-a);
    margin: 0;
}
.v2gme-gate.is-b .v2gme-gate__tag { color: var(--faint); }
.v2gme-gate__tag i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
.v2gme-gate__title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--ink);
    margin: 8px 0 14px;
}
.v2gme-gate__cap {
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--faint);
    margin: 7px 0 0;
}
.v2gme-gate__note {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
    margin: 16px 0 0;
    padding-top: 13px;
    border-top: 1px dashed var(--line);
}

/* Gate A: the 12-pip cohort */
.v2gme-cohort {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.v2gme-pip {
    width: 26px;
    height: 26px;
    border-radius: 7px;
    background: var(--gme-a);
    box-shadow: inset 0 -2px 0 rgba(0, 0, 0, .14);
    flex: none;
}

/* Gate A: the 14-day track */
.v2gme-track {
    position: relative;
    height: 10px;
    border-radius: 999px;
    background: #F3D9E6;
    margin-top: 18px;
    /* room for the absolutely positioned Day 1 / Day 14 labels below it,
       which otherwise print straight through the caption that follows */
    margin-bottom: 24px;
}
.v2gme-track__fill {
    position: absolute;
    inset: 0;
    width: 100%;
    border-radius: 999px;
    background: linear-gradient(-90deg, var(--gme-a), var(--gme-deep));
    transform-origin: right center;
}
.v2gme-track__d {
    position: absolute;
    top: 15px;
    right: 0;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .06em;
    color: var(--faint);
}
.v2gme-track__d.is-end { right: auto; left: 0; }

/* the connector between the gates */
.v2gme-gates__link {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gme-edge);
}
.v2gme-gates__link svg {
    width: 26px;
    height: 26px;
    transform: rotate(-90deg);
}

/* Gate B: the risk stack */
.v2gme-risks {
    display: grid;
    gap: 8px;
}
.v2gme-risks li {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    gap: 4px 10px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 9px 12px;
}
.v2gme-risks b {
    font-size: 13px;
    color: var(--ink);
    white-space: nowrap;
}
.v2gme-risks span {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
}

.v2gme-gates__foot {
    max-width: 980px;
    font-size: 14.5px;
    line-height: 1.7;
    color: var(--slate);
    margin: 16px 0 0;
}
.v2gme-gates__foot b { color: var(--ink); }

/* ---------- HERO: the self-dating deadline strip ---------- */

.v2gme-dl {
    max-width: 980px;
    margin: 18px 0 0;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--gme-part);
    border-radius: 14px 0 0 14px;
    padding: 14px 18px 16px;
}
.v2gme-dl__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #8A5B12;
    margin: 0 0 7px;
}
.v2gme-dl__tag svg { width: 15px; height: 15px; flex: none; }
.v2gme-dl__txt {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2gme-dl__txt b { color: var(--ink); }
.v2gme-dl.is-pre .v2gme-dl__txt b:first-child {
    font-family: var(--font-mono);
    font-size: 17px;
    color: var(--gme-a);
}

/* hero reveal (respects prefers-reduced-motion via the JS gate) */
.v2gme-hero.v2-anim .v2gme-gate,
.v2gme-hero.v2-anim .v2gme-dl {
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .55s ease, transform .55s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: .3s;
}
.v2gme-hero.v2-anim .v2gme-gate.is-b { transition-delay: .38s; }
.v2gme-hero.v2-anim .v2gme-dl { transition-delay: .46s; }
.v2gme-hero.is-in .v2gme-gate,
.v2gme-hero.is-in .v2gme-dl {
    opacity: 1;
    transform: none;
}
.v2gme-hero.v2-anim .v2gme-pip {
    opacity: 0;
    transform: scale(.6);
    transition: opacity .3s ease, transform .3s cubic-bezier(0.22, 0.8, 0.26, 1);
    transition-delay: calc(.42s + var(--d, 0s));
}
.v2gme-hero.is-in .v2gme-pip { opacity: 1; transform: none; }
.v2gme-hero.v2-anim .v2gme-track__fill {
    transform: scaleX(0);
    transition: transform .9s cubic-bezier(0.22, 0.8, 0.26, 1) .95s;
}
.v2gme-hero.is-in .v2gme-track__fill { transform: scaleX(1); }

@media (min-width: 769px) {
    .v2gme-gates {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        gap: 14px;
    }
    .v2gme-gates__link svg { transform: none; }
    .v2gme-gate { padding: 22px 22px 24px; }
    .v2gme-gate__title { font-size: 21px; }
}

@media (max-width: 480px) {
    .v2gme-gate { padding: 15px 15px 17px; border-radius: 15px; }
    .v2gme-gate__title { font-size: 17.5px; margin-bottom: 12px; }
    .v2gme-pip { width: 23px; height: 23px; border-radius: 6px; }
    .v2gme-risks li { grid-template-columns: 1fr; gap: 2px; padding: 8px 11px; }
    .v2gme-risks b { white-space: normal; }
    .v2gme-gates__foot { font-size: 13.5px; }
    .v2gme-dl { padding: 12px 14px 14px; }
    .v2gme-dl__txt { font-size: 13.5px; }
}

@media (max-width: 390px) {
    .v2gme-pip { width: 20.5px; height: 20.5px; }
    .v2gme-gate__title { font-size: 16.5px; }
}

/* ---------- The bench (three-instrument index) ---------- */

.v2gme-bench {
    background: var(--ink);
    border-radius: 20px;
    padding: 22px;
    margin: 30px 0 34px;
    overflow: hidden;
}
.v2gme-bench__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #F7A8CE;
    margin: 0;
}
.v2gme-bench__tag svg { width: 16px; height: 16px; flex: none; }
.v2gme-bench__sub {
    margin: 10px 0 18px;
    font-size: 14px;
    line-height: 1.7;
    color: rgba(255, 255, 255, .72);
    max-width: 640px;
}
.v2gme-bench__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.v2gme-bench__item {
    display: block;
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 14px;
    padding: 14px 15px;
    transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.v2gme-bench__item:hover,
.v2gme-bench__item:focus-visible {
    background: rgba(255, 255, 255, .09);
    border-color: rgba(247, 168, 206, .5);
    transform: translateY(-2px);
}
.v2gme-bench__item span {
    display: block;
    font-size: 10px;
    letter-spacing: .14em;
    color: #F7A8CE;
    margin-bottom: 6px;
}
.v2gme-bench__item b {
    display: block;
    font-size: 15px;
    color: #fff;
    margin-bottom: 4px;
}
.v2gme-bench__item em {
    display: block;
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.55;
    color: rgba(255, 255, 255, .62);
}

.v2gme-bench.v2-anim .v2gme-bench__item {
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .5s ease, transform .5s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gme-bench.v2-anim .v2gme-bench__item:nth-child(2) { transition-delay: .08s; }
.v2gme-bench.v2-anim .v2gme-bench__item:nth-child(3) { transition-delay: .16s; }
.v2gme-bench.is-in .v2gme-bench__item { opacity: 1; transform: none; }

@media (min-width: 769px) {
    .v2gme-bench { padding: 26px 28px; }
    .v2gme-bench__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
}

@media (max-width: 480px) {
    .v2gme-bench { padding: 18px 16px; border-radius: 17px; margin: 24px 0 28px; }
    .v2gme-bench__sub { font-size: 13.5px; margin-bottom: 15px; }
    .v2gme-bench__item { padding: 12px 13px; }
}

/* ---------- Shared table shell (wide records) ---------- */

.v2gme-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    border: 1px solid var(--line);
    border-radius: 14px;
    margin: 20px 0 26px;
    max-width: 100%;
}
.v2gme-scroll::-webkit-scrollbar { height: 6px; }
.v2gme-scroll::-webkit-scrollbar-thumb { background: #D3DAE1; border-radius: 999px; }

.v2gme-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    background: var(--paper);
    font-size: 13.5px;
    line-height: 1.6;
}
.v2gme-table thead th {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 11px 14px;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2gme-table tbody th {
    text-align: right;
    font-weight: 600;
    color: var(--ink);
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2gme-table tbody td {
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    color: var(--slate);
    vertical-align: top;
}
.v2gme-table tbody tr:last-child th,
.v2gme-table tbody tr:last-child td { border-bottom: 0; }
.v2gme-table tbody tr:hover th,
.v2gme-table tbody tr:hover td { background: #FAFBFC; }
.v2gme-table code { font-size: .85em; }
.v2gme-table .is-num { font-family: var(--font-mono); white-space: nowrap; color: var(--ink); }
.v2gme-table .is-yes { color: var(--go-deep); font-weight: 600; }
.v2gme-table .is-no  { color: #912018; font-weight: 600; }

/* Below 720px every row becomes its own card, labelled from the
   column headers via data-label, so nothing scrolls sideways in
   the ~335px article column on a phone. */
@media (max-width: 720px) {
    .v2gme-scroll { overflow-x: visible; }

    .v2gme-table {
        display: block;
        width: 100%;
        min-width: 0;
        background: transparent;
    }
    .v2gme-table thead { display: none; }
    .v2gme-table tbody {
        display: grid;
        gap: 10px;
        padding: 12px;
    }
    .v2gme-table tbody tr {
        display: block;
        background: var(--paper);
        border: 1px solid var(--line);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2gme-table tbody th,
    .v2gme-table tbody td {
        display: block;
        width: auto;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2gme-table tbody th {
        background: var(--mist);
        border-bottom: 1px solid var(--line);
        padding: 12px 14px;
        font-size: 14px;
        line-height: 1.45;
    }
    .v2gme-table tbody td {
        padding: 11px 14px 13px;
        font-size: 13.5px;
    }
    .v2gme-table tbody td + td { border-top: 1px solid var(--line); }
    .v2gme-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px;
        font-weight: 600;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--faint);
        margin-bottom: 5px;
    }
    .v2gme-table tbody tr:hover th { background: var(--mist); }
    .v2gme-table tbody tr:hover td { background: var(--paper); }
}

/* ---------- Widget shell tuning (rides .v2gpr-tool) ---------- */

/* The shared tag pill is green-on-green-tint. Recolour the whole pill, not
   just the text: pale pink on a green tint fails contrast badly. */
.v2gme-tool .v2gpr-tool__tag {
    color: var(--gme-deep);
    background: var(--gme-tint);
    border-color: var(--gme-edge);
}
.v2gme-tool .v2gpr-tool__tag i { background: var(--gme-a); }
.v2gme-tool .v2gpr-tool__label {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 13px 0 0;
}

@media (max-width: 480px) {
    .v2gme-tool .v2gpr-tool__label { font-size: 17px; margin-top: 11px; }
}


/* ============================================================
   BLOG ITS V2  -  "How to Set Up Google Play Internal Testing"
   (/blog/google-play-internal-testing-setup)

   Rides the shared v2gpr- article layer (rail, chips, quick
   answer, TOC, H2/H3, callout family, tool shell, FAQ, bottom
   line, docs, author, related, CTA) and adds a unique v2its-
   layer built on ONE motif: the DELIVERY CHAIN.

   The motif exists because Google's eligibility rule is two
   conditions in series (in the tester configuration AND opted
   into the test). So the visual language of this post is a
   circuit: nodes, wires, and contacts that are open or closed.
   The hero chain, the gate simulator and the seat meter all
   reuse the same contact vocabulary rather than each inventing
   their own.

   Accent: azure. Reserved for "signal present / contact closed".
   Amber marks "waiting, not broken" (propagation), which is the
   single most useful distinction on the page. Rose is spent only
   where something is genuinely wrong, never on "still
   propagating".

   MOBILE FIRST: every component in this block is authored at
   390px first and widened at 620 / 768 / 900px. The chain is a
   vertical stack on a phone and only becomes a horizontal signal
   path at 900px, because a six-node rail is unreadable below
   that. Wide blocks live inside .v2its-tw overflow wrappers,
   never the page.
   ============================================================ */

.v2its-hero,
.v2its-prose,
.v2its-ctaband {
    --its-a:     #1A5FD0;
    --its-deep:  #12408F;
    --its-tint:  #EAF1FD;
    --its-edge:  #C2D6F6;
    --its-wait:  #B7791F;
    --its-wtint: #FDF6E7;
}

/* Block-scoped reset: the base reset skips lists inside prose */
.v2its-prose ul, .v2its-prose ol,
.v2its-chain__track, .v2its-chain__contacts, .v2its-steps,
.v2its-gates, .v2its-seat__grid, .v2its-dd ul, .v2its-lint__flags,
.v2its-clock__opts, .v2its-myth, .v2its-facts3, .v2its-quotes,
.v2its-split ul, .v2its-two {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Confidence chips (the atom of this post) ----------
   The dossier grades every claim. Publishing the grade instead of
   flattening it is the whole competitive argument of this page,
   so the chip is a first-class type, not a footnote style. */

.v2its-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2its-ev + .v2its-ev { margin-right: 6px; }
.v2its-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2its-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2its-ev.is-community {
    color: var(--its-wait);
    background: var(--its-wtint);
    border: 1px solid #F0DCAE;
}
.v2its-ev.is-partial {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2its-ev.is-unverified {
    color: #8A1C13;
    background: #FDF1F0;
    border: 1px dashed #E9B4AE;
}

/* ---------- Inline Play Console path ----------
   Used every time the post names a navigation route. Keeping it a
   component means a Console rename is one edit, not fifteen. */

.v2its-path {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 6px;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--its-deep);
    background: var(--its-tint);
    border: 1px solid var(--its-edge);
    border-radius: 8px;
    padding: 5px 9px;
    vertical-align: 1px;
    max-width: 100%;
    overflow-wrap: anywhere;
}
.v2its-path i {
    font-style: normal;
    color: var(--its-a);
    opacity: 0.55;
}

/* ---------- Hero eyebrow + fact plaques ---------- */

.v2its-eyebrow { color: var(--its-a); }

.v2its-facts .v2gpr-fact b { color: var(--its-deep); }
.v2its-facts .v2gpr-fact { border-color: var(--its-edge); }

/* ============================================================
   THE DELIVERY CHAIN  (hero signature)

   Authored as a vertical stack. The connector is a pseudo-element
   chevron that sits in the grid gap, so it can never add width and
   can never overflow. At 900px the same markup becomes a 4-column
   signal path with the latch and the endpoint on a second row,
   which also happens to be the right conceptual split: what you do
   in Console on top, what has to be true for delivery underneath.
   ============================================================ */

.v2its-chain {
    margin-top: 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 34px rgba(10, 16, 23, 0.07);
}

.v2its-chain__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 11px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    font-size: 11px;
    color: var(--slate);
}
.v2its-chain__dots {
    display: inline-flex;
    gap: 4px;
    flex-shrink: 0;
}
.v2its-chain__dots i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--line);
}
.v2its-chain__bar > .v2-mono { flex: 1 1 auto; min-width: 0; }

.v2its-chain__stamp {
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2its-chain__stamp.is-current {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2its-chain__stamp.is-recheck {
    color: var(--its-wait);
    background: var(--its-wtint);
    border: 1px solid #F0DCAE;
}
.v2its-chain__stamp.is-stale {
    color: #8A1C13;
    background: #FDF1F0;
    border: 1px solid #E9B4AE;
}

.v2its-chain__body { padding: 16px 14px 6px; }

.v2its-chain__track {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 26px 12px;
}

.v2its-chain__node {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: center;
    gap: 4px 12px;
    padding: 12px 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2its-chain__ic {
    grid-row: span 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--its-tint);
    color: var(--its-a);
    border: 1px solid var(--its-edge);
}
.v2its-chain__ic svg { width: 20px; height: 20px; }
.v2its-chain__node b {
    align-self: end;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2its-chain__node .v2-mono {
    align-self: start;
    font-size: 10px;
    color: var(--faint);
    letter-spacing: 0.03em;
}
.v2its-chain__node.is-end {
    border-color: var(--its-edge);
    background: linear-gradient(-180deg, var(--its-tint) 0%, var(--paper) 70%);
}

/* Connector: lives inside the 26px row gap, points down on phones */
.v2its-chain__node::after,
.v2its-chain__latch::after {
    content: "";
    position: absolute;
    right: 50%;
    bottom: -19px;
    width: 9px;
    height: 9px;
    border-left: 2px solid var(--its-edge);
    border-bottom: 2px solid var(--its-edge);
    transform: translateX(50%) rotate(-45deg);
}
.v2its-chain__node.is-end::after { display: none; }

/* The latch: Google's two conditions, in series */
.v2its-chain__latch {
    position: relative;
    padding: 13px;
    border-radius: 12px;
    border: 1px dashed var(--its-edge);
    background: var(--its-tint);
}
.v2its-chain__latchlab {
    margin: 0 0 9px;
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--its-deep);
}
.v2its-chain__contacts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 9px;
}
.v2its-chain__contact {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr);
    align-items: center;
    gap: 2px 10px;
    padding: 10px 11px;
    background: var(--paper);
    border: 1px solid var(--its-edge);
    border-radius: 10px;
}
.v2its-chain__contact i {
    grid-row: span 2;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--its-a);
    box-shadow: 0 0 0 3px rgba(26, 95, 208, 0.16);
}
.v2its-chain__contact b {
    align-self: end;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2its-chain__contact .v2-mono {
    align-self: start;
    font-size: 9.5px;
    color: var(--faint);
}

.v2its-chain__foot {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0;
    padding: 13px 14px;
    border-top: 1px solid var(--line);
    background: var(--mist);
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}
.v2its-chain__foot svg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--its-a);
}
.v2its-chain__foot strong { color: var(--ink); }

/* Reveal on scroll. The JS only adds .v2-anim when the reader has
   not asked for reduced motion; the media query below is the
   belt-and-braces half of that promise. */
.v2its-chain.v2-anim .v2its-chain__node,
.v2its-chain.v2-anim .v2its-chain__latch {
    opacity: 0;
    transform: translateY(9px);
}
.v2its-chain.v2-anim.is-in .v2its-chain__node,
.v2its-chain.v2-anim.is-in .v2its-chain__latch {
    opacity: 1;
    transform: none;
    transition: opacity 0.45s ease var(--d, 0s), transform 0.45s ease var(--d, 0s);
}

@media (prefers-reduced-motion: reduce) {
    .v2its-chain.v2-anim .v2its-chain__node,
    .v2its-chain.v2-anim .v2its-chain__latch {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ---------- Chain: 620px, two columns ---------- */

@media (min-width: 620px) {
    .v2its-chain__track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2its-chain__latch { grid-column: span 2; }
    .v2its-chain__contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2its-chain__node.is-end { grid-column: span 2; }
}

/* ---------- Chain: 900px, the horizontal signal path ---------- */

@media (min-width: 900px) {
    .v2its-chain__body { padding: 20px 18px 10px; }
    .v2its-chain__track {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 30px 22px;
    }
    .v2its-chain__node {
        grid-template-columns: minmax(0, 1fr);
        align-content: start;
        gap: 8px;
        padding: 14px;
        min-height: 118px;
    }
    .v2its-chain__ic { grid-row: auto; }
    .v2its-chain__node b { align-self: auto; }
    .v2its-chain__node .v2-mono { align-self: auto; }

    /* Connectors now point right, sitting in the 22px column gap */
    .v2its-chain__node::after {
        right: auto;
        left: -16px;
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    /* Node 4 ends the top row: its arrow would point at nothing */
    .v2its-chain__node:nth-child(4)::after { display: none; }

    .v2its-chain__latch {
        grid-column: span 3;
        padding: 14px 16px;
    }
    .v2its-chain__latch::after {
        right: auto;
        left: -16px;
        bottom: auto;
        top: 50%;
        transform: translateY(-50%) rotate(45deg);
    }
    .v2its-chain__node.is-end {
        grid-column: span 1;
        justify-content: center;
    }
}

/* ---------- Chain: phone tightening ---------- */

@media (max-width: 480px) {
    .v2its-chain { margin-top: 20px; border-radius: 14px; }
    .v2its-chain__bar { padding: 10px 12px; font-size: 10.5px; }
    .v2its-chain__body { padding: 14px 12px 4px; }
    .v2its-chain__track { gap: 24px 10px; }
    .v2its-chain__node { padding: 11px 12px; grid-template-columns: 34px minmax(0, 1fr); gap: 3px 10px; }
    .v2its-chain__ic { width: 34px; height: 34px; }
    .v2its-chain__ic svg { width: 18px; height: 18px; }
    .v2its-chain__node b { font-size: 13.5px; }
    .v2its-chain__foot { padding: 12px; font-size: 12.5px; }
}

@media (max-width: 390px) {
    .v2its-chain__bar > .v2-mono { font-size: 10px; }
    .v2its-chain__stamp { font-size: 8.5px; padding: 3px 7px; }
    .v2its-chain__node b { font-size: 13px; }
    .v2its-chain__contact b { font-size: 12.5px; }
}

/* ---------- Wide-block scroll wrapper ----------
   Every table and wide track in this post is wrapped in this, so
   the page body never scrolls sideways on a phone. */

.v2its-tw {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 22px 0;
    border-radius: 12px;
}
.v2its-tw::-webkit-scrollbar { display: none; }
.v2its-tw > table { min-width: 620px; }

.v2its-tw__hint {
    display: none;
    margin: -14px 0 20px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--faint);
}

@media (max-width: 768px) {
    .v2its-tw__hint { display: block; }
}

/* ---------- Scoped table skin ---------- */

.v2its-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.5px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}
.v2its-tbl th,
.v2its-tbl td {
    padding: 11px 13px;
    text-align: right;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
    line-height: 1.6;
}
.v2its-tbl thead th {
    background: var(--its-tint);
    color: var(--its-deep);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    white-space: nowrap;
}
.v2its-tbl tbody tr:last-child td { border-bottom: 0; }
.v2its-tbl tbody tr:nth-child(even) td { background: #FBFCFD; }
.v2its-tbl td b { color: var(--ink); }
.v2its-tbl td code {
    font-family: var(--font-mono);
    font-size: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 5px;
    padding: 1px 5px;
    overflow-wrap: anywhere;
}

/* Long strings inside this post can never widen the page */
.v2its-prose code,
.v2its-prose pre {
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Keyboard operability is part of "feature rich": every control in
   this post shows a visible focus ring. */
.v2its-prose :focus-visible,
.v2its-hero :focus-visible {
    outline: 2px solid var(--its-a);
    outline-offset: 2px;
    border-radius: 6px;
}
/* ---------- Sticky mobile CTA: scoped overflow fix ----------
   .v2-faq__wa is a full-width button in its FAQ home (flex: 1 0 100%).
   The shared .v2gpr-scta override sets flex-shrink: 0 but never resets
   that 100% basis, so inside the sticky bar the WhatsApp button demands
   the whole row and overhangs the viewport on a phone. body.v2 sets
   overflow-x: clip, so documentElement.scrollWidth still matches the
   viewport and the bug survives every page-level overflow check; only a
   per-element rect measurement catches it. Fixed here for this post only,
   because the shared rule is inherited by 30+ live posts. */
.v2 .v2gme-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
}
.v2 .v2gme-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
}

/* ---------- Instrument 01: build budget meter ---------- */

.v2gme-meter__intro {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}

.v2gme-meter__opts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 18px;
}
.v2gme-field {
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 8px 12px;
    min-height: 52px;
    transition: border-color .18s ease, box-shadow .18s ease;
}
.v2gme-field:focus-within {
    border-color: var(--gme-a);
    box-shadow: 0 0 0 3px rgba(165, 23, 107, .12);
}
.v2gme-field > span {
    font-size: 13.5px;
    line-height: 1.4;
    color: var(--ink);
    min-width: 0;
}
.v2gme-field input {
    width: 92px;
    min-width: 0;
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 600;
    color: var(--ink);
    text-align: left;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 9px 10px;
    -moz-appearance: textfield;
    appearance: textfield;
}
.v2gme-field input:focus { outline: none; border-color: var(--gme-edge); background: var(--paper); }
.v2gme-field em {
    font-style: normal;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--faint);
    width: 38px;
}

.v2gme-meter__verdict {
    border-radius: 12px;
    padding: 13px 15px;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.55;
    margin-bottom: 14px;
}
.v2gme-meter__verdict.is-ok {
    background: var(--go-tint);
    color: var(--go-deep);
    border: 1px solid rgba(11, 138, 71, .25);
}
.v2gme-meter__verdict.is-over {
    background: #FDF1F0;
    color: #912018;
    border: 1px solid rgba(145, 32, 24, .25);
}

.v2gme-meter__out { display: grid; gap: 9px; }

.v2gme-gauge {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 11px 13px 13px;
}
.v2gme-gauge__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}
.v2gme-gauge__top b { font-size: 13.5px; color: var(--ink); }
.v2gme-gauge__top span { font-size: 12px; color: var(--slate); white-space: nowrap; }
.v2gme-gauge__track {
    height: 7px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    overflow: hidden;
    margin: 9px 0 8px;
}
.v2gme-gauge__track i {
    display: block;
    height: 100%;
    background: var(--gme-a);
    border-radius: 999px;
    transition: width .35s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2gme-gauge p {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2gme-gauge.is-tight { border-color: rgba(183, 121, 31, .4); }
.v2gme-gauge.is-tight .v2gme-gauge__track i { background: var(--gme-part); }
.v2gme-gauge.is-over { border-color: rgba(145, 32, 24, .4); background: #FEF7F6; }
.v2gme-gauge.is-over .v2gme-gauge__track i { background: #912018; }
.v2gme-gauge.is-over .v2gme-gauge__top span { color: #912018; font-weight: 600; }
.v2gme-gauge.is-advice { background: var(--mist); }
.v2gme-gauge.is-advice b { display: block; font-size: 13px; color: var(--ink); margin-bottom: 7px; }
.v2gme-gauge.is-advice ul { margin: 0; padding-right: 18px; list-style: disc; }
.v2gme-gauge.is-advice li {
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
    margin-bottom: 5px;
}
.v2gme-gauge.is-advice li:last-child { margin-bottom: 0; }

@media (min-width: 769px) {
    .v2gme-meter__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
}

@media (max-width: 480px) {
    .v2gme-field {
        grid-template-columns: 1fr auto;
        gap: 6px 10px;
        padding: 10px 12px;
    }
    .v2gme-field > span { grid-column: 1 / -1; font-size: 13px; }
    .v2gme-field input { width: 100%; min-width: 120px; text-align: right; }
    .v2gme-field em { text-align: left; }
    .v2gme-meter__verdict { font-size: 13.5px; padding: 12px 13px; }
    .v2gme-gauge__top span { font-size: 11.5px; }
}

@media (max-width: 390px) {
    .v2gme-field input { min-width: 96px; }
    .v2gme-gauge { padding: 10px 11px 12px; }
}

/* ---------- Instrument 02: slow session lab ---------- */

.v2gme-lab__opts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin-bottom: 18px;
}
.v2gme-seg {
    display: block;
    width: 100%;
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 11px 14px;
    min-height: 48px;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.v2gme-seg b {
    display: block;
    font-family: var(--font-mono);
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 2px;
}
.v2gme-seg span {
    display: block;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--slate);
}
.v2gme-seg.is-on {
    border-color: var(--gme-a);
    background: var(--gme-tint);
    box-shadow: inset 0 0 0 1px var(--gme-a);
}
.v2gme-seg.is-on b { color: var(--gme-deep); }

.v2gme-frames {
    display: grid;
    grid-template-columns: repeat(20, minmax(0, 1fr));
    gap: 4px;
    margin-bottom: 16px;
}
.v2gme-frames i {
    display: block;
    height: 34px;
    border-radius: 4px;
    background: #D8E5DC;
    border: 1px solid rgba(11, 138, 71, .22);
    transition: background .2s ease, border-color .2s ease;
}
.v2gme-frames i.is-slow {
    background: var(--gme-a);
    border-color: var(--gme-deep);
}

.v2gme-slider { display: block; margin-bottom: 16px; }
.v2gme-slider > span {
    display: block;
    font-family: var(--font-mono);
    font-size: 12.5px;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2gme-slider input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 44px;
    background: transparent;
    cursor: pointer;
}
.v2gme-slider input[type="range"]::-webkit-slider-runnable-track {
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(-90deg, #D8E5DC, var(--gme-edge));
    border: 1px solid var(--line);
}
.v2gme-slider input[type="range"]::-moz-range-track {
    height: 8px;
    border-radius: 999px;
    background: linear-gradient(-90deg, #D8E5DC, var(--gme-edge));
    border: 1px solid var(--line);
}
.v2gme-slider input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 26px;
    height: 26px;
    margin-top: -10px;
    border-radius: 50%;
    background: var(--gme-a);
    border: 3px solid var(--paper);
    box-shadow: 0 2px 8px rgba(124, 15, 79, .35);
}
.v2gme-slider input[type="range"]::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--gme-a);
    border: 3px solid var(--paper);
    box-shadow: 0 2px 8px rgba(124, 15, 79, .35);
}

.v2gme-lab__verdict {
    border-radius: 13px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    background: var(--mist);
}
.v2gme-lab__verdict b {
    display: block;
    font-size: 15px;
    line-height: 1.4;
    margin-bottom: 7px;
    color: var(--ink);
}
.v2gme-lab__verdict p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2gme-lab__verdict.is-slow {
    background: var(--gme-tint);
    border-color: var(--gme-edge);
}
.v2gme-lab__verdict.is-slow b { color: var(--gme-deep); }
.v2gme-lab__verdict.is-ok {
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, .25);
}
.v2gme-lab__verdict.is-ok b { color: var(--go-deep); }
.v2gme-lab__caveat {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px dashed rgba(10, 16, 23, .16);
    font-size: 12.5px;
}

@media (min-width: 769px) {
    .v2gme-lab__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .v2gme-frames { grid-template-columns: repeat(10, minmax(0, 1fr)); gap: 5px; }
    .v2gme-frames i { height: 26px; }
    .v2gme-lab__verdict { padding: 13px 14px; }
    .v2gme-lab__verdict b { font-size: 14.5px; }
    .v2gme-seg { padding: 10px 12px; }
}

@media (max-width: 390px) {
    .v2gme-frames { gap: 4px; }
    .v2gme-frames i { height: 23px; border-radius: 3px; }
}


/* ============================================================
   ITS V2  -  sticky CTA overflow fix (scoped)

   The shared .v2 .v2gpr-scta .v2-faq__wa rule sets flex-shrink:0
   but never resets the flex-basis the button inherits from its FAQ
   home, which is 100%. On a 390px phone the WhatsApp button then
   demands the whole row, refuses to shrink, and its right edge
   lands past the viewport while the pricing button is squeezed to
   nothing. body.v2 sets overflow-x:clip, so a documentElement
   scrollWidth check never sees it - only a per-element rect does.

   Fixed here scoped to this post. The shared layer is deliberately
   left alone: it is shared by 30+ live posts and that is the
   owner's call, not a side effect of shipping this one.
   ============================================================ */

.v2 .v2its-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
}
.v2 .v2its-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
}

/* ============================================================
   ITS V2  -  section furniture (answer capsules, prerequisites,
   quotes, do/does-not columns, tool headings)
   ============================================================ */

/* ---------- Answer capsule that opens every H2 ---------- */

.v2its-cap {
    margin: 0 0 22px;
    padding: 14px 16px;
    background: var(--its-tint);
    border-right: 3px solid var(--its-a);
    border-radius: 12px 0 0 12px;
}
.v2its-cap > .v2-mono {
    margin: 0 0 6px;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--its-deep);
}
.v2its-cap > p:last-child {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--ink);
}
.v2its-cap b { color: var(--its-deep); }

/* ---------- Widget / card headings (H4, always under an H3) ---------- */

.v2its-toolh {
    margin: 26px 0 12px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}

/* ---------- Numbered prerequisites ---------- */

.v2its-pre {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}
.v2its-pre li {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 13px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2its-pre__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--its-tint);
    color: var(--its-deep);
    border: 1px solid var(--its-edge);
    font-size: 10.5px;
    font-weight: 700;
}
.v2its-pre li b {
    display: block;
    font-size: 15px;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2its-pre li span {
    display: block;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}

/* ---------- Verbatim Google quote ---------- */

.v2its-quote {
    margin: 20px 0;
    padding: 15px 17px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--its-a);
    border-radius: 12px 0 0 12px;
}
.v2its-quote blockquote {
    margin: 0 0 7px;
    padding: 0;
    border: 0;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ink);
}
.v2its-quote figcaption {
    font-size: 10px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2its-quotes {
    display: grid;
    gap: 10px;
    margin: 20px 0;
}
.v2its-quotes .v2its-quote { margin: 0; }

/* ---------- Two-column "you do / they do" ---------- */

.v2its-dd {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin: 20px 0;
}
.v2its-dd__col {
    padding: 15px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2its-dd__col.is-them {
    background: var(--its-tint);
    border-color: var(--its-edge);
}
.v2its-dd__h {
    margin: 0 0 11px;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--its-deep);
}
.v2its-dd__col ul { display: grid; gap: 9px; }
.v2its-dd__col li {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
    gap: 9px;
    align-items: start;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2its-dd__col li .v2gpr-mk { margin-top: 2px; }

@media (min-width: 768px) {
    .v2its-dd { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============================================================
   TOOL 01  -  the tester list linter

   Authored at 390px: the mode buttons are a full-width two-up
   grid, the action row wraps, and the seat grid is an auto-fill of
   9px cells so 100 seats reflow to whatever width exists instead
   of forcing a fixed track. Every control clears 44px on a phone.
   ============================================================ */

.v2its-lint__modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    padding: 5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    margin-bottom: 14px;
}
.v2 .v2its-lint__mode {
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--slate);
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}
.v2 .v2its-lint__mode.is-on {
    background: var(--paper);
    border-color: var(--its-edge);
    color: var(--its-deep);
    box-shadow: 0 1px 3px rgba(10, 16, 23, 0.07);
}

.v2its-lint__lab {
    display: block;
    margin-bottom: 6px;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2 .v2its-lint__in {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    font-family: var(--font-mono);
    font-size: 12.5px;
    line-height: 1.75;
    color: var(--ink);
    resize: vertical;
    overflow-wrap: anywhere;
}
.v2 .v2its-lint__in:focus {
    outline: none;
    border-color: var(--its-a);
    box-shadow: 0 0 0 3px rgba(26, 95, 208, 0.13);
}

.v2its-lint__acts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 11px;
}
.v2 .v2its-lint__acts .v2-btn { min-height: 44px; }

.v2its-lint__out { margin-top: 16px; }

/* ---------- The 100-seat meter ---------- */

.v2its-seat {
    padding: 14px;
    background: var(--paper);
    border: 1px solid var(--its-edge);
    border-radius: 12px;
}
.v2its-seat__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 11px;
}
.v2its-seat__top > .v2-mono {
    margin: 0;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2its-seat__count {
    margin: 0;
    font-size: 13px;
    color: var(--slate);
}
.v2its-seat__count b {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--its-deep);
    margin-left: 4px;
}
.is-over .v2its-seat { border-color: #E9B4AE; }
.is-over .v2its-seat__count b { color: #8A1C13; }

.v2its-seat__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(9px, 1fr));
    gap: 4px;
    margin-bottom: 10px;
}
.v2its-seat__grid i {
    aspect-ratio: 1;
    border-radius: 2px;
    background: var(--mist);
    border: 1px solid var(--line);
    transition: background 0.2s ease, border-color 0.2s ease;
}
.v2its-seat__grid i.is-used {
    background: var(--its-a);
    border-color: var(--its-deep);
}
.is-over .v2its-seat__grid i.is-used {
    background: #B4232F;
    border-color: #8A1C13;
}
.v2its-seat__cap {
    margin: 0;
    font-size: 10.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- Finding flags ---------- */

.v2its-lint__flags {
    display: grid;
    gap: 9px;
    margin-top: 12px;
}
.v2its-lint__flag {
    display: grid;
    gap: 3px;
    padding: 11px 13px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--paper);
    border-right-width: 3px;
}
.v2its-lint__flag b {
    font-size: 13.5px;
    color: var(--ink);
    line-height: 1.4;
}
.v2its-lint__flag span {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2its-lint__flag.is-ok   { border-right-color: var(--go); background: var(--go-tint); }
.v2its-lint__flag.is-note { border-right-color: var(--its-a); background: var(--its-tint); }
.v2its-lint__flag.is-warn { border-right-color: var(--its-wait); background: var(--its-wtint); }
.v2its-lint__flag.is-bad  { border-right-color: #B4232F; background: #FDF1F0; }

/* ---------- Cleaned output + copy ---------- */

.v2its-lint__clean {
    margin-top: 12px;
    border: 1px solid var(--line);
    border-radius: 10px;
    overflow: hidden;
    background: #0F1720;
}
.v2its-lint__cleanbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 8px 11px;
    background: #16202B;
    border-bottom: 1px solid #24303D;
}
.v2its-lint__cleanbar > .v2-mono {
    margin: 0;
    font-size: 9.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #93A0AC;
    min-width: 0;
}
.v2its-lint__clean pre {
    margin: 0;
    padding: 12px;
    max-height: 220px;
    overflow: auto;
    background: transparent;
    border: 0;
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: 1.85;
    color: #C9E4FF;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.v2 .v2its-copy {
    flex-shrink: 0;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 7px;
    border: 1px solid #2E3D4C;
    background: #1E2A36;
    color: #C9D2DA;
    font-size: 10px;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease;
}
.v2 .v2its-copy:hover { background: #26333F; color: #fff; }
.v2 .v2its-copy.is-done {
    background: var(--go);
    border-color: var(--go);
    color: #fff;
}

.v2its-lint__fine {
    margin: 11px 0 0;
    font-size: 11.5px;
    line-height: 1.65;
    color: var(--faint);
}

/* ---------- Linter: phones ---------- */

@media (max-width: 480px) {
    .v2its-lint__modes { grid-template-columns: minmax(0, 1fr); }
    .v2 .v2its-lint__mode { font-size: 11.5px; }
    .v2its-lint__acts { display: grid; grid-template-columns: minmax(0, 1fr); }
    .v2 .v2its-lint__acts .v2-btn { width: 100%; }
    .v2its-seat__grid { grid-template-columns: repeat(auto-fill, minmax(8px, 1fr)); gap: 3px; }
    .v2its-seat__count b { font-size: 20px; }
    .v2 .v2its-copy { min-height: 36px; }
    .v2its-cap { padding: 12px 13px; }
    .v2its-cap > p:last-child { font-size: 14.5px; }
    .v2its-pre li { padding: 12px; grid-template-columns: 27px minmax(0, 1fr); gap: 10px; }
    .v2its-pre__n { width: 27px; height: 27px; font-size: 10px; }
    .v2its-quote { padding: 13px 14px; }
    .v2its-quote blockquote { font-size: 15.5px; }
    .v2its-toolh { font-size: 16px; margin-top: 22px; }
}

@media (max-width: 390px) {
    .v2its-seat__grid { grid-template-columns: repeat(auto-fill, minmax(7px, 1fr)); }
    .v2its-lint__flag b { font-size: 13px; }
    .v2its-lint__flag span { font-size: 12px; }
    .v2its-lint__clean pre { font-size: 11px; }
}
/* ---------- Verbatim Google quote ---------- */

.v2gme-quote {
    margin: 22px 0 26px;
    padding: 18px 20px;
    background: var(--ink);
    border-radius: 14px;
    border-right: 3px solid var(--gme-a);
}
.v2gme-quote p {
    margin: 0 0 9px;
    font-family: var(--font-display);
    font-size: 17px;
    line-height: 1.5;
    color: #fff;
    letter-spacing: -.01em;
}
.v2gme-quote cite {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #F7A8CE;
}

/* ---------- Instrument 03: tester charge checker ---------- */

.v2gme-charge__q {
    border: 0;
    margin: 0 0 16px;
    padding: 0;
    min-width: 0;
}
/* NOT floated. A full-width floated legend leaves zero inline space for the
   sibling grid, which then shrink-wraps to 0 and pushes every option row off
   the right edge of the viewport. Plain block legend, no clearfix needed. */
.v2gme-charge__q legend {
    display: block;
    width: 100%;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--ink);
    margin-bottom: 9px;
    padding: 0;
}
.v2gme-charge__q legend span {
    display: inline-block;
    font-size: 10px;
    letter-spacing: .12em;
    color: var(--gme-a);
    margin-left: 6px;
}
.v2gme-charge__opts { display: grid; grid-template-columns: 1fr; gap: 8px; }

.v2gme-opt {
    display: flex;
    align-items: center;
    gap: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    min-height: 48px;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}
.v2gme-opt input {
    appearance: none;
    -webkit-appearance: none;
    width: 19px;
    height: 19px;
    flex: none;
    margin: 0;
    border: 2px solid #C3CBD3;
    border-radius: 50%;
    position: relative;
    transition: border-color .18s ease;
}
.v2gme-opt input:checked { border-color: var(--gme-a); }
.v2gme-opt input:checked::after {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: 50%;
    background: var(--gme-a);
}
.v2gme-opt input:focus-visible {
    outline: 2px solid var(--gme-a);
    outline-offset: 3px;
}
.v2gme-opt span {
    font-size: 13.5px;
    line-height: 1.45;
    color: var(--ink);
}
.v2gme-opt:has(input:checked) {
    border-color: var(--gme-a);
    background: var(--gme-tint);
}

.v2gme-charge__out {
    border-radius: 13px;
    border: 1px solid var(--line);
    background: var(--mist);
    padding: 15px 16px;
    margin-top: 4px;
}
.v2gme-charge__out b {
    display: block;
    font-size: 15.5px;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2gme-charge__out p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2gme-charge__next {
    margin-top: 10px !important;
    padding-top: 10px;
    border-top: 1px dashed rgba(10, 16, 23, .16);
    font-weight: 500;
    color: var(--ink) !important;
}
.v2gme-charge__out.is-bad { background: #FDF1F0; border-color: rgba(145, 32, 24, .3); }
.v2gme-charge__out.is-bad b { color: #912018; }
.v2gme-charge__out.is-warn { background: var(--gme-part-tint); border-color: rgba(183, 121, 31, .32); }
.v2gme-charge__out.is-warn b { color: #8A5B12; }
.v2gme-charge__out.is-good { background: var(--go-tint); border-color: rgba(11, 138, 71, .28); }
.v2gme-charge__out.is-good b { color: var(--go-deep); }

@media (min-width: 769px) {
    .v2gme-charge__opts { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
}

@media (max-width: 480px) {
    .v2gme-quote { padding: 16px 16px; }
    .v2gme-quote p { font-size: 15.5px; }
    .v2gme-opt { padding: 11px 12px; }
    .v2gme-opt span { font-size: 13px; }
    .v2gme-charge__out { padding: 14px; }
    .v2gme-charge__out b { font-size: 14.5px; }
}


/* ============================================================
   BLOG OPN V2  -  "Google Play Open Testing: Setup and When to Use It"
   (/blog/google-play-open-testing-setup)

   Rides the shared v2gpr- article layer (rail, chips, quick
   answer, TOC, H2/H3 blocks, tool shell, callouts, FAQ, bottom
   line, docs, author / related / cta bands) and adds a unique
   v2opn- motif: THE OPEN SHELF.

   The motif is a storefront rather than an instrument panel,
   because the reader's real question is what strangers can see.
   So the hero renders a mock store shelf with three inbound
   discovery routes and a lock strip, and the three instruments
   (unlock board, visibility matrix, cap dial) all answer "what is
   visible to whom, and when".

   Accent is cobalt #1550C8, unused elsewhere in the suite: kb and
   pts are violet, stat is cyan-teal, cal is amber, adv / apk / tos
   are ink-on-mist. The older generic --blue token (#1D4ED8) lives
   in unrelated blocks and is deliberately not reused here.
   --go green stays reserved for CTAs and approval states, and the
   amber pair is reserved for locked / community-reported states.

   Written MOBILE FIRST: every grid starts at one column and widens
   with min-width queries, every wide table sits in its own
   overflow-x track, and each component carries its 900 / 768 / 480
   / 390 rules in the same batch that creates it.

   Dark moments stay at two (quick answer + final CTA).

   FRAGMENTED ON PURPOSE, not by accident: three posts (OPN, ITS and
   GME) were appended to this file from three sessions on
   2026-08-12, so this block is interleaved with theirs rather than
   contiguous. Every fragment is v2opn- prefixed and none of them
   touches another post's selectors. To find them all:
   grep "v2opn" on this file; the last fragment ends with
   "END BLOG OPN V2 (last fragment)".
   ============================================================ */

/* Block-scoped reset (the base reset skips lists inside prose) */
.v2opn-prose ul, .v2opn-prose ol,
.v2opn-routes, .v2opn-desk__grid, .v2opn-steps, .v2opn-board__rungs,
.v2opn-mx__opts, .v2opn-mx__out, .v2opn-cap__opts, .v2opn-dd__list,
.v2opn-when__list, .v2opn-path__list, .v2opn-decay, .v2opn-myth__list,
.v2opn-glance, .v2opn-help__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Scoped tokens ---------- */

.v2opn-hero, .v2opn-prose, .v2opn-shelf, .v2opn-desk {
    --opn-a:         #1550C8;
    --opn-deep:      #0E3C99;
    --opn-tint:      #E9EFFD;
    --opn-edge:      #C3D3F7;
    --opn-part:      #8A5B14;
    --opn-part-tint: #FDF6E7;
    --opn-part-edge: #EBD9AE;
}

/* ---------- Confidence grading (dossier grades, carried into the UI) ---------- */

.v2opn-grade {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 4px 10px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    white-space: nowrap;
}
.v2opn-grade::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
}
.v2opn-grade.is-ok {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2opn-grade.is-part {
    color: var(--opn-part, #8A5B14);
    background: var(--opn-part-tint, #FDF6E7);
    border: 1px solid var(--opn-part-edge, #EBD9AE);
}
.v2opn-grade.is-com {
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
}

/* ---------- Hero eyebrow ---------- */

.v2opn-eyebrow {
    color: var(--opn-deep);
    background: var(--opn-tint);
    border: 1px solid var(--opn-edge);
}

/* ---------- THE OPEN SHELF (hero signature) ---------- */

.v2opn-shelf {
    margin-top: 30px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 18px 40px -24px rgba(10, 16, 23, 0.2);
}
.v2opn-shelf__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2opn-shelf__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--opn-deep);
}
.v2opn-shelf__tag svg { width: 15px; height: 15px; flex: none; }
.v2opn-shelf__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 11px;
    border-radius: 999px;
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2opn-shelf__state i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--go);
    flex: none;
}

.v2opn-shelf__body {
    display: grid;
    gap: 14px;
    padding: 16px;
}

/* The three inbound discovery routes */
.v2opn-routes { display: grid; gap: 9px; }
.v2opn-routes li {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    gap: 2px 10px;
    padding: 11px 13px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
}
.v2opn-routes li > span {
    grid-row: span 2;
    align-self: center;
    font-size: 9.5px;
    letter-spacing: 0.08em;
    color: var(--faint);
}
.v2opn-routes li b { font-size: 14px; font-weight: 650; color: var(--ink); }
.v2opn-routes li em {
    grid-column: 2;
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--faint);
}
/* Specificity note: the base reset sets `.v2 svg { display: block }`
   (0,1,1), which beats a bare class, so the connector arrows have to be
   suppressed through `.v2` to stay hidden on phones. */
.v2 .v2opn-routes__arrow { display: none; }

/* The mock store shelf */
.v2opn-store {
    border: 1px solid var(--opn-edge);
    border-radius: 16px;
    background: linear-gradient(-180deg, var(--opn-tint), var(--paper));
    padding: 13px;
}
.v2opn-store__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2opn-store__bar svg { width: 15px; height: 15px; flex: none; color: var(--faint); }
.v2opn-store__bar span { font-size: 12px; color: var(--slate); }
.v2opn-store__row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    margin-top: 11px;
    padding: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2opn-store__icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    flex: none;
    background: linear-gradient(-150deg, var(--opn-a), var(--opn-deep));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
.v2opn-store__meta { display: grid; gap: 3px; min-width: 0; }
.v2opn-store__meta b { font-size: 14.5px; font-weight: 650; color: var(--ink); }
.v2opn-store__tag {
    justify-self: start;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--opn-deep);
    background: var(--opn-tint);
    border: 1px solid var(--opn-edge);
}
.v2opn-store__meta em {
    font-style: normal;
    font-size: 12px;
    line-height: 1.5;
    color: var(--faint);
}
.v2opn-store__btn {
    padding: 9px 15px;
    border-radius: 999px;
    background: var(--go);
    color: #fff;
    font-size: 10px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    white-space: nowrap;
}

.v2opn-shelf__lock {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 18px 15px;
    border-top: 1px solid var(--opn-part-edge);
    background: var(--opn-part-tint);
    font-size: 13.5px;
    line-height: 1.6;
    color: #6B4A12;
}
.v2opn-shelf__lock svg { width: 17px; height: 17px; flex: none; margin-top: 2px; color: var(--opn-part); }
.v2opn-shelf__lock b { color: #533A0D; font-weight: 650; }

/* Arrival choreography (JS adds .v2-anim / .is-in; static otherwise) */
.v2opn-hero.v2-anim .v2opn-shelf { opacity: 0; transform: translateY(18px); }
.v2opn-hero.v2-anim.is-in .v2opn-shelf {
    opacity: 1;
    transform: none;
    transition: opacity .6s ease .1s, transform .6s cubic-bezier(0.22, 0.8, 0.26, 1) .1s;
}

/* ---------- RESPONSIVE: the shelf ---------- */

/* Two columns only where the connector arrows can mean something. */
@media (min-width: 760px) {
    .v2opn-shelf__body {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
        align-items: center;
        gap: 26px;
        padding: 20px 22px;
    }
    .v2 .v2opn-routes__arrow {
        display: block;
        position: absolute;
        left: -24px;
        top: 50%;
        transform: translateY(-50%);
        width: 22px;
        height: 11px;
        color: var(--opn-edge);
    }
}

@media (max-width: 480px) {
    .v2opn-shelf { margin-top: 24px; border-radius: 16px; }
    .v2opn-shelf__head { padding: 12px 14px; }
    .v2opn-shelf__body { padding: 13px; gap: 12px; }
    .v2opn-routes li { padding: 10px 12px; border-radius: 12px; }
    .v2opn-routes li b { font-size: 13.5px; }
    .v2opn-store { padding: 11px; border-radius: 14px; }
    /* The fake Install pill drops to its own row so a 44px icon, the app
       name and the pill can never fight for a 320px content box. */
    .v2opn-store__row { grid-template-columns: auto minmax(0, 1fr); gap: 10px; }
    .v2opn-store__btn {
        grid-column: 1 / -1;
        text-align: center;
        padding: 8px 12px;
    }
    .v2opn-shelf__lock { padding: 12px 14px 13px; font-size: 13px; }
}

@media (max-width: 390px) {
    .v2opn-shelf__state { font-size: 9px; padding: 3px 9px; }
    .v2opn-store__icon { width: 38px; height: 38px; border-radius: 11px; }
    .v2opn-store__bar span { font-size: 11px; }
}

/* ---------- THE OPEN TESTING DESK (instrument index) ---------- */

.v2opn-desk {
    margin: 26px 0 30px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--mist);
    overflow: hidden;
}
.v2opn-desk__head { padding: 16px 17px 0; }
.v2opn-desk__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--opn-deep);
}
.v2opn-desk__tag svg { width: 15px; height: 15px; flex: none; }
.v2opn-desk__sub {
    margin-top: 9px;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--slate);
}
.v2opn-desk__grid {
    display: grid;
    gap: 10px;
    padding: 14px 17px 17px;
}
.v2opn-desk__item {
    display: grid;
    gap: 3px;
    padding: 13px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.v2opn-desk__item:hover,
.v2opn-desk__item:focus-visible {
    border-color: var(--opn-edge);
    transform: translateY(-1px);
    box-shadow: 0 10px 22px -18px rgba(21, 80, 200, 0.7);
}
.v2opn-desk__item span { font-size: 9.5px; letter-spacing: 0.08em; color: var(--faint); }
.v2opn-desk__item b { font-size: 14px; font-weight: 650; color: var(--ink); }
.v2opn-desk__item em { font-style: normal; font-size: 12.5px; line-height: 1.5; color: var(--faint); }

.v2opn-desk.v2-anim .v2opn-desk__item { opacity: 0; transform: translateY(10px); }
.v2opn-desk.v2-anim.is-in .v2opn-desk__item {
    opacity: 1;
    transform: none;
    transition: opacity .45s ease, transform .45s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2opn-desk.v2-anim.is-in .v2opn-desk__item:nth-child(2) { transition-delay: .08s; }
.v2opn-desk.v2-anim.is-in .v2opn-desk__item:nth-child(3) { transition-delay: .16s; }

@media (min-width: 640px) {
    .v2opn-desk__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .v2opn-desk { border-radius: 15px; margin: 22px 0 26px; }
    .v2opn-desk__head { padding: 14px 14px 0; }
    .v2opn-desk__grid { padding: 12px 14px 14px; }
    .v2opn-desk__item { padding: 12px 13px; }
}

/* ---------- Quick answer accent ---------- */

.v2opn-qa { border-color: rgba(21, 80, 200, 0.4); }
.v2opn-qa .v2gpr-qa__tag { color: #7FA6F5; }
.v2opn-prose .v2gpr-qa__strip span { border-color: var(--opn-edge); color: var(--opn-deep); }

/* ---------- Per-section answer capsule ---------- */

.v2opn-ans {
    border-right: 3px solid var(--opn-a);
    background: var(--opn-tint);
    border-radius: 12px 0 0 12px;
    padding: 15px 18px;
    margin: 0 0 22px;
}
.v2opn-ans p { margin: 0; font-size: 15.5px; line-height: 1.72; color: #2B3540; }
.v2opn-ans p + p { margin-top: 9px; }
.v2opn-ans strong { color: var(--ink); }

.v2opn-fine {
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
    margin: 12px 0 0;
}

@media (max-width: 768px) {
    .v2opn-ans { padding: 13px 14px; }
    .v2opn-ans p { font-size: 14.5px; }
}

/* ---------- Console path chips ---------- */

.v2opn-path {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    margin: 16px 0 18px;
}
.v2opn-path span {
    font-size: 12px;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 11px;
}
.v2opn-path span.is-key {
    border-color: var(--opn-edge);
    background: var(--opn-tint);
    color: var(--opn-deep);
    font-weight: 600;
}
.v2opn-path svg { width: 14px; height: 14px; color: #B9C1CA; flex: none; }
.v2 .v2opn-copy {
    margin-right: auto;
    padding: 0 12px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    border-radius: 9px;
    border: 1px solid var(--line);
    background: var(--paper);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
    transition: border-color .2s ease, color .2s ease;
}
.v2 .v2opn-copy:hover { border-color: var(--opn-edge); color: var(--opn-deep); }
.v2 .v2opn-copy.is-done { border-color: rgba(11, 138, 71, 0.4); color: var(--go-deep); background: var(--go-tint); }

@media (max-width: 480px) {
    .v2opn-path { padding: 10px 11px; gap: 6px; }
    .v2opn-path span { font-size: 11px; padding: 5px 9px; }
    /* Full-width copy control on phones: it is the only tappable thing in
       this component, so it gets the 44px target and its own row. */
    .v2 .v2opn-copy { margin-right: 0; width: 100%; justify-content: center; min-height: 44px; }
}

/* ---------- Record tables (one horizontal track each) ---------- */

.v2opn-scroll {
    margin: 22px 0;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    -ms-overflow-style: none;
    scrollbar-width: none;
}
.v2opn-scroll::-webkit-scrollbar { display: none; }
.v2opn-scroll:focus-visible { outline: 2px solid var(--opn-a); outline-offset: 2px; }

/* Scroll affordance without a scrollbar: the two radial shadows are painted
   against the scroll origin, so an edge shadow appears only while there is
   more table in that direction. Pure CSS, and it disappears by itself at
   desktop widths where the table already fits. */
.v2opn-scroll {
    background-image:
        linear-gradient(to left, var(--paper), rgba(255, 255, 255, 0)),
        linear-gradient(to right, var(--paper), rgba(255, 255, 255, 0)),
        radial-gradient(farthest-side at 0 50%, rgba(10, 16, 23, 0.13), rgba(10, 16, 23, 0)),
        radial-gradient(farthest-side at 100% 50%, rgba(10, 16, 23, 0.13), rgba(10, 16, 23, 0));
    background-position: right center, left center, right center, left center;
    background-repeat: no-repeat;
    background-size: 34px 100%, 34px 100%, 13px 100%, 13px 100%;
    background-attachment: local, local, scroll, scroll;
}

.v2opn-tbl {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 14px;
}
.v2opn-tbl.is-wide { min-width: 680px; }
.v2opn-tbl__cap {
    caption-side: bottom;
    padding: 11px 16px 13px;
    border-top: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    line-height: 1.55;
    color: var(--faint);
    text-align: right;
}
.v2opn-tbl thead th {
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    padding: 12px 16px;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--slate);
    white-space: nowrap;
}
.v2opn-tbl tbody th {
    padding: 13px 16px;
    text-align: right;
    font-weight: 650;
    font-size: 14px;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2opn-tbl tbody td {
    padding: 13px 16px;
    color: var(--slate);
    line-height: 1.6;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2opn-tbl tbody tr:last-child th,
.v2opn-tbl tbody tr:last-child td { border-bottom: 0; }
.v2opn-tbl tbody tr.is-key { background: var(--opn-tint); }
.v2opn-tbl tbody tr.is-ptl th { background: var(--go-tint); color: var(--go-deep); }
.v2opn-tbl b { color: var(--ink); font-weight: 650; }
.v2opn-tbl .is-yes { color: var(--go-deep); font-weight: 650; }
.v2opn-tbl .is-no { color: #9A3B3B; font-weight: 650; }

@media (max-width: 480px) {
    .v2opn-scroll { border-radius: 14px; margin: 18px 0; }
    .v2opn-tbl { font-size: 13.5px; }
    .v2opn-tbl thead th { padding: 10px 13px; }
    .v2opn-tbl tbody th, .v2opn-tbl tbody td { padding: 11px 13px; }
}

/* ---------- Verbatim Google quote ---------- */

.v2opn-quote {
    margin: 24px 0;
    padding: 20px 22px;
    border-radius: 18px;
    background: var(--ink);
    color: rgba(255, 255, 255, 0.9);
}
.v2opn-quote p {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: 17px;
    line-height: 1.62;
    letter-spacing: -0.008em;
    color: #fff;
}
.v2opn-quote cite {
    display: block;
    margin-top: 12px;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
}
.v2opn-quote cite a { color: rgba(255, 255, 255, 0.8); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 480px) {
    .v2opn-quote { padding: 17px 17px 18px; border-radius: 15px; }
    .v2opn-quote p { font-size: 15.5px; }
}

/* ---------- Sticky mobile CTA: phone-width fix ----------
   The shared .v2-faq__wa resolves to flex:1 0 100%, so on every V2 post the
   WhatsApp button demands a whole row and pushes past a 390px viewport. The
   shared .v2gpr-scta override sets flex-shrink but never resets the basis.
   Fixed here scoped to this post rather than in the shared layer, which is
   live on 30+ published posts. body.v2 uses overflow-x:clip, so this never
   shows up in a scrollWidth check - only per-element rects catch it. */

.v2 .v2opn-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
}
.v2 .v2opn-scta .v2-btn--primary { flex: 1 1 auto; min-width: 0; }

/* ---------- Safety nets ---------- */

.v2opn-prose code,
.v2opn-prose pre { overflow-wrap: anywhere; word-break: break-word; }
.v2opn-prose > * { max-width: 100%; }
.v2opn-prose a:focus-visible,
.v2opn-hero a:focus-visible { outline: 2px solid var(--opn-a); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
    .v2opn-desk__item,
    .v2 .v2opn-copy { transition: none; }
    .v2opn-desk__item:hover,
    .v2opn-desk__item:focus-visible { transform: none; }
}

/* ============================================================
   TOOL 03  -  the access gate simulator (flagship)

   Reuses the hero's contact vocabulary: a gate is closed (azure,
   filled) or open (grey, dashed). The circuit strip under the
   gates is the same delivery chain compressed to five segments,
   so the reader who scrolled past the hero already knows how to
   read it.

   Authored at 390px: gates are full-width rows with a 56px
   minimum, the switch and the label never compete for space, and
   the circuit strip is a flex row whose segments shrink rather
   than scroll. Nothing here needs hover to be operable.
   ============================================================ */

.v2its-gates {
    display: grid;
    gap: 8px;
}

.v2 .v2its-gate {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 56px;
    padding: 12px 13px;
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}
.v2 .v2its-gate.is-on {
    border-color: var(--its-edge);
    background: var(--its-tint);
}
.v2 .v2its-gate.is-blocker {
    border-color: var(--its-wait);
    background: var(--its-wtint);
    box-shadow: 0 0 0 3px rgba(183, 121, 31, 0.1);
}

/* The switch reads as a contact, not a toggle: open gap or closed bar */
.v2its-gate__sw {
    position: relative;
    width: 40px;
    height: 22px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    flex-shrink: 0;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2its-gate__sw i {
    position: absolute;
    top: 50%;
    right: 3px;
    width: 14px;
    height: 14px;
    margin-top: -7px;
    border-radius: 50%;
    background: var(--faint);
    transition: transform 0.18s ease, background 0.18s ease;
}
.is-on .v2its-gate__sw {
    background: var(--its-a);
    border-color: var(--its-deep);
}
.is-on .v2its-gate__sw i {
    transform: translateX(-17px);
    background: #fff;
}

.v2its-gate__txt { min-width: 0; }
.v2its-gate__txt b {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
}
.v2its-gate__txt span {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2its-gate__txt code {
    font-family: var(--font-mono);
    font-size: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 4px;
    padding: 0 4px;
}

.v2its-gate__state {
    flex-shrink: 0;
    font-size: 9px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 8px;
}
.is-on .v2its-gate__state {
    color: var(--its-deep);
    border-color: var(--its-edge);
    background: var(--paper);
}

/* ---------- The circuit strip ---------- */

.v2its-sim__circuit {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 16px 0 14px;
    padding: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2its-sim__src,
.v2its-sim__dst {
    flex-shrink: 0;
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 5px 9px;
}
.v2its-sim__dst.is-live {
    color: var(--paper);
    background: var(--go);
    border-color: var(--go-deep);
}
.v2its-sim__wire {
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
    gap: 4px;
}
.v2its-sim__wire i {
    flex: 1 1 0;
    min-width: 0;
    height: 6px;
    border-radius: 3px;
    background: transparent;
    border: 1px dashed #C3CBD3;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.v2its-sim__wire i.is-closed {
    background: var(--its-a);
    border: 1px solid var(--its-deep);
}
.v2its-sim__wire i.is-blocker {
    border-color: var(--its-wait);
    border-style: solid;
    background: repeating-linear-gradient(-90deg, var(--its-wait) 0 3px, transparent 3px 6px);
}

/* ---------- The verdict ---------- */

.v2its-sim__res {
    padding: 14px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: var(--paper);
    border-right: 3px solid var(--its-wait);
}
.v2its-sim__res.is-clear { border-right-color: var(--go); background: var(--go-tint); }

.v2its-sim__verdict { margin: 0 0 6px; }
.v2its-sim__verdict b {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2its-sim__why {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2its-sim__fix {
    margin: 9px 0 0;
    padding: 10px 12px;
    background: var(--its-tint);
    border-radius: 9px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--its-deep);
    font-weight: 500;
}
.is-clear .v2its-sim__fix { background: rgba(255, 255, 255, 0.72); }

.v2its-sim__grade {
    margin: 9px 0 0;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.65;
    color: var(--faint);
}
.v2its-sim__grade.is-verified { color: var(--go-deep); }
.v2its-sim__grade.is-community { color: var(--its-wait); }

.v2 .v2its-sim__reset {
    margin-top: 12px;
    min-height: 44px;
}

/* ---------- Simulator: phones ---------- */

@media (max-width: 480px) {
    .v2 .v2its-gate {
        grid-template-columns: 40px minmax(0, 1fr);
        grid-template-areas: "sw txt" "state state";
        row-gap: 8px;
        padding: 12px;
    }
    .v2its-gate__sw { grid-area: sw; }
    .v2its-gate__txt { grid-area: txt; }
    .v2its-gate__state { grid-area: state; justify-self: start; }
    .v2its-gate__txt b { font-size: 13.5px; }
    .v2its-sim__circuit { padding: 10px; gap: 6px; }
    .v2its-sim__src, .v2its-sim__dst { font-size: 8.5px; padding: 4px 7px; }
    .v2its-sim__verdict b { font-size: 16px; }
    .v2its-sim__why, .v2its-sim__fix { font-size: 13px; }
    .v2 .v2its-sim__reset { width: 100%; }
}

@media (max-width: 390px) {
    .v2its-gate__txt span { font-size: 11.5px; }
    .v2its-sim__wire { gap: 3px; }
    .v2its-sim__grade { font-size: 10px; }
}
/* ---------- Fact cards (section 1) ---------- */

.v2gme-stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 20px 0 26px;
}
.v2gme-card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
}
.v2gme-card__n {
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    color: var(--gme-a);
    margin: 0 0 8px;
}
.v2gme-card b {
    display: block;
    font-size: 14.5px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gme-card p {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}

@media (min-width: 769px) {
    .v2gme-stack { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
}

/* ---------- Numbered timeline (section 3) ---------- */

.v2gme-steps {
    display: grid;
    gap: 10px;
    margin: 22px 0 26px;
    counter-reset: none;
}
.v2gme-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 15px;
}
.v2gme-steps__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: none;
    border-radius: 9px;
    background: var(--gme-tint);
    border: 1px solid var(--gme-edge);
    color: var(--gme-deep);
    font-size: 11px;
    font-weight: 600;
}
.v2gme-steps b {
    display: block;
    font-size: 14.5px;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2gme-steps p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}

@media (max-width: 480px) {
    .v2gme-steps li { padding: 13px 13px; gap: 11px; }
    .v2gme-steps__n { width: 27px; height: 27px; }
    .v2gme-steps p { font-size: 13px; }
}

/* ---------- Required / smart / folklore columns ---------- */

.v2gme-dd {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 22px 0 26px;
}
.v2gme-dd__col {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 16px 16px;
    background: var(--paper);
}
.v2gme-dd__h {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    margin: 0 0 11px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--line);
}
.v2gme-dd__list { display: grid; gap: 8px; }
.v2gme-dd__list li {
    position: relative;
    padding-right: 20px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2gme-dd__list li::before {
    position: absolute;
    right: 0;
    top: -1px;
    font-size: 14px;
    font-weight: 700;
}
.v2gme-dd__col.is-req { background: var(--go-tint); border-color: rgba(11, 138, 71, .25); }
.v2gme-dd__col.is-req .v2gme-dd__h { color: var(--go-deep); border-bottom-color: rgba(11, 138, 71, .22); }
.v2gme-dd__col.is-req .v2gme-dd__list li::before { content: "+"; color: var(--go); }

.v2gme-dd__col.is-smart { background: var(--mist); }
.v2gme-dd__col.is-smart .v2gme-dd__h { color: var(--slate); }
.v2gme-dd__col.is-smart .v2gme-dd__list li::before { content: "*"; color: var(--faint); }

.v2gme-dd__col.is-myth { background: var(--gme-part-tint); border-color: rgba(183, 121, 31, .3); }
.v2gme-dd__col.is-myth .v2gme-dd__h { color: #8A5B12; border-bottom-color: rgba(183, 121, 31, .25); }
.v2gme-dd__col.is-myth .v2gme-dd__list li::before { content: "x"; color: var(--gme-part); }

@media (min-width: 769px) {
    .v2gme-dd { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
}

@media (max-width: 480px) {
    .v2gme-dd__col { padding: 13px 14px 15px; }
    .v2gme-dd__list li { font-size: 13px; }
}


/* ============================================================
   TOOL 02  -  the propagation clock

   Answers the one question the timing table cannot: "is MY wait
   normal yet?" The meter is three zones (wait / check / escalate)
   with a pin, so the answer is spatial before it is verbal.

   Authored at 390px: the option list is a single column of
   full-width rows, the number field and the unit control stack,
   and the meter is a percentage-width flex row that cannot
   overflow at any size.
   ============================================================ */

/* Visually hidden label, kept operable for screen readers.
   Defined here because the shared layer has no sr-only utility. */
.v2-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.v2its-clock__q {
    margin: 0 0 8px;
    font-size: 9.5px;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2its-clock__q + .v2its-clock__row,
.v2its-clock__opts + .v2its-clock__q { margin-top: 16px; }

.v2its-clock__opts {
    display: grid;
    gap: 7px;
}
.v2 .v2its-clock__opt {
    display: block;
    width: 100%;
    min-height: 52px;
    padding: 11px 13px;
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease;
}
.v2 .v2its-clock__opt.is-on {
    border-color: var(--its-a);
    background: var(--its-tint);
    box-shadow: 0 0 0 3px rgba(26, 95, 208, 0.1);
}
.v2its-clock__opt b {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
}
.v2its-clock__opt span {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--slate);
}

.v2its-clock__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
}
.v2 .v2its-clock__n {
    width: 100%;
    min-height: 48px;
    padding: 10px 13px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
    text-align: center;
}
.v2 .v2its-clock__n:focus {
    outline: none;
    border-color: var(--its-a);
    box-shadow: 0 0 0 3px rgba(26, 95, 208, 0.13);
}

.v2its-clock__units {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
    padding: 5px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2 .v2its-clock__unit {
    min-height: 44px;
    padding: 8px 6px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
}
.v2 .v2its-clock__unit.is-on {
    background: var(--paper);
    border-color: var(--its-edge);
    color: var(--its-deep);
    box-shadow: 0 1px 3px rgba(10, 16, 23, 0.07);
}

/* ---------- The three-zone meter ---------- */

.v2its-clock__meter {
    position: relative;
    display: flex;
    height: 12px;
    margin: 16px 0 14px;
    border-radius: 999px;
    overflow: hidden;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2its-clock__zone { height: 100%; }
.v2its-clock__zone.is-wait  { background: rgba(26, 95, 208, 0.35); }
.v2its-clock__zone.is-check { background: rgba(183, 121, 31, 0.42); }
.v2its-clock__zone.is-esc   { flex: 1 1 auto; background: rgba(180, 35, 47, 0.3); }
.v2its-clock__pin {
    position: absolute;
    top: -4px;
    width: 3px;
    height: 20px;
    margin-right: -1.5px;
    border-radius: 2px;
    background: var(--ink);
    box-shadow: 0 0 0 2px var(--paper);
    transition: right 0.25s ease;
}

/* ---------- The verdict ---------- */

.v2its-clock__res {
    padding: 14px;
    border-radius: 12px;
    border: 1px solid var(--line);
    background: var(--paper);
    border-right: 3px solid var(--its-a);
}
.v2its-clock__res.is-inside { border-right-color: var(--its-a); background: var(--its-tint); }
.v2its-clock__res.is-past   { border-right-color: var(--its-wait); background: var(--its-wtint); }
.v2its-clock__res.is-far    { border-right-color: #B4232F; background: #FDF1F0; }

.v2its-clock__verdict { margin: 0 0 6px; }
.v2its-clock__verdict b {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}
.v2its-clock__why {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2its-clock__says {
    margin: 9px 0 0;
    padding-top: 9px;
    border-top: 1px dashed rgba(10, 16, 23, 0.14);
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.65;
    color: var(--slate);
}
.v2its-clock__fine {
    margin: 12px 0 0;
    font-size: 11.5px;
    line-height: 1.65;
    color: var(--faint);
}

/* ---------- Clock: wider screens ---------- */

@media (min-width: 620px) {
    .v2its-clock__row { grid-template-columns: 120px minmax(0, 1fr); align-items: center; }
    .v2its-clock__opts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- Clock: phones ---------- */

@media (max-width: 480px) {
    .v2 .v2its-clock__opt { min-height: 56px; }
    .v2its-clock__opt b { font-size: 13.5px; }
    .v2its-clock__opt span { font-size: 11.5px; }
    .v2 .v2its-clock__n { font-size: 20px; min-height: 46px; }
    .v2its-clock__verdict b { font-size: 16px; }
    .v2its-clock__why { font-size: 13px; }
}

@media (max-width: 390px) {
    .v2 .v2its-clock__unit { font-size: 10px; }
    .v2its-clock__says { font-size: 10.5px; }
}

/* ============================================================
   OPN V2  -  instrument chrome: segmented option sets, the rung
   board and the verdict card.

   Shared by all three instruments. Built phone-first: every option
   set is a single full-width column with 46px rows until there is
   room for a real grid at 560px, so the whole board is operable
   one-handed with no hover affordance anywhere.
   ============================================================ */

.v2opn-tool .v2gpr-tool__label {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.014em;
    color: var(--ink);
    margin: 13px 0 5px;
}
.v2opn-tool .v2gpr-tool__tag {
    color: var(--opn-deep);
    background: var(--opn-tint);
    border-color: var(--opn-edge);
}
.v2opn-tool .v2gpr-tool__tag i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--opn-a);
    display: inline-block;
}

/* ---------- Option sets ---------- */

.v2opn-set {
    border: 0;
    padding: 0;
    margin: 0 0 16px;
    min-width: 0;
}
.v2opn-set legend {
    padding: 0;
    margin-bottom: 8px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2opn-seg { display: grid; gap: 8px; }
.v2opn-seg input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.v2opn-seg__opt { display: block; min-width: 0; }
.v2opn-seg__face {
    display: flex;
    align-items: center;
    min-height: 46px;
    padding: 10px 13px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font-size: 13.5px;
    line-height: 1.4;
    color: var(--slate);
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.v2opn-seg__face:hover { border-color: var(--opn-edge); }
.v2opn-seg input:checked + .v2opn-seg__face {
    border-color: var(--opn-a);
    background: var(--opn-tint);
    color: var(--opn-deep);
    font-weight: 600;
    box-shadow: inset 0 0 0 1px var(--opn-a);
}
.v2opn-seg input:focus-visible + .v2opn-seg__face {
    outline: 2px solid var(--opn-a);
    outline-offset: 2px;
}

@media (min-width: 560px) {
    .v2opn-seg { grid-template-columns: repeat(auto-fit, minmax(178px, 1fr)); }
}

/* ---------- The rung board ---------- */

.v2opn-board__rungs {
    margin: 20px 0 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2opn-board__rungs li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 11px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
    transition: background .2s ease;
}
.v2opn-board__rungs li:last-child { border-bottom: 0; }
.v2opn-board__rungs b { font-size: 14px; font-weight: 600; color: var(--ink); }
.v2opn-board__rungs em {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}
.v2opn-rung__ic {
    position: relative;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--line);
    background: var(--paper);
    flex: none;
}
.v2opn-rung__ic::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
}

.v2opn-board__rungs li.is-done,
.v2opn-board__rungs li.is-open { background: var(--go-tint); }
.v2opn-board__rungs li.is-done .v2opn-rung__ic,
.v2opn-board__rungs li.is-open .v2opn-rung__ic { background: var(--go); border-color: var(--go); }
.v2opn-board__rungs li.is-done .v2opn-rung__ic::after,
.v2opn-board__rungs li.is-open .v2opn-rung__ic::after {
    width: 5px;
    height: 9px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translate(1px, -1px);
}
.v2opn-board__rungs li.is-done em,
.v2opn-board__rungs li.is-open em { color: var(--go-deep); }

.v2opn-board__rungs li.is-now { background: var(--opn-tint); }
.v2opn-board__rungs li.is-now .v2opn-rung__ic { border-color: var(--opn-a); }
.v2opn-board__rungs li.is-now .v2opn-rung__ic::after {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--opn-a);
}
.v2opn-board__rungs li.is-now em { color: var(--opn-deep); }

.v2opn-board__rungs li.is-locked { background: var(--mist); }
.v2opn-board__rungs li.is-locked b { color: var(--slate); }
.v2opn-board__rungs li.is-locked .v2opn-rung__ic { background: var(--mist); }
.v2opn-board__rungs li.is-locked .v2opn-rung__ic::after {
    width: 9px;
    height: 2px;
    border-radius: 2px;
    background: var(--faint);
}

.v2opn-board__rungs li.is-na b { color: var(--slate); }
.v2opn-board__rungs li.is-na .v2opn-rung__ic { border-style: dashed; }

/* ---------- Verdict card ---------- */

.v2opn-verdict {
    padding: 16px 18px;
    border-radius: 15px;
    border: 1px solid var(--line);
    background: var(--mist);
}
.v2opn-verdict.is-open   { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2opn-verdict.is-next,
.v2opn-verdict.is-wait   { border-color: var(--opn-edge); background: var(--opn-tint); }
.v2opn-verdict.is-locked,
.v2opn-verdict.is-partial { border-color: var(--opn-part-edge); background: var(--opn-part-tint); }
.v2opn-verdict__stamp {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
    margin-bottom: 8px;
}
.v2opn-verdict.is-open .v2opn-verdict__stamp { color: var(--go-deep); }
.v2opn-verdict.is-next .v2opn-verdict__stamp,
.v2opn-verdict.is-wait .v2opn-verdict__stamp { color: var(--opn-deep); }
.v2opn-verdict.is-locked .v2opn-verdict__stamp,
.v2opn-verdict.is-partial .v2opn-verdict__stamp { color: var(--opn-part); }
.v2opn-verdict__head {
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 650;
    line-height: 1.45;
    letter-spacing: -0.012em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2opn-verdict__body { font-size: 14.5px; line-height: 1.68; color: var(--slate); }
.v2opn-verdict__acts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.v2opn-verdict__acts a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0 14px;
    border-radius: 11px;
    border: 1px solid var(--line);
    background: var(--paper);
    font-size: 13px;
    font-weight: 600;
    color: var(--opn-deep);
    transition: border-color .18s ease, transform .18s ease;
}
.v2opn-verdict__acts a:hover { border-color: var(--opn-edge); transform: translateY(-1px); }

/* ---------- RESPONSIVE: instrument chrome ---------- */

@media (max-width: 480px) {
    .v2opn-tool .v2gpr-tool__label { font-size: 17px; }
    .v2opn-set { margin-bottom: 14px; }
    .v2opn-seg__face { font-size: 13px; padding: 9px 12px; }
    .v2opn-board__rungs li {
        grid-template-columns: auto minmax(0, 1fr);
        padding: 11px 12px;
    }
    .v2opn-board__rungs em { grid-column: 2; }
    .v2opn-board__rungs b { font-size: 13.5px; }
    .v2opn-verdict { padding: 14px 15px; border-radius: 13px; }
    .v2opn-verdict__head { font-size: 15.5px; }
    .v2opn-verdict__body { font-size: 14px; }
    /* Full-width action rows: two 13px pills side by side clip on a 320px
       content box, and a wrapped half-width pill is a poor tap target. */
    .v2opn-verdict__acts a { width: 100%; justify-content: center; }
}

@media (max-width: 390px) {
    .v2opn-seg__face { min-height: 44px; font-size: 12.5px; }
    .v2opn-board__rungs b { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2opn-seg__face,
    .v2opn-board__rungs li,
    .v2opn-verdict__acts a { transition: none; }
    .v2opn-verdict__acts a:hover { transform: none; }
}

/* ============================================================
   ITS V2  -  claims ledger + numbered step flow
   ============================================================ */

/* ---------- Claims checked, with verdicts ---------- */

.v2its-myth {
    display: grid;
    gap: 9px;
    margin: 20px 0;
}
.v2its-myth li {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 13px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right-width: 3px;
    border-radius: 10px;
}
.v2its-myth li.is-false   { border-right-color: #B4232F; }
.v2its-myth li.is-partial { border-right-color: var(--its-wait); }
.v2its-myth li.is-true    { border-right-color: var(--go); }

.v2its-myth__tag {
    justify-self: start;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.is-false .v2its-myth__tag   { color: #8A1C13; background: #FDF1F0; border: 1px solid #E9B4AE; }
.is-partial .v2its-myth__tag { color: var(--its-wait); background: var(--its-wtint); border: 1px solid #F0DCAE; }
.is-true .v2its-myth__tag    { color: var(--go-deep); background: var(--go-tint); border: 1px solid rgba(11, 138, 71, 0.22); }

.v2its-myth li b {
    display: block;
    font-size: 14.5px;
    line-height: 1.45;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2its-myth li span {
    display: block;
    font-size: 13px;
    line-height: 1.7;
    color: var(--slate);
}

@media (min-width: 620px) {
    .v2its-myth li {
        grid-template-columns: 88px minmax(0, 1fr);
        gap: 14px;
        align-items: start;
    }
    .v2its-myth__tag { justify-self: stretch; text-align: center; }
}

/* ---------- Numbered step flow ---------- */

.v2its-steps {
    display: grid;
    gap: 10px;
    margin: 22px 0;
    counter-reset: none;
}
.v2its-steps li {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
    padding: 13px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2its-steps__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    background: var(--its-a);
    color: #fff;
    font-size: 10.5px;
    font-weight: 700;
    flex-shrink: 0;
}
.v2its-steps li b {
    display: block;
    font-size: 15px;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 4px;
}
.v2its-steps li span {
    display: block;
    font-size: 13.5px;
    line-height: 1.7;
    color: var(--slate);
}

@media (max-width: 480px) {
    .v2its-myth li { padding: 12px; }
    .v2its-myth li b { font-size: 14px; }
    .v2its-myth li span { font-size: 12.5px; }
    .v2its-steps li { padding: 12px; grid-template-columns: 29px minmax(0, 1fr); gap: 11px; }
    .v2its-steps__n { width: 29px; height: 29px; font-size: 10px; }
    .v2its-steps li b { font-size: 14.5px; }
    .v2its-steps li span { font-size: 13px; }
}

/* ---------- Setup step record (section 3) ---------- */

.v2opn-steps {
    display: grid;
    gap: 10px;
    margin: 20px 0 24px;
}
.v2opn-steps li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    padding: 13px 15px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
}
.v2opn-steps li > span {
    align-self: start;
    padding: 4px 8px;
    border-radius: 8px;
    border: 1px solid var(--opn-edge);
    background: var(--opn-tint);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--opn-deep);
}
.v2opn-steps li b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 3px;
    line-height: 1.45;
}
.v2opn-steps li p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

@media (max-width: 480px) {
    .v2opn-steps li { padding: 11px 12px; gap: 10px; border-radius: 12px; }
    .v2opn-steps li b { font-size: 14px; }
    .v2opn-steps li p { font-size: 13px; }
}

@media (max-width: 390px) {
    .v2opn-steps li > span { padding: 3px 6px; font-size: 9.5px; }
}

/* ---------- Instrument 02: the visibility matrix (section 4) ---------- */

.v2opn-prose, .v2opn-hero {
    --opn-no:      #A33A3A;
    --opn-no-tint: #FDF0F1;
    --opn-no-edge: #F0D2D6;
}

.v2opn-mx__out {
    margin: 18px 0 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2opn-mx__out li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
        "mark name verdict"
        "mark why  why";
    align-items: center;
    gap: 4px 11px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}
.v2opn-mx__out li:last-child { border-bottom: 0; }
.v2opn-mx__out b {
    grid-area: name;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.v2opn-mx__out em {
    grid-area: why;
    font-style: normal;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}

.v2opn-mx__mark {
    grid-area: mark;
    position: relative;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1.5px solid var(--line);
    background: var(--paper);
    flex: none;
}
.v2opn-mx__mark::before,
.v2opn-mx__mark::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
}

.v2opn-mx__v {
    grid-area: verdict;
    justify-self: end;
    padding: 3px 9px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    white-space: nowrap;
}

.v2opn-mx__out li.is-yes .v2opn-mx__mark { background: var(--go); border-color: var(--go); }
.v2opn-mx__out li.is-yes .v2opn-mx__mark::after {
    width: 5px;
    height: 9px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translate(1px, -1px);
}
.v2opn-mx__out li.is-yes .v2opn-mx__v {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.24);
}

.v2opn-mx__out li.is-no .v2opn-mx__mark { background: var(--opn-no); border-color: var(--opn-no); }
.v2opn-mx__out li.is-no .v2opn-mx__mark::before,
.v2opn-mx__out li.is-no .v2opn-mx__mark::after {
    width: 10px;
    height: 2px;
    border-radius: 2px;
    background: #fff;
}
.v2opn-mx__out li.is-no .v2opn-mx__mark::before { transform: rotate(-45deg); }
.v2opn-mx__out li.is-no .v2opn-mx__mark::after { transform: rotate(45deg); }
.v2opn-mx__out li.is-no .v2opn-mx__v {
    color: var(--opn-no);
    background: var(--opn-no-tint);
    border-color: var(--opn-no-edge);
}

.v2opn-mx__out li.is-some .v2opn-mx__mark { background: var(--opn-part); border-color: var(--opn-part); }
.v2opn-mx__out li.is-some .v2opn-mx__mark::after {
    width: 10px;
    height: 2px;
    border-radius: 2px;
    background: #fff;
}
.v2opn-mx__out li.is-some .v2opn-mx__v {
    color: var(--opn-part);
    background: var(--opn-part-tint);
    border-color: var(--opn-part-edge);
}

.v2opn-mx__out li.is-unstated .v2opn-mx__mark { border-style: dashed; background: var(--mist); }
.v2opn-mx__out li.is-unstated .v2opn-mx__mark::after {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--faint);
}

@media (max-width: 560px) {
    /* The verdict pill moves under the route name: three columns cannot hold
       a 22px mark, a two-line label and a pill inside a 320px content box. */
    .v2opn-mx__out li {
        grid-template-columns: auto minmax(0, 1fr);
        grid-template-areas:
            "mark name"
            "mark verdict"
            "mark why";
        align-items: start;
    }
    .v2opn-mx__mark { align-self: center; }
    .v2opn-mx__v { justify-self: start; margin-top: 2px; }
    .v2opn-mx__out em { margin-top: 3px; }
}

@media (max-width: 480px) {
    .v2opn-mx__out { border-radius: 13px; }
    .v2opn-mx__out li { padding: 11px 12px; }
    .v2opn-mx__out b { font-size: 13.5px; }
    .v2opn-mx__out em { font-size: 12.5px; }
}

/* ============================================================
   ITS V2  -  payoff zone: plan plaques + source note

   One column on a phone, three from 620px. The badge is absolutely
   positioned but the card carries top padding to make room for it,
   so it can never collide with the plan name at any width.
   ============================================================ */

.v2its-plans {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    margin: 22px 0;
}
.v2its-plan {
    position: relative;
    padding: 18px 16px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    text-align: center;
}
.v2its-plan.is-best {
    border-color: var(--its-a);
    background: var(--its-tint);
    box-shadow: 0 6px 22px rgba(26, 95, 208, 0.12);
    padding-top: 26px;
}
.v2its-plan__badge {
    position: absolute;
    top: -1px;
    right: 50%;
    transform: translateX(50%);
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: #fff;
    background: var(--its-a);
    border-radius: 0 0 8px 8px;
    padding: 4px 12px;
    white-space: nowrap;
}
.v2its-plan__name {
    margin: 0 0 6px;
    font-size: 9.5px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2its-plan__testers {
    margin: 0 0 2px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
}
.v2its-plan__price {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: 30px;
    font-weight: 700;
    line-height: 1.1;
    color: var(--its-deep);
}
.v2its-plan__note {
    margin: 0;
    font-size: 12px;
    line-height: 1.55;
    color: var(--faint);
}

.v2its-plans__fine {
    margin: 0 0 22px;
    font-size: 13px;
    line-height: 1.75;
    color: var(--slate);
}

.v2its-docs__fine {
    margin: 12px 0 0;
    font-size: 11.5px;
    line-height: 1.7;
    color: var(--faint);
}

@media (min-width: 620px) {
    .v2its-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .v2its-plan { padding: 16px 14px 14px; }
    .v2its-plan.is-best { padding-top: 24px; }
    .v2its-plan__price { font-size: 27px; }
    .v2its-plans__fine { font-size: 12.5px; }
}

/* ============= END BLOG ITS V2 ============= */

/* ---------- Supported / not established columns (section 5) ---------- */

.v2opn-dd {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 22px 0;
}
.v2opn-dd__col {
    padding: 17px 18px 18px;
    border-radius: 16px;
    border: 1px solid var(--line);
    background: var(--paper);
}
.v2opn-dd__col.is-yes { border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2opn-dd__col.is-no  { border-color: var(--opn-no-edge); background: var(--opn-no-tint); }
.v2opn-dd__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.v2opn-dd__col.is-yes .v2opn-dd__tag { color: var(--go-deep); }
.v2opn-dd__col.is-no .v2opn-dd__tag { color: var(--opn-no); }
.v2opn-dd__tag svg { width: 15px; height: 15px; flex: none; }
.v2opn-dd__list { display: grid; gap: 9px; }
.v2opn-dd__list li {
    position: relative;
    padding-right: 15px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2opn-dd__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: 0.42;
}
.v2opn-dd__list li b { color: var(--ink); font-weight: 650; }

@media (min-width: 720px) {
    .v2opn-dd { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .v2opn-dd__col { padding: 15px 15px 16px; border-radius: 14px; }
    .v2opn-dd__list li { font-size: 14px; }
}
/* ---------- Status tags inside the matrices ---------- */

.v2gme-tagd {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    border: 1px solid transparent;
}
.v2gme-tagd.is-rule {
    background: var(--gme-tint);
    border-color: var(--gme-edge);
    color: var(--gme-deep);
}
.v2gme-tagd.is-metric {
    background: var(--gme-part-tint);
    border-color: rgba(183, 121, 31, .3);
    color: #8A5B12;
}
.v2gme-tagd.is-qa {
    background: var(--mist);
    border-color: var(--line);
    color: var(--slate);
}

/* ---------- Freshness and decay block ---------- */

.v2gme-decay {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0 8px;
}
.v2gme-decay__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--gme-a);
    margin: 0 0 14px;
}
.v2gme-decay__tag svg { width: 16px; height: 16px; flex: none; }
.v2gme-decay__list { display: grid; gap: 10px; }
.v2gme-decay__list li {
    position: relative;
    padding-right: 16px;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2gme-decay__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--gme-edge);
}
.v2gme-decay__list b { color: var(--ink); }
.v2gme-decay__foot {
    margin: 15px 0 0;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--faint);
}

@media (max-width: 480px) {
    .v2gme-decay { padding: 17px 16px; border-radius: 14px; }
    .v2gme-decay__list li { font-size: 13px; }
}

/* ===== BLOG GME V2 - end of fragment 1. Two more fragments follow
   further down this file (phone height budget + fold trim); other
   posts' blocks sit in between. Do not treat this as the end of the
   GME block. ===== */

/* ---------- Instrument 03: the cap dial (section 6) ---------- */

.v2opn-dial__inputs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 18px;
}
.v2opn-field { min-width: 0; }
.v2opn-field label {
    display: block;
    margin-bottom: 7px;
    font-family: var(--font-mono);
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2 .v2opn-field input[type="number"] {
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
    font-family: var(--font-body);
    font-size: 17px;
    font-weight: 650;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.v2 .v2opn-field input[type="number"]:focus {
    outline: none;
    border-color: var(--opn-a);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--opn-tint);
}
.v2opn-field__hint {
    margin: 7px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--faint);
}
.v2opn-dial__quick {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 9px;
}
.v2 .v2opn-dial__quick button {
    min-height: 40px;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: var(--paper);
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--slate);
    transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.v2 .v2opn-dial__quick button:hover {
    border-color: var(--opn-edge);
    background: var(--opn-tint);
    color: var(--opn-deep);
}

.v2opn-dial__bar { margin-bottom: 16px; }
.v2opn-dial__track {
    position: relative;
    height: 16px;
    border-radius: 999px;
    background: var(--mist);
    border: 1px solid var(--line);
    overflow: hidden;
}
.v2opn-dial__track i {
    position: absolute;
    inset: 0 auto 0 0;
    display: block;
    border-radius: 999px;
    background: linear-gradient(-90deg, var(--opn-a), var(--opn-deep));
    transition: width .3s cubic-bezier(0.22, 0.8, 0.26, 1);
}
.v2opn-dial__track i.is-bad { background: linear-gradient(-90deg, #C46A6A, var(--opn-no)); }
.v2opn-dial__track i.is-warn { background: var(--faint); }
.v2opn-dial__scale {
    position: absolute;
    left: 9px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 8.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2opn-dial__legend {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 9px;
    font-size: 12.5px;
    color: var(--faint);
}
.v2opn-dial__legend b { color: var(--ink); font-weight: 650; }

@media (min-width: 620px) {
    .v2opn-dial__inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
}

@media (max-width: 480px) {
    .v2opn-dial__inputs { gap: 13px; margin-bottom: 16px; }
    .v2 .v2opn-field input[type="number"] { font-size: 16px; min-height: 46px; }
    /* 44px targets and a four-up row that never needs a horizontal scroll. */
    .v2opn-dial__quick { gap: 6px; }
    .v2 .v2opn-dial__quick button { min-height: 44px; flex: 1 1 calc(50% - 3px); padding: 0 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2opn-dial__track i,
    .v2 .v2opn-field input[type="number"],
    .v2 .v2opn-dial__quick button { transition: none; }
}

/* ---------- Green-light case cards (section 7) ---------- */

.v2opn-when__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 11px;
    margin: 20px 0 26px;
}
.v2opn-when__list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 13px;
    padding: 15px 16px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--paper);
}
.v2opn-when__ic {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--opn-tint);
    border: 1px solid var(--opn-edge);
    color: var(--opn-deep);
    flex: none;
}
.v2opn-when__ic svg { width: 19px; height: 19px; }
.v2opn-when__list b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2opn-when__list p {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}

@media (min-width: 780px) {
    .v2opn-when__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

@media (max-width: 480px) {
    .v2opn-when__list li { padding: 13px 13px; gap: 11px; border-radius: 13px; }
    .v2opn-when__ic { width: 32px; height: 32px; border-radius: 10px; }
    .v2opn-when__ic svg { width: 17px; height: 17px; }
    .v2opn-when__list b { font-size: 14.5px; }
    .v2opn-when__list p { font-size: 13.5px; }
}

/* ---------- Decay panel (close) ---------- */

.v2opn-decaybox {
    margin: 26px 0 0;
    padding: 20px 22px;
    background: var(--ink);
    border-radius: 18px;
    color: rgba(255, 255, 255, 0.82);
}
.v2opn-decaybox__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #fff;
    margin-bottom: 14px;
}
.v2opn-decaybox__tag svg { width: 15px; height: 15px; flex: none; }
.v2opn-decay { display: grid; gap: 11px; }
.v2opn-decay li {
    position: relative;
    padding-right: 16px;
    font-size: 14.5px;
    line-height: 1.68;
}
.v2opn-decay li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #7FA6F5;
}
.v2opn-decay li b { color: #fff; font-weight: 650; }
.v2opn-decaybox__foot {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 9.5px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.55);
}

@media (max-width: 480px) {
    .v2opn-decaybox { padding: 17px 17px 18px; border-radius: 15px; }
    .v2opn-decay li { font-size: 14px; }
}

/* ============================================================
   ITS V2  -  touch targets

   Caught by the 390/480px interaction pass: the copy button on the
   linter's cleaned-list output sat at 32px (36px on phones), under
   the 44px minimum. Desktop keeps the tighter size because it is a
   pointer target inside a dark toolbar; every touch width gets the
   full 44px.
   ============================================================ */

@media (max-width: 768px) {
    .v2 .v2its-copy {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding: 0 14px;
    }
    .v2its-lint__cleanbar { padding: 7px 9px; }
}

/* ============================================================
   ITS V2  -  phone hero budget

   Measured at 390px: the quick answer started at 2.18 screens,
   over the house rule that the hero must not push it past two.
   Breakdown was hero padding 90px, lead 252px, facts 186px, and a
   chain whose header bar wrapped to three lines (104px) with 24px
   row gaps between six stacked nodes.

   Trimmed here rather than by cutting content: tighter hero
   padding, a slightly smaller lead, denser fact plaques, a
   single-line chain bar (the traffic-light dots are decoration and
   are the first thing to go on a phone) and tighter chain gaps.
   Measured again after: 1.94 screens.
   ============================================================ */

@media (max-width: 480px) {
    .v2its-hero { padding-top: 60px; }

    .v2its-hero .v2gpr-hero__lead { font-size: 15px; line-height: 1.62; }

    .v2its-facts { gap: 8px; }
    .v2its-facts .v2gpr-fact { padding: 10px 11px; }
    .v2its-facts .v2gpr-fact b { font-size: 22px; }

    /* The dots are pure chrome. The stamp and the label are not. */
    .v2its-chain__dots { display: none; }
    .v2its-chain__bar { padding: 9px 11px; gap: 8px; }
    .v2its-chain__bar > .v2-mono { font-size: 9.5px; letter-spacing: 0.02em; }

    .v2its-chain__track { gap: 17px 10px; }
    .v2its-chain__node::after,
    .v2its-chain__latch::after { bottom: -14px; width: 8px; height: 8px; }

    .v2its-chain__contacts { gap: 7px; }
    .v2its-chain__contact { padding: 9px 10px; }

    .v2its-chain__foot { padding: 11px 12px; font-size: 12px; line-height: 1.6; gap: 8px; }
}

@media (max-width: 390px) {
    .v2its-hero { padding-top: 54px; }
    .v2its-hero .v2gpr-hero__lead { font-size: 14.5px; }
    .v2its-facts .v2gpr-fact b { font-size: 20px; }
}
/* ---------- BLOG GME V2 (fragment 2): phone height budget ----------
   Measured at 390x844: the hero ran 2400px tall, which pushed the Quick
   Answer to y=2444, past the two-screen (1688px) budget. The deadline strip
   moved into the intro (-260px) and the rules below take the rest out of
   Gate B, the plaques and the gate padding without dropping any content:
   the six risk rows keep their labels AND their descriptions, just on
   tighter type. Desktop is untouched. */
@media (max-width: 768px) {
    .v2gme-hero .v2gpr-hero__lead { margin-top: 14px; }
    .v2gme-hero .v2gpr-facts { gap: 8px; margin-top: 18px; }
    .v2gme-hero .v2gpr-fact { padding: 10px 12px; }
    .v2gme-gates { margin-top: 18px; gap: 8px; }
    .v2gme-gate { padding: 14px 15px 15px; }
    .v2gme-gate__title { margin: 6px 0 11px; }
    .v2gme-gate__note { margin-top: 12px; padding-top: 10px; font-size: 12.5px; }
    .v2gme-gates__link svg { width: 20px; height: 20px; }
    .v2gme-risks { gap: 6px; }
    .v2gme-risks li { padding: 7px 11px; }
    .v2gme-risks b { font-size: 12.5px; }
    .v2gme-risks span { font-size: 12px; line-height: 1.4; }
    .v2gme-track { margin-top: 14px; margin-bottom: 22px; }
    .v2gme-gates__foot { font-size: 13.5px; margin-top: 12px; }
    .v2gme-dl { margin: 22px 0; }
}

@media (max-width: 480px) {
    .v2gme-hero .v2gpr-hero__lead { font-size: 15.5px; }
    .v2gme-risks li { padding: 6px 10px; }
    .v2gme-risks span { font-size: 11.5px; }
    .v2gme-cohort { gap: 5px; }
}

/* ============================================================
   ITS V2  -  focus on the two text controls

   The linter textarea and the clock number field set outline:none
   on :focus and paint a box-shadow ring instead, which is visible
   but leaves the outline at style:none. Keyboard users get the
   explicit ring back on :focus-visible so the indicator does not
   depend on the shadow alone.

   The wide-block wrappers carry tabindex="0" because Chrome makes
   overflowing regions focusable anyway; the explicit attribute
   plus role/aria-label means a screen reader announces what the
   scrollable region contains instead of landing on an unnamed box.
   ============================================================ */

.v2 .v2its-lint__in:focus-visible,
.v2 .v2its-clock__n:focus-visible {
    outline: 2px solid var(--its-a);
    outline-offset: 2px;
}
.v2its-tw:focus-visible {
    outline: 2px solid var(--its-a);
    outline-offset: 3px;
}
/* ---------- BLOG GME V2 (fragment 3): the last 46px of the 390px fold
   budget - hero top padding, plaque padding and the two dashed-rule gaps.
   Measured, not guessed: the Quick Answer sat at y=1734 against a 1688
   two-screen budget before these four rules. ---------- */
@media (max-width: 480px) {
    .v2gme-hero { padding-top: calc(var(--nav-h) + 20px); }
    .v2gme-hero .v2gpr-fact { padding: 8px 11px; }
    .v2gme-gate__note { margin-top: 10px; padding-top: 9px; }
    .v2gme-gates__foot { font-size: 13px; margin-top: 10px; }
}

/* ---------- BLOG GME V2 (fragment 4): re-trim after the Gate A track
   gained 24px of bottom margin (the Day 1 / Day 14 labels were printing
   through the caption). That put the Quick Answer back to y=1701 against
   the 1688 budget; these take it under again. ---------- */
@media (max-width: 480px) {
    .v2gme-hero .v2gpr-hero__lead { margin-top: 12px; }
    .v2gme-hero .v2gme-gates { margin-top: 14px; }
    .v2gme-hero .v2gme-gate { padding-bottom: 13px; }
    .v2gme-hero .v2gme-gate__cap { margin-top: 5px; }
    .v2gme-hero .v2gme-track { margin-top: 12px; margin-bottom: 20px; }
}

/* ============= END BLOG GME V2 (last fragment) ============= */

/* ============================================================
   OPN V2  -  phone pass corrections

   Measured with per-element getBoundingClientRect at 390 / 480 /
   768, not with scrollWidth (body.v2 uses overflow-x:clip, which
   hides element overflow from any page-level check).

   Two findings drove this batch:
   1. The hero pushed the quick answer to 2.05 screens at 390px.
      The rule is that it must stay above two screens, so the
      shelf, the fact plaques and the lead all tighten on phones.
   2. Several tappable things sat under 44px: the TOC rows, the
      breadcrumb links, the author buttons and the related-band
      link. Where growing the box would cost hero height, the hit
      area is expanded with padding and pulled back with an equal
      negative margin, so the target grows and the layout does not.
   ============================================================ */

@media (max-width: 768px) {
    /* TOC rows are the most-tapped control on a phone read. */
    .v2opn-prose .v2gpr-toc__grid a { min-height: 44px; align-items: center; }

    /* Hit area without layout growth (breadcrumbs sit in the hero). */
    .v2opn-hero .v2gpr-crumbs a {
        display: inline-flex;
        align-items: center;
        padding-block: 13px;
        margin-block: -13px;
    }

    .v2 .v2opn-authorband .v2-btn--sm { min-height: 44px; }

    .v2opn-related .v2gpr-related__foot a {
        display: inline-flex;
        align-items: center;
        padding-block: 11px;
        margin-block: -11px;
    }
}

@media (max-width: 480px) {
    .v2opn-hero .v2gpr-crumbs { margin-bottom: 16px; }
    .v2opn-hero .v2gpr-hero__lead { font-size: 15px; line-height: 1.62; }

    .v2opn-facts { gap: 8px; margin-top: 18px; }
    .v2opn-facts .v2gpr-fact { padding: 11px 12px; border-radius: 12px; }
    .v2opn-facts .v2gpr-fact b { font-size: 17px; }

    .v2opn-shelf { margin-top: 18px; }
    .v2opn-shelf__head { padding: 11px 13px; }
    .v2opn-shelf__body { padding: 12px; gap: 10px; }
    .v2opn-routes { gap: 7px; }
    .v2opn-routes li { padding: 9px 11px; }
    .v2opn-routes li em { font-size: 12px; line-height: 1.45; }
    .v2opn-store { padding: 10px; }
    .v2opn-store__bar { padding: 8px 11px; }
    .v2opn-store__row { margin-top: 9px; padding: 10px; }
    .v2opn-store__meta em { font-size: 11.5px; }
    .v2opn-shelf__lock { padding: 11px 13px 12px; font-size: 12.5px; line-height: 1.55; }
}

@media (max-width: 390px) {
    .v2opn-hero .v2gpr-hero__lead { font-size: 14.5px; }
    .v2opn-facts .v2gpr-fact { padding: 10px 11px; }
    .v2opn-routes li { padding: 8px 10px; }
    .v2opn-shelf__lock { padding: 10px 12px 11px; }
}

/* The guarantee line in this post's dark CTA band is a link to the refund
   policy, because the promise has stated exclusions and the claim should carry
   the reader to them. The v2opn-cta class exists only to scope this: the
   shared .v2-cta / .v2gpr-cta band is live on 30+ pages and stays untouched. */
.v2opn-cta .v2-cta__fine a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: rgba(255, 255, 255, .3);
    transition: color .18s ease, text-decoration-color .18s ease;
}
.v2opn-cta .v2-cta__fine a:hover,
.v2opn-cta .v2-cta__fine a:focus-visible {
    color: #E9EEF4;
    text-decoration-color: rgba(255, 255, 255, .7);
}


/* The freshness chip inherits white-space:nowrap from the shared
   .v2gpr-byline__fresh recipe, which only ever fit because the ENGLISH
   string is short ("Verified against Google Play Help: August 12, 2026").
   The same sentence plus a localised date overflows a 390px viewport in the
   longer locales, and body.v2 uses overflow-x:clip so scrollWidth checks
   never catch it. Letting it wrap is the fix. Scoped to this post rather
   than applied to .v2gpr-*, which every V2 blog shares - same treatment as
   .v2stat-hero above. */
@media (max-width: 700px) {
    .v2 .v2opn-hero .v2gpr-byline__fresh {
        white-space: normal;
        align-items: flex-start;
        text-align: start;
        max-width: 100%;
    }
    .v2 .v2opn-hero .v2gpr-byline__fresh svg { flex: 0 0 auto; margin-top: 2px; }
}

/* ============= END BLOG OPN V2 (last fragment) ============= */

/* ============================================================
   ITS V2  -  make [hidden] actually hide

   Caught in the 390px visual pass: the linter's empty-state
   placeholder stayed on screen underneath its own results. The
   shared .v2gpr-tool__empty sets display:flex, and an author class
   rule outranks the user-agent [hidden] { display: none }, so
   toggling the property in JS did nothing.

   Scoped to this post rather than patched in the shared layer,
   which 30+ live posts render.
   ============================================================ */

.v2its-lint .v2gpr-tool__empty[hidden],
.v2its-lint [hidden],
.v2its-sim [hidden],
.v2its-clock [hidden] {
    display: none;
}



/* ============================================================
   BLOG REG V2  -  "How to Create a Google Play Developer Account
   in 2026"  (/blog/create-google-play-developer-account)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, checkbox, FAQ, bottom line, docs,
   author, related, CTA) and adds a unique v2reg- motif: the
   CREDENTIAL.

   The accent is passport burgundy (#8C2245), used by no other
   post in this suite. It was chosen because every component on
   this page is asking one question - does this piece of paper
   match that record - and burgundy is the colour of the document
   rather than the colour of an alarm. Rose and red are reserved
   here for a genuine blocked state, of which there are two: a
   rejected document and an untransferable account owner.

   Three states carry the whole design, and they map to the
   dossier's confidence grades rather than to visual taste:
     verified    Google publishes it, with an answer number
     partial     Google implies it, or the flow is not documented
     reported    community evidence only, never a Google promise

   Mobile first throughout. Every grid on this page starts at one
   column and gains columns at 720 or 900px; the two real tables
   scroll inside their own wrapper with a min-width track rather
   than forcing the page to scroll.

   BATCH 1 of 5: tokens, hero, the gate ladder, the shared
   section furniture (answer capsule, evidence pills, quote,
   table wrapper) and the sticky-CTA overflow repair.
   ============================================================ */

/* Block-scoped reset (the base reset skips lists and figures) */
.v2reg-prose ul, .v2reg-prose ol,
.v2reg-ladder__list, .v2reg-lane, .v2reg-need, .v2reg-chk,
.v2reg-steps, .v2reg-tl, .v2reg-sym, .v2reg-dates, .v2reg-two,
.v2reg-docs__list, .v2reg-mini {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Accent tokens (scoped, never global) ---------- */

.v2reg-hero, .v2reg-prose {
    --reg-a: #8C2245;
    --reg-a-deep: #6E1936;
    --reg-tint: #FBF0F4;
    --reg-line: rgba(140, 34, 69, 0.22);
    --reg-warm: #B45309;
    --reg-warm-tint: #FDF4E7;
}

.v2reg-eyebrow { color: var(--reg-a); }

/* ---------- Evidence pills: the dossier's confidence grades ----------

   Present on every load-bearing claim. A reader must be able to tell,
   without leaving the sentence, whether Google published the fact or
   whether a forum did. */

.v2reg-ev {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
    vertical-align: 2px;
}
.v2reg-ev + .v2reg-ev { margin-right: 6px; }
.v2reg-ev::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}
.v2reg-ev.is-verified {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
}
.v2reg-ev.is-partial {
    color: var(--reg-warm);
    background: var(--reg-warm-tint);
    border: 1px solid rgba(180, 83, 9, 0.22);
}
.v2reg-ev.is-reported {
    color: var(--slate);
    background: var(--mist);
    border: 1px dashed var(--line);
}
.v2reg-ev.is-none {
    color: var(--reg-a);
    background: var(--reg-tint);
    border: 1px solid var(--reg-line);
}

/* ---------- Answer capsule under each H2 ---------- */

.v2reg-cap {
    margin: 0 0 22px;
    padding: 14px 16px;
    background: var(--reg-tint);
    border-right: 3px solid var(--reg-a);
    border-radius: 12px 0 0 12px;
}
.v2reg-cap > p:first-child {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--reg-a);
    margin-bottom: 6px;
}

/* ---------- Verbatim Google quote ---------- */

.v2reg-quote {
    margin: 22px 0;
    padding: 16px 18px;
    background: var(--paper);
    border: 1px solid var(--reg-line);
    border-right: 3px solid var(--reg-a);
    border-radius: 12px 0 0 12px;
}
.v2reg-quote blockquote {
    margin: 0;
    font-size: 16.5px;
    line-height: 1.65;
    font-weight: 500;
    color: var(--ink);
}
.v2reg-quote figcaption {
    margin-top: 9px;
    font-size: 11px;
    letter-spacing: 0.05em;
    color: var(--slate);
}

/* ---------- Wide-table wrapper: scrolls itself, never the page ---------- */

.v2reg-tw {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 22px 0 6px;
    border-radius: 12px;
}
.v2reg-tw::-webkit-scrollbar { display: none; }
.v2reg-tw:focus-visible { outline: 2px solid var(--reg-a); outline-offset: 2px; }

.v2reg-tbl {
    width: 100%;
    min-width: 580px;
    border-collapse: collapse;
    font-size: 13.5px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}
.v2reg-tbl th {
    padding: 11px 13px;
    text-align: right;
    vertical-align: top;
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2reg-tbl td {
    padding: 11px 13px;
    text-align: right;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
    line-height: 1.6;
}
.v2reg-tbl tr:last-child td { border-bottom: 0; }
.v2reg-tbl td b { font-weight: 650; color: var(--ink); }
.v2reg-tw__hint {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
    margin: 0 0 22px;
}
@media (min-width: 861px) {
    /* The track fits without scrolling from here up, so the hint would be
       telling a desktop reader to do something with no effect. */
    .v2reg-tw__hint { display: none; }
}

/* ============================================================
   SIGNATURE VISUAL: THE GATE LADDER

   Signup rendered as five gates plus a destination, with a
   Personal / Organization lane switch. Two of the five gates
   exist for one account type only, which is the fact this hero
   is built to deliver before a reader has scrolled anywhere.

   Both lanes are always in the markup. The switch only toggles
   which is displayed, so the page still answers the question
   with JavaScript disabled, and the non-applicable gates are
   muted rather than removed - a reader has to be able to see
   what they are NOT being asked for.

   Mobile first: a single column of compact rows at 390px, wider
   gutters and a two-column requirement layout from 900px.
   ============================================================ */

.v2reg-ladder {
    margin: 26px 0 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(10, 16, 23, 0.05);
}

.v2reg-ladder__bar {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 14px;
    background: var(--ink);
    color: rgba(255, 255, 255, 0.86);
    font-size: 11.5px;
    line-height: 1.4;
}
.v2reg-ladder__dots {
    display: inline-flex;
    gap: 4px;
    flex-shrink: 0;
}
.v2reg-ladder__dots i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.22);
}
.v2reg-ladder__dots i:first-child { background: var(--reg-a); }
.v2reg-ladder__stamp {
    margin-right: auto;
    flex-shrink: 0;
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.62);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: 3px 8px;
}

/* ---------- Lane switch (real radios, keyboard operable) ---------- */

.v2reg-lane {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    padding: 10px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2reg-lane__opt { display: block; margin: 0; cursor: pointer; }
.v2reg-lane__opt input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.v2reg-lane__face {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    font-size: 14px;
    font-weight: 600;
    color: var(--slate);
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.v2reg-lane__face svg {
    width: 17px;
    height: 17px;
    flex-shrink: 0;
}
.v2reg-lane__opt input:checked + .v2reg-lane__face {
    background: var(--reg-a);
    border-color: var(--reg-a);
    color: #fff;
}
.v2reg-lane__opt input:focus-visible + .v2reg-lane__face {
    outline: 2px solid var(--reg-a);
    outline-offset: 2px;
}

/* ---------- The gates ---------- */

.v2reg-gate {
    display: grid;
    grid-template-columns: 22px 30px minmax(0, 1fr);
    align-items: start;
    gap: 4px 10px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--line);
}
.v2reg-gate:last-child { border-bottom: 0; }
.v2reg-gate__n {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--faint);
    padding-top: 5px;
}
.v2reg-gate__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--reg-tint);
    color: var(--reg-a);
    flex-shrink: 0;
}
.v2reg-gate__ic svg { width: 17px; height: 17px; }
.v2reg-gate__body { min-width: 0; }
.v2reg-gate__body b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.35;
}
.v2reg-gate__req {
    display: block;
    margin-top: 3px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2reg-gate__skip {
    display: none;
    grid-column: 3;
    justify-self: start;
    margin-top: 7px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--mist);
    border: 1px dashed var(--line);
    border-radius: 999px;
    padding: 4px 9px;
}
.v2reg-gate.is-end {
    background: var(--go-tint);
    border-top: 1px solid rgba(11, 138, 71, 0.18);
}
.v2reg-gate.is-end .v2reg-gate__ic {
    background: rgba(11, 138, 71, 0.12);
    color: var(--go-deep);
}
.v2reg-gate.is-end .v2reg-gate__n { color: var(--go-deep); }

/* Lane visibility. Default state is-personal is set in the markup, so a
   no-JS reader sees a complete, coherent ladder rather than both variants
   stacked on top of each other. */
.v2reg-gate__req.is-personal,
.v2reg-gate__req.is-org { display: none; }
.v2reg-ladder.is-personal .v2reg-gate__req.is-personal { display: block; }
.v2reg-ladder.is-org .v2reg-gate__req.is-org { display: block; }

/* A gate that does not apply to the selected type is muted, not hidden:
   knowing what you are NOT asked for is half the account-type answer. */
.v2reg-ladder.is-org .v2reg-gate[data-lane="personal"] {
    background: var(--mist);
}
.v2reg-ladder.is-org .v2reg-gate[data-lane="personal"] .v2reg-gate__ic {
    background: var(--paper);
    color: var(--faint);
    border: 1px solid var(--line);
}
.v2reg-ladder.is-org .v2reg-gate[data-lane="personal"] .v2reg-gate__body b { color: var(--slate); }
.v2reg-ladder.is-org .v2reg-gate[data-lane="personal"] .v2reg-gate__skip { display: inline-flex; }

.v2reg-ladder__foot {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 13px 14px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2reg-ladder__foot svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--reg-a);
}
.v2reg-ladder__foot strong { color: var(--ink); font-weight: 650; }

/* Entrance choreography (JS adds .v2-anim / .is-in; static otherwise) */
.v2reg-ladder.v2-anim .v2reg-gate {
    opacity: 0;
    transform: translateY(9px);
}
.v2reg-ladder.v2-anim.is-in .v2reg-gate {
    opacity: 1;
    transform: none;
    transition: opacity 0.45s ease var(--d, 0s), transform 0.45s ease var(--d, 0s);
}

/* ---------- Gate ladder: wider screens ---------- */

@media (min-width: 900px) {
    .v2reg-ladder { margin-top: 34px; }
    .v2reg-lane {
        grid-template-columns: repeat(2, minmax(0, 220px));
        justify-content: start;
    }
    .v2reg-gate {
        grid-template-columns: 30px 34px minmax(0, 1fr) auto;
        align-items: center;
        gap: 14px;
        padding: 15px 20px;
    }
    .v2reg-gate__n { padding-top: 0; font-size: 11px; }
    .v2reg-gate__ic { width: 34px; height: 34px; }
    .v2reg-gate__ic svg { width: 19px; height: 19px; }
    .v2reg-gate__body b { font-size: 16px; }
    .v2reg-gate__req { font-size: 14px; }
    .v2reg-gate__skip {
        grid-column: 4;
        justify-self: end;
        margin-top: 0;
    }
    .v2reg-ladder__bar,
    .v2reg-ladder__foot { padding-right: 20px; padding-left: 20px; }
}

/* ---------- Gate ladder: small phones ---------- */

@media (max-width: 480px) {
    .v2reg-ladder { margin-top: 22px; border-radius: 14px; }
    .v2reg-ladder__bar { font-size: 11px; padding: 10px 12px; gap: 7px; }
    .v2reg-ladder__stamp { font-size: 8.5px; padding: 3px 7px; }
    .v2reg-gate { padding: 12px; gap: 4px 9px; grid-template-columns: 20px 28px minmax(0, 1fr); }
    .v2reg-gate__ic { width: 28px; height: 28px; border-radius: 8px; }
    .v2reg-gate__ic svg { width: 16px; height: 16px; }
    .v2reg-gate__body b { font-size: 14.5px; }
    .v2reg-gate__req { font-size: 13px; }
    .v2reg-ladder__foot { padding: 12px; font-size: 12.5px; }
    .v2reg-cap { padding: 12px 13px; }
    .v2reg-quote { padding: 13px 14px; }
    .v2reg-quote blockquote { font-size: 15.5px; }
}

@media (max-width: 390px) {
    /* The stamp is the first thing to give up room: the bar's sentence is
       load-bearing, the date is repeated in the byline directly above it. */
    .v2reg-ladder__bar { flex-wrap: wrap; }
    .v2reg-ladder__stamp { margin-right: 0; }
    .v2reg-lane__face { font-size: 13.5px; padding: 0 8px; gap: 6px; }
}

/* ---------- Sticky mobile CTA: scoped overflow repair ----------

   Same shared-layer behaviour already repaired on the cal and pts posts:
   .v2-faq__wa resolves to flex: 1 0 100% (it is a full-width button in its
   FAQ home) and the shared .v2gpr-scta rule resets flex-shrink without
   resetting that 100% basis, so on a 390px viewport the WhatsApp button
   runs past the right edge and the pricing button collapses to an
   unlabelled square. Repaired for this post only: changing the shared rule
   would move the layout of every V2 blog at once. */

.v2 .v2reg-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2reg-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2reg-scta { padding-right: 10px; padding-left: 10px; }
    .v2 .v2reg-scta .v2-btn { font-size: 14px; }
    .v2 .v2reg-scta .v2-faq__wa { padding-right: 13px; padding-left: 13px; }
}

/* Shared tool shell repair, scoped: .v2gpr-tool__empty sets display:flex,
   which outranks the user-agent [hidden] rule, so a widget toggling the
   attribute in JS would leave its placeholder stacked above its own
   results. Same fix the its post carries. */
.v2reg-prose .v2gpr-tool__empty[hidden],
.v2reg-prose [hidden] { display: none; }


/* ============================================================
   BLOG REG V2  -  BATCH 2: TOOL 01, THE PRE-PAY READINESS
   INSPECTOR, plus the shared widget furniture it introduces
   (segmented control, accessible check rows, verdict panel) and
   the three-card decision strip.

   Why a scoped check row instead of the shared .v2gpr-ck: the
   shared one sets `input { display: none }`, which removes the
   control from the tab order entirely. Every widget on this page
   has to be fully keyboard operable, so this row hides the input
   with opacity instead and paints a :focus-visible ring on the
   box.
   ============================================================ */

/* ---------- Widget heading (H4, sits under an H3) ---------- */

.v2reg-toolh {
    margin: 26px 0 12px;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}

/* ---------- Segmented account-type control ---------- */

.v2reg-seg {
    margin: 0 0 16px;
    padding: 0;
    border: 0;
}
.v2reg-seg legend {
    padding: 0;
    margin-bottom: 9px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2reg-seg__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7px;
}
.v2reg-seg__opt { display: block; margin: 0; cursor: pointer; }
.v2reg-seg__opt input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}
.v2reg-seg__face {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 12px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    font-size: 14.5px;
    font-weight: 600;
    color: var(--slate);
    text-align: center;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.v2reg-seg__opt input:checked + .v2reg-seg__face {
    background: var(--reg-a);
    border-color: var(--reg-a);
    color: #fff;
}
.v2reg-seg__opt input:focus-visible + .v2reg-seg__face {
    outline: 2px solid var(--reg-a);
    outline-offset: 2px;
}

/* ---------- Check rows ---------- */

.v2reg-chk { margin: 0 0 4px; }

.v2reg-row {
    padding: 4px 0 10px;
    border-bottom: 1px solid #F0F3F5;
}
.v2reg-row:last-child { border-bottom: 0; }

.v2reg-ck {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 10px 8px;
    margin: 0;
    min-height: 44px;
    border-radius: 9px;
    cursor: pointer;
    transition: background 0.18s ease;
}
.v2reg-ck:hover { background: var(--mist); }
.v2reg-ck input {
    position: absolute;
    width: 22px;
    height: 22px;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.v2reg-ck__box {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border-radius: 7px;
    border: 2px solid #C9D2DA;
    background: var(--paper);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.v2reg-ck__box svg {
    width: 14px;
    height: 14px;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.18s ease, transform 0.18s ease;
}
.v2reg-ck input:checked + .v2reg-ck__box {
    background: var(--reg-a);
    border-color: var(--reg-a);
}
.v2reg-ck input:checked + .v2reg-ck__box svg { opacity: 1; transform: scale(1); }
.v2reg-ck input:focus-visible + .v2reg-ck__box {
    outline: 2px solid var(--reg-a);
    outline-offset: 3px;
}
.v2reg-ck__txt {
    font-size: 14px;
    line-height: 1.55;
    color: var(--slate);
    min-width: 0;
    overflow-wrap: anywhere;
}
.v2reg-ck__txt b { color: var(--ink); font-weight: 650; }
.v2reg-ck input:checked ~ .v2reg-ck__txt { color: var(--faint); }
.v2reg-ck input:checked ~ .v2reg-ck__txt b { color: var(--faint); }

.v2reg-row__lead {
    display: inline-block;
    margin-right: 43px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 9px;
}
.v2reg-row__lead.is-slow {
    color: var(--reg-a);
    background: var(--reg-tint);
    border-color: var(--reg-line);
}

/* Stage headings inside the readiness list. The list mixes what registration
   asks for with what comes after it, and the verdict only scores the first
   group, so the boundary has to be visible rather than implied. */
.v2reg-grp {
    padding: 16px 8px 8px;
    border-bottom: 1px solid #F0F3F5;
}
.v2reg-grp:first-child { padding-top: 4px; }
.v2reg-grp p {
    margin: 0 0 4px;
    font-size: 9px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--reg-a);
}
.v2reg-grp b {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}
.v2reg-grp span {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--slate);
}

/* ---------- Verdict panel ---------- */

.v2reg-prep__res {
    margin-top: 16px;
    border-right: 3px solid var(--reg-a);
}
.v2reg-prep__verdict {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2reg-prep__block {
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    margin-bottom: 12px;
}
.v2reg-prep__date {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 11px 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    margin-bottom: 10px;
}
.v2reg-prep__date span {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2reg-prep__date b {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 750;
    color: var(--reg-a);
    line-height: 1.2;
}
.v2reg-prep__note {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* State colouring. Green only when nothing is outstanding, because a green
   panel next to an unfinished list would be reassurance the page has not
   earned. */
.v2reg-prep[data-state="ready"] .v2reg-prep__res { border-right-color: var(--go); }
.v2reg-prep[data-state="ready"] .v2reg-prep__date b { color: var(--go-deep); }
.v2reg-prep[data-state="near"] .v2reg-prep__res { border-right-color: var(--reg-warm); }
.v2reg-prep[data-state="near"] .v2reg-prep__date b { color: var(--reg-warm); }

.v2reg-prep__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.v2reg-prep__foot p {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
}

.v2reg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    /* 44px, not 40: the 390px pass measured these four buttons as the only
       controls on the page under the touch-target floor. */
    min-height: 44px;
    padding: 0 15px;
    border-radius: 10px;
    background: var(--paper);
    border: 1px solid var(--line);
    font-size: 13px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.v2reg-btn:hover {
    background: var(--reg-tint);
    border-color: var(--reg-line);
    color: var(--reg-a);
}
.v2reg-btn:focus-visible {
    outline: 2px solid var(--reg-a);
    outline-offset: 2px;
}

/* ---------- Three-card decision strip ---------- */

.v2reg-two {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 22px 0;
}
.v2reg-two__card {
    padding: 15px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
}
.v2reg-two__card > p:first-child {
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--reg-a);
    margin-bottom: 7px;
}
.v2reg-two__card b {
    display: block;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: 6px;
}
.v2reg-two__card > p:last-child {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Tool 01: wider screens ---------- */

@media (min-width: 720px) {
    /* The lead-time pill moves out of the text flow and onto the row's own
       right edge, where it reads as metadata rather than as a second
       sentence. */
    .v2reg-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 10px;
        padding: 2px 0 6px;
    }
    .v2reg-row__lead { margin-right: 0; justify-self: end; }
    .v2reg-seg__row { grid-template-columns: repeat(2, minmax(0, 200px)); }
    .v2reg-prep__date {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 14px;
    }
}

@media (min-width: 900px) {
    .v2reg-two { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
    .v2reg-toolh { font-size: 18px; }
}

/* ---------- Tool 01: small phones ---------- */

@media (max-width: 480px) {
    .v2reg-toolh { font-size: 16px; margin-top: 22px; }
    .v2reg-ck { padding: 9px 6px; gap: 11px; }
    .v2reg-ck__txt { font-size: 13.5px; }
    .v2reg-row__lead { margin-right: 39px; font-size: 8.5px; padding: 4px 8px; }
    .v2reg-prep__verdict { font-size: 16.5px; }
    .v2reg-prep__date b { font-size: 18px; }
    .v2reg-two__card { padding: 14px; }
    .v2reg-seg__face { font-size: 14px; min-height: 44px; }
}

@media (max-width: 390px) {
    /* Two 44px pills plus a 7px gutter still fit at 358px of content width,
       so the segmented control stays on one row rather than stacking and
       pushing the list below the fold. */
    .v2reg-seg__face { font-size: 13.5px; padding: 0 8px; }
    .v2reg-row__lead { margin-right: 0; }
    .v2reg-prep__foot { gap: 9px; }
    .v2reg-btn { flex: 1 1 auto; }
}


/* ============================================================
   BLOG REG V2  -  BATCH 3: TOOL 02, THE EXACT-MATCH CHECKER.

   Two panes of free text, a verdict and a findings list. The
   findings carry the severity colour rather than the panel, so
   a reader with four findings can see at a glance which one is
   the expensive one.

   Inputs are 16px on phones on purpose: iOS Safari zooms the
   viewport when a focused field is smaller than that, and a
   zoom on focus reads as a layout bug on a page whose whole
   promise is that it does not overflow.
   ============================================================ */

.v2reg-match__privacy {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0 0 16px;
    padding: 10px 12px;
    background: var(--mist);
    border: 1px dashed var(--line);
    border-radius: 11px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2reg-match__privacy svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    margin-top: 1px;
    color: var(--go-deep);
}

.v2reg-match__pair {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.v2reg-match__field { min-width: 0; }
.v2reg-match__lab {
    display: block;
    margin-bottom: 6px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2reg-match__field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 92px;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-mono);
    font-size: 16px;
    line-height: 1.55;
    resize: vertical;
    overflow-wrap: anywhere;
}
.v2reg-match__field textarea::placeholder { color: #B4BDC6; }
.v2reg-match__field textarea:focus-visible {
    outline: 2px solid var(--reg-a);
    outline-offset: 1px;
    border-color: var(--reg-a);
}

.v2reg-match__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.v2reg-btn.is-primary {
    background: var(--reg-a);
    border-color: var(--reg-a);
    color: #fff;
}
.v2reg-btn.is-primary:hover {
    background: var(--reg-a-deep);
    border-color: var(--reg-a-deep);
    color: #fff;
}

.v2reg-match__res {
    margin-top: 16px;
    border-right: 3px solid var(--line);
}
.v2reg-match[data-state="ok"] .v2reg-match__res { border-right-color: var(--go); }
.v2reg-match[data-state="minor"] .v2reg-match__res { border-right-color: var(--reg-warm); }
.v2reg-match[data-state="review"] .v2reg-match__res { border-right-color: var(--reg-warm); }
.v2reg-match[data-state="bad"] .v2reg-match__res { border-right-color: var(--reg-a); }

.v2reg-match__verdict {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2reg-match__sub {
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    margin-bottom: 12px;
}

.v2reg-match__findings {
    display: grid;
    gap: 9px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}
.v2reg-match__item {
    padding: 11px 13px;
    border-radius: 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--faint);
}
.v2reg-match__item b {
    display: block;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 3px;
}
.v2reg-match__item p {
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2reg-match__item.is-ok { border-right-color: var(--go); background: var(--go-tint); }
.v2reg-match__item.is-minor { border-right-color: var(--faint); }
.v2reg-match__item.is-review { border-right-color: var(--reg-warm); background: var(--reg-warm-tint); }
.v2reg-match__item.is-bad { border-right-color: var(--reg-a); background: var(--reg-tint); }

.v2reg-match__fine {
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- Tool 02: wider screens ---------- */

@media (min-width: 720px) {
    .v2reg-match__pair { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
    .v2reg-match__field textarea { font-size: 14.5px; }
}

/* ---------- Tool 02: small phones ---------- */

@media (max-width: 480px) {
    .v2reg-match__privacy { font-size: 12px; padding: 9px 11px; }
    .v2reg-match__field textarea { min-height: 86px; padding: 10px 11px; }
    .v2reg-match__verdict { font-size: 16.5px; }
    .v2reg-match__actions .v2reg-btn { flex: 1 1 auto; }
}

@media (max-width: 390px) {
    /* Three buttons on one row would each be under 44px wide at this width,
       so the primary action takes the full row and the two secondary ones
       share the next. */
    .v2reg-match__actions .v2reg-btn.is-primary { flex: 1 0 100%; }
}


/* ============================================================
   BLOG REG V2  -  BATCH 4: TOOL 03, THE STALL ROUTER.

   A filter over ten symptoms rather than a wizard. Every fix
   panel is a real element in the document whether it is open or
   not, so the remedies are readable without JavaScript and
   quotable by an assistant that never clicks anything.

   Row targets are 52px tall at every width. The filter field is
   a real type="search" so mobile keyboards offer the search key
   and iOS shows its clear affordance.
   ============================================================ */

.v2reg-router__q {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    margin: 0 0 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.5;
    -webkit-appearance: none;
    appearance: none;
}
.v2reg-router__q::placeholder { color: #B4BDC6; }
.v2reg-router__q:focus-visible {
    outline: 2px solid var(--reg-a);
    outline-offset: 1px;
    border-color: var(--reg-a);
}

.v2reg-sym { display: grid; gap: 8px; }

.v2reg-sym__row {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color 0.18s ease;
}
.v2reg-sym__row.is-open { border-color: var(--reg-line); }

.v2reg-sym__btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 52px;
    padding: 12px 14px;
    text-align: right;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.45;
    color: var(--ink);
    cursor: pointer;
    transition: background 0.18s ease;
}
.v2reg-sym__btn:hover { background: var(--mist); }
.v2reg-sym__btn:focus-visible {
    outline: 2px solid var(--reg-a);
    outline-offset: -2px;
}
.v2reg-sym__row.is-open .v2reg-sym__btn { background: var(--reg-tint); color: var(--reg-a-deep); }

/* Plus that becomes a minus, drawn in CSS so it needs no icon font */
.v2reg-sym__plus {
    position: relative;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
}
.v2reg-sym__plus i {
    position: absolute;
    top: 50%;
    right: 50%;
    width: 12px;
    height: 2px;
    margin: -1px -6px 0 0;
    border-radius: 2px;
    background: var(--reg-a);
    transition: transform 0.2s ease, opacity 0.2s ease;
}
.v2reg-sym__plus i:last-child { transform: rotate(-90deg); }
.v2reg-sym__row.is-open .v2reg-sym__plus i:last-child { transform: rotate(0deg); opacity: 0; }

.v2reg-sym__fix {
    padding: 2px 14px 14px;
    border-top: 1px solid var(--line);
}
.v2reg-sym__fix p {
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    margin-top: 11px;
}
.v2reg-sym__fix a {
    color: var(--reg-a);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.v2reg-sym__src {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    color: var(--faint) !important;
    padding-top: 10px;
    border-top: 1px dashed var(--line);
}

.v2reg-router__none {
    margin-top: 12px;
    padding: 12px 13px;
    background: var(--mist);
    border: 1px dashed var(--line);
    border-radius: 11px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Tool 03: responsive ---------- */

@media (min-width: 720px) {
    .v2reg-router__q { font-size: 15px; }
    .v2reg-sym__btn { font-size: 15px; padding: 13px 16px; }
    .v2reg-sym__fix { padding: 2px 16px 16px; }
}

@media (max-width: 480px) {
    .v2reg-sym__btn { font-size: 14px; padding: 11px 12px; gap: 9px; }
    .v2reg-sym__fix { padding: 2px 12px 13px; }
    .v2reg-sym__fix p { font-size: 13.5px; }
}


/* ============================================================
   BLOG REG V2  -  BATCH 5: the numbered checkpoint list, the
   four-category card strip, and the asymmetric conversion
   diagram.

   The conversion diagram is the one place on this page where
   green and burgundy carry opposite meanings on adjacent rows,
   so each row also states its verdict in words. Colour is never
   the only carrier of the answer.
   ============================================================ */

/* ---------- Numbered checkpoints ---------- */

.v2reg-steps {
    display: grid;
    gap: 10px;
    margin: 20px 0 22px;
}
.v2reg-step {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 13px;
}
.v2reg-step__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: var(--reg-tint);
    color: var(--reg-a);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.v2reg-step__body { min-width: 0; }
.v2reg-step__body b {
    display: block;
    font-family: var(--font-display);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.32;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2reg-step__body p {
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2reg-step__body code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    background: var(--mist);
    border-radius: 5px;
    padding: 1px 5px;
    overflow-wrap: anywhere;
}
.v2reg-step__risk {
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px dashed var(--line);
    font-size: 13px !important;
    color: var(--reg-a) !important;
}

/* ---------- Four-category card strip ---------- */

.v2reg-mini {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin: 18px 0 22px;
}
.v2reg-mini__card {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 12px 13px;
    background: var(--reg-tint);
    border: 1px solid var(--reg-line);
    border-radius: 12px;
}
.v2reg-mini__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 9px;
    background: var(--paper);
    color: var(--reg-a);
}
.v2reg-mini__ic svg { width: 18px; height: 18px; }
.v2reg-mini__card b {
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
    color: var(--ink);
}
.v2reg-mini__card code {
    font-family: var(--font-mono);
    font-size: 0.9em;
    background: var(--paper);
    border-radius: 5px;
    padding: 1px 5px;
}

/* ---------- Asymmetric conversion diagram ---------- */

.v2reg-conv {
    display: grid;
    gap: 11px;
    margin: 22px 0;
}
.v2reg-conv__row {
    padding: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--faint);
    border-radius: 13px 0 0 13px;
}
.v2reg-conv__row.is-yes { border-right-color: var(--go); background: var(--go-tint); }
.v2reg-conv__row.is-no { border-right-color: var(--reg-a); background: var(--reg-tint); }
.v2reg-conv__row.is-never { border-right-color: var(--ink); background: var(--mist); }

.v2reg-conv__pair {
    display: flex;
    align-items: center;
    gap: 9px;
    flex-wrap: wrap;
    margin-bottom: 9px;
}
.v2reg-conv__node {
    padding: 6px 11px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    white-space: nowrap;
}
.v2reg-conv__arrow {
    display: flex;
    align-items: center;
    color: var(--go-deep);
    flex-shrink: 0;
}
.v2reg-conv__arrow svg { width: 36px; height: 18px; }
.v2reg-conv__arrow.is-blocked { color: var(--reg-a); }
.v2reg-conv__row.is-never .v2reg-conv__arrow.is-blocked { color: var(--ink); }

.v2reg-conv__verdict {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 6px;
    color: var(--go-deep);
}
.v2reg-conv__row.is-no .v2reg-conv__verdict { color: var(--reg-a); }
.v2reg-conv__row.is-never .v2reg-conv__verdict { color: var(--ink); }
.v2reg-conv__note {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Batch 5: wider screens ---------- */

@media (min-width: 720px) {
    .v2reg-mini { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
    .v2reg-step { grid-template-columns: 34px minmax(0, 1fr); padding: 16px 18px; gap: 14px; }
    .v2reg-step__n { width: 34px; height: 34px; }
    .v2reg-conv__row { padding: 16px 18px; }
    .v2reg-conv__pair { flex-wrap: nowrap; }
}

@media (min-width: 900px) {
    .v2reg-step__body b { font-size: 17px; }
}

/* ---------- Batch 5: small phones ---------- */

@media (max-width: 480px) {
    .v2reg-step { padding: 13px; gap: 10px; grid-template-columns: 28px minmax(0, 1fr); }
    .v2reg-step__n { width: 28px; height: 28px; font-size: 10px; }
    .v2reg-step__body b { font-size: 15px; }
    .v2reg-step__body p { font-size: 13.5px; }
    .v2reg-mini__card { padding: 11px 12px; gap: 10px; }
    .v2reg-mini__card b { font-size: 13.5px; }
    .v2reg-conv__row { padding: 13px; }
    .v2reg-conv__node { font-size: 13px; padding: 5px 10px; }
    .v2reg-conv__note { font-size: 13px; }
}

@media (max-width: 390px) {
    /* Two pills plus an arrow do not fit on one 358px line once the words
       are as long as "Another person", so the pair wraps and the arrow
       turns down the page rather than being squeezed. */
    .v2reg-conv__arrow svg { width: 28px; }
    .v2reg-conv__node { white-space: normal; }
}


/* ============================================================
   BLOG REG V2  -  BATCH 6: the rule timeline, the device
   specification card and the dated deadline rows.

   The deadline rows carry a state class rendered by PHP rather
   than by JavaScript, so the page is already in the right tense
   when it arrives, and a cached copy cannot show a countdown
   that expired weeks ago.
   ============================================================ */

/* ---------- Rule timeline ---------- */

.v2reg-tl {
    display: grid;
    gap: 0;
    margin: 20px 0 24px;
    padding-right: 4px;
}
.v2reg-tl__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    position: relative;
    padding: 0 22px 18px 0;
    border-right: 2px solid var(--line);
}
.v2reg-tl__item:last-child { padding-bottom: 0; border-right-color: transparent; }
.v2reg-tl__item::before {
    content: "";
    position: absolute;
    right: -7px;
    top: 4px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--faint);
}
.v2reg-tl__item.is-now::before {
    border-color: var(--reg-a);
    background: var(--reg-a);
    box-shadow: 0 0 0 4px var(--reg-tint);
}
.v2reg-tl__date {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2reg-tl__item.is-now .v2reg-tl__date { color: var(--reg-a); }
.v2reg-tl__item b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    margin-bottom: 4px;
}
.v2reg-tl__item p {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Device specification card ---------- */

.v2reg-spec {
    margin: 20px 0 22px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
}
.v2reg-spec__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 14px;
    background: var(--ink);
    color: rgba(255, 255, 255, 0.88);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.v2reg-spec__badge {
    font-size: 9px;
    letter-spacing: 0.1em;
    color: rgba(255, 255, 255, 0.66);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 999px;
    padding: 3px 8px;
}
.v2reg-spec__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2reg-spec__list li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 14px;
    border-bottom: 1px solid var(--line);
}
.v2reg-spec__ic {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: 9px;
    background: var(--reg-tint);
    color: var(--reg-a);
}
.v2reg-spec__ic svg { width: 17px; height: 17px; }
.v2reg-spec__list b {
    display: block;
    font-size: 14.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.35;
}
.v2reg-spec__list span {
    display: block;
    margin-top: 2px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}
.v2reg-spec__foot {
    padding: 12px 14px;
    background: var(--mist);
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- Dated deadline rows ---------- */

.v2reg-dates {
    display: grid;
    gap: 10px;
    margin: 20px 0 22px;
}
.v2reg-dates__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--faint);
    border-radius: 13px 0 0 13px;
}
.v2reg-dates__row.is-live { border-right-color: var(--reg-a); background: var(--reg-tint); }
.v2reg-dates__row.is-past { border-right-color: var(--go); }
.v2reg-dates__row.is-cond { border-right-color: var(--reg-warm); }
.v2reg-dates__date {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2reg-dates__body b {
    display: block;
    font-size: 15px;
    font-weight: 650;
    line-height: 1.35;
    color: var(--ink);
    margin-bottom: 5px;
}
.v2reg-dates__body p {
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2reg-dates__pill {
    justify-self: start;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.11em;
    text-transform: uppercase;
    color: var(--reg-a);
    background: var(--paper);
    border: 1px solid var(--reg-line);
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2reg-dates__pill.is-past {
    color: var(--go-deep);
    border-color: rgba(11, 138, 71, 0.24);
    background: var(--go-tint);
}
.v2reg-dates__pill.is-cond {
    color: var(--reg-warm);
    border-color: rgba(180, 83, 9, 0.24);
    background: var(--reg-warm-tint);
}

/* ---------- Batch 6: wider screens ---------- */

@media (min-width: 720px) {
    .v2reg-tl__item {
        grid-template-columns: 108px minmax(0, 1fr);
        gap: 14px;
        align-items: start;
        padding-right: 24px;
    }
    .v2reg-tl__date { padding-top: 2px; }
    .v2reg-spec__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2reg-spec__list li:nth-child(odd) { border-left: 1px solid var(--line); }
    .v2reg-dates__row {
        grid-template-columns: 108px minmax(0, 1fr) auto;
        align-items: start;
        gap: 14px;
        padding: 16px 18px;
    }
    .v2reg-dates__date { padding-top: 2px; }
    .v2reg-dates__pill { justify-self: end; }
}

/* ---------- Batch 6: small phones ---------- */

@media (max-width: 480px) {
    .v2reg-tl__item { padding-right: 18px; padding-bottom: 16px; }
    .v2reg-tl__item b { font-size: 14.5px; }
    .v2reg-tl__item p { font-size: 13px; }
    .v2reg-spec__list li { padding: 11px 12px; gap: 10px; }
    .v2reg-spec__list b { font-size: 14px; }
    .v2reg-spec__foot { padding: 11px 12px; font-size: 12.5px; }
    .v2reg-dates__row { padding: 13px; }
    .v2reg-dates__body b { font-size: 14.5px; }
    .v2reg-dates__body p { font-size: 13px; }
}

@media (max-width: 390px) {
    .v2reg-spec__head { font-size: 9.5px; padding: 11px 12px; }
    .v2reg-spec__badge { font-size: 8.5px; }
}

/* ============================================================
   BLOG REG V2  -  BATCH 7: closing furniture.
   ============================================================ */

.v2reg-docs__fine {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-size: 12.5px;
    line-height: 1.65;
    color: var(--faint);
}

/* The prose layer sets a generous paragraph rhythm; the widget panels set
   their own, and a nested <p> inheriting both ends up with a double gap. */
.v2reg-prose .v2gpr-tool p,
.v2reg-prose .v2reg-conv p,
.v2reg-prose .v2reg-dates p,
.v2reg-prose .v2reg-spec p { margin-bottom: 0; }

@media (max-width: 480px) {
    .v2reg-docs__fine { font-size: 12px; }
}

/* ============= END BLOG REG V2 ============= */

/* ============================================================
   BLOG REG V2  -  BATCH 8: repairs from the 390px pass.

   Both fixes are scoped rather than pushed into the shared
   layer, which 30+ live posts render.

   1. TOUCH TARGETS. The shared .v2gpr-chip resolves to 34px
      tall, measured on this page at 390, 480 and 768px. Every
      other control on this post clears 44px, so the scrollspy
      chips were the only miss. The chip keeps its visual size
      and gains the height, so the bar grows by 10px on this
      post only.

   2. HERO HEIGHT. Measured at 390px: the quick answer sat
      2.31 screens down, past the one-screen-either-side budget
      this post is held to. The hero is trimmed here rather than
      shortened structurally, because the gate ladder IS the
      answer to the query and burying it below the fold to win a
      measurement would be the wrong trade. Copy trims in _hero
      do the other half of the work.
   ============================================================ */

.v2reg-chips .v2gpr-chip {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

@media (max-width: 480px) {
    /* The nav is 64px tall and fixed, so the hero's 90px of top padding is
       mostly air on a phone. 76px is the floor: at 56px the breadcrumb
       rendered underneath the nav, which the 390px screenshot caught. */
    .v2reg-hero { padding-top: 76px; }

    .v2reg-hero .v2gpr-hero__lead { font-size: 15.5px; line-height: 1.6; }
    .v2reg-hero .v2gpr-hero__title { font-size: 30px; line-height: 1.16; }

    /* -24px across the two plaque rows, and the block sits closer to the
       byline above it. */
    .v2reg-facts { margin-top: 16px; }
    .v2reg-facts .v2gpr-fact { padding: 9px 12px; }
    .v2reg-facts .v2gpr-fact b { font-size: 15px; }
    .v2reg-hero .v2gpr-byline { gap: 8px 14px; }

    .v2reg-ladder { margin-top: 12px; }
    .v2reg-lane { padding: 8px; }
    .v2reg-gate { padding: 8px 12px; }
    .v2reg-ladder__foot { padding: 10px 12px; }
}

@media (max-width: 390px) {
    /* The stamp wrapped onto its own line here and cost 50px of hero for a
       date that is already stated in full in the byline directly above it. */
    .v2reg-ladder__stamp { display: none; }
    .v2reg-ladder__bar { flex-wrap: nowrap; }
}

/* ============================================================
   BLOG: COST TO PUBLISH AN APP ON GOOGLE PLAY  (prefix: v2cst-)
   /blog/cost-to-publish-app-google-play

   Palette: moss "ledger" green for the CASH axis, slate indigo for
   the CLOCK axis. Neither is used as a primary by any other post,
   and the two-token split is load bearing rather than decorative:
   every component on this page has to make it obvious whether a
   number is money you may choose to spend or time you cannot buy
   your way out of.

   Written mobile first. Every component below carries its own
   768 / 480 / 390 rules in the same batch that defines it.
   Batch 1: tokens, hero, cash/clock split, quick answer, desk index.
   ============================================================ */

/* ---------- Scoped tokens ---------- */

.v2cst-hero, .v2cst-prose, .v2cst-scta, .v2cst-band {
    --cst-a:        #4D7C0F;   /* moss: cash axis */
    --cst-deep:     #3B5E0B;
    --cst-tint:     #F4F9EA;
    --cst-edge:     #D7E7BB;
    --cst-time:     #3F4A6B;   /* slate indigo: time axis */
    --cst-time-tint:#F1F3F8;
    --cst-time-edge:#D4DAE8;
    --cst-warn:     #B42318;
    --cst-warn-tint:#FEF3F2;
    --cst-shadow:   0 18px 44px -30px rgba(10, 16, 23, .40);
}

/* ---------- Hero ---------- */

.v2cst-hero { background: linear-gradient(-180deg, var(--cst-tint) 0%, var(--paper) 62%); }
.v2cst-eyebrow { color: var(--cst-deep); }
.v2cst-hero .v2gpr-byline__fresh { color: var(--cst-deep); background: var(--cst-tint); border-color: var(--cst-edge); }
.v2cst-facts .v2gpr-fact { border-color: var(--cst-edge); }
.v2cst-facts .v2gpr-fact b { color: var(--cst-deep); }

/* ---------- The cash / clock split (hero signature) ---------- */

.v2cst-split {
    margin-top: 26px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 46px minmax(0, 1fr);
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
    box-shadow: var(--cst-shadow);
    overflow: hidden;
}

.v2cst-split__side { padding: 20px 18px 18px; min-width: 0; }
.v2cst-split__side.is-cash { background: linear-gradient(-180deg, var(--cst-tint), var(--paper) 70%); }
.v2cst-split__side.is-clock { background: linear-gradient(-180deg, var(--cst-time-tint), var(--paper) 70%); }

.v2cst-split__top {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px 12px;
    margin-bottom: 14px;
}

.v2cst-split__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 11.5px;
    letter-spacing: .09em;
    text-transform: uppercase;
    font-weight: 700;
}
.v2cst-split__tag svg { width: 15px; height: 15px; flex: none; }
.v2cst-split__side.is-cash .v2cst-split__tag { color: var(--cst-deep); }
.v2cst-split__side.is-clock .v2cst-split__tag { color: var(--cst-time); }

.v2cst-split__note { font-size: 11px; color: var(--faint); letter-spacing: .02em; }

.v2cst-split__foot {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2cst-split__foot strong { color: var(--cst-deep); }

/* The stack: a solid required base with detached optional blocks
   floating above it. The gaps between the optional blocks are the
   argument, so do not close them up. */
.v2cst-split__stack { display: flex; flex-direction: column; gap: 7px; }

.v2cst-blk {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 2px 10px;
    padding: 9px 12px;
    border-radius: 10px;
    min-width: 0;
}
.v2cst-blk b { font-size: 13.5px; font-weight: 650; color: var(--ink); }
.v2cst-blk em { font-style: normal; font-size: 11px; color: var(--faint); }

.v2cst-blk.is-opt {
    border: 1px dashed var(--cst-edge);
    background: rgba(255, 255, 255, .72);
}
.v2cst-blk.is-base {
    margin-top: 9px;
    border: 1px solid var(--cst-deep);
    background: var(--cst-a);
    box-shadow: 0 8px 18px -12px rgba(61, 94, 11, .8);
}
.v2cst-blk.is-base b, .v2cst-blk.is-base em { color: #fff; }
.v2cst-blk.is-base em { color: rgba(255, 255, 255, .82); }

/* The gutter: the sentence that stops the two columns being added
   together. Vertical on desktop, a plain horizontal strip on phones. */
.v2cst-split__gutter {
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid var(--line);
    border-left: 1px solid var(--line);
    background: var(--mist);
    padding: 10px 0;
}
.v2cst-split__gutter span {
    writing-mode: vertical-rl;
    transform: rotate(-180deg);
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
}

/* The 14 day ticks. A 7 column grid so it is two tidy rows at every
   width and can never overflow horizontally. */
.v2cst-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 5px;
}
.v2cst-day {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    border-radius: 7px;
    border: 1px solid var(--cst-time-edge);
    background: rgba(255, 255, 255, .74);
}
.v2cst-day i {
    font-style: normal;
    font-size: 10.5px;
    font-weight: 650;
    color: var(--cst-time);
}
.v2cst-days__lab { margin: 9px 0 0; font-size: 11px; color: var(--faint); }

.v2cst-review {
    margin-top: 12px;
    padding: 11px 13px;
    border-radius: 10px;
    border: 1px solid var(--cst-time-edge);
    border-right: 3px solid var(--cst-time);
    background: rgba(255, 255, 255, .8);
}
.v2cst-review b { display: block; font-size: 13px; color: var(--cst-time); margin-bottom: 3px; }
.v2cst-review em { font-style: normal; font-size: 12px; line-height: 1.55; color: var(--slate); display: block; }

/* Reveal, motion safe. The base block rises last so the eye lands on
   the floor of the stack rather than the optional blocks. */
.v2cst-hero.v2-anim .v2cst-blk,
.v2cst-hero.v2-anim .v2cst-review {
    opacity: 0;
    transform: translateY(9px);
}
.v2cst-hero.v2-anim.is-in .v2cst-blk,
.v2cst-hero.v2-anim.is-in .v2cst-review {
    opacity: 1;
    transform: none;
    transition: opacity .5s ease var(--d, .1s), transform .5s ease var(--d, .1s);
}
@media (prefers-reduced-motion: reduce) {
    .v2cst-hero.v2-anim .v2cst-blk,
    .v2cst-hero.v2-anim .v2cst-review { opacity: 1; transform: none; }
}

/* ---------- Quick answer + desk index ---------- */

.v2cst-qa .is-go { color: #7BD69B; }

.v2cst-desk {
    margin: 30px 0;
    border: 1px solid var(--cst-edge);
    border-radius: 16px;
    background: linear-gradient(-180deg, var(--cst-tint), var(--paper) 78%);
    overflow: hidden;
}
.v2cst-desk__head { padding: 18px 20px 4px; }
.v2cst-desk__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 7px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--cst-deep);
}
.v2cst-desk__tag svg { width: 16px; height: 16px; flex: none; }
.v2cst-desk__sub { margin: 0; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

.v2cst-desk__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: var(--cst-edge);
    margin-top: 16px;
    border-top: 1px solid var(--cst-edge);
}
.v2cst-desk__item {
    display: block;
    padding: 15px 17px 16px;
    background: var(--paper);
    min-width: 0;
    transition: background .16s ease;
}
.v2cst-desk__item:hover { background: var(--cst-tint); }
.v2cst-desk__item span { display: block; font-size: 11px; color: var(--cst-a); margin-bottom: 5px; }
.v2cst-desk__item b { display: block; font-size: 14.5px; color: var(--ink); margin-bottom: 4px; }
.v2cst-desk__item em { font-style: normal; font-size: 12.5px; line-height: 1.5; color: var(--faint); display: block; }

/* ---------- Sticky CTA repair (this page only) ----------
   The shared .v2-faq__wa carries flex: 1 0 100%, which drops the
   WhatsApp button onto a second row and runs it past the right edge
   of a 390px viewport. body.v2 has overflow-x: clip, so the overflow
   is invisible to a scrollWidth check but very visible to a reader.
   Restore an auto basis for this post's sticky bar only. */
.v2cst-scta .v2-faq__wa { flex: 0 1 auto; min-width: 0; }

/* ---------- Responsive: split, desk ---------- */

@media (max-width: 900px) {
    .v2cst-desk__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
    .v2cst-split { grid-template-columns: minmax(0, 1fr); margin-top: 20px; }

    /* The gutter rotates from a vertical spine to a horizontal rule so the
       sentence still sits physically between the two columns. */
    .v2cst-split__gutter {
        border-right: 0;
        border-left: 0;
        border-top: 1px solid var(--line);
        border-bottom: 1px solid var(--line);
        padding: 9px 14px;
    }
    .v2cst-split__gutter span {
        writing-mode: horizontal-tb;
        transform: none;
        white-space: normal;
        text-align: center;
        line-height: 1.5;
    }

    .v2cst-split__side { padding: 16px 15px 15px; }
    .v2cst-desk__grid { grid-template-columns: minmax(0, 1fr); }
    .v2cst-desk { margin: 24px 0; }
    .v2cst-desk__head { padding: 16px 16px 2px; }
    .v2cst-desk__item { padding: 13px 16px 14px; }
}

@media (max-width: 480px) {
    /* The fold budget is the reason for this block. Measured at 390px, a
       single-column stack of six blocks pushed the quick answer to 2.29
       screens. Two columns of optional blocks above a full-width base keeps
       the "detached above a solid floor" reading and buys back ~250px. */
    .v2cst-split__stack {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }
    .v2cst-blk.is-base { grid-column: 1 / -1; margin-top: 5px; }

    .v2cst-blk { padding: 8px 11px; }
    .v2cst-blk b { font-size: 13px; }

    /* Same budget: the lead is the tallest single element in the hero. */
    .v2cst-hero .v2gpr-hero__lead { font-size: 14.5px; line-height: 1.55; }
    .v2cst-facts .v2gpr-fact { padding: 8px 11px; }
    .v2cst-hero .v2gpr-byline { gap: 7px 12px; }

    .v2cst-day { border-radius: 6px; }
    .v2cst-day i { font-size: 10px; }
    .v2cst-split__note { font-size: 10.5px; }
    .v2cst-desk__sub { font-size: 13px; }
}

@media (max-width: 390px) {
    /* Fold budget again. The quick answer has to sit inside two screens of a
       390px phone, and after the two-column stack it was still 26px over.
       Everything below is padding and leading, not content: nothing in the
       hero is hidden at this width. */
    .v2cst-hero .v2gpr-hero__title { font-size: 27px; line-height: 1.15; }
    .v2cst-facts .v2gpr-fact { padding: 8px 11px; }
    .v2cst-split__side { padding: 12px 12px 12px; }
    .v2cst-split__top { gap: 4px 10px; margin-bottom: 10px; }
    .v2cst-split__foot { margin-top: 9px; font-size: 12px; }
    .v2cst-days { gap: 4px; }
    .v2cst-days__lab { margin-top: 7px; }
    .v2cst-review { margin-top: 10px; padding: 9px 11px; }
    /* The stack label and its price hint stop fitting on one line here. */
    .v2cst-blk { flex-direction: column; align-items: flex-start; gap: 1px; }
}

/* ============================================================
   BLOG CST V2  -  BATCH 4: the 2026-08-18 editorial pass
   Navigation layering, evidence labels, table captions and the
   sticky first column on the widest tables.
   ============================================================ */

/* ---------- One navigation layer per viewport ----------
   The chips bar is hidden at >=961px and the desktop rail is hidden at
   <=960px, so those two never coexist. The in-content table of contents
   used to appear at BOTH widths, which made three navigation systems on
   desktop. It now shows only where the rail is unavailable. */

@media (min-width: 961px) {
    .v2cst-prose .v2gpr-toc { display: none; }
}

/* ---------- Accessible summary of the cash / clock split ----------
   Visible text rather than a screen-reader-only class on purpose: the
   argument the two columns make in layout is worth stating for everybody,
   and a sighted reader on a narrow phone sees the columns stacked, where
   the "nothing on the left buys anything on the right" gutter is weakest. */

.v2cst-split__sr {
    margin: 12px 0 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--faint);
}
/* Fold budget: this paragraph sits above the quick answer, so at phone widths
   it is held to the smallest size that still reads as body copy. */
@media (max-width: 480px) {
    .v2cst-split__sr { margin-top: 10px; font-size: 12.5px; line-height: 1.58; }
}

/* ---------- Evidence class labels ----------
   Small inline chips that say what KIND of claim a sentence is: an official
   requirement, this post's own reading of one, a dated example, or a
   community report. They exist because the biggest risk on a page like this
   is a reader (or an answer engine) flattening an interpretation into a rule. */

.v2cst-ec {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 10.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--paper);
    color: var(--faint);
    vertical-align: 2px;
    white-space: nowrap;
}
.v2cst-ec.is-official { color: var(--cst-deep); background: var(--cst-tint); border-color: var(--cst-edge); }
.v2cst-ec.is-interp   { color: var(--cst-time); background: var(--cst-time-tint); border-color: var(--cst-time-edge); }
.v2cst-ec.is-example  { color: #92400E; background: #FEF6E7; border-color: #F3DDB3; }
.v2cst-ec.is-report   { color: #6B21A8; background: #F8F2FD; border-color: #E5D4F5; }

/* A standalone row of labels above a block, rather than inline in a sentence. */
.v2cst-ecrow {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px;
}

/* The three-line official / consequence / final-check card used by the
   tester-dropout explanation, which is the one place on this page where an
   inference sat close enough to a quotation to be mistaken for one. */
.v2cst-claim {
    margin: 18px 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
}
.v2cst-claim > div {
    display: grid;
    grid-template-columns: 152px minmax(0, 1fr);
    gap: 0 16px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
}
.v2cst-claim > div:last-child { border-bottom: 0; }
.v2cst-claim > div.is-official { background: var(--cst-tint); }
.v2cst-claim b {
    font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--faint);
    align-self: start;
    padding-top: 2px;
}
.v2cst-claim > div.is-official b { color: var(--cst-deep); }
.v2cst-claim span {
    font-size: 14.5px;
    line-height: 1.62;
    color: var(--slate);
    min-width: 0;
}

@media (max-width: 560px) {
    .v2cst-claim > div { grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .v2cst-claim b { padding-top: 0; }
}

/* ---------- Table captions ----------
   Every table on this page now says what it is for before the first row,
   which is both an accessibility win and the thing that lets a caption-only
   glance replace reading the paragraph above it. */

.v2cst-tbl caption {
    caption-side: top;
    text-align: right;
    padding: 0 0 10px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--faint);
}
.v2cst-tbl caption b { color: var(--ink); font-weight: 650; }

/* ---------- Sticky first column on the widest tables ----------
   Opt-in via .is-sticky1 on the scroll wrapper, because it is only worth the
   paint cost where the row label is what you lose when you swipe. */

.v2cst-scroll.is-sticky1 .v2cst-tbl th[scope="row"] {
    position: sticky;
    right: 0;
    z-index: 2;
    background: var(--paper);
}
.v2cst-scroll.is-sticky1 .v2cst-tbl tr.is-key th[scope="row"] { background: var(--cst-tint); }
.v2cst-scroll.is-sticky1 .v2cst-tbl th[scope="row"]::after {
    content: "";
    position: absolute;
    top: 0;
    left: -1px;
    bottom: 0;
    width: 1px;
    background: var(--line);
}
@media (min-width: 861px) {
    /* Above this width the tables fit, so the sticky column would only add
       a seam down the middle of a table nobody is scrolling. */
    .v2cst-scroll.is-sticky1 .v2cst-tbl th[scope="row"] { position: static; }
    .v2cst-scroll.is-sticky1 .v2cst-tbl th[scope="row"]::after { content: none; }
}

/* ---------- Collapsed methodology and change log ----------
   Kept in the HTML and crawlable, folded by default so the end of the post
   is the bottom line rather than two reference tables. */

.v2cst-fold {
    margin: 22px 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
}
.v2cst-fold > summary {
    cursor: pointer;
    list-style: none;
    padding: 14px 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
}
.v2cst-fold > summary::-webkit-details-marker { display: none; }
.v2cst-fold > summary::after {
    content: "";
    margin-right: auto;
    width: 9px;
    height: 9px;
    border-left: 2px solid var(--faint);
    border-bottom: 2px solid var(--faint);
    transform: rotate(-45deg);
    transition: transform .18s ease;
}
.v2cst-fold[open] > summary::after { transform: rotate(135deg); }
.v2cst-fold__body { padding: 0 18px 16px; }
.v2cst-fold__body > *:first-child { margin-top: 0; }

/* ---------- Jump link to the budget builder ---------- */

.v2cst-jump { margin: 20px 0; }
.v2cst-jump a {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 16px;
    border: 1px solid var(--cst-edge);
    border-radius: 999px;
    background: var(--cst-tint);
    color: var(--cst-deep);
    font-size: 14.5px;
    font-weight: 620;
    text-decoration: none;
}
.v2cst-jump a svg { width: 17px; height: 17px; flex: none; }
.v2cst-jump a:hover { background: #EAF3D8; }

.v2cst-ledger__print {
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 11px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: transparent;
    color: var(--faint);
    font-size: 11px;
    letter-spacing: .03em;
    cursor: pointer;
}
.v2cst-ledger__print svg { width: 14px; height: 14px; flex: none; }
.v2cst-ledger__print:hover { color: var(--ink); border-color: var(--faint); }

/* ---------- Console screenshots (2026-08-18) ----------
   Same contract as .v2fee-shot: click-to-enlarge opens the same asset, no
   lightbox JS, caption reads as editorial and the provenance line reads as
   disclosure. Three screenshots on this page, all reused from the shared
   blog library rather than shot for this post. */

.v2cst-prose .v2cst-shot {
    margin: 24px 0 28px;
    padding: 0;
}
.v2cst-shot > a {
    position: relative;
    display: block;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
    text-decoration: none;
    line-height: 0;
}
.v2cst-shot img {
    display: block;
    width: 100%;
    height: auto;
}
.v2cst-shot__zoom {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(10, 16, 23, .78);
    color: #fff;
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.4;
    opacity: 0;
    transition: opacity .18s ease;
    pointer-events: none;
}
.v2cst-shot > a:hover .v2cst-shot__zoom,
.v2cst-shot > a:focus-visible .v2cst-shot__zoom { opacity: 1; }
.v2cst-shot > a:focus-visible { outline: 2px solid var(--cst-a); outline-offset: 3px; }

.v2cst-prose .v2cst-shot figcaption {
    margin: 11px 0 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2cst-shot figcaption b { color: var(--ink); font-weight: 650; }

.v2cst-shot__note {
    display: block;
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.6;
    letter-spacing: .02em;
    color: var(--faint);
}

@media (hover: none) {
    .v2cst-shot__zoom { opacity: 1; }
}
@media print {
    .v2cst-shot__zoom { display: none; }
}

/* ---------- Print: the budget output on one sheet ----------
   The ledger is the only part of this page anyone wants on paper - it is the
   figure they take into a planning conversation. Everything that is navigation,
   interaction or sales is dropped, the form collapses to the answers already
   chosen, and the clock panel stays because a cash total printed without the
   time it excludes is the exact mistake this post exists to prevent. */

@media print {
    .v2cst-prose .v2gpr-toc,
    .v2cst-jump,
    .v2gpr-chips,
    .v2gpr-rail,
    .v2gpr-scta,
    .v2cst-plans,
    .v2gpr-plans,
    .v2cst-ledger__print { display: none !important; }

    .v2cst-tool,
    .v2gpr-tool { break-inside: avoid; border: 1px solid #999; box-shadow: none; }
    .v2cst-bb { display: none; }            /* the questions, not the answers */
    .v2cst-ledger,
    .v2cst-clockpanel { break-inside: avoid; }
    .v2cst-ledger__rows em { font-size: 10.5px; }
    .v2cst-lrow, .v2cst-ledger__total { page-break-inside: avoid; }
    .v2cst-fold { border: 0; }
    .v2cst-fold > summary::after { content: none; }
    .v2cst-fold__body { display: block !important; }   /* fold out for paper */
    a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 10px; word-break: break-all; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 1: foundation
   /blog/google-play-developer-fee  (prefix: v2fee-)

   Accent: deep teal #0F766E. Checked against the whole file
   before picking it - zero prior occurrences, so it does not
   read as a second voice of any existing post. The tint and
   deep variants below are the only three accent values this
   post uses; everything else comes from the shared :root
   tokens.

   Contains: accent tokens, hero eyebrow + fact plaques, the
   RENEWAL RAIL (hero signature), the quick-answer accent, the
   confidence pills, the three-tool index, the shared answer
   capsule / scroll wrapper / table used by every section
   below, and the scoped sticky-CTA repair.

   Every component's 900 / 768 / 480 / 390 rules are in this
   same batch. Nothing here is deferred to a polish pass.
   ============================================================ */

.v2fee-prose {
    --fee:       #0F766E;
    --fee-deep:  #115E59;
    --fee-tint:  #E6F4F1;
    --fee-warn:  #B45309;
    --fee-dead:  #94A3B8;
}

/* The tokens are also needed by the hero and the sticky CTA, which
   live outside .v2fee-prose, so they are mirrored onto those roots
   rather than promoted to :root (which 30+ other posts render). */
.v2fee-hero,
.v2fee-scta {
    --fee:       #0F766E;
    --fee-deep:  #115E59;
    --fee-tint:  #E6F4F1;
    --fee-warn:  #B45309;
    --fee-dead:  #94A3B8;
}

/* ---------- Hero ---------- */

.v2fee-hero .v2fee-eyebrow { color: var(--fee); }

.v2fee-facts .v2gpr-fact b { color: var(--fee-deep); }

/* ---------- Renewal rail (hero signature) ---------- */

.v2fee-rail {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 20px 14px;
    margin-top: 26px;
    max-width: 100%;
    box-shadow: 0 10px 34px rgba(10, 16, 23, .06);
}

/* The comparison copy of the rail lives in the article body rather than
   the hero, so it needs the bottom margin the hero never wanted. */
.v2fee-rail--cmp { margin: 26px 0 30px; }

.v2fee-rail__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2fee-rail__label {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 11px;
    color: var(--slate);
    letter-spacing: .04em;
    text-transform: uppercase;
}
.v2fee-rail__label svg { width: 15px; height: 15px; color: var(--fee); flex: none; }

.v2fee-rail__state {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    color: var(--fee-deep);
    background: var(--fee-tint);
    border-radius: 999px;
    padding: 5px 11px;
}
.v2fee-rail__state i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--fee);
    flex: none;
}

/* The rail is wider than a phone by design: six ticks with readable
   labels cannot fit 390px without shrinking the type past legibility.
   So it scrolls inside its own wrapper and the page never does. */
.v2fee-rail__scroll {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 0 -4px;
    padding: 0 4px;
}
.v2fee-rail__scroll::-webkit-scrollbar { display: none; }

.v2fee-rail__track { min-width: 100%; }

.v2fee-rail__lane { padding: 16px 0 4px; }
.v2fee-rail__lane + .v2fee-rail__lane { border-top: 1px dashed var(--line); }

.v2fee-rail__lane-name {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 0 0 10px;
    flex-wrap: wrap;
}
.v2fee-rail__lane-name b {
    font-family: var(--font-display);
    font-size: 15px;
    color: var(--ink);
    font-weight: 700;
}
.v2fee-rail__lane-name span {
    font-size: 10.5px;
    color: var(--faint);
    letter-spacing: .04em;
    text-transform: uppercase;
}
.v2fee-rail__lane.is-alt .v2fee-rail__lane-name b { color: var(--slate); font-weight: 600; }

.v2fee-rail__row {
    display: grid;
    grid-template-columns: repeat(6, minmax(84px, 1fr));
    gap: 8px;
}

.v2fee-rail__cell {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    text-align: center;
    padding: 10px 4px 9px;
    border-radius: 11px;
    border: 1px solid var(--line);
    background: var(--mist);
}
.v2fee-rail__cell b {
    font-family: var(--font-display);
    font-size: 15px;
    line-height: 1;
    color: var(--ink);
    font-weight: 700;
}
.v2fee-rail__cell em {
    font-style: normal;
    font-size: 10px;
    line-height: 1.25;
    color: var(--faint);
    letter-spacing: .02em;
}

.v2fee-rail__lane.is-key .v2fee-rail__cell.is-charge {
    background: var(--fee-tint);
    border-color: rgba(15, 118, 110, .3);
}
.v2fee-rail__lane.is-key .v2fee-rail__cell.is-charge b { color: var(--fee-deep); }
.v2fee-rail__lane.is-key .v2fee-rail__cell.is-charge em { color: var(--fee); }

.v2fee-rail__cell.is-none { background: var(--paper); border-style: dashed; }
.v2fee-rail__cell.is-none b { color: var(--fee-dead); font-weight: 600; }
.v2fee-rail__cell.is-none b s { text-decoration-thickness: 1.5px; }

.v2fee-rail__lane.is-alt .v2fee-rail__cell {
    background: var(--paper);
    padding: 8px 4px 7px;
}
.v2fee-rail__lane.is-alt .v2fee-rail__cell b { font-size: 13.5px; color: var(--slate); }

.v2fee-rail__dot,
.v2fee-rail__ghost {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: none;
}
.v2fee-rail__dot { background: var(--fee); }
.v2fee-rail__lane.is-alt .v2fee-rail__dot { background: var(--fee-dead); }
.v2fee-rail__ghost { border: 1.5px dashed var(--fee-dead); background: transparent; }

.v2fee-rail__axis {
    display: grid;
    grid-template-columns: repeat(6, minmax(84px, 1fr));
    gap: 8px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid var(--line);
}
.v2fee-rail__axis span {
    text-align: center;
    font-size: 10px;
    color: var(--faint);
    letter-spacing: .04em;
    text-transform: uppercase;
}

.v2fee-rail__foot {
    margin: 14px 0 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fee-rail__foot b { color: var(--ink); font-weight: 650; }

/* ---------- Quick answer accent ---------- */

.v2fee-qa .v2gpr-qa__tag i {
    background: var(--fee);
}
/* .is-go used to live inside the capsule with the brand line. The brand
   line moved out to .v2fee-qa-cta (light ground, so it gets its own
   colour); this rule stays for any future in-capsule emphasis. */
.v2fee-qa .v2gpr-qa__text .is-go { color: #6EE7D5; }

/* The capsule carries three ATOMIC answer blocks plus a separated brand
   line, so the paragraphs need their own rhythm: the shared
   .v2gpr-qa__text was written for a single paragraph and declares no
   margin. Each block opens with a bolded label, which is the seam an
   answer engine quoting one block sees first. */
.v2fee-qa .v2gpr-qa__text { margin: 0; }
.v2fee-qa .v2gpr-qa__text + .v2gpr-qa__text { margin-top: 14px; }

/* The commercial line is deliberately OUTSIDE the answer capsule now,
   not merely at the bottom of it: an answer engine lifting .v2gpr-qa
   was lifting the pitch along with the facts. It sits in the article
   flow directly under the capsule, styled as an aside so it still
   reads as the offer rather than as evidence.
   NOTE the .v2fee-prose qualifier: this is a bare <p> that is a direct
   child of the article, so an unqualified class loses to
   `.v2gpr-prose > p` (0,2,1) and would render as body copy. */
.v2fee-prose .v2fee-qa-cta {
    margin: -14px 0 26px;
    padding: 13px 16px;
    border: 1px solid var(--line);
    border-right: 3px solid var(--fee);
    border-radius: 10px 0 0 10px;
    background: var(--fee-tint);
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fee-prose .v2fee-qa-cta .is-go { color: var(--fee-deep); font-weight: 700; }

/* ---------- In-article Play Console screenshot ---------- */
/* .v2gpr-prose resets figure margins to 0, so this sets its own rhythm.
   The image is click-to-enlarge rather than a lightbox: no JS, and the
   full-size file is the same asset. */
.v2fee-prose .v2fee-shot {
    margin: 24px 0 28px;
    padding: 0;
}
.v2fee-shot > a {
    position: relative;
    display: block;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: var(--paper);
    text-decoration: none;
    line-height: 0;
}
.v2fee-shot img {
    display: block;
    width: 100%;
    height: auto;
}
.v2fee-shot__zoom {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(10, 16, 23, .78);
    color: #fff;
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
    line-height: 1.4;
    opacity: 0;
    transition: opacity .18s ease;
    pointer-events: none;
}
.v2fee-shot > a:hover .v2fee-shot__zoom,
.v2fee-shot > a:focus-visible .v2fee-shot__zoom { opacity: 1; }
.v2fee-shot > a:focus-visible { outline: 2px solid var(--fee); outline-offset: 3px; }

.v2fee-prose .v2fee-shot figcaption {
    margin: 11px 0 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fee-shot figcaption b { color: var(--ink); font-weight: 650; }

/* Provenance line: first-party asset, and what was changed in it. Kept
   visually distinct from the caption so the caption reads as editorial
   and this reads as disclosure. */
.v2fee-shot__note {
    display: block;
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    line-height: 1.6;
    letter-spacing: .02em;
    color: var(--faint);
}

/* Touch devices have no hover, so the affordance is always on. */
@media (hover: none) {
    .v2fee-shot__zoom { opacity: 1; }
}

@media (max-width: 560px) {
    .v2fee-prose .v2fee-shot figcaption { font-size: 13px; }
}

/* ---------- Evidence legend ---------- */
/* The Verified / Partial / Reported / First-party labels are used from
   the introduction onward, in three tables and two of the tools, and
   were never defined anywhere visible. */
.v2fee-legend {
    margin: 0 0 26px;
    padding: 15px 17px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper, #FBFCFD);
}
.v2fee-legend__label {
    margin: 0 0 11px;
    font-size: 10.5px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2fee-prose .v2fee-legend__list {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2fee-prose .v2fee-legend__list li {
    margin: 0;
    padding: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fee-legend__list li::marker { content: none; }
.v2fee-legend__list .v2fee-conf { margin-left: 7px; vertical-align: 1px; }

/* ---------- FAQ CTA ---------- */
/* Lives BELOW the accordion and outside $feeFaqs, so no FAQPage answer
   and no visible answer block ends in sales copy. */
.v2fee-faq-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 22px 0 30px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--fee-tint);
}
.v2fee-prose .v2fee-faq-cta p {
    flex: 1 1 260px;
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fee-faq-cta .v2-btn { flex: none; }

@media (max-width: 560px) {
    .v2fee-faq-cta { padding: 15px 16px; }
    .v2fee-faq-cta .v2-btn { width: 100%; justify-content: center; }
}

/* ---------- Tools line ---------- */
/* Replaced the three-card .v2fee-lab grid: same signposting, one line,
   sitting under the table of contents instead of before it. */
.v2fee-prose .v2fee-tools-line {
    display: block;
    margin: -6px 0 26px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}
.v2fee-tools-line .v2-mono {
    display: inline-block;
    margin-left: 8px;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--fee-tint);
    color: var(--fee-deep);
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-tools-line a {
    color: var(--fee-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.v2fee-tools-line a:hover { color: var(--fee); }

/* ---------- Confidence pills ---------- */
/* Used inline in running copy and inside the refund and payment
   tables. The dossier's labels are carried into the UI verbatim
   rather than being flattened into prose hedges. */

.v2fee-conf {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 3px 8px;
    border-radius: 999px;
    white-space: nowrap;
    vertical-align: 1px;
}
.v2fee-conf.is-verified { background: var(--fee-tint); color: var(--fee-deep); }
.v2fee-conf.is-partial  { background: #FEF3C7; color: #92400E; }
.v2fee-conf.is-reported { background: #EEF2F6; color: #475569; }
/* First-party = PrimeTestLab's own observation. Given its own tone so a
   house claim can never be mistaken for one of Google's. */
.v2fee-conf.is-first    { background: #EDE9FE; color: #5B21B6; }

/* ---------- Three-tool index ---------- */

.v2fee-lab {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--mist);
    padding: 20px 20px 18px;
    margin: 30px 0;
}
.v2fee-lab__head { margin-bottom: 16px; }
.v2fee-lab__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 7px;
    font-size: 11px;
    color: var(--fee-deep);
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-lab__tag svg { width: 15px; height: 15px; flex: none; }
.v2fee-lab__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

.v2fee-lab__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.v2fee-lab__item {
    display: block;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 14px;
    text-decoration: none;
    min-height: 44px;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.v2fee-lab__item:hover,
.v2fee-lab__item:focus-visible {
    border-color: var(--fee);
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(15, 118, 110, .12);
}
.v2fee-lab__item span {
    display: block;
    font-size: 10px;
    color: var(--fee);
    letter-spacing: .08em;
    margin-bottom: 5px;
}
.v2fee-lab__item b {
    display: block;
    font-family: var(--font-display);
    font-size: 14.5px;
    color: var(--ink);
    font-weight: 700;
    margin-bottom: 3px;
}
.v2fee-lab__item em {
    display: block;
    font-style: normal;
    font-size: 12px;
    line-height: 1.5;
    color: var(--slate);
}

/* Reveal-on-scroll, honoured only when the page has opted in via JS
   (which itself checks prefers-reduced-motion before adding .v2-anim). */
.v2fee-lab.v2-anim { opacity: 0; transform: translateY(14px); transition: opacity .5s ease, transform .5s ease; }
.v2fee-lab.v2-anim.is-in { opacity: 1; transform: none; }

/* ---------- Shared section furniture ---------- */

/* Answer capsule: every H2 opens with one of these before any detail. */
.v2fee-ans {
    border-right: 3px solid var(--fee);
    background: var(--fee-tint);
    border-radius: 12px 0 0 12px;
    padding: 14px 18px;
    margin: 0 0 22px;
}
.v2fee-ans p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    color: var(--ink);
    font-weight: 500;
}
.v2fee-ans p + p { margin-top: 9px; }
.v2fee-ans strong { color: var(--fee-deep); }

/* Horizontal scroll wrapper for every wide block on this post.
   Tables, the flow diagram and the rate grids all sit inside one. */
.v2fee-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    margin: 22px 0;
    max-width: 100%;
}
.v2fee-scroll::-webkit-scrollbar { display: none; }

.v2fee-table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}
.v2fee-table th,
.v2fee-table td {
    padding: 11px 14px;
    text-align: right;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
    line-height: 1.55;
}
.v2fee-table thead th {
    background: var(--ink);
    color: #fff;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600;
    white-space: nowrap;
}
.v2fee-table tbody th {
    color: var(--ink);
    font-weight: 650;
    background: var(--mist);
}
.v2fee-table tbody tr:last-child th,
.v2fee-table tbody tr:last-child td { border-bottom: 0; }
.v2fee-table td { color: var(--slate); }
.v2fee-table td strong,
.v2fee-table th strong { color: var(--ink); }
.v2fee-table .is-no { color: #B91C1C; font-weight: 600; }
.v2fee-table .is-yes { color: var(--fee-deep); font-weight: 600; }

/* Long strings inside tables and code must never widen the track. */
.v2fee-prose code,
.v2fee-table code { overflow-wrap: anywhere; word-break: break-word; }

/* Table caption: carries the SCOPE of a rate table, which the column
   headers cannot. Rendered as a top-aligned label so it reads as a
   qualifier on the whole table rather than as body copy, and it is
   announced before the rows by screen readers, which is the point. */
.v2fee-table caption {
    caption-side: top;
    text-align: right;
    padding: 0 0 10px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--slate);
    /* Below 480px the table itself takes a min-width and scrolls inside
       .v2fee-scroll, and a caption inherits the table's box - so without this
       cap the caption would also be 520px wide and the reader would have to
       scroll the table sideways to finish reading its own scope note. Capping
       to the viewport keeps it wrapping where it is legible. */
    max-width: min(100%, calc(100vw - 44px));
}

/* ---------- Scoped sticky-CTA repair ---------- */
/* The shared .v2-faq__wa resolves to flex:1 0 100% at narrow widths,
   which pushes the WhatsApp button past a 390px viewport. body.v2 has
   overflow-x:clip, so the overflow is invisible to a scrollWidth check
   but the button is still cut off on a real phone. Scoped to this post
   so no sibling's sticky bar changes. */
.v2fee-scta .v2-faq__wa {
    flex: 0 1 auto;
    width: auto;
    min-width: 0;
}
.v2fee-scta .v2-btn { min-height: 44px; }

/* ---------- 900px: the rail column drops ---------- */

@media (max-width: 900px) {
    .v2fee-lab__grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- 768px: main collapse ---------- */

@media (max-width: 768px) {
    .v2fee-lab { padding: 17px 16px 16px; margin: 26px 0; }
    .v2fee-lab__grid { grid-template-columns: 1fr; }

    .v2fee-rail { padding: 15px 16px 13px; margin-top: 22px; }
    .v2fee-rail__top { padding-bottom: 12px; }

    /* Below this width the six ticks stop fitting, so the track takes a
       fixed min-width and scrolls inside .v2fee-rail__scroll. */
    .v2fee-rail__track { min-width: 560px; }

    .v2fee-ans { padding: 13px 15px; margin-bottom: 18px; }
    .v2fee-ans p { font-size: 15.5px; }

    .v2fee-scroll { margin: 18px 0; }
}

/* ---------- 480px ---------- */

@media (max-width: 480px) {
    .v2fee-rail { padding: 13px 13px 11px; border-radius: 15px; }
    .v2fee-rail__top { gap: 8px; }
    .v2fee-rail__state { font-size: 10px; padding: 4px 9px; }
    .v2fee-rail__lane { padding: 13px 0 3px; }
    .v2fee-rail__lane-name b { font-size: 14px; }
    .v2fee-rail__track { min-width: 520px; }
    .v2fee-rail__row,
    .v2fee-rail__axis { grid-template-columns: repeat(6, minmax(78px, 1fr)); gap: 6px; }
    .v2fee-rail__cell { padding: 9px 3px 8px; }
    .v2fee-rail__cell b { font-size: 14px; }
    .v2fee-rail__foot { font-size: 13px; margin-top: 12px; }

    .v2fee-lab__item { padding: 12px 13px; }
    .v2fee-lab__sub { font-size: 13px; }

    .v2fee-table { font-size: 13.5px; min-width: 520px; }
    .v2fee-table th,
    .v2fee-table td { padding: 10px 12px; }
}

/* ---------- 390px: fine tune ---------- */

@media (max-width: 390px) {
    .v2fee-rail { padding: 12px 11px 10px; }
    .v2fee-rail__label { font-size: 10px; }
    .v2fee-rail__track { min-width: 496px; }
    .v2fee-rail__row,
    .v2fee-rail__axis { grid-template-columns: repeat(6, minmax(74px, 1fr)); }
    .v2fee-rail__cell b { font-size: 13px; }
    .v2fee-rail__cell em { font-size: 9.5px; }

    .v2fee-ans p { font-size: 15px; }
    .v2fee-lab { padding: 15px 13px 14px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 2: the service-fee section
   Rollout board, enrolment steps, and TOOL 03 (service fee
   resolver) including the shared option-pill and result-panel
   recipe that tools 01 and 02 reuse in later batches.

   The option pills are the only controls on this post that a
   reader has to hit accurately, so they are built at 44px
   minimum and go full width at 768px rather than wrapping into
   a ragged two-up grid.
   ============================================================ */

/* ---------- Rollout board ---------- */

.v2fee-roll {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    padding: 18px 20px 16px;
    margin: 26px 0;
    box-shadow: 0 8px 26px rgba(10, 16, 23, .05);
}
.v2fee-roll__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding-bottom: 13px;
    border-bottom: 1px solid var(--line);
}
.v2fee-roll__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    font-size: 11px;
    color: var(--slate);
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-roll__tag svg { width: 15px; height: 15px; color: var(--fee); flex: none; }
.v2fee-roll__count {
    font-size: 11px;
    color: var(--fee-deep);
    background: var(--fee-tint);
    border-radius: 999px;
    padding: 5px 11px;
}

.v2fee-roll__list {
    list-style: none;
    margin: 0;
    padding: 4px 0 0;
}
.v2fee-roll__item {
    display: grid;
    grid-template-columns: 16px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px dashed var(--line);
}
.v2fee-roll__item:last-child { border-bottom: 0; }

.v2fee-roll__dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    margin-right: 2px;
    flex: none;
}
.v2fee-roll__item.is-live .v2fee-roll__dot { background: var(--fee); box-shadow: 0 0 0 4px var(--fee-tint); }
.v2fee-roll__item.is-wait .v2fee-roll__dot { border: 2px dashed var(--fee-dead); background: transparent; }
/* is-pending: the published cutover date has passed but no human has
   re-verified the change, so the row is neither live nor waiting. Amber,
   because it is editorial debt on this page rather than a fact about Google. */
.v2fee-roll__item.is-pending .v2fee-roll__dot { background: #D97706; box-shadow: 0 0 0 4px #FEF3C7; }

.v2fee-roll__body { min-width: 0; }
.v2fee-roll__body b {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    color: var(--ink);
    font-weight: 650;
    line-height: 1.35;
}
.v2fee-roll__date {
    display: block;
    font-size: 11.5px;
    color: var(--faint);
    margin-top: 2px;
}
.v2fee-roll__item.is-wait .v2fee-roll__body b { color: var(--slate); }

.v2fee-roll__state {
    font-size: 10.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
    white-space: nowrap;
}
.v2fee-roll__item.is-live .v2fee-roll__state { background: var(--fee-tint); color: var(--fee-deep); }
.v2fee-roll__item.is-wait .v2fee-roll__state { background: var(--mist); color: var(--slate); }
.v2fee-roll__item.is-pending .v2fee-roll__state { background: #FEF3C7; color: #92400E; }

.v2fee-roll__foot {
    margin: 13px 0 0;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fee-roll__foot b { color: var(--ink); font-weight: 650; }

/* ---------- Numbered steps ---------- */

.v2fee-steps {
    display: grid;
    gap: 10px;
    margin: 22px 0;
}
.v2fee-step {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 13px;
    align-items: start;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 13px;
    padding: 14px 16px;
}
.v2fee-step__n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--fee);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    flex: none;
}
.v2fee-step b {
    display: block;
    font-family: var(--font-display);
    font-size: 15px;
    color: var(--ink);
    font-weight: 700;
    margin-bottom: 4px;
}
.v2fee-step p {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- Tool shell (extends the shared .v2gpr-tool) ---------- */

.v2fee-tool { margin: 30px 0; }
/* The shared tool head is LIGHT (--mist). These two rules were written for a
   dark panel: #6EE7D5 on the tag's light --go-tint pill measured about 1.4:1,
   and the intro's white text only stayed readable because .v2gpr-tool__head p
   (one class + one element) silently outranks a bare class and repainted it.
   Both are now stated for the surface that actually renders, and the intro is
   qualified so its own size and colour win. */
.v2fee-tool .v2gpr-tool__tag {
    color: var(--fee-deep);
    background: var(--fee-tint);
    border-color: rgba(15, 118, 110, .22);
}
.v2gpr-tool__head .v2fee-tool__intro {
    margin: 8px 0 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
/* Scope disclosure under a tool intro: what the widget does NOT cover. */
.v2gpr-tool__head .v2fee-tool__scope {
    margin: 10px 0 0;
    padding: 9px 11px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--paper);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2gpr-tool__head .v2fee-tool__scope b { color: var(--ink); font-weight: 600; }

/* Source stamp under a high-impact table: small, quiet, and always
   carrying the check date so a table can never outlive its provenance. */
.v2fee-prose .v2fee-src {
    margin: -14px 0 26px;
    font-size: 11px;
    line-height: 1.6;
    color: var(--faint);
    letter-spacing: .02em;
}
.v2fee-prose .v2fee-src a { color: var(--fee); text-decoration: none; border-bottom: 1px solid rgba(15, 118, 110, .3); }
.v2fee-prose .v2fee-src a:hover { border-bottom-color: var(--fee); }

/* Explains which billing programmes Google lists for the selected
   market, under question 3 of the resolver. */
.v2fee-field__hint {
    margin: 10px 0 0;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--faint);
}

.v2fee-field { border: 0; margin: 0 0 18px; padding: 0; }
.v2fee-field:last-of-type { margin-bottom: 20px; }
.v2fee-field__legend {
    display: block;
    padding: 0;
    margin-bottom: 9px;
    font-size: 11px;
    color: var(--slate);
    letter-spacing: .05em;
    text-transform: uppercase;
}

.v2fee-opts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.v2fee-opt { display: block; margin: 0; }
/* The service fee resolver hides billing programmes Google does not
   offer in the selected market. `display: block` above beats the UA
   [hidden] rule, so it has to be turned off explicitly. */
.v2fee-opt[hidden] { display: none; }
.v2fee-opt input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
.v2fee-opt__face {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: var(--paper);
    color: var(--slate);
    font-size: 13.5px;
    font-weight: 550;
    line-height: 1.35;
    text-align: center;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
.v2fee-opt__face:hover { border-color: var(--fee); color: var(--ink); }
.v2fee-opt input:checked + .v2fee-opt__face {
    background: var(--fee);
    border-color: var(--fee);
    color: #fff;
    font-weight: 600;
}
/* Keyboard operation: the native input is visually hidden, so the focus
   ring has to be drawn on the face it controls. */
.v2fee-opt input:focus-visible + .v2fee-opt__face {
    outline: 2px solid var(--fee-deep);
    outline-offset: 2px;
}

/* ---------- Result panel ---------- */

.v2fee-out {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--mist);
    padding: 16px 18px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .28s ease, transform .28s ease;
}
.v2fee-out.is-on { opacity: 1; transform: none; }

.v2fee-out__head {
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--line);
}
.v2fee-out__model {
    display: inline-block;
    margin: 0 0 7px;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
}
.v2fee-out__model.is-new { background: var(--fee-tint); color: var(--fee-deep); }
.v2fee-out__model.is-old { background: #FEF3C7; color: #92400E; }
/* is-pend covers the two "published but do not act on it yet" states: a
   cutover date that passed without a re-check, and the US alternative-billing
   rates that are published but not reportable or payable until October 1,
   2026. Deliberately not the amber of .is-old, which means "an older model is
   in force" - a real answer rather than a withheld one. */
.v2fee-out__model.is-pend { background: #EEF2F6; color: #334155; border: 1px dashed #94A3B8; }
.v2fee-out__where {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--ink);
    font-weight: 550;
}

.v2fee-out__nums {
    display: flex;
    align-items: stretch;
    gap: 8px;
    flex-wrap: nowrap;
}
.v2fee-out__num {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    text-align: center;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 12px 6px;
}
.v2fee-out__num b {
    font-family: var(--font-display);
    font-size: 24px;
    line-height: 1;
    color: var(--ink);
    font-weight: 700;
}
/* "Not published" / "Not final": longer than a percentage, so it steps down
   rather than overflowing the tile. Set by the resolver script. */
.v2fee-out__num b.is-tbd {
    font-size: 14px;
    line-height: 1.25;
    color: var(--slate);
    letter-spacing: -.01em;
}
.v2fee-out__num.is-total b.is-tbd { color: var(--fee-deep); }
.v2fee-out__num span {
    font-size: 9.5px;
    line-height: 1.3;
    color: var(--faint);
    letter-spacing: .03em;
    text-transform: uppercase;
}
.v2fee-out__num.is-op {
    flex: 0 0 22px;
    background: transparent;
    border: 0;
    padding: 0;
}
.v2fee-out__num.is-op b { font-size: 17px; color: var(--faint); font-weight: 600; }
.v2fee-out__num.is-total {
    background: var(--fee-tint);
    border-color: rgba(15, 118, 110, .3);
}
.v2fee-out__num.is-total b { color: var(--fee-deep); }
.v2fee-out__num.is-total span { color: var(--fee); }

.v2fee-out__note {
    margin: 13px 0 0;
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}

/* ---------- 900px ---------- */

@media (max-width: 900px) {
    .v2fee-out__num b { font-size: 21px; }
}

/* ---------- 768px: main collapse ---------- */

@media (max-width: 768px) {
    .v2fee-roll { padding: 16px 15px 14px; margin: 22px 0; }
    .v2fee-roll__item {
        grid-template-columns: 16px 1fr;
        row-gap: 8px;
    }
    /* The state pill drops under the label rather than squeezing the
       market name into two characters of width. */
    .v2fee-roll__state { grid-column: 2; justify-self: start; }

    .v2fee-steps { margin: 18px 0; }
    .v2fee-step { padding: 13px 14px; grid-template-columns: 34px 1fr; gap: 11px; }

    .v2fee-tool { margin: 26px 0; }

    /* Full-width pills: one tap target per row beats a ragged wrap. */
    .v2fee-opts { display: grid; grid-template-columns: 1fr; gap: 7px; }
    .v2fee-opt__face { justify-content: flex-start; text-align: right; }

    .v2fee-out { padding: 14px 15px; }
}

/* ---------- 480px ---------- */

@media (max-width: 480px) {
    .v2fee-roll__head { gap: 8px; }
    .v2fee-roll__body b { font-size: 14.5px; }

    .v2fee-step b { font-size: 14.5px; }
    .v2fee-step p { font-size: 13.5px; }

    /* The equation collapses to stacked rows. The + and = glyphs carry no
       information a screen reader needs (they are aria-hidden) and there is
       no room for them, so they go. */
    .v2fee-out__nums { flex-direction: column; gap: 7px; }
    .v2fee-out__num.is-op { display: none; }
    .v2fee-out__num {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        text-align: right;
        padding: 11px 14px;
        gap: 12px;
    }
    .v2fee-out__num b { font-size: 22px; order: 2; }
    .v2fee-out__num span { font-size: 10.5px; order: 1; text-align: right; }

    .v2fee-out__where { font-size: 14px; }
    .v2fee-out__note { font-size: 12.5px; }
}

/* ---------- 390px ---------- */

@media (max-width: 390px) {
    .v2fee-roll { padding: 14px 12px 12px; }
    .v2fee-roll__count { font-size: 10px; padding: 4px 9px; }
    .v2fee-step { padding: 12px 12px; }
    .v2fee-opt__face { font-size: 13px; padding: 10px 13px; }
    .v2fee-out { padding: 13px 12px; }
    .v2fee-out__num b { font-size: 20px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 3: the refund section
   Verdict pills for the matrix table, the stacked option list,
   and TOOL 02's verdict card.

   NOTE on [hidden]: .v2fee-verd__quote is given an explicit
   display, so the [hidden] attribute the tool toggles would
   lose to it and the quote block would stay visible with empty
   content on the scenarios that have no Google quote. The
   attribute selector below is the guard. Same class of bug as
   the shared .v2gpr-tool__empty flex trap.
   ============================================================ */

/* ---------- Verdict pill (matrix table) ---------- */

.v2fee-verdict {
    display: inline-block;
    font-size: 12.5px;
    font-weight: 650;
    line-height: 1.3;
    padding: 5px 10px;
    border-radius: 8px;
    white-space: nowrap;
}
.v2fee-verdict.is-yes     { background: var(--fee-tint); color: var(--fee-deep); }
.v2fee-verdict.is-no      { background: #FEE2E2; color: #991B1B; }
.v2fee-verdict.is-unknown { background: #EEF2F6; color: #475569; }

.v2fee-table--refund { min-width: 620px; }
.v2fee-table--refund tbody th { font-weight: 600; font-size: 13.5px; }

/* ---------- Stacked option list (7 scenarios) ---------- */
/* Seven pills side by side would wrap into an unreadable ragged
   block at every width, so this variant is a single column from
   the start rather than only below 768px. */
.v2fee-opts--stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
}
.v2fee-opts--stack .v2fee-opt__face {
    justify-content: flex-start;
    text-align: right;
}

/* ---------- Verdict card (tool 02 result) ---------- */

.v2fee-verd {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--mist);
    padding: 16px 18px;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .28s ease, transform .28s ease;
}
.v2fee-verd.is-on { opacity: 1; transform: none; }

.v2fee-verd__top {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 13px;
}
.v2fee-verd__badge {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.25;
    padding: 7px 14px;
    border-radius: 10px;
}
.v2fee-verd__badge.is-yes     { background: var(--fee); color: #fff; }
.v2fee-verd__badge.is-no      { background: #B91C1C; color: #fff; }
.v2fee-verd__badge.is-unknown { background: #475569; color: #fff; }

.v2fee-verd__quote {
    margin: 0 0 13px;
    padding: 11px 15px;
    border-right: 3px solid var(--fee);
    background: var(--paper);
    border-radius: 10px 0 0 10px;
}
/* The guard described in the block comment above. */
.v2fee-verd__quote[hidden] { display: none; }

.v2fee-verd__quote p {
    margin: 0 0 5px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--ink);
    font-style: italic;
}
.v2fee-verd__quote cite {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--faint);
}

.v2fee-verd__detail {
    margin: 0 0 13px;
    font-size: 14px;
    line-height: 1.7;
    color: var(--slate);
}

.v2fee-verd__act {
    border-top: 1px solid var(--line);
    padding-top: 12px;
}
.v2fee-verd__act-label {
    margin: 0 0 5px;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--fee-deep);
}
.v2fee-verd__act p {
    margin: 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--ink);
}

/* ---------- 768px ---------- */

@media (max-width: 768px) {
    .v2fee-verd { padding: 14px 15px; }
    .v2fee-verd__badge { font-size: 17px; padding: 6px 12px; }
    .v2fee-verd__detail,
    .v2fee-verd__act p { font-size: 13.5px; }
}

/* ---------- 480px ---------- */

@media (max-width: 480px) {
    .v2fee-verdict { font-size: 12px; padding: 4px 9px; white-space: normal; }
    .v2fee-verd__top { gap: 8px; margin-bottom: 11px; }
    .v2fee-verd__badge { font-size: 16px; }
    .v2fee-verd__quote { padding: 10px 13px; }
    .v2fee-verd__quote p { font-size: 14px; }
}

/* ---------- 390px ---------- */

@media (max-width: 390px) {
    .v2fee-verd { padding: 13px 12px; }
    .v2fee-verd__badge { font-size: 15px; padding: 6px 11px; }
    .v2fee-verd__detail,
    .v2fee-verd__act p { font-size: 13px; }
}

/* ---------- Batch 4: fee horizon slider + versus panels ---------- */

.v2cst-slider { margin-bottom: 20px; }
.v2cst-slider label {
    display: block;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
}
.v2cst-slider input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    width: 100%;
    height: 44px;              /* 44px of hit area around a 6px track */
    background: transparent;
    cursor: pointer;
    margin: 0;
}
.v2cst-slider input[type="range"]::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 4px;
    background: var(--line);
}
.v2cst-slider input[type="range"]::-moz-range-track {
    height: 6px;
    border-radius: 4px;
    background: var(--line);
}
.v2cst-slider input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    margin-top: -9px;
    border-radius: 50%;
    background: var(--cst-a);
    border: 3px solid var(--paper);
    box-shadow: 0 2px 8px -2px rgba(10, 16, 23, .45);
}
.v2cst-slider input[type="range"]::-moz-range-thumb {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--cst-a);
    border: 3px solid var(--paper);
    box-shadow: 0 2px 8px -2px rgba(10, 16, 23, .45);
}
.v2cst-slider input[type="range"]:focus-visible { outline: 2px solid var(--cst-deep); outline-offset: 4px; }
.v2cst-slider__val { margin: 8px 0 0; font-size: 12.5px; color: var(--cst-deep); font-weight: 700; }

.v2cst-vs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

.v2cst-vs__side {
    padding: 15px 16px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    min-width: 0;
}
.v2cst-vs__side.is-g { border-color: var(--cst-edge); background: var(--cst-tint); }

.v2cst-vs__name { margin: 0 0 6px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.v2cst-vs__num {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 30px;
    line-height: 1;
    font-weight: 700;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2cst-vs__side.is-g .v2cst-vs__num { color: var(--cst-deep); }

.v2cst-vs__bar { height: 8px; border-radius: 5px; background: var(--line); overflow: hidden; }
.v2cst-vs__bar i { display: block; height: 100%; border-radius: 5px; background: var(--slate); transition: width .25s ease; }
.v2cst-vs__side.is-g .v2cst-vs__bar i { background: var(--cst-a); }

.v2cst-vs__sub { margin: 8px 0 0; font-size: 12px; line-height: 1.5; color: var(--faint); }

.v2cst-vs__foot {
    margin: 14px 0 0;
    padding-top: 13px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}

@media (prefers-reduced-motion: reduce) {
    .v2cst-vs__bar i { transition: none; }
}

@media (max-width: 480px) {
    .v2cst-vs { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2cst-vs__num { font-size: 26px; }
    .v2cst-vs__side { padding: 13px 14px 12px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 4: payment section
   Only two additions: a wider min-width for the symptom table,
   whose middle column carries a full sentence, and inline
   confidence pills that have to sit legibly inside a table cell
   next to running text.
   ============================================================ */

.v2fee-table--sym { min-width: 680px; }
.v2fee-table--sym tbody th { font-weight: 600; font-size: 13.5px; }

/* Two pills can appear in one cell ("Verified route, Reported
   pattern"), so they need to breathe without forcing the row taller. */
.v2fee-table td .v2fee-conf { margin: 1px 0 1px 2px; }

@media (max-width: 480px) {
    .v2fee-table--sym,
    .v2fee-table--refund { min-width: 560px; }
    .v2fee-table--sym tbody th,
    .v2fee-table--refund tbody th { font-size: 13px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 5: the fact sections
   Fact box, the verbatim Google quote block, the accurate /
   not-supported columns, and the five-step publish flow.

   The flow is the one component here that could have been a
   horizontal scroller. It is not: five short steps read better
   stacked on a phone than swiped, so below 768px the row becomes
   a column and the arrows rotate a quarter turn rather than the
   whole thing sliding sideways. Nothing is hidden at any width.
   ============================================================ */

/* ---------- Fact box ---------- */

.v2fee-box {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    overflow: hidden;
    margin: 24px 0;
    box-shadow: 0 8px 26px rgba(10, 16, 23, .05);
}
.v2fee-box__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: var(--ink);
}
.v2fee-box__tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 11px;
    color: #fff;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-box__tag svg { width: 16px; height: 16px; color: #6EE7D5; flex: none; }
.v2fee-box__stamp {
    font-size: 10.5px;
    color: #6EE7D5;
    background: rgba(110, 231, 213, .12);
    border-radius: 999px;
    padding: 4px 10px;
}

.v2fee-box__grid { margin: 0; padding: 0; }
.v2fee-box__row {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 16px;
    padding: 13px 18px;
    border-bottom: 1px solid var(--line);
}
.v2fee-box__row:last-child { border-bottom: 0; }
.v2fee-box__row dt {
    margin: 0;
    font-size: 13px;
    color: var(--slate);
    font-weight: 500;
}
.v2fee-box__row dd {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2fee-box__row dd b {
    color: var(--fee-deep);
    font-weight: 700;
}

/* ---------- Verbatim Google quote ---------- */

.v2fee-quote {
    margin: 24px 0;
    padding: 20px 24px;
    background: var(--fee-tint);
    border-right: 4px solid var(--fee);
    border-radius: 14px 0 0 14px;
}
.v2fee-quote p {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 21px;
    line-height: 1.45;
    color: var(--fee-deep);
    font-weight: 600;
}
.v2fee-quote cite {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .04em;
    color: var(--slate);
}

/* ---------- Accurate / not supported columns ---------- */

.v2fee-dd {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 24px 0;
}
.v2fee-dd__col {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    background: var(--paper);
}
.v2fee-dd__col.is-do { border-top: 3px solid var(--fee); }
.v2fee-dd__col.is-dont { border-top: 3px solid #B91C1C; }

.v2fee-dd__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 11px;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-dd__tag svg { width: 16px; height: 16px; flex: none; }
.v2fee-dd__col.is-do .v2fee-dd__tag { color: var(--fee-deep); }
.v2fee-dd__col.is-dont .v2fee-dd__tag { color: #B91C1C; }

.v2fee-dd__col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2fee-dd__col li {
    position: relative;
    padding: 7px 16px 7px 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px dashed var(--line);
}
.v2fee-dd__col li:last-child { border-bottom: 0; }
.v2fee-dd__col li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 15px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}
.v2fee-dd__col.is-do li::before { background: var(--fee); }
.v2fee-dd__col.is-dont li::before { background: #B91C1C; }

/* ---------- Publish flow ---------- */

.v2fee-flow {
    display: flex;
    align-items: stretch;
    gap: 6px;
    margin: 26px 0;
}
.v2fee-flow__step {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 12px;
}
.v2fee-flow__step.is-key {
    background: var(--fee-tint);
    border-color: rgba(15, 118, 110, .3);
}
.v2fee-flow__n {
    font-size: 10px;
    color: var(--faint);
    letter-spacing: .08em;
}
.v2fee-flow__step.is-key .v2fee-flow__n { color: var(--fee); }
.v2fee-flow__step b {
    font-family: var(--font-display);
    font-size: 15px;
    color: var(--ink);
    font-weight: 700;
    line-height: 1.3;
}
.v2fee-flow__step.is-key b { color: var(--fee-deep); }
.v2fee-flow__step em {
    font-style: normal;
    font-size: 12px;
    line-height: 1.5;
    color: var(--slate);
}

.v2fee-flow__arrow {
    display: flex;
    align-items: center;
    flex: 0 0 18px;
    color: var(--fee-dead);
}
.v2fee-flow__arrow svg { width: 18px; height: 18px; }

/* ---------- 900px ---------- */

@media (max-width: 900px) {
    .v2fee-box__row { grid-template-columns: 180px 1fr; }
    .v2fee-flow__step b { font-size: 14px; }
    .v2fee-flow__step em { font-size: 11.5px; }
}

/* ---------- 768px: main collapse ---------- */

@media (max-width: 768px) {
    .v2fee-box { margin: 20px 0; }
    .v2fee-box__row {
        grid-template-columns: 1fr;
        gap: 3px;
        padding: 12px 15px;
    }
    .v2fee-box__row dt { font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }

    .v2fee-quote { padding: 17px 18px; margin: 20px 0; }
    .v2fee-quote p { font-size: 18.5px; }

    .v2fee-dd { grid-template-columns: 1fr; gap: 10px; margin: 20px 0; }

    /* Stacked flow: the arrows rotate rather than the row scrolling. */
    .v2fee-flow {
        flex-direction: column;
        gap: 4px;
        margin: 22px 0;
    }
    .v2fee-flow__step { flex: none; }
    .v2fee-flow__arrow {
        flex: none;
        justify-content: center;
        transform: rotate(-90deg);
        height: 18px;
    }
}

/* ---------- 480px ---------- */

@media (max-width: 480px) {
    .v2fee-box__head { padding: 12px 15px; gap: 8px; }
    .v2fee-box__row dd { font-size: 14px; }
    .v2fee-quote { padding: 15px 16px; }
    .v2fee-quote p { font-size: 17px; }
    .v2fee-quote cite { font-size: 10.5px; }
    .v2fee-dd__col { padding: 14px 15px; }
    .v2fee-dd__col li { font-size: 13.5px; }
    .v2fee-flow__step { padding: 12px 13px; }
}

/* ---------- 390px ---------- */

@media (max-width: 390px) {
    .v2fee-box__stamp { font-size: 9.5px; padding: 3px 8px; }
    .v2fee-box__row { padding: 11px 13px; }
    .v2fee-quote p { font-size: 16px; }
    .v2fee-dd__col { padding: 13px 13px; }
    .v2fee-flow__step b { font-size: 13.5px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 6: the decay block
   Last component on the page and the only one left without
   scoped styling. Same shape as the sibling posts' decay
   blocks so the reading experience stays consistent across
   the cluster, in this post's accent.
   ============================================================ */

/* ---------- Bottom-line CTA ---------- */
/* Sits directly under the Bottom Line box and holds the offer that used to
   end that box's summary paragraph. Visually quieter than the summary and
   clearly a separate object, which is the whole point: the factual capsule
   stays quotable and the pitch stays visible. */
.v2fee-close-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin: 14px 0 0;
    padding: 16px 20px;
    border: 1px solid var(--line);
    border-radius: 15px;
    background: var(--fee-tint);
}
.v2fee-prose .v2fee-close-cta p {
    margin: 0;
    flex: 1 1 260px;
    min-width: 0;
    font-size: 15px;
    line-height: 1.65;
    color: var(--ink);
}
.v2fee-close-cta .v2-btn { flex: none; }

@media (max-width: 480px) {
    .v2fee-close-cta { padding: 15px 16px; }
    .v2fee-close-cta .v2-btn { width: 100%; justify-content: center; }
}

.v2fee-decay {
    border: 1px dashed var(--line);
    border-radius: 15px;
    background: var(--mist);
    padding: 18px 20px 16px;
    margin: 26px 0 0;
}
.v2fee-decay__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 12px;
    font-size: 11px;
    color: var(--fee-deep);
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-decay__tag svg { width: 15px; height: 15px; flex: none; }

.v2fee-decay__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2fee-decay__list li {
    position: relative;
    padding: 9px 17px 9px 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2fee-decay__list li:last-child { border-bottom: 0; }
.v2fee-decay__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 17px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--fee);
}
.v2fee-decay__list b { color: var(--ink); font-weight: 650; }

.v2fee-decay__foot {
    margin: 13px 0 0;
    padding-top: 11px;
    border-top: 1px solid var(--line);
    font-size: 11px;
    line-height: 1.6;
    color: var(--faint);
}

/* ---------- Correction history ---------- */
/* Sits under the decay block. Shows what this page got wrong and when
   it was fixed, rather than overwriting a claim a reader may have acted
   on. Newest first. */
.v2fee-hist {
    border: 1px solid var(--line);
    border-radius: 15px;
    padding: 18px 20px 14px;
    margin: 18px 0 0;
}
.v2fee-hist__tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 12px;
    font-size: 11px;
    color: var(--faint);
    letter-spacing: .05em;
    text-transform: uppercase;
}
.v2fee-hist__tag svg { width: 15px; height: 15px; flex: none; }

.v2fee-prose .v2fee-hist__list {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: none;
}
.v2fee-prose .v2fee-hist__list li {
    margin: 0;
    padding: 11px 0;
    border-top: 1px solid var(--line);
}
.v2fee-hist__list li::marker { content: none; }
.v2fee-hist__date {
    display: block;
    margin-bottom: 5px;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--fee);
}
.v2fee-prose .v2fee-hist__list p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2fee-hist__list b { color: var(--ink); font-weight: 650; }

@media (max-width: 560px) {
    .v2fee-hist { padding: 16px 15px 12px; }
}

@media (max-width: 768px) {
    .v2fee-decay { padding: 16px 15px 14px; }
    .v2fee-decay__list li { font-size: 13.5px; }
}

@media (max-width: 480px) {
    .v2fee-decay__list li { font-size: 13px; padding: 8px 15px 8px 0; }
    .v2fee-decay__foot { font-size: 10.5px; }
}

@media (max-width: 390px) {
    .v2fee-decay { padding: 14px 12px 12px; }
}

/* ============= END BLOG FEE V2 ============= */

/* ============================================================
   BLOG MTR V2  -  "More Testing Required on Google Play: How to
   Reapply"  (/blog/more-testing-required-google-play)

   Rides the shared v2gpr- article layer (rail, chips, H2 counter,
   callout family, tool shell, FAQ, bottom line, docs, author,
   related, CTA) and adds a unique v2mtr- motif: THE RETURNED
   ENVELOPE.

   The accent is ember (#C2410C), used by no other post in this
   suite. It was chosen because this page meets the reader at a
   returned letter rather than at an alarm: nothing is broken,
   nothing is banned, something came back and has to go out again.
   True red is reserved here for the two genuinely destructive
   actions the post exists to prevent - asking testers to opt out
   and rejoin, and abandoning a qualifying track.

   Four confidence grades carry the whole design, and they are the
   dossier's, not a visual choice:
     verified   Google publishes it, on a cited Help Center page
     partial    a denial message reproduced by a developer, or a
                mechanic Google never documented either way
     reported   community evidence only, never a Google rule
     folklore   circulating as fact with no primary source at all

   Mobile first throughout. Every grid on this page starts at one
   column and gains columns at 620, 760 or 900px; the two real
   tables scroll inside their own wrapper with a min-width track
   rather than forcing the page to scroll.

   BATCH 1 of 4: tokens, block reset, hero + the denial fork,
   grades, quick answer, the recovery desk, section furniture
   (answer capsule, quote, table wrapper, mini lists) and the two
   scoped shared-layer repairs.
   ============================================================ */

/* Block-scoped reset (the base reset skips lists and figures) */
.v2mtr-prose ul, .v2mtr-prose ol,
.v2mtr-fork__arms, .v2mtr-desk__grid, .v2mtr-two, .v2mtr-mini,
.v2mtr-steps, .v2mtr-sym, .v2mtr-route, .v2mtr-claims,
.v2mtr-docs__list, .v2mtr-ev, .v2mtr-chk {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ---------- Accent tokens (scoped, never global) ---------- */

.v2mtr-hero, .v2mtr-prose {
    --mtr-a: #C2410C;
    --mtr-a-deep: #9A3412;
    --mtr-tint: #FFF4ED;
    --mtr-line: rgba(194, 65, 12, 0.22);
    --mtr-ink: #1B1917;
    --mtr-mute: #6B625C;
    --mtr-stop: #B42318;
    --mtr-stop-tint: #FEF3F2;
    --mtr-go: #0E7A4F;
    --mtr-go-tint: #ECFAF3;
    --mtr-cool: #3F5A73;
    --mtr-cool-tint: #F1F5F9;
}

.v2mtr-eyebrow { color: var(--mtr-a); }

/* ---------- Confidence grades ----------

   Present on every load-bearing claim on the page. A reader must be
   able to tell, without leaving the sentence, whether Google
   published the fact or whether a forum did. */

.v2mtr-grade {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 10.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid transparent;
    white-space: normal;
}
.v2mtr-grade::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 auto;
}
.v2mtr-grade.is-verified { color: #0E7A4F; background: var(--mtr-go-tint); border-color: rgba(14, 122, 79, .24); }
.v2mtr-grade.is-partial  { color: var(--mtr-a-deep); background: var(--mtr-tint); border-color: var(--mtr-line); }
.v2mtr-grade.is-reported { color: var(--mtr-cool); background: var(--mtr-cool-tint); border-color: rgba(63, 90, 115, .24); }
.v2mtr-grade.is-folklore { color: var(--mtr-stop); background: var(--mtr-stop-tint); border-color: rgba(180, 35, 24, .22); }
/* Fifth grade, added 2026-08-17. The audit's central correction was that
   several same-track / keep-the-track statements are PrimeTestLab's
   risk-minimising inference rather than anything Google published, and the
   four grades above had no slot for that: "partial" reads as reproduced
   Google wording and "reported" reads as a forum. Deliberately off the
   ember/green/red axis so it cannot be mistaken for an evidence tier. */
.v2mtr-grade.is-inference { color: #6D4AA8; background: #F6F2FD; border-color: rgba(109, 74, 168, .24); }

/* ---------- Hero ---------- */

.v2mtr-hero .v2gpr-hero__title { max-width: 20ch; }

.v2mtr-facts .v2gpr-fact b { color: var(--mtr-a-deep); }

/* ---------- THE DENIAL FORK (hero signature) ----------

   Phone layout is the real layout: a single column of stacked
   cards with a hairline spine. The horizontal fork arms are a
   progressive enhancement that only exists from 760px, so nothing
   here can ever clip on a narrow screen. */

.v2mtr-fork {
    margin-top: 26px;
    background: #FFFFFF;
    border: 1px solid rgba(24, 24, 27, .10);
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 18px 44px -30px rgba(24, 24, 27, .45);
    max-width: 100%;
}

.v2mtr-fork__head {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 14px;
    border-bottom: 1px dashed rgba(24, 24, 27, .16);
}
.v2mtr-fork__env {
    flex: 0 0 auto;
    width: 44px;
    height: 32px;
    color: var(--mtr-a);
}
.v2mtr-fork__env svg { width: 100%; height: 100%; display: block; }
.v2mtr-fork__from {
    margin: 0 0 3px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mtr-mute);
}
.v2mtr-fork__subj {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--mtr-ink);
    overflow-wrap: anywhere;
}

.v2mtr-fork__law {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mtr-go-tint);
    border: 1px solid rgba(14, 122, 79, .18);
}
.v2mtr-fork__law p {
    margin: 8px 0 0;
    font-size: 14px;
    line-height: 1.65;
    color: #26302B;
}
.v2mtr-fork__law b { color: #0B5F3E; }

/* The spine. On phones it is a short vertical hairline between the
   Help Center card and the two variant cards. */
.v2mtr-fork__stem {
    width: 2px;
    height: 18px;
    margin: 0 auto;
    background: var(--mtr-line);
}

.v2mtr-fork__arms {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.v2mtr-fork__arm {
    position: relative;
    padding: 14px;
    border-radius: 14px;
    background: #FCFBFA;
    border: 1px solid rgba(24, 24, 27, .10);
}
.v2mtr-fork__arm.is-key {
    background: var(--mtr-tint);
    border-color: var(--mtr-line);
}
.v2mtr-fork__when {
    margin: 0 0 9px;
    font-size: 10.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--mtr-mute);
}
.v2mtr-fork__quote {
    margin: 0 0 11px;
    padding: 0 12px 0 0;
    border-right: 3px solid var(--mtr-a);
    font-size: 14.5px;
    line-height: 1.6;
    font-style: italic;
    color: var(--mtr-ink);
    overflow-wrap: anywhere;
}
.v2mtr-fork__then {
    margin: 0 0 11px;
    font-size: 14px;
    line-height: 1.6;
    color: #3A3532;
}
.v2mtr-fork__then span {
    display: block;
    font-size: 10.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--mtr-a-deep);
    margin-bottom: 3px;
}

.v2mtr-fork__foot {
    margin: 14px 0 0;
    padding-top: 13px;
    border-top: 1px dashed rgba(24, 24, 27, .16);
    font-size: 13.5px;
    line-height: 1.65;
    color: var(--mtr-mute);
}

/* Entrance choreography, only when the shell adds .v2-anim */
.v2mtr-hero.v2-anim .v2mtr-fork {
    opacity: 0;
    transform: translateY(14px);
}
.v2mtr-hero.v2-anim.is-in .v2mtr-fork {
    opacity: 1;
    transform: none;
    transition: opacity .5s ease .1s, transform .5s ease .1s;
}

@media (min-width: 760px) {
    .v2mtr-fork { padding: 22px 24px; }
    .v2mtr-fork__subj { font-size: 17px; }
    .v2mtr-fork__arms {
        grid-template-columns: 1fr 1fr;
        gap: 18px;
        position: relative;
        padding-top: 14px;
    }
    /* The fork arms: one horizontal bar spanning the two column
       centres, drawn only where there is room for it. */
    .v2mtr-fork__arms::before {
        content: "";
        position: absolute;
        top: 0;
        right: 25%;
        left: 25%;
        height: 2px;
        background: var(--mtr-line);
    }
    .v2mtr-fork__arm::before {
        content: "";
        position: absolute;
        top: -14px;
        right: 50%;
        width: 2px;
        height: 14px;
        background: var(--mtr-line);
    }
}

@media (max-width: 480px) {
    .v2mtr-fork { padding: 13px; border-radius: 15px; }
    .v2mtr-fork__env { width: 36px; height: 26px; }
    .v2mtr-fork__subj { font-size: 14px; }
    .v2mtr-fork__quote { font-size: 13.5px; }
    .v2mtr-fork__foot { font-size: 12.5px; }
}

@media (max-width: 390px) {
    .v2mtr-fork { padding: 11px; }
    .v2mtr-fork__head { gap: 9px; }
    .v2mtr-fork__law { padding: 10px 11px; }
    .v2mtr-fork__arm { padding: 12px; }
}

/* ---------- Quick answer + recovery desk ---------- */

.v2mtr-qa .is-go { color: #FFC9A8; }

.v2mtr-desk {
    margin: 30px 0;
    border-radius: 18px;
    border: 1px solid var(--mtr-line);
    background: linear-gradient(-180deg, var(--mtr-tint) 0%, #FFFFFF 62%);
    padding: 18px;
}
.v2mtr-desk__head { margin-bottom: 14px; }
.v2mtr-desk__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 7px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--mtr-a-deep);
}
.v2mtr-desk__tag svg { width: 17px; height: 17px; flex: 0 0 auto; }
.v2mtr-desk__sub {
    margin: 0;
    font-size: 14px;
    line-height: 1.65;
    color: var(--mtr-mute);
}
.v2mtr-desk__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.v2mtr-desk__item {
    display: block;
    padding: 14px;
    border-radius: 13px;
    background: #FFFFFF;
    border: 1px solid rgba(24, 24, 27, .09);
    text-decoration: none;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
    min-height: 44px;
}
.v2mtr-desk__item span {
    display: block;
    font-size: 11px;
    color: var(--mtr-a);
    margin-bottom: 5px;
    letter-spacing: .06em;
}
.v2mtr-desk__item b {
    display: block;
    font-size: 15px;
    color: var(--mtr-ink);
    margin-bottom: 3px;
}
.v2mtr-desk__item em {
    display: block;
    font-style: normal;
    font-size: 13px;
    line-height: 1.55;
    color: var(--mtr-mute);
}
.v2mtr-desk__item:hover,
.v2mtr-desk__item:focus-visible {
    border-color: var(--mtr-a);
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -22px rgba(194, 65, 12, .8);
}

.v2mtr-desk.v2-anim .v2mtr-desk__item { opacity: 0; transform: translateY(10px); }
.v2mtr-desk.v2-anim.is-in .v2mtr-desk__item {
    opacity: 1;
    transform: none;
    transition: opacity .45s ease, transform .45s ease;
}
.v2mtr-desk.v2-anim.is-in .v2mtr-desk__item:nth-child(2) { transition-delay: .08s; }
.v2mtr-desk.v2-anim.is-in .v2mtr-desk__item:nth-child(3) { transition-delay: .16s; }

@media (min-width: 760px) {
    .v2mtr-desk { padding: 24px; }
    .v2mtr-desk__grid { grid-template-columns: repeat(3, 1fr); gap: 12px; }
}

@media (max-width: 480px) {
    .v2mtr-desk { padding: 15px; border-radius: 15px; }
    .v2mtr-desk__item { padding: 12px; }
    .v2mtr-desk__item b { font-size: 14.5px; }
}

@media (max-width: 390px) {
    .v2mtr-desk { padding: 13px; margin: 24px 0; }
    .v2mtr-desk__sub { font-size: 13.5px; }
}

/* ---------- Section furniture ----------

   The answer capsule that opens every H2, the verbatim Google
   quote, the table wrapper and the small two-column do/do-not
   block. All shared by the section partials. */

.v2mtr-ans {
    margin: 0 0 20px;
    padding: 14px 16px;
    border-right: 3px solid var(--mtr-a);
    border-radius: 12px 0 0 12px;
    background: var(--mtr-tint);
}
.v2mtr-prose .v2mtr-ans p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.72;
    color: #3A3532;
    font-weight: 500;
}
.v2mtr-prose .v2mtr-ans p + p { margin-top: 9px; }

.v2mtr-quote {
    margin: 22px 0;
    padding: 16px 18px;
    border-radius: 14px;
    background: #FBFAF9;
    border: 1px solid rgba(24, 24, 27, .10);
    border-right: 4px solid var(--mtr-a);
}
.v2mtr-prose .v2mtr-quote p {
    margin: 0;
    font-size: 16px;
    line-height: 1.7;
    font-style: italic;
    color: var(--mtr-ink);
}
.v2mtr-quote cite {
    display: block;
    margin-top: 10px;
    font-style: normal;
    font-size: 12.5px;
    color: var(--mtr-mute);
}
.v2mtr-quote cite a { color: var(--mtr-a-deep); }

/* Wide blocks scroll inside their own wrapper, never the page. */
.v2mtr-scroll {
    margin: 22px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-radius: 14px;
    border: 1px solid rgba(24, 24, 27, .10);
}
.v2mtr-scroll::-webkit-scrollbar { display: none; }

.v2mtr-table {
    width: 100%;
    min-width: 620px;
    border-collapse: collapse;
    font-size: 14px;
    background: #FFFFFF;
}
.v2mtr-table th,
.v2mtr-table td {
    padding: 11px 13px;
    text-align: right;
    vertical-align: top;
    line-height: 1.6;
    border-bottom: 1px solid rgba(24, 24, 27, .08);
}
.v2mtr-table thead th {
    background: var(--mtr-tint);
    color: var(--mtr-a-deep);
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 700;
    white-space: nowrap;
}
.v2mtr-table tbody th {
    font-weight: 600;
    color: var(--mtr-ink);
    background: #FDFCFB;
}
.v2mtr-table tbody tr:last-child th,
.v2mtr-table tbody tr:last-child td { border-bottom: 0; }
.v2mtr-table td { color: #4B4540; }
.v2mtr-table code { overflow-wrap: anywhere; }

.v2mtr-scrollhint {
    margin: -14px 0 22px;
    font-size: 11.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--mtr-mute);
}

/* Two-column do / do-not block */
.v2mtr-two {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 22px 0;
}
.v2mtr-two__col {
    padding: 15px 16px;
    border-radius: 14px;
    border: 1px solid rgba(24, 24, 27, .10);
    background: #FFFFFF;
}
.v2mtr-two__col.is-do { background: var(--mtr-go-tint); border-color: rgba(14, 122, 79, .2); }
.v2mtr-two__col.is-dont { background: var(--mtr-stop-tint); border-color: rgba(180, 35, 24, .2); }
.v2mtr-two__tag {
    margin: 0 0 10px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
}
.v2mtr-two__col.is-do .v2mtr-two__tag { color: #0B5F3E; }
.v2mtr-two__col.is-dont .v2mtr-two__tag { color: var(--mtr-stop); }
.v2mtr-prose .v2mtr-two__col ul { display: grid; gap: 9px; }
.v2mtr-prose .v2mtr-two__col li {
    position: relative;
    padding-right: 20px;
    font-size: 14px;
    line-height: 1.6;
    color: #3A3532;
}
.v2mtr-prose .v2mtr-two__col li::before {
    position: absolute;
    right: 0;
    top: 0;
    font-weight: 700;
}
.v2mtr-two__col.is-do li::before { content: "+"; color: #0B5F3E; }
.v2mtr-two__col.is-dont li::before { content: "x"; color: var(--mtr-stop); }

@media (min-width: 760px) {
    .v2mtr-two { grid-template-columns: 1fr 1fr; gap: 16px; }
}

@media (max-width: 480px) {
    .v2mtr-ans { padding: 12px 13px; }
    .v2mtr-prose .v2mtr-ans p { font-size: 15px; }
    .v2mtr-quote { padding: 14px; }
    .v2mtr-prose .v2mtr-quote p { font-size: 15px; }
    .v2mtr-two__col { padding: 13px 14px; }
}

/* ---------- Sticky mobile CTA: scoped overflow repair ----------

   Same shared-layer behaviour already repaired on the cal, pts and
   reg posts: .v2-faq__wa resolves to flex: 1 0 100% (it is a
   full-width button in its FAQ home) and the shared .v2gpr-scta
   rule resets flex-shrink without resetting that 100% basis, so on
   a 390px viewport the WhatsApp button runs past the right edge and
   the pricing button collapses to an unlabelled square. Repaired
   for this post only: changing the shared rule would move the
   layout of every V2 blog at once. */

.v2 .v2mtr-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2mtr-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2mtr-scta { padding-right: 10px; padding-left: 10px; }
    .v2 .v2mtr-scta .v2-btn { font-size: 14px; }
    .v2 .v2mtr-scta .v2-faq__wa { padding-right: 13px; padding-left: 13px; }
}

/* Shared tool shell repair, scoped: .v2gpr-tool__empty sets
   display:flex, which outranks the user-agent [hidden] rule, so a
   widget toggling the attribute in JS would leave its placeholder
   stacked above its own results. Same fix the its and reg posts
   carry. */
.v2mtr-prose .v2gpr-tool__empty[hidden],
.v2mtr-prose [hidden] { display: none !important; }

/* ============================================================
   BLOG MTR V2 - BATCH 2 of 4: the evidence tier list, the shared
   button, and INSTRUMENT 01 (the Denial Decoder).

   The decoder is designed for a thumb first. The textarea is full
   width at every size, the phrase chips wrap into as many rows as
   they need with 44px touch targets, the two verdict columns are
   stacked below 620px, and the action row goes full width on
   phones so neither button can end up a 30px tap target beside a
   wide one.
   ============================================================ */

/* ---------- Evidence tiers (the source ladder in section 01) ---------- */

.v2mtr-ev {
    display: grid;
    gap: 10px;
    margin: 22px 0;
    counter-reset: none;
}
.v2mtr-prose .v2mtr-ev li {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 14px 15px;
    border-radius: 13px;
    background: #FCFBFA;
    border: 1px solid rgba(24, 24, 27, .09);
}
.v2mtr-ev b {
    display: block;
    font-size: 14.5px;
    color: var(--mtr-ink);
    margin-bottom: 4px;
}
.v2mtr-prose .v2mtr-ev p {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.62;
    color: var(--mtr-mute);
}
.v2mtr-ev .v2mtr-grade { justify-self: start; }

@media (min-width: 620px) {
    .v2mtr-prose .v2mtr-ev li {
        grid-template-columns: 92px 1fr;
        gap: 16px;
        align-items: start;
    }
}

/* ---------- Shared scoped button ---------- */

.v2 .v2mtr-btn {
    -webkit-appearance: none;
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 11px 18px;
    border-radius: 11px;
    border: 1px solid rgba(24, 24, 27, .16);
    background: #FFFFFF;
    color: var(--mtr-ink);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.v2 .v2mtr-btn:hover { border-color: var(--mtr-a); color: var(--mtr-a-deep); }
.v2 .v2mtr-btn.is-primary {
    background: var(--mtr-a);
    border-color: var(--mtr-a);
    color: #FFFFFF;
}
.v2 .v2mtr-btn.is-primary:hover { background: var(--mtr-a-deep); border-color: var(--mtr-a-deep); color: #FFFFFF; }
.v2 .v2mtr-btn.is-done { background: var(--mtr-go); border-color: var(--mtr-go); color: #FFFFFF; }
.v2 .v2mtr-btn:focus-visible,
.v2 .v2mtr-dec__chip:focus-visible,
.v2mtr-dec__in:focus-visible {
    outline: 2px solid var(--mtr-a);
    outline-offset: 2px;
}

/* ---------- INSTRUMENT 01: Denial Decoder ---------- */

.v2mtr-dec__lab {
    display: block;
    margin: 0 0 8px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--mtr-ink);
}
.v2mtr-dec__in {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border-radius: 12px;
    border: 1px solid rgba(24, 24, 27, .18);
    background: #FFFFFF;
    color: var(--mtr-ink);
    font: inherit;
    font-size: 14.5px;
    line-height: 1.6;
    resize: vertical;
    min-height: 112px;
    overflow-wrap: anywhere;
}
.v2mtr-dec__in::placeholder { color: #A39B95; }

.v2mtr-dec__or {
    margin: 14px 0 9px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mtr-mute);
}

.v2 .v2mtr-dec__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.v2 .v2mtr-dec__chip {
    -webkit-appearance: none;
    appearance: none;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(24, 24, 27, .16);
    background: #FFFFFF;
    color: #4B4540;
    font: inherit;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.25;
    text-align: right;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.v2 .v2mtr-dec__chip:hover { border-color: var(--mtr-a); }
.v2 .v2mtr-dec__chip[aria-pressed="true"] {
    background: var(--mtr-a);
    border-color: var(--mtr-a);
    color: #FFFFFF;
}

.v2mtr-dec__acts {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
}
.v2mtr-dec__priv {
    margin: 10px 0 0;
    font-size: 11px;
    letter-spacing: .04em;
    color: var(--mtr-mute);
}

.v2mtr-dec__out { margin-top: 16px; }

.v2mtr-dec__verdict {
    padding: 14px 15px;
    border-radius: 13px;
    background: var(--mtr-tint);
    border: 1px solid var(--mtr-line);
}
.v2mtr-dec__vtag {
    margin: 0 0 5px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mtr-a-deep);
}
.v2mtr-prose .v2mtr-dec__vname {
    margin: 0 0 9px;
    font-size: 19px;
    font-weight: 700;
    line-height: 1.28;
    color: var(--mtr-ink);
}

.v2mtr-dec__cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 12px;
}
.v2mtr-dec__col {
    padding: 13px 14px;
    border-radius: 13px;
    border: 1px solid rgba(24, 24, 27, .10);
    background: #FFFFFF;
}
.v2mtr-dec__col.is-proves { background: var(--mtr-go-tint); border-color: rgba(14, 122, 79, .2); }
.v2mtr-dec__col.is-not { background: var(--mtr-stop-tint); border-color: rgba(180, 35, 24, .18); }
.v2mtr-dec__ctag {
    margin: 0 0 9px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--mtr-mute);
}
.v2mtr-dec__col.is-proves .v2mtr-dec__ctag { color: #0B5F3E; }
.v2mtr-dec__col.is-not .v2mtr-dec__ctag { color: var(--mtr-stop); }
.v2mtr-prose .v2mtr-dec__col ul,
.v2mtr-prose .v2mtr-dec__sig ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2mtr-prose .v2mtr-dec__col li,
.v2mtr-prose .v2mtr-dec__sig li {
    position: relative;
    padding-right: 18px;
    font-size: 13.5px;
    line-height: 1.6;
    color: #3A3532;
}
.v2mtr-prose .v2mtr-dec__col li::before,
.v2mtr-prose .v2mtr-dec__sig li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: .45;
}

.v2mtr-dec__next {
    margin-top: 12px;
    padding: 13px 14px;
    border-radius: 13px;
    background: #FBFAF9;
    border: 1px solid rgba(24, 24, 27, .10);
    border-right: 3px solid var(--mtr-a);
}
.v2mtr-prose .v2mtr-dec__next p:last-child {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.68;
    color: var(--mtr-ink);
    font-weight: 500;
}

.v2mtr-dec__sig {
    margin-top: 12px;
    padding: 13px 14px;
    border-radius: 13px;
    background: var(--mtr-cool-tint);
    border: 1px solid rgba(63, 90, 115, .18);
}
.v2mtr-dec__sig .v2mtr-dec__ctag { color: var(--mtr-cool); }

@media (min-width: 620px) {
    .v2mtr-dec__cols { grid-template-columns: 1fr 1fr; gap: 12px; }
}

@media (max-width: 620px) {
    .v2mtr-dec__acts { flex-direction: column; align-items: stretch; }
    .v2mtr-dec__acts .v2mtr-btn { width: 100%; }
}

@media (max-width: 480px) {
    .v2 .v2mtr-dec__chip { font-size: 13px; padding: 10px 12px; }
    .v2mtr-prose .v2mtr-dec__vname { font-size: 17px; }
    .v2mtr-dec__verdict,
    .v2mtr-dec__col,
    .v2mtr-dec__next,
    .v2mtr-dec__sig { padding: 12px; }
}

@media (max-width: 390px) {
    .v2mtr-dec__in { font-size: 14px; min-height: 104px; }
    .v2 .v2mtr-dec__chips { gap: 7px; }
    .v2 .v2mtr-dec__chip { font-size: 12.5px; padding: 10px 11px; }
    .v2mtr-prose .v2mtr-dec__vname { font-size: 16.5px; }
    .v2mtr-prose .v2mtr-ev li { padding: 12px; }
}

/* ---------- Batch 2: answer capsules, quote, tables, budget builder ---------- */

/* Answer capsule. A div wrapper rather than a bare class on a <p>, because
   .v2gpr-prose > p would otherwise win on specificity and render it at
   body size. */
.v2cst-ans {
    margin: 20px 0 24px;
    padding: 15px 18px;
    border-right: 3px solid var(--cst-a);
    border-radius: 12px 0 0 12px;
    background: linear-gradient(-90deg, var(--cst-tint), rgba(244, 249, 234, 0));
}
.v2cst-ans p { margin: 0; font-size: 16.5px; line-height: 1.7; color: var(--ink); font-weight: 500; }
.v2cst-ans p strong { color: var(--cst-deep); }

/* Verbatim Google quote */
.v2cst-quote {
    margin: 24px 0;
    padding: 20px 22px 16px;
    border: 1px solid var(--line);
    border-right: 4px solid var(--cst-a);
    border-radius: 14px 0 0 14px;
    background: var(--mist);
}
.v2cst-quote p {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 20px;
    line-height: 1.45;
    color: var(--ink);
    overflow-wrap: anywhere;
}
.v2cst-quote cite {
    display: block;
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--faint);
}

/* Wide table: scrolls inside its own wrapper, never the page. */
.v2cst-scroll {
    margin: 24px 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    scrollbar-width: none;
}
.v2cst-scroll::-webkit-scrollbar { display: none; }
.v2cst-scroll:focus-visible { outline: 2px solid var(--cst-a); outline-offset: 2px; }

.v2cst-tbl {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    font-size: 13.5px;
}
.v2cst-tbl thead th {
    position: sticky;
    top: 0;
    padding: 12px 14px;
    text-align: right;
    background: var(--cst-tint);
    color: var(--cst-deep);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--cst-edge);
    white-space: nowrap;
}
.v2cst-tbl tbody th {
    padding: 12px 14px;
    text-align: right;
    font-weight: 650;
    color: var(--ink);
    border-bottom: 1px solid var(--line);
    min-width: 190px;
}
.v2cst-tbl tbody td {
    padding: 12px 14px;
    color: var(--slate);
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}
.v2cst-tbl tbody td.is-num { white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--ink); }
.v2cst-tbl tbody tr:last-child th,
.v2cst-tbl tbody tr:last-child td { border-bottom: 0; }
.v2cst-tbl tbody tr.is-key { background: var(--cst-tint); }
.v2cst-tbl tbody tr.is-key td.is-num b { color: var(--cst-deep); font-size: 15px; }

.v2cst-pill {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 20px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .04em;
    white-space: nowrap;
}
.v2cst-pill.is-req { background: var(--cst-a); color: #fff; }
.v2cst-pill.is-opt { background: var(--mist); color: var(--slate); border: 1px solid var(--line); }
.v2cst-pill.is-out { background: var(--cst-warn-tint); color: var(--cst-warn); }

.v2cst-yn {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 700;
}
.v2cst-yn.is-yes { color: var(--cst-warn); }
.v2cst-yn.is-no  { color: var(--cst-a); }

/* Qualified so it beats .v2gpr-prose > p. */
.v2gpr-prose > p.v2cst-tblnote {
    margin: -10px 0 26px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--faint);
}

.v2cst-dd__h {
    margin: 0 0 10px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.v2gpr-dd__col.is-yes .v2cst-dd__h { color: var(--cst-deep); }
.v2gpr-dd__col.is-no .v2cst-dd__h { color: var(--cst-warn); }

/* ---------- Budget builder ---------- */

.v2cst-tool { margin: 30px 0; }
.v2cst-bb__intro { margin: 0 0 18px; font-size: 14px; line-height: 1.65; color: var(--slate); }

.v2cst-bb { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.v2cst-bb__q { border: 0; margin: 0; padding: 0; min-width: 0; }
.v2cst-bb__q legend {
    display: block;
    width: 100%;
    padding: 0;
    margin-bottom: 8px;
    font-size: 13.5px;
    font-weight: 650;
    color: var(--ink);
    line-height: 1.45;
}
.v2cst-bb__q legend span { color: var(--cst-a); margin-left: 6px; font-size: 11px; }

.v2cst-opts { display: flex; flex-wrap: wrap; gap: 6px; }

/* Native input hidden but focusable, pill face styled off :checked. Touch
   target stays at least 44px tall on phones via the 480 rule below. */
.v2cst-opt { display: block; min-width: 0; }
.v2cst-opt input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}
.v2cst-opt span {
    display: block;
    padding: 9px 13px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--paper);
    font-size: 13px;
    line-height: 1.35;
    color: var(--slate);
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease, color .14s ease;
}
.v2cst-opt:hover span { border-color: var(--cst-edge); background: var(--cst-tint); }
.v2cst-opt input:checked + span {
    border-color: var(--cst-a);
    background: var(--cst-a);
    color: #fff;
    font-weight: 600;
}
.v2cst-opt input:focus-visible + span {
    outline: 2px solid var(--cst-deep);
    outline-offset: 2px;
}

/* Inline price field inside question 07 of the budget builder. It reuses the
   .v2cst-num__f / .v2cst-num__in faces from instrument 02, and carries its own
   [hidden] rule so the toggle cannot be defeated by a display value inherited
   from a wider selector. */
.v2cst-bb__price { margin-top: 10px; max-width: 220px; }
.v2cst-bb__price[hidden] { display: none; }

/* ---------- The ledger ---------- */

.v2cst-ledger {
    margin-top: 20px;
    border: 1px solid var(--cst-edge);
    border-radius: 13px;
    background: var(--paper);
    overflow: hidden;
}
.v2cst-ledger__head {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: baseline;
    justify-content: space-between;
    padding: 11px 15px;
    background: var(--cst-tint);
    border-bottom: 1px solid var(--cst-edge);
}
.v2cst-ledger__head p { margin: 0; font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--cst-deep); }
.v2cst-ledger__head span { font-size: 11px; color: var(--faint); }

.v2cst-lrow {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 15px;
    border-bottom: 1px solid var(--line);
}
.v2cst-lrow:last-child { border-bottom: 0; }
.v2cst-lrow.is-google { background: var(--cst-tint); }
.v2cst-lrow.is-zero .v2cst-lrow__v { color: var(--faint); }

.v2cst-lrow__k { min-width: 0; flex: 1 1 auto; }
.v2cst-lrow__k b { display: inline; font-size: 14px; color: var(--ink); margin-left: 7px; }
.v2cst-lrow__k em {
    display: block;
    margin-top: 4px;
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--faint);
}
.v2cst-lrow__v {
    flex: none;
    font-family: var(--font-mono);
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    text-align: left;
    white-space: nowrap;
}

.v2cst-ev {
    display: inline-block;
    padding: 2px 7px;
    border-radius: 20px;
    border: 1px solid var(--line);
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
    vertical-align: 2px;
    white-space: nowrap;
}
.v2cst-ev.is-google { border-color: var(--cst-edge); background: var(--paper); color: var(--cst-deep); }

.v2cst-ledger__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 15px;
    background: var(--cst-a);
    color: #fff;
}
.v2cst-ledger__total span { font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; }
.v2cst-ledger__total b { font-size: 22px; font-family: var(--font-display); font-variant-numeric: tabular-nums; }

.v2cst-ledger__excl {
    margin: 0;
    padding: 11px 15px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--faint);
    background: var(--mist);
    border-top: 1px solid var(--line);
}

/* The time panel. Visually a different material from the ledger so the two
   are never read as one running total. */
.v2cst-clockpanel {
    margin-top: 14px;
    padding: 14px 16px 4px;
    border: 1px dashed var(--cst-time-edge);
    border-radius: 13px;
    background: var(--cst-time-tint);
}
.v2cst-clockpanel__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 8px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--cst-time);
}
.v2cst-clockpanel__tag svg { width: 15px; height: 15px; flex: none; }
.v2cst-clockpanel ul { margin: 0; padding: 0 0 10px; list-style: none; }
.v2cst-clockpanel li {
    position: relative;
    padding: 0 17px 9px 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--slate);
}
.v2cst-clockpanel li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--cst-time);
}

/* ---------- Responsive: batch 2 ---------- */

@media (max-width: 768px) {
    .v2cst-ans { margin: 18px 0 20px; padding: 13px 15px; }
    .v2cst-ans p { font-size: 15.5px; }
    .v2cst-quote { padding: 17px 18px 14px; }
    .v2cst-quote p { font-size: 17.5px; }
    .v2cst-tbl { min-width: 680px; }
    .v2cst-bb { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .v2cst-tool { margin: 24px 0; }

    /* Touch targets clear 44px from tablet width down, not only on phones.
       Measured at 768px with touch emulation on, the pills were 38px. */
    .v2cst-opt span { min-height: 44px; display: flex; align-items: center; }
}

@media (max-width: 480px) {
    /* Option pills go full width so every touch target clears 44px and no
       row can half-wrap. */
    .v2cst-opts { flex-direction: column; gap: 5px; }
    .v2cst-opt { width: 100%; }
    .v2cst-opt span { padding: 12px 14px; min-height: 44px; display: flex; align-items: center; }

    .v2cst-lrow { flex-direction: column; gap: 4px; }
    .v2cst-lrow__v { text-align: right; }
    .v2cst-ledger__total b { font-size: 20px; }
    .v2cst-tbl { min-width: 620px; font-size: 13px; }
    .v2cst-tbl thead th, .v2cst-tbl tbody th, .v2cst-tbl tbody td { padding: 10px 12px; }
    .v2cst-tbl tbody th { min-width: 160px; }
}

@media (max-width: 390px) {
    .v2cst-quote p { font-size: 16.5px; }
    .v2cst-ledger__head { padding: 10px 13px; }
    .v2cst-lrow { padding: 11px 13px; }
    .v2cst-ledger__total { padding: 12px 13px; }
    .v2cst-clockpanel { padding: 12px 13px 2px; }
}

/* ============================================================
   BLOG MTR V2 - BATCH 3 of 4: INSTRUMENT 02 (Claim Adjudicator)
   and INSTRUMENT 03 (Recovery Route Builder).

   Both are built as single-column stacks that gain a second
   column only where there is room. The adjudicator's filter row
   scrolls horizontally inside itself on phones rather than
   wrapping into three ragged lines, and its scrollbar is hidden;
   the route builder's option rows are full-width 44px targets at
   every width.
   ============================================================ */

/* ---------- INSTRUMENT 02: Claim Adjudicator ---------- */

.v2mtr-adj__q {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 44px;
    padding: 11px 13px;
    border-radius: 11px;
    border: 1px solid rgba(24, 24, 27, .18);
    background: #FFFFFF;
    color: var(--mtr-ink);
    font: inherit;
    font-size: 14.5px;
}
.v2mtr-adj__q::placeholder { color: #A39B95; }
.v2mtr-adj__q:focus-visible {
    outline: 2px solid var(--mtr-a);
    outline-offset: 2px;
}

.v2 .v2mtr-adj__filters {
    display: flex;
    gap: 7px;
    margin-top: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 2px;
}
.v2 .v2mtr-adj__filters::-webkit-scrollbar { display: none; }
.v2 .v2mtr-adj__f {
    -webkit-appearance: none;
    appearance: none;
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid rgba(24, 24, 27, .16);
    background: #FFFFFF;
    color: #4B4540;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.v2 .v2mtr-adj__f:hover { border-color: var(--mtr-a); }
.v2 .v2mtr-adj__f.is-on {
    background: var(--mtr-a);
    border-color: var(--mtr-a);
    color: #FFFFFF;
}
.v2 .v2mtr-adj__f:focus-visible { outline: 2px solid var(--mtr-a); outline-offset: 2px; }

.v2mtr-adj__count {
    margin: 12px 0 10px;
    font-size: 11px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--mtr-mute);
}

.v2mtr-claims {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
}
.v2mtr-claim {
    padding: 13px 14px;
    border-radius: 13px;
    background: #FFFFFF;
    border: 1px solid rgba(24, 24, 27, .10);
}
.v2mtr-claim__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.v2mtr-prose .v2mtr-claim__c {
    margin: 0;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.42;
    color: var(--mtr-ink);
}
.v2mtr-prose .v2mtr-claim__s {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.62;
    color: #4B4540;
}
.v2mtr-claim__s span {
    display: block;
    font-size: 10px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--mtr-a-deep);
    margin-bottom: 3px;
}
.v2mtr-claim[data-mtr-g="req"]  { border-right: 3px solid #0E7A4F; }
.v2mtr-claim[data-mtr-g="rec"]  { border-right: 3px solid var(--mtr-a); }
.v2mtr-claim[data-mtr-g="non"]  { border-right: 3px solid var(--mtr-cool); }
.v2mtr-claim[data-mtr-g="folk"] { border-right: 3px solid var(--mtr-stop); }

@media (min-width: 900px) {
    .v2mtr-claims { grid-template-columns: 1fr 1fr; gap: 10px; }
}

@media (max-width: 480px) {
    .v2mtr-claim { padding: 12px; }
    .v2mtr-prose .v2mtr-claim__c { font-size: 14.5px; }
}

@media (max-width: 390px) {
    .v2 .v2mtr-adj__f { font-size: 12.5px; padding: 10px 12px; }
    .v2mtr-prose .v2mtr-claim__c { font-size: 14px; }
    .v2mtr-prose .v2mtr-claim__s { font-size: 13px; }
}

/* ---------- INSTRUMENT 03: Recovery Route Builder ---------- */

.v2mtr-rb__q { margin-bottom: 16px; }
.v2mtr-rb__q:last-of-type { margin-bottom: 0; }
.v2mtr-rb__lab {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 9px;
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.45;
    color: var(--mtr-ink);
}
.v2mtr-rb__lab span {
    flex: 0 0 auto;
    font-size: 11px;
    color: var(--mtr-a);
    letter-spacing: .06em;
}
.v2 .v2mtr-rb__opts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
}
.v2 .v2mtr-rb__opt {
    -webkit-appearance: none;
    appearance: none;
    display: block;
    width: 100%;
    min-height: 44px;
    padding: 11px 14px;
    border-radius: 11px;
    border: 1px solid rgba(24, 24, 27, .16);
    background: #FFFFFF;
    color: #3A3532;
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.45;
    text-align: right;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.v2 .v2mtr-rb__opt:hover { border-color: var(--mtr-a); }
.v2 .v2mtr-rb__opt[aria-pressed="true"] {
    background: var(--mtr-a);
    border-color: var(--mtr-a);
    color: #FFFFFF;
    font-weight: 600;
}
.v2 .v2mtr-rb__opt:focus-visible { outline: 2px solid var(--mtr-a); outline-offset: 2px; }

.v2mtr-rb__bar {
    height: 6px;
    border-radius: 999px;
    background: rgba(24, 24, 27, .09);
    overflow: hidden;
    margin-bottom: 16px;
}
.v2mtr-rb__bar i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 999px;
    background: var(--mtr-a);
    transition: width .32s ease;
}

.v2mtr-rb__out { margin-top: 18px; }

.v2mtr-rb__head {
    padding: 14px 15px;
    border-radius: 13px;
    background: var(--mtr-tint);
    border: 1px solid var(--mtr-line);
    margin-bottom: 12px;
}
.v2mtr-prose .v2mtr-rb__title {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--mtr-ink);
}
.v2mtr-prose .v2mtr-rb__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.62;
    color: #4B4540;
}

.v2mtr-rb__cols {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.v2mtr-rb__side {
    padding: 13px 14px;
    border-radius: 13px;
    border: 1px solid rgba(24, 24, 27, .10);
    background: #FFFFFF;
}
.v2mtr-rb__side.is-dont { background: var(--mtr-stop-tint); border-color: rgba(180, 35, 24, .18); }
.v2mtr-rb__stag {
    margin: 0 0 10px;
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--mtr-a-deep);
}
.v2mtr-rb__side.is-dont .v2mtr-rb__stag { color: var(--mtr-stop); }

.v2mtr-prose .v2mtr-route { display: grid; gap: 8px; }
.v2mtr-route li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.6;
    color: #3A3532;
}
.v2mtr-route .v2mtr-tick {
    -webkit-appearance: none;
    appearance: none;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin: 1px 0 0;
    border-radius: 6px;
    border: 1.6px solid rgba(24, 24, 27, .3);
    background: #FFFFFF;
    cursor: pointer;
    position: relative;
}
.v2mtr-route .v2mtr-tick:checked {
    background: var(--mtr-go);
    border-color: var(--mtr-go);
}
.v2mtr-route .v2mtr-tick:checked::after {
    content: "";
    position: absolute;
    right: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #FFFFFF;
    border-width: 0 0 2px 2px;
    transform: rotate(-42deg);
}
.v2mtr-route .v2mtr-tick:focus-visible { outline: 2px solid var(--mtr-a); outline-offset: 2px; }
.v2mtr-route label {
    cursor: pointer;
    /* 44px effective target: the row padding plus the label box */
    padding: 10px 0;
    min-height: 24px;
}
.v2mtr-route input:checked + label { color: #8A837D; text-decoration: line-through; }

.v2mtr-prose .v2mtr-rb__side.is-dont ul { display: grid; gap: 8px; }
.v2mtr-prose .v2mtr-rb__side.is-dont li {
    position: relative;
    padding-right: 19px;
    font-size: 13.5px;
    line-height: 1.6;
    color: #3A3532;
}
.v2mtr-prose .v2mtr-rb__side.is-dont li::before {
    content: "x";
    position: absolute;
    right: 2px;
    top: 0;
    font-weight: 700;
    color: var(--mtr-stop);
}

.v2mtr-rb__foot {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    align-items: center;
    margin-top: 13px;
}
.v2mtr-rb__saved {
    margin: 0;
    font-size: 11px;
    letter-spacing: .05em;
    color: var(--mtr-mute);
}

@media (min-width: 760px) {
    .v2mtr-rb__cols { grid-template-columns: 1.25fr 1fr; gap: 14px; }
    .v2 .v2mtr-rb__opts { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
}

@media (max-width: 760px) {
    .v2mtr-rb__foot { flex-direction: column; align-items: stretch; }
    .v2mtr-rb__foot .v2mtr-btn { width: 100%; }
}

@media (max-width: 480px) {
    .v2mtr-rb__lab { font-size: 14px; }
    .v2 .v2mtr-rb__opt { font-size: 13.5px; padding: 11px 12px; }
    .v2mtr-prose .v2mtr-rb__title { font-size: 16.5px; }
    .v2mtr-rb__head, .v2mtr-rb__side { padding: 12px; }
}

@media (max-width: 390px) {
    .v2 .v2mtr-rb__opt { font-size: 13px; }
    .v2mtr-route li { font-size: 13px; }
    .v2mtr-prose .v2mtr-rb__side.is-dont li { font-size: 13px; }
}

/* Motion opt-out: every transition on this page is decorative */
@media (prefers-reduced-motion: reduce) {
    .v2mtr-desk__item,
    .v2 .v2mtr-btn,
    .v2 .v2mtr-dec__chip,
    .v2 .v2mtr-adj__f,
    .v2 .v2mtr-rb__opt,
    .v2mtr-rb__bar i,
    .v2mtr-hero.v2-anim .v2mtr-fork,
    .v2mtr-desk.v2-anim .v2mtr-desk__item {
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
    }
}

/* ---------- Batch 3: requirement timeline, time-value calculator ---------- */

.v2cst-tl { margin: 24px 0; }

.v2cst-tl__item {
    position: relative;
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 14px;
    padding: 0 0 18px 0;
}
/* The spine, drawn per item so the last node ends the line cleanly. */
.v2cst-tl__item::before {
    content: "";
    position: absolute;
    right: 103px;
    top: 16px;
    bottom: -2px;
    width: 1px;
    background: var(--line);
}
.v2cst-tl__item:last-child { padding-bottom: 0; }
.v2cst-tl__item:last-child::before { display: none; }

.v2cst-tl__date {
    padding-top: 8px;
    font-size: 11.5px;
    color: var(--faint);
    text-align: left;
    white-space: nowrap;
}

.v2cst-tl__body {
    position: relative;
    padding: 8px 20px 0 0;
}
.v2cst-tl__body::before {
    content: "";
    position: absolute;
    right: -4px;
    top: 13px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2cst-tl__body b { display: block; font-size: 15px; color: var(--ink); margin-bottom: 4px; }
.v2cst-tl__body em { font-style: normal; font-size: 13.5px; line-height: 1.6; color: var(--slate); display: block; }

.v2cst-tl__item.is-dead .v2cst-tl__body b { color: var(--faint); }
.v2cst-tl__item.is-dead .v2cst-tl__body s { color: var(--faint); }
.v2cst-tl__item.is-now .v2cst-tl__body::before { border-color: var(--cst-a); background: var(--cst-a); }
.v2cst-tl__item.is-now .v2cst-tl__body b { color: var(--cst-deep); }
.v2cst-tl__item.is-now .v2cst-tl__date { color: var(--cst-deep); font-weight: 700; }

/* ---------- Number inputs ---------- */

.v2cst-num { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.v2cst-num__f { min-width: 0; }
.v2cst-num__f label {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.4;
}
.v2cst-num__in {
    display: flex;
    align-items: stretch;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    overflow: hidden;
    transition: border-color .14s ease;
}
.v2cst-num__in:focus-within { border-color: var(--cst-a); }
.v2cst-num__in span {
    display: flex;
    align-items: center;
    /* The unit affix is a content key, so it is one character in EN ("w") and a
       whole word in others ("kelime", "kata", "단어"). Pin it: never shrink,
       never wrap, so a long unit narrows the input instead of growing the row. */
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 0 12px;
    background: var(--cst-tint);
    border-left: 1px solid var(--cst-edge);
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--cst-deep);
}
.v2cst-num__in input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    padding: 12px 13px;
    min-height: 46px;
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 650;
    color: var(--ink);
    background: transparent;
}

/* ---------- Verdict card + comparison scale ---------- */

.v2cst-verdict {
    margin-top: 18px;
    padding: 18px 18px 16px;
    border: 1px solid var(--cst-edge);
    border-radius: 13px;
    background: linear-gradient(-180deg, var(--cst-tint), var(--paper) 70%);
}
.v2cst-verdict__num {
    margin: 0;
    font-family: var(--font-display);
    font-size: 34px;
    line-height: 1.05;
    font-weight: 700;
    color: var(--cst-deep);
    font-variant-numeric: tabular-nums;
}
.v2cst-verdict__lab { margin: 4px 0 0; font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--faint); }
.v2cst-verdict__body { margin: 14px 0 0; font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2cst-verdict__fine {
    margin: 12px 0 0;
    padding-top: 11px;
    border-top: 1px solid var(--cst-edge);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--faint);
}

.v2cst-scale {
    position: relative;
    height: 40px;
    margin: 18px 0 0;
}
.v2cst-scale::before {
    content: "";
    position: absolute;
    right: 0;
    left: 0;
    top: 8px;
    height: 6px;
    border-radius: 4px;
    background: var(--line);
}
/* The sampled $25 to $100 band on a 0 to 200 scale. */
.v2cst-scale__band {
    position: absolute;
    right: 12.5%;
    width: 37.5%;
    top: 8px;
    height: 6px;
    border-radius: 4px;
    background: var(--cst-edge);
}
.v2cst-scale__you {
    position: absolute;
    top: 2px;
    width: 3px;
    height: 18px;
    margin-right: -1.5px;
    border-radius: 2px;
    background: var(--cst-a);
    transition: right .22s ease;
}
.v2cst-scale__t {
    position: absolute;
    top: 22px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--faint);
    white-space: nowrap;
}
.v2cst-scale__t.is-a { right: 0; }
.v2cst-scale__t.is-b { right: 12.5%; transform: translateX(50%); }
.v2cst-scale__t.is-c { right: 50%; transform: translateX(50%); }
.v2cst-scale__t.is-d { left: 0; }

@media (prefers-reduced-motion: reduce) {
    .v2cst-scale__you { transition: none; }
}

/* ---------- Responsive: batch 3 ---------- */

@media (max-width: 768px) {
    .v2cst-verdict__num { font-size: 30px; }
}

@media (max-width: 480px) {
    /* The date column stops earning 96px here, so the timeline becomes a
       single stacked column with the spine on the left. */
    .v2cst-tl__item { grid-template-columns: minmax(0, 1fr); gap: 2px; padding-right: 18px; }
    .v2cst-tl__item::before { right: 3px; top: 20px; }
    .v2cst-tl__date { padding-top: 0; text-align: right; }
    .v2cst-tl__body { padding: 4px 0 0 0; }
    .v2cst-tl__body::before { right: -18px; top: 6px; }
    .v2cst-tl__body b { font-size: 14.5px; }

    .v2cst-num { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2cst-verdict { padding: 16px 15px 14px; }
    .v2cst-verdict__num { font-size: 28px; }
    .v2cst-scale__t.is-b { right: 12.5%; transform: none; }
}

@media (max-width: 390px) {
    /* Four ticks collide under 340px of bar; the two the reader needs are
       the band edges, which the band itself already draws. */
    .v2cst-scale__t.is-b, .v2cst-scale__t.is-c { font-size: 10px; }
    .v2cst-verdict__num { font-size: 26px; }
}

/* ============================================================
   BLOG MTR V2 - BATCH 4 of 4: remaining section furniture.
   The numbered ten-step list, the mini claim list, the console
   path chips, the community anecdote cards, the review-time bar
   chart, the decay block, and the author-band heading rule the
   shared layer expects each post to supply.

   The path chips and the bar chart are the two things that could
   overflow: the chips wrap rather than scroll (they are short
   enough that a phone fits two per line), and the bars are
   percentage-width inside a full-width track, so neither has a
   fixed dimension that can exceed a 390px viewport.
   ============================================================ */

/* ---------- The numbered ten-step list ---------- */

.v2mtr-prose .v2mtr-steps {
    counter-reset: mtrstep;
    display: grid;
    gap: 10px;
    margin: 22px 0;
}
.v2mtr-prose .v2mtr-steps li {
    counter-increment: mtrstep;
    position: relative;
    padding: 12px 46px 12px 14px;
    border-radius: 12px;
    background: #FCFBFA;
    border: 1px solid rgba(24, 24, 27, .09);
    font-size: 14.5px;
    line-height: 1.62;
    color: #3A3532;
}
.v2mtr-prose .v2mtr-steps li::before {
    content: counter(mtrstep, decimal-leading-zero);
    position: absolute;
    right: 13px;
    top: 12px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    font-weight: 700;
    color: var(--mtr-a);
}
.v2mtr-steps b { color: var(--mtr-ink); }

/* ---------- Mini claim list ---------- */

.v2mtr-prose .v2mtr-mini {
    display: grid;
    gap: 9px;
    margin: 20px 0;
}
.v2mtr-prose .v2mtr-mini li {
    padding: 12px 14px;
    border-radius: 12px;
    background: #FFFFFF;
    border: 1px solid rgba(24, 24, 27, .09);
    border-right: 3px solid var(--mtr-line);
    font-size: 14px;
    line-height: 1.62;
    color: #4B4540;
}
.v2mtr-mini b { color: var(--mtr-ink); }
.v2mtr-mini .v2mtr-grade { margin-top: 7px; }

/* ---------- Console path chips ---------- */

.v2mtr-path {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 8px 0 22px;
}
.v2mtr-path span {
    display: inline-flex;
    align-items: center;
    padding: 7px 11px;
    border-radius: 9px;
    background: #F5F3F1;
    border: 1px solid rgba(24, 24, 27, .10);
    font-size: 12.5px;
    color: #4B4540;
    white-space: nowrap;
}
.v2mtr-path span.is-key {
    background: var(--mtr-a);
    border-color: var(--mtr-a);
    color: #FFFFFF;
    font-weight: 600;
}
.v2mtr-path span + span::before {
    content: "\203A";
    margin-left: 8px;
    color: var(--mtr-mute);
    font-weight: 700;
}
/* Inline variant, used mid-paragraph */
.v2mtr-prose p > .v2mtr-path {
    display: inline-flex;
    margin: 4px 0;
    vertical-align: middle;
}

/* ---------- Community anecdote cards ---------- */

.v2mtr-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin: 22px 0;
}
.v2mtr-card {
    padding: 14px 15px;
    border-radius: 13px;
    background: var(--mtr-cool-tint);
    border: 1px solid rgba(63, 90, 115, .18);
}
.v2mtr-card b {
    display: block;
    font-size: 15px;
    color: var(--mtr-ink);
    margin-bottom: 6px;
    line-height: 1.35;
}
.v2mtr-prose .v2mtr-card p {
    margin: 0 0 9px;
    font-size: 13.5px;
    line-height: 1.6;
    color: #44505C;
}

@media (min-width: 620px) {
    .v2mtr-cards { grid-template-columns: 1fr 1fr; }
}

/* ---------- Review-time bars ---------- */

.v2mtr-bars {
    display: grid;
    gap: 12px;
    margin: 22px 0;
}
.v2mtr-bar {
    padding: 13px 14px;
    border-radius: 13px;
    background: #FFFFFF;
    border: 1px solid rgba(24, 24, 27, .10);
}
.v2mtr-bar.is-key {
    background: var(--mtr-tint);
    border-color: var(--mtr-line);
}
.v2mtr-bar__top {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 9px;
}
.v2mtr-bar__top b {
    font-size: 14.5px;
    color: var(--mtr-ink);
    line-height: 1.35;
}
.v2mtr-bar__top span {
    font-size: 12px;
    color: var(--mtr-a-deep);
    font-weight: 600;
    white-space: nowrap;
}
.v2mtr-bar__track {
    height: 10px;
    border-radius: 999px;
    background: rgba(24, 24, 27, .08);
    overflow: hidden;
}
.v2mtr-bar__track i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--mtr-cool);
}
.v2mtr-bar.is-key .v2mtr-bar__track i { background: var(--mtr-a); }
.v2mtr-prose .v2mtr-bar__sub {
    margin: 9px 0 8px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--mtr-mute);
}

/* ---------- Decay block ---------- */

.v2mtr-decay {
    margin: 30px 0 0;
    padding: 18px;
    border-radius: 16px;
    background: #FBFAF9;
    border: 1px solid rgba(24, 24, 27, .10);
}
.v2mtr-decay[data-phase="recheck"] {
    background: var(--mtr-stop-tint);
    border-color: rgba(180, 35, 24, .22);
}
.v2mtr-decay__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--mtr-a-deep);
}
.v2mtr-decay__tag svg { width: 17px; height: 17px; flex: 0 0 auto; }
.v2mtr-prose .v2mtr-decay__list {
    display: grid;
    gap: 9px;
    margin: 0 0 12px;
    padding: 0;
    list-style: none;
}
.v2mtr-prose .v2mtr-decay__list li {
    position: relative;
    padding-right: 18px;
    font-size: 13.5px;
    line-height: 1.62;
    color: #4B4540;
}
.v2mtr-prose .v2mtr-decay__list li::before {
    content: "";
    position: absolute;
    right: 2px;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--mtr-a);
}
.v2mtr-decay__list b { color: var(--mtr-ink); }
.v2mtr-prose .v2mtr-decay__foot {
    margin: 0;
    padding-top: 11px;
    border-top: 1px dashed rgba(24, 24, 27, .16);
    font-size: 11.5px;
    letter-spacing: .04em;
    color: var(--mtr-mute);
}

/* ---------- Author band heading ----------
   The band uses an H3 rather than an H4 to avoid a level skip
   after the Bottom Line H2, so it needs the same styling the
   shared layer gives its heading. */

.v2gpr-authorband .v2gpr-author__body h3 {
    margin: 2px 0 4px;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.25;
}
.v2gpr-authorband .v2gpr-author__body h3 a {
    color: inherit;
    text-decoration: none;
}
.v2gpr-authorband .v2gpr-author__body h3 a:hover { text-decoration: underline; }

@media (max-width: 480px) {
    .v2mtr-prose .v2mtr-steps li { padding: 11px 42px 11px 12px; font-size: 14px; }
    .v2mtr-prose .v2mtr-mini li { padding: 11px 12px; font-size: 13.5px; }
    .v2mtr-card { padding: 12px; }
    .v2mtr-bar { padding: 12px; }
    .v2mtr-decay { padding: 15px; border-radius: 14px; }
    .v2gpr-authorband .v2gpr-author__body h3 { font-size: 19px; }
}

@media (max-width: 390px) {
    .v2mtr-path span { font-size: 11.5px; padding: 7px 9px; }
    .v2mtr-path span + span::before { margin-left: 6px; }
    .v2mtr-bar__top b { font-size: 14px; }
    .v2mtr-prose .v2mtr-decay__list li { font-size: 13px; }
    .v2mtr-decay { padding: 13px; }
}


/* ---------- Touch target repairs found in the 390px pass ----------

   Two components measured under 44px on a phone. Both are fixed
   scoped to this post: the shared .v2gpr-chip rule is used by every
   V2 blog and changing it would move all of them at once.

   1. The scrollspy chips render at 34px in the shared layer. They
      are this page's primary mobile navigation, so they get the
      full 44px here.
   2. The route builder's tick box is a 22px square by design. The
      label beside it already toggles it, but the box itself gets an
      invisible 44px hit area so a thumb aimed at the box works too. */

.v2mtr-chips .v2gpr-chip {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.v2mtr-route .v2mtr-tick::before {
    content: "";
    position: absolute;
    right: 50%;
    top: 50%;
    width: 44px;
    height: 44px;
    transform: translate(50%, -50%);
}

/* ---------- Phone hero budget ----------

   Measured at 390px: the quick answer was landing 2.35 screens down,
   past the two-screen ceiling this suite holds itself to. The cost was
   a five-line 32px H1, a six-line lead and a 905px fork. The lead was
   shortened in the partial; these rules take the rest out of the hero
   without shrinking anything below a comfortable reading size. */

@media (max-width: 620px) {
    .v2mtr-hero .v2gpr-hero__title { font-size: 27px; line-height: 1.16; max-width: none; }
    .v2mtr-hero .v2gpr-hero__lead { font-size: 16px; line-height: 1.6; }
    .v2mtr-facts { margin-top: 16px; gap: 8px; }
    .v2mtr-facts .v2gpr-fact { padding: 10px 12px; }
    .v2mtr-facts .v2gpr-fact b { font-size: 20px; line-height: 1.2; }
    .v2mtr-facts .v2gpr-fact span { font-size: 9.5px; }

    .v2mtr-fork { margin-top: 18px; }
    .v2mtr-fork__head { padding-bottom: 11px; }
    .v2mtr-fork__law { margin-top: 11px; padding: 11px 12px; }
    .v2mtr-fork__law p { margin-top: 6px; font-size: 13.5px; line-height: 1.58; }
    .v2mtr-fork__stem { height: 12px; }
    .v2mtr-fork__arms { gap: 8px; }
    .v2mtr-fork__arm { padding: 12px; }
    .v2mtr-fork__when { margin-bottom: 7px; }
    .v2mtr-fork__quote { margin-bottom: 8px; font-size: 13.5px; line-height: 1.48; }
    .v2mtr-fork__then { margin-bottom: 8px; font-size: 13.5px; line-height: 1.46; }
    .v2mtr-fork__foot { margin-top: 10px; padding-top: 9px; font-size: 12.5px; line-height: 1.54; }
}

@media (max-width: 390px) {
    .v2mtr-hero .v2gpr-hero__title { font-size: 25px; }
}

/* ---------- Mobile table collapse ----------

   Same pattern the own / b12 / kb tables already use since the
   2026-08-09 cross-post fix. At 390px a four-column table inside
   the ~335px article column reads as a squeeze rather than as a
   scroll affordance, so below 720px every row becomes its own
   card, the row header becomes the card title, and each cell is
   labelled from its own column header via data-label. All four
   tables on this page carry data-label on every td for exactly
   this. */

@media (max-width: 720px) {
    .v2mtr-scroll { overflow-x: visible; border: 0; }

    .v2mtr-table {
        display: block;
        width: 100%;
        min-width: 0;
        border-collapse: collapse;
        background: transparent;
    }
    .v2mtr-table thead { display: none; }
    .v2mtr-table tbody {
        display: grid;
        gap: 10px;
    }
    .v2mtr-table tbody tr {
        display: block;
        background: #FFFFFF;
        border: 1px solid rgba(24, 24, 27, .10);
        border-radius: 13px;
        overflow: hidden;
    }
    .v2mtr-table tbody th,
    .v2mtr-table tbody td {
        display: block;
        width: auto;
        border: 0;
        white-space: normal;
        text-align: right;
    }
    .v2mtr-table tbody th {
        background: var(--mtr-tint);
        border-bottom: 1px solid var(--mtr-line);
        padding: 12px 14px;
        font-size: 14px;
        line-height: 1.45;
        color: var(--mtr-ink);
    }
    .v2mtr-table tbody td {
        padding: 11px 14px 13px;
        font-size: 13.5px;
        line-height: 1.6;
    }
    .v2mtr-table tbody td + td { border-top: 1px solid rgba(24, 24, 27, .08); }
    .v2mtr-table tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
        font-size: 9px;
        font-weight: 600;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: var(--mtr-mute);
        margin-bottom: 5px;
    }
    /* The blank feedback-log template has no row header, so its empty
       cells would collapse to a bare label. Give them a visible line. */
    .v2mtr-table tbody td:empty::after,
    .v2mtr-table tbody td:has(> br:only-child)::after { content: ""; display: block; height: 18px; }

    /* The scroll hint is only true above this breakpoint. */
    .v2mtr-scrollhint { display: none; }
}

/* ============= END BLOG MTR V2 ============= */

/* ---------- Batch 5: buckets, console steps, split columns, price rail,
               formula, scenario receipts, who-charges rows, decay ---------- */

/* Four-bucket split (section 1). The colour tells you which axis a bucket
   belongs to: moss for money, indigo for time, neutral for out of scope. */
.v2cst-buckets {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 24px 0;
}
.v2cst-bucket {
    position: relative;
    padding: 15px 15px 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    border-top: 3px solid var(--line);
    min-width: 0;
}
.v2cst-bucket__n { display: block; font-size: 10.5px; color: var(--faint); margin-bottom: 7px; }
.v2cst-bucket b { display: block; font-size: 14.5px; color: var(--ink); margin-bottom: 6px; line-height: 1.3; }
.v2cst-bucket p { margin: 0 0 9px; font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2cst-bucket em {
    display: block;
    font-style: normal;
    font-size: 10.5px;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2cst-bucket.is-one   { border-top-color: var(--cst-a); background: var(--cst-tint); }
.v2cst-bucket.is-one em { color: var(--cst-deep); }
.v2cst-bucket.is-two   { border-top-color: var(--cst-time); background: var(--cst-time-tint); }
.v2cst-bucket.is-two em { color: var(--cst-time); }
.v2cst-bucket.is-three { border-top-color: var(--cst-edge); }
.v2cst-bucket.is-four  { border-top-color: var(--line); background: var(--mist); }

/* Console path steps (section 4) */
.v2cst-steps { margin: 24px 0; display: flex; flex-direction: column; gap: 10px; }
.v2cst-step {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 13px;
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
}
.v2cst-step.is-wait { background: var(--cst-time-tint); border-color: var(--cst-time-edge); }
.v2cst-step__n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--cst-tint);
    color: var(--cst-deep);
    font-size: 12px;
    font-weight: 700;
}
.v2cst-step.is-wait .v2cst-step__n { background: var(--paper); color: var(--cst-time); }
.v2cst-step__b { min-width: 0; }
.v2cst-step__b b { display: block; font-size: 15px; color: var(--ink); margin-bottom: 8px; }
.v2cst-step__b em { display: block; font-style: normal; font-size: 13.5px; line-height: 1.6; color: var(--slate); margin-top: 8px; }

/* The path chip row scrolls inside itself rather than widening the page. */
.v2cst-path {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}
.v2cst-path span {
    display: inline-block;
    padding: 4px 9px;
    border-radius: 7px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-size: 11.5px;
    color: var(--slate);
    overflow-wrap: anywhere;
}
.v2cst-path span.is-key { background: var(--cst-a); border-color: var(--cst-deep); color: #fff; font-weight: 600; }
.v2cst-path .v2-ic { width: 14px; height: 14px; color: var(--faint); flex: none; }
.v2cst-path__hedge { background: transparent !important; border: 0 !important; color: var(--faint) !important; font-size: 11.5px; padding-right: 0 !important; }

/* Two-column yes/no split (section 5) */
.v2cst-two {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
.v2cst-two__col {
    padding: 16px 17px 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
    min-width: 0;
}
.v2cst-two__col.is-yes { border-color: var(--cst-edge); background: var(--cst-tint); }
.v2cst-two__col.is-no  { border-color: #F3D3D0; background: var(--cst-warn-tint); }
.v2cst-two__h {
    margin: 0 0 11px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.v2cst-two__col.is-yes .v2cst-two__h { color: var(--cst-deep); }
.v2cst-two__col.is-no .v2cst-two__h { color: var(--cst-warn); }
.v2cst-two__col ul { margin: 0; padding: 0; list-style: none; }
.v2cst-two__col li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2cst-two__col li .v2gpr-mk { margin-top: 2px; }

/* Evidence badge block */
.v2cst-badge {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin: 22px 0;
    padding: 13px 15px;
    border: 1px dashed var(--line);
    border-radius: 12px;
    background: var(--mist);
}
.v2cst-badge p { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--faint); }

/* Observed price rail (section 6) */
.v2cst-rail {
    margin: 24px 0;
    padding: 16px 18px 14px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--paper);
}
.v2cst-rail__h { margin: 0 0 22px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.v2cst-rail__track { position: relative; height: 46px; }
.v2cst-rail__bar {
    position: absolute;
    right: 0; left: 0; top: 0;
    height: 6px;
    border-radius: 4px;
    background: linear-gradient(-90deg, var(--cst-edge), var(--cst-a));
}
.v2cst-rail__pt { position: absolute; top: 0; }
.v2cst-rail__pt::before {
    content: "";
    position: absolute;
    right: 0;
    top: -3px;
    width: 3px;
    height: 12px;
    border-radius: 2px;
    background: var(--cst-deep);
}
.v2cst-rail__pt b {
    position: absolute;
    top: 16px;
    right: 0;
    transform: translateX(50%);
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--ink);
    white-space: nowrap;
}
.v2cst-rail__pt:first-of-type b { transform: none; }
.v2cst-rail__pt.is-far b { transform: translateX(100%); }
.v2cst-rail__pt.is-key b { color: var(--cst-deep); font-weight: 700; }
.v2cst-rail__foot { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--faint); }

/* Formula card (section 6) */
.v2cst-formula {
    margin: 22px 0;
    border: 1px solid var(--cst-edge);
    border-radius: 13px;
    overflow: hidden;
}
.v2cst-formula__eq {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 10px;
    margin: 0;
    padding: 16px 18px;
    background: var(--cst-tint);
}
.v2cst-formula__eq span {
    padding: 7px 12px;
    border-radius: 8px;
    background: var(--paper);
    border: 1px solid var(--cst-edge);
    font-size: 13px;
    color: var(--slate);
}
.v2cst-formula__eq span.is-out { background: var(--cst-a); border-color: var(--cst-deep); color: #fff; font-weight: 600; }
.v2cst-formula__eq b { font-family: var(--font-mono); font-size: 15px; color: var(--cst-deep); }
.v2cst-formula__ex { margin: 0; padding: 14px 18px; font-size: 13.5px; line-height: 1.65; color: var(--slate); background: var(--paper); }

/* Scenario receipts (section 10) */
.v2cst-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 24px 0;
}
/* Two-card set (minimum cash vs outsourced) after the third scenario
   was retired: without this the pair renders at two thirds width. */
.v2cst-cards.is-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Single card, 2026-08-18: the outsourced scenario was built from two unnamed
   marketplace listings and went with the rest of the price samples, leaving the
   $25 minimum on its own. Capped rather than full-bleed so a lone receipt does
   not stretch to a shape no card in this set was designed for. */
.v2cst-cards.is-one { grid-template-columns: minmax(0, 1fr); max-width: 460px; }
.v2cst-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    padding: 17px 17px 15px;
    min-width: 0;
}
.v2cst-card.is-mid { border-color: var(--cst-edge); box-shadow: var(--cst-shadow); }
.v2cst-card__tag { margin: 0 0 5px; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.v2cst-card__name { margin: 0 0 14px; font-family: var(--font-display); font-size: 18px; font-weight: 700; color: var(--ink); line-height: 1.25; }
.v2cst-card__rows { border-top: 1px solid var(--line); }
.v2cst-card__rows div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px solid var(--line);
    font-size: 13px;
    color: var(--slate);
}
.v2cst-card__rows div b { flex: none; font-family: var(--font-mono); color: var(--ink); font-variant-numeric: tabular-nums; }
.v2cst-card__total {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
    padding: 11px 13px;
    border-radius: 10px;
    background: var(--cst-a);
    color: #fff;
}
.v2cst-card__total span { font-family: var(--font-mono); font-size: 11px; letter-spacing: .07em; text-transform: uppercase; }
.v2cst-card__total b { font-family: var(--font-display); font-size: 20px; font-variant-numeric: tabular-nums; }
.v2cst-card__time {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-radius: 9px;
    background: var(--cst-time-tint);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--cst-time);
}
.v2cst-card__ass { margin: 10px 0 0; font-size: 12px; line-height: 1.55; color: var(--faint); }

/* Who charges it (section 11) */
.v2cst-who { margin: 24px 0; border: 1px solid var(--line); border-radius: 13px; overflow: hidden; }
.v2cst-who__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 4px 14px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--line);
    background: var(--paper);
}
.v2cst-who__row:last-child { border-bottom: 0; }
.v2cst-who__row b { font-size: 14.5px; color: var(--ink); }
.v2cst-who__by {
    justify-self: end;
    align-self: start;
    padding: 3px 9px;
    border-radius: 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 10.5px;
    color: var(--slate);
    white-space: nowrap;
}
.v2cst-who__row em {
    grid-column: 1 / -1;
    font-style: normal;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}

/* Decay block */
.v2cst-decay {
    margin: 30px 0 0;
    padding: 18px 20px 14px;
    border: 1px dashed var(--line);
    border-radius: 14px;
    background: var(--mist);
}
.v2cst-decay__tag {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 11px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2cst-decay__tag svg { width: 16px; height: 16px; flex: none; }
.v2cst-decay__list { margin: 0; padding: 0; list-style: none; }
.v2cst-decay__list li {
    position: relative;
    padding: 0 16px 10px 0;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2cst-decay__list li::before {
    content: "";
    position: absolute;
    right: 1px;
    top: 8px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--faint);
}
.v2cst-decay__list li b { color: var(--ink); }
.v2cst-decay__foot { margin: 4px 0 0; padding-top: 11px; border-top: 1px solid var(--line); font-size: 11.5px; color: var(--faint); }

/* ---------- Responsive: batch 5 ---------- */

@media (max-width: 900px) {
    .v2cst-buckets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2cst-cards { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
    .v2cst-two { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2cst-step { padding: 13px 14px; gap: 11px; grid-template-columns: 34px minmax(0, 1fr); }
    .v2cst-step__n { width: 34px; height: 34px; }
    .v2cst-step__b b { font-size: 14.5px; }
    .v2cst-formula__eq { padding: 14px 15px; }
    .v2cst-rail { padding: 14px 15px 12px; }
}

@media (max-width: 480px) {
    .v2cst-buckets { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .v2cst-bucket { padding: 13px 14px 12px; }

    /* The "billed by" chip stops fitting beside the label at this width. */
    .v2cst-who__row { grid-template-columns: minmax(0, 1fr); }
    .v2cst-who__by { justify-self: start; }

    .v2cst-card__name { font-size: 17px; }
    .v2cst-decay { padding: 16px 15px 12px; }
    .v2cst-badge { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

@media (max-width: 390px) {
    /* Four labels on a ~320px rail collide; the two interior points carry the
       argument and the end labels are already in the prose above it. */
    .v2cst-rail__pt b { font-size: 11px; }
    .v2cst-formula__eq span { font-size: 12.5px; padding: 6px 10px; }
    .v2cst-card { padding: 15px 14px 13px; }
    .v2cst-step__b em { font-size: 13px; }
}

/* ============================================================
   BLOG FEE V2  -  BATCH 7: repairs from the 390/480/768 pass

   Both are 44px touch-target misses in SHARED furniture, found
   by hit-testing rather than by eye, and both are fixed scoped
   rather than pushed into the shared layer, which 30+ live posts
   render.

   1. .v2gpr-chip measured 34px at all three widths. The chip
      keeps its visual size and gains the height, so this post's
      scrollspy bar grows by 10px and no sibling changes.

   2. .v2gpr-docs__list a measured 34.8px at 390px. These are the
      primary-source links in the close block - the most likely
      thing on the page to be tapped by someone checking our work
      against Google, so they should not be the hardest to hit.
   ============================================================ */

.v2fee-chips .v2gpr-chip {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.v2fee-prose .v2gpr-docs__list a {
    min-height: 44px;
    display: flex;
    align-items: center;
}

/* ============= END BLOG FEE V2 (batch 7) ============= */

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 1)
   /blog/google-play-12-testers-closed-testing-guide

   Appended as its own block rather than folded into the original
   v2b12- block above, so that concurrent edits to either one
   cannot collide. Same blueprint motif and same --bp-* palette,
   redeclared locally on the new component roots.

   New in this batch: the short-answer capsule, the two-lane
   eligibility/review split, the EVIDENCE GRADER widget, the
   generic scrollable data table + confidence tags, the myth/fact
   columns and the confidence callout.

   Evidence tiers carry their own colour so the reader can tell
   them apart without reading the label:
     is-pub  green   Google publishes this
     is-rec  blue    Google recommends this
     is-non  navy    Not in Google's published rule
     is-com  amber   Community-reported only
     is-unv  violet  Not documented by Google
   ============================================================= */

.v2b12-cap,
.v2b12-lanes,
.v2b12-grader,
.v2b12-tblwrap,
.v2b12-mf,
.v2b12-conf,
.v2b12-walk,
.v2b12-clock,
.v2b12-qtable,
.v2b12-sym,
.v2b12-dl,
.v2b12-know {
    --bp-navy:   #1A2332;
    --bp-cyan:   #0E7490;
    --bp-cyan-2: #0891B2;
    --bp-cyan-tint: #ECFEFF;
    --bp-cyan-line: #BFE7EE;
    --bp-green:  #0F7B4F;
    --bp-green-tint: #ECFDF5;
    --bp-green-line: #B7E4CD;
    --bp-rose:   #B42318;
    --bp-rose-tint: #FDF1F0;
    --bp-rose-line: #F3C9C4;
    --bp-amber-deep: #92400E;
    --bp-amber-tint: #FEF6E7;
    --bp-amber-line: #F5DFA8;
    --bp-violet: #6D28D9;
    --bp-violet-tint: #F5F3FF;
    --bp-violet-line: #DDD3F5;
    --bp-blue:   #1D4ED8;
    --bp-blue-tint: #EFF6FF;
    --bp-blue-line: #C7DBFF;
    --bp-line:   #E3E8EF;
    --bp-grid:   rgba(18,33,46,.05);
    --bp-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.18);
    margin: 26px 0;
}

/* ---------- short-answer capsule ---------- */
.v2b12-cap {
    border: 1px solid var(--bp-cyan-line);
    border-right: 3px solid var(--bp-cyan);
    border-radius: 12px;
    background: var(--bp-cyan-tint);
    padding: 14px 15px;
}
.v2b12-cap__tag {
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bp-cyan);
    margin: 0 0 6px;
}
.v2b12-cap .v2b12-cap__t {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: var(--bp-navy);
}

/* ---------- two-lane split ---------- */
.v2b12-lanes {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}
.v2b12-lane {
    position: relative;
    border: 1px solid var(--bp-line);
    border-radius: 12px;
    background: #fff;
    padding: 15px 15px 13px;
    box-shadow: var(--bp-shadow);
}
.v2b12-lane.is-count { border-top: 3px solid var(--bp-green); }
.v2b12-lane.is-judge { border-top: 3px solid var(--bp-violet); }
.v2b12-lane__tag {
    display: block;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    margin-bottom: 7px;
}
.v2b12-lane.is-count .v2b12-lane__tag { color: var(--bp-green); }
.v2b12-lane.is-judge .v2b12-lane__tag { color: var(--bp-violet); }
.v2b12-lane__h {
    display: block;
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 700;
    color: var(--bp-navy);
    margin-bottom: 6px;
}
.v2b12-lane .v2b12-lane__p {
    margin: 0 0 10px;
    font-size: 14.5px;
    line-height: 1.6;
    color: #44515F;
}
.v2b12-lane__list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px dashed var(--bp-line);
    padding-top: 9px;
}
.v2b12-lane__list li {
    position: relative;
    padding-right: 15px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--bp-navy);
    margin: 0 0 5px;
}
.v2b12-lane__list li:last-child { margin-bottom: 0; }
.v2b12-lane__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 7px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
}
.v2b12-lane.is-count .v2b12-lane__list li::before { background: var(--bp-green); }
.v2b12-lane.is-judge .v2b12-lane__list li::before { background: var(--bp-violet); }

/* ---------- EVIDENCE GRADER ---------- */
.v2b12-grader {
    border: 1px solid var(--bp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
}
.v2b12-grader__head {
    padding: 14px 14px 12px;
    border-bottom: 1px solid var(--bp-line);
    background:
        linear-gradient(var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        linear-gradient(-90deg, var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        #FBFDFE;
}
.v2b12-grader__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 5px;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--bp-cyan);
}
.v2b12-grader__tag svg { width: 17px; height: 17px; flex: none; }
.v2b12-grader .v2b12-grader__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: #55616E;
}
.v2b12-grader__claims {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    padding: 13px 14px;
    border-bottom: 1px solid var(--bp-line);
}
/* qualified with the parent so the scoped styling beats `.v2 button` */
.v2b12-grader .v2b12-claim {
    flex: 1 1 100%;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    text-align: right;
    padding: 8px 12px;
    border: 1px solid var(--bp-line);
    border-radius: 9px;
    background: #fff;
    color: var(--bp-navy);
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.35;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease, color .16s ease;
}
.v2b12-grader .v2b12-claim:hover { border-color: var(--bp-cyan-line); background: var(--bp-cyan-tint); }
.v2b12-grader .v2b12-claim:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 2px;
}
.v2b12-grader .v2b12-claim.is-on {
    background: var(--bp-navy);
    border-color: var(--bp-navy);
    color: #fff;
}
.v2b12-verdict { padding: 14px; }
.v2b12-verdict__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
}
.v2b12-verdict__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .07em;
    text-transform: uppercase;
    border: 1px solid transparent;
}
.v2b12-verdict__ans {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15px;
}
.v2b12-verdict__badge.is-pub { background: var(--bp-green-tint);  border-color: var(--bp-green-line);  color: var(--bp-green); }
.v2b12-verdict__badge.is-rec { background: var(--bp-blue-tint);   border-color: var(--bp-blue-line);   color: var(--bp-blue); }
.v2b12-verdict__badge.is-non { background: #F1F4F8;               border-color: var(--bp-line);        color: var(--bp-navy); }
.v2b12-verdict__badge.is-com { background: var(--bp-amber-tint);  border-color: var(--bp-amber-line);  color: var(--bp-amber-deep); }
.v2b12-verdict__badge.is-unv { background: var(--bp-violet-tint); border-color: var(--bp-violet-line); color: var(--bp-violet); }
.v2b12-verdict__ans.is-pub { color: var(--bp-green); }
.v2b12-verdict__ans.is-rec { color: var(--bp-blue); }
.v2b12-verdict__ans.is-non { color: var(--bp-navy); }
.v2b12-verdict__ans.is-com { color: var(--bp-amber-deep); }
.v2b12-verdict__ans.is-unv { color: var(--bp-violet); }
.v2b12-verdict .v2b12-verdict__claim {
    margin: 0 0 7px;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bp-navy);
}
.v2b12-verdict .v2b12-verdict__body {
    margin: 0 0 11px;
    font-size: 14.5px;
    line-height: 1.62;
    color: #44515F;
}
.v2b12-verdict__safe {
    border-right: 3px solid var(--bp-cyan);
    background: var(--bp-cyan-tint);
    border-radius: 9px 0 0 9px;
    padding: 9px 11px;
}
.v2b12-verdict__safe > span {
    display: block;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--bp-cyan);
    margin-bottom: 3px;
}
.v2b12-verdict__safe p {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    font-weight: 500;
    color: var(--bp-navy);
}

/* ---------- generic data table ---------- */
.v2b12-tblwrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.v2b12-tblwrap::-webkit-scrollbar { display: none; }
.v2b12-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.v2b12-tbl__cap {
    caption-side: top;
    text-align: right;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bp-cyan);
    padding-bottom: 8px;
}
.v2b12-tbl thead th {
    text-align: right;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #5B6875;
    font-weight: 500;
    padding: 0 10px 8px;
    border-bottom: 1px solid var(--bp-line);
    white-space: nowrap;
}
.v2b12-tbl tbody th[scope="row"] {
    text-align: right;
    font-weight: 600;
    color: var(--bp-navy);
}
.v2b12-tbl tbody th,
.v2b12-tbl tbody td {
    padding: 11px 10px;
    border-bottom: 1px dashed var(--bp-line);
    vertical-align: top;
    line-height: 1.55;
    color: #44515F;
    overflow-wrap: anywhere;
}
.v2b12-tbl tbody tr:last-child th,
.v2b12-tbl tbody tr:last-child td { border-bottom: 0; }
.v2b12-tag {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .05em;
    text-transform: uppercase;
    white-space: nowrap;
    border: 1px solid transparent;
}
.v2b12-tag.is-yes  { background: var(--bp-green-tint);  border-color: var(--bp-green-line);  color: var(--bp-green); }
.v2b12-tag.is-no   { background: var(--bp-rose-tint);   border-color: var(--bp-rose-line);   color: var(--bp-rose); }
.v2b12-tag.is-rec  { background: var(--bp-blue-tint);   border-color: var(--bp-blue-line);   color: var(--bp-blue); }
.v2b12-tag.is-warn { background: var(--bp-amber-tint);  border-color: var(--bp-amber-line);  color: var(--bp-amber-deep); }
.v2b12-tag.is-unv  { background: var(--bp-violet-tint); border-color: var(--bp-violet-line); color: var(--bp-violet); }
.v2b12-tag.is-none { background: #F1F4F8;               border-color: var(--bp-line);        color: #5B6875; }

/* ---------- myth / fact columns ---------- */
.v2b12-mf {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.v2b12-mf__col {
    border: 1px solid var(--bp-line);
    border-radius: 11px;
    padding: 12px 13px;
}
.v2b12-mf__col.is-myth { background: var(--bp-rose-tint);  border-color: var(--bp-rose-line); }
.v2b12-mf__col.is-fact { background: var(--bp-green-tint); border-color: var(--bp-green-line); }
.v2b12-mf__tag {
    display: block;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    margin-bottom: 5px;
}
.v2b12-mf__col.is-myth .v2b12-mf__tag { color: var(--bp-rose); }
.v2b12-mf__col.is-fact .v2b12-mf__tag { color: var(--bp-green); }
.v2b12-mf__col p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.58;
    color: var(--bp-navy);
}

/* ---------- confidence callout ---------- */
.v2b12-conf {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 11px;
    align-items: start;
    border: 1px solid var(--bp-cyan-line);
    border-radius: 12px;
    background: var(--bp-cyan-tint);
    padding: 13px 14px;
}
.v2b12-conf__ic {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: #fff;
    border: 1px solid var(--bp-cyan-line);
    color: var(--bp-cyan);
}
.v2b12-conf__ic svg { width: 19px; height: 19px; }
.v2b12-conf strong {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    color: var(--bp-navy);
    margin-bottom: 4px;
}
.v2b12-conf p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #44515F;
}

/* ---------- >= 600px: tables get real columns ---------- */
@media (min-width: 600px) {
    .v2b12-tbl { min-width: 560px; }
}

/* ---------- < 600px: tables restack as cards, no page overflow ---------- */
@media (max-width: 599.98px) {
    .v2b12-tbl,
    .v2b12-tbl tbody,
    .v2b12-tbl tr,
    .v2b12-tbl tbody th,
    .v2b12-tbl tbody td { display: block; width: 100%; }
    .v2b12-tbl thead { display: none; }
    .v2b12-tbl tbody tr {
        border: 1px solid var(--bp-line);
        border-radius: 11px;
        padding: 11px 12px;
        margin-bottom: 9px;
        background: #fff;
    }
    .v2b12-tbl tbody th,
    .v2b12-tbl tbody td {
        padding: 0;
        border-bottom: 0;
    }
    .v2b12-tbl tbody th[scope="row"] {
        font-size: 15px;
        margin-bottom: 6px;
    }
    .v2b12-tbl tbody td { margin-top: 6px; }
    .v2b12-tbl tbody td[data-label]::before {
        content: attr(data-label);
        display: block;
        font-family: var(--font-mono);
        font-size: 9.5px;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: #8A96A3;
        margin-bottom: 2px;
    }
    .v2b12-tbl tbody tr:last-child { margin-bottom: 0; }
}

/* ---------- >= 768px: multi-column layouts open up ---------- */
@media (min-width: 768px) {
    .v2b12-cap,
    .v2b12-lanes,
    .v2b12-grader,
    .v2b12-tblwrap,
    .v2b12-mf,
    .v2b12-conf { margin: 30px 0; }

    .v2b12-lanes { grid-template-columns: 1fr 1fr; gap: 14px; }
    .v2b12-mf { grid-template-columns: 1fr 1fr; gap: 12px; }

    .v2b12-cap { padding: 16px 18px; }
    .v2b12-cap .v2b12-cap__t { font-size: 16.5px; }

    .v2b12-grader__head { padding: 16px 18px 14px; }
    .v2b12-grader__claims { padding: 15px 18px; gap: 8px; }
    /* claims sit two-up, then let long ones take a full row */
    .v2b12-grader .v2b12-claim { flex: 1 1 calc(50% - 4px); }
    .v2b12-verdict { padding: 18px; }
    .v2b12-verdict .v2b12-verdict__claim { font-size: 18px; }
    .v2b12-verdict .v2b12-verdict__body { font-size: 15px; }

    .v2b12-conf { grid-template-columns: 38px 1fr; padding: 15px 17px; }
    .v2b12-conf__ic { width: 38px; height: 38px; }
}

@media (min-width: 1000px) {
    .v2b12-grader .v2b12-claim { flex: 1 1 calc(33.333% - 6px); }
}

/* ---------- <= 390px: tighten, never shrink the tap target ---------- */
@media (max-width: 390px) {
    .v2b12-cap { padding: 12px 13px; }
    .v2b12-cap .v2b12-cap__t { font-size: 14.5px; }
    .v2b12-lane { padding: 13px 13px 11px; }
    .v2b12-lane__h { font-size: 16px; }
    .v2b12-grader__head,
    .v2b12-grader__claims,
    .v2b12-verdict { padding-right: 12px; padding-left: 12px; }
    .v2b12-grader .v2b12-claim { font-size: 13px; }
    .v2b12-verdict .v2b12-verdict__claim { font-size: 15.5px; }
    .v2b12-verdict .v2b12-verdict__body { font-size: 14px; }
    .v2b12-conf { grid-template-columns: 1fr; }
    .v2b12-conf__ic { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .v2b12-grader .v2b12-claim { transition: none; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 2)
   The APPLICABILITY WALKER.

   Options are full-width rows at every width, not a pill cloud:
   the labels are sentences ("On or before November 13, 2023")
   and a wrapped pill is a worse tap target than a row. 48px
   minimum so it clears the 44px floor even with a 1px border.

   Five verdict colours, matching the five real outcomes:
     is-yes    green   the rule applies
     is-out    slate   outside the stated scope
     is-maybe  amber   may carry over (community-reported)
     is-check  cyan    check the Dashboard
   ============================================================= */

.v2b12-walk {
    border: 1px solid var(--bp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
}
.v2b12-walk__head {
    padding: 14px 14px 12px;
    border-bottom: 1px solid var(--bp-line);
    background:
        linear-gradient(var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        linear-gradient(-90deg, var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        #FBFDFE;
}
.v2b12-walk__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 5px;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--bp-cyan);
}
.v2b12-walk__tag svg { width: 17px; height: 17px; flex: none; }
.v2b12-walk .v2b12-walk__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: #55616E;
}
.v2b12-walk__body { padding: 14px; }
.v2b12-walk__step[hidden],
.v2b12-walk__result[hidden] { display: none; }
.v2b12-walk .v2b12-walk__q {
    margin: 0 0 11px;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.32;
    color: var(--bp-navy);
}
.v2b12-walk__q span {
    display: inline-block;
    margin-left: 7px;
    padding: 2px 6px;
    border-radius: 5px;
    background: var(--bp-cyan-tint);
    border: 1px solid var(--bp-cyan-line);
    color: var(--bp-cyan);
    font-size: 10.5px;
    vertical-align: 2px;
}
.v2b12-walk__opts {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
/* parent-qualified so scoped styling beats `.v2 button` */
.v2b12-walk .v2b12-opt {
    width: 100%;
    min-height: 48px;
    display: flex;
    align-items: center;
    text-align: right;
    padding: 10px 13px;
    border: 1px solid var(--bp-line);
    border-radius: 10px;
    background: #fff;
    color: var(--bp-navy);
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 500;
    line-height: 1.4;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.v2b12-walk .v2b12-opt::before {
    content: "";
    flex: none;
    width: 15px;
    height: 15px;
    margin-left: 10px;
    border: 1.5px solid #C3CCD6;
    border-radius: 50%;
}
.v2b12-walk .v2b12-opt:hover {
    border-color: var(--bp-cyan-line);
    background: var(--bp-cyan-tint);
}
.v2b12-walk .v2b12-opt:hover::before { border-color: var(--bp-cyan); }
.v2b12-walk .v2b12-opt:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 2px;
}
.v2b12-walk .v2b12-opt:active { transform: scale(.99); }

.v2b12-walk .v2b12-walk__back,
.v2b12-walk .v2b12-walk__again {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    margin-top: 11px;
    padding: 8px 14px;
    border: 1px solid var(--bp-line);
    border-radius: 9px;
    background: #F7F9FB;
    color: #55616E;
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
}
.v2b12-walk .v2b12-walk__back:hover,
.v2b12-walk .v2b12-walk__again:hover { background: #EEF2F6; color: var(--bp-navy); }
.v2b12-walk .v2b12-walk__back:focus-visible,
.v2b12-walk .v2b12-walk__again:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 2px;
}

.v2b12-walk__verdict {
    display: inline-flex;
    align-items: center;
    padding: 5px 11px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .07em;
    text-transform: uppercase;
    border: 1px solid transparent;
    margin-bottom: 10px;
}
.v2b12-walk__verdict.is-yes   { background: var(--bp-green-tint);  border-color: var(--bp-green-line);  color: var(--bp-green); }
.v2b12-walk__verdict.is-out   { background: #F1F4F8;               border-color: var(--bp-line);        color: var(--bp-navy); }
.v2b12-walk__verdict.is-maybe { background: var(--bp-amber-tint);  border-color: var(--bp-amber-line);  color: var(--bp-amber-deep); }
.v2b12-walk__verdict.is-check { background: var(--bp-cyan-tint);   border-color: var(--bp-cyan-line);   color: var(--bp-cyan); }
.v2b12-walk .v2b12-walk__rh {
    margin: 0 0 7px;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.32;
    color: var(--bp-navy);
}
.v2b12-walk .v2b12-walk__rp {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.62;
    color: #44515F;
}
.v2b12-walk .v2b12-walk__conf {
    margin: 11px 0 0;
    padding: 9px 11px;
    border-right: 3px solid var(--bp-amber-deep);
    border-radius: 9px 0 0 9px;
    background: var(--bp-amber-tint);
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--bp-amber-deep);
}
.v2b12-walk .v2b12-walk__conf[hidden] { display: none; }

@media (min-width: 768px) {
    .v2b12-walk { margin: 30px 0; }
    .v2b12-walk__head { padding: 16px 18px 14px; }
    .v2b12-walk__body { padding: 18px; }
    .v2b12-walk .v2b12-walk__q { font-size: 18px; }
    .v2b12-walk .v2b12-walk__rh { font-size: 18px; }
    .v2b12-walk .v2b12-walk__rp { font-size: 15px; }
}

@media (max-width: 390px) {
    .v2b12-walk__head,
    .v2b12-walk__body { padding-right: 12px; padding-left: 12px; }
    .v2b12-walk .v2b12-walk__q { font-size: 15.5px; }
    .v2b12-walk .v2b12-opt { font-size: 14px; padding: 10px 11px; }
    .v2b12-walk .v2b12-opt::before { margin-left: 8px; }
    .v2b12-walk .v2b12-walk__rh { font-size: 15.5px; }
    .v2b12-walk .v2b12-walk__rp { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2b12-walk .v2b12-opt { transition: none; }
    .v2b12-walk .v2b12-opt:active { transform: none; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 3)
   The ELIGIBILITY DATE ESTIMATOR + the known/not-documented pair.

   Row layout is `84px 1fr 40px` on phones. Measured against a
   390px viewport: the article track is ~358px, the widget eats
   24px of padding, so the native date input still gets ~210px -
   enough for the platform picker not to clip. It only widens at
   768px; it never needs to scroll sideways.

   Output panel carries four states, coloured so the answer is
   readable before the sentence is:
     is-idle   grey    nothing entered yet
     is-short  rose    fewer than 12 opted in
     is-wait   cyan    on the clock, date in the future
     is-ready  green   window complete
   ============================================================= */

.v2b12-clock {
    border: 1px solid var(--bp-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
}
.v2b12-clock__head {
    padding: 14px 14px 12px;
    border-bottom: 1px solid var(--bp-line);
    background:
        linear-gradient(var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        linear-gradient(-90deg, var(--bp-grid) 1px, transparent 1px) 0 0 / 14px 14px,
        #FBFDFE;
}
.v2b12-clock__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 5px;
    font-size: 11px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--bp-cyan);
}
.v2b12-clock__tag svg { width: 17px; height: 17px; flex: none; }
.v2b12-clock .v2b12-clock__sub {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: #55616E;
}
.v2b12-clock__body { padding: 14px; }
.v2b12-clock__rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.v2b12-clock__row {
    display: grid;
    grid-template-columns: 84px 1fr 40px;
    gap: 8px;
    align-items: end;
}
.v2b12-clock__f {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.v2b12-clock__f > span {
    font-size: 9.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #8A96A3;
}
.v2b12-clock__body input[type="number"],
.v2b12-clock__body input[type="date"] {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 8px 10px;
    border: 1px solid var(--bp-line);
    border-radius: 9px;
    background: #fff;
    color: var(--bp-navy);
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    -webkit-appearance: none;
    appearance: none;
}
.v2b12-clock__body input[type="date"] {
    font-family: var(--font-mono);
    font-size: 13.5px;
    font-weight: 500;
}
.v2b12-clock__body input:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 1px;
    border-color: var(--bp-cyan);
}
.v2b12-clock .v2b12-clock__del {
    width: 40px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--bp-line);
    border-radius: 9px;
    background: #F7F9FB;
    color: #8A96A3;
    cursor: pointer;
}
.v2b12-clock .v2b12-clock__del svg { width: 16px; height: 16px; }
.v2b12-clock .v2b12-clock__del:hover:not(:disabled) {
    background: var(--bp-rose-tint);
    border-color: var(--bp-rose-line);
    color: var(--bp-rose);
}
.v2b12-clock .v2b12-clock__del:disabled { opacity: .38; cursor: not-allowed; }
.v2b12-clock .v2b12-clock__del:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 2px;
}
.v2b12-clock .v2b12-clock__add {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding: 8px 14px;
    border: 1px dashed var(--bp-cyan-line);
    border-radius: 9px;
    background: var(--bp-cyan-tint);
    color: var(--bp-cyan);
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
}
.v2b12-clock .v2b12-clock__add svg { width: 14px; height: 14px; }
.v2b12-clock .v2b12-clock__add:hover { background: #DEF6FA; }
.v2b12-clock .v2b12-clock__add:focus-visible {
    outline: 2px solid var(--bp-cyan-2);
    outline-offset: 2px;
}

.v2b12-clock__out {
    margin-top: 13px;
    border: 1px solid var(--bp-line);
    border-radius: 12px;
    padding: 13px 14px;
    background: #F7F9FB;
}
.v2b12-clock__out.is-short { background: var(--bp-rose-tint);  border-color: var(--bp-rose-line); }
.v2b12-clock__out.is-wait  { background: var(--bp-cyan-tint);  border-color: var(--bp-cyan-line); }
.v2b12-clock__out.is-ready { background: var(--bp-green-tint); border-color: var(--bp-green-line); }
.v2b12-clock__state {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid var(--bp-line);
    font-size: 10px;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: #5B6875;
    margin-bottom: 8px;
}
.v2b12-clock__out.is-short .v2b12-clock__state { color: var(--bp-rose);  border-color: var(--bp-rose-line); }
.v2b12-clock__out.is-wait  .v2b12-clock__state { color: var(--bp-cyan);  border-color: var(--bp-cyan-line); }
.v2b12-clock__out.is-ready .v2b12-clock__state { color: var(--bp-green); border-color: var(--bp-green-line); }
.v2b12-clock .v2b12-clock__big {
    margin: 0 0 5px;
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.02em;
    color: var(--bp-navy);
    overflow-wrap: anywhere;
}
.v2b12-clock .v2b12-clock__note {
    margin: 0;
    font-size: 14px;
    line-height: 1.58;
    color: #44515F;
}
.v2b12-clock__facts {
    margin: 11px 0 0;
    padding: 10px 0 0;
    list-style: none;
    border-top: 1px dashed rgba(26,35,50,.14);
}
.v2b12-clock__facts[hidden] { display: none; }
.v2b12-clock__facts li {
    position: relative;
    padding-right: 15px;
    margin: 0 0 6px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #44515F;
}
.v2b12-clock__facts li:last-child { margin-bottom: 0; }
.v2b12-clock__facts li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 7px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    opacity: .5;
}
.v2b12-clock .v2b12-clock__hedge {
    margin: 12px 0 0;
    padding: 10px 12px;
    border-right: 3px solid var(--bp-amber-deep);
    border-radius: 9px 0 0 9px;
    background: var(--bp-amber-tint);
    font-size: 13px;
    line-height: 1.6;
    color: var(--bp-amber-deep);
}

/* ---------- known / not documented pair ---------- */
.v2b12-know {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.v2b12-know__col {
    border: 1px solid var(--bp-line);
    border-radius: 11px;
    padding: 12px 13px;
}
.v2b12-know__col.is-known   { background: var(--bp-cyan-tint);   border-color: var(--bp-cyan-line); }
.v2b12-know__col.is-unknown { background: var(--bp-violet-tint); border-color: var(--bp-violet-line); }
.v2b12-know__tag {
    display: block;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    margin-bottom: 5px;
}
.v2b12-know__col.is-known .v2b12-know__tag   { color: var(--bp-cyan); }
.v2b12-know__col.is-unknown .v2b12-know__tag { color: var(--bp-violet); }
.v2b12-know__col p {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.58;
    color: var(--bp-navy);
}

@media (min-width: 768px) {
    .v2b12-clock,
    .v2b12-know { margin: 30px 0; }
    .v2b12-clock__head { padding: 16px 18px 14px; }
    .v2b12-clock__body { padding: 18px; }
    .v2b12-clock__row { grid-template-columns: 120px 1fr 44px; gap: 10px; }
    .v2b12-clock__out { padding: 16px 18px; }
    .v2b12-clock .v2b12-clock__big { font-size: 27px; }
    .v2b12-clock .v2b12-clock__note { font-size: 14.5px; }
    .v2b12-know { grid-template-columns: 1fr 1fr; gap: 12px; }
}

@media (max-width: 390px) {
    .v2b12-clock__head,
    .v2b12-clock__body { padding-right: 12px; padding-left: 12px; }
    .v2b12-clock__row { grid-template-columns: 74px 1fr 38px; gap: 6px; }
    .v2b12-clock__body input[type="date"] { font-size: 12.5px; padding-right: 7px; padding-left: 7px; }
    .v2b12-clock .v2b12-clock__del { width: 38px; }
    .v2b12-clock .v2b12-clock__big { font-size: 19.5px; }
    .v2b12-clock .v2b12-clock__note { font-size: 13.5px; }
    .v2b12-clock .v2b12-clock__hedge { font-size: 12.5px; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 4)
   The production-access flow rail + the folk-rules list.

   .v2b12-folk is deliberately the plainest component in the
   section. It carries the claims Google has NOT published, and
   giving it the same visual weight as the verified cards above
   would undo the point of separating them.
   ============================================================= */

.v2b12-flow,
.v2b12-folk {
    --bp-navy:   #1A2332;
    --bp-cyan:   #0E7490;
    --bp-cyan-2: #0891B2;
    --bp-cyan-tint: #ECFEFF;
    --bp-cyan-line: #BFE7EE;
    --bp-green:  #0F7B4F;
    --bp-green-tint: #ECFDF5;
    --bp-green-line: #B7E4CD;
    --bp-amber-deep: #92400E;
    --bp-amber-tint: #FEF6E7;
    --bp-amber-line: #F5DFA8;
    --bp-violet: #6D28D9;
    --bp-violet-tint: #F5F3FF;
    --bp-violet-line: #DDD3F5;
    --bp-line:   #E3E8EF;
    --bp-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.18);
    margin: 26px 0;
}

/* ---------- production access flow rail ---------- */
.v2b12-flow {
    display: flex;
    flex-direction: column;
    gap: 0;
}
.v2b12-flow__step {
    position: relative;
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 12px;
    padding-bottom: 16px;
}
.v2b12-flow__step:last-child { padding-bottom: 0; }
/* dashed connector between nodes */
.v2b12-flow__step:not(:last-child)::before {
    content: "";
    position: absolute;
    right: 17px;
    top: 34px;
    bottom: 2px;
    width: 0;
    border-right: 1px dashed var(--bp-cyan-line);
}
.v2b12-flow__n {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bp-cyan-tint);
    border: 1px solid var(--bp-cyan-line);
    color: var(--bp-cyan);
    font-size: 11.5px;
    font-weight: 600;
    position: relative;
    z-index: 1;
}
.v2b12-flow__step.is-end .v2b12-flow__n {
    background: var(--bp-green-tint);
    border-color: var(--bp-green-line);
    color: var(--bp-green);
}
.v2b12-flow__step > div {
    border: 1px solid var(--bp-line);
    border-radius: 11px;
    background: #fff;
    padding: 11px 13px;
    box-shadow: var(--bp-shadow);
}
.v2b12-flow__step b {
    display: block;
    font-family: var(--font-display);
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.32;
    color: var(--bp-navy);
    margin-bottom: 4px;
}
.v2b12-flow__step span:not(.v2b12-flow__n) {
    display: block;
    font-size: 14px;
    line-height: 1.55;
    color: #55616E;
}

/* ---------- folk rules ---------- */
.v2b12-folk {
    border: 1px solid var(--bp-violet-line);
    border-radius: 13px;
    background: var(--bp-violet-tint);
    padding: 14px;
}
.v2b12-folk__tag {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 6px;
    font-size: 10.5px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bp-violet);
    line-height: 1.4;
}
.v2b12-folk__tag svg { width: 17px; height: 17px; flex: none; }
.v2b12-folk .v2b12-folk__sub {
    margin: 0 0 12px;
    font-size: 13.5px;
    line-height: 1.58;
    color: #4A4360;
}
.v2b12-folk__list {
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2b12-folk__list li {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 11px 0;
    border-top: 1px dashed var(--bp-violet-line);
}
.v2b12-folk__list li > div {
    font-size: 14px;
    line-height: 1.6;
    color: #44515F;
}
.v2b12-folk__list li b {
    color: var(--bp-navy);
    font-weight: 600;
}
.v2b12-folk__list li .v2b12-tag { justify-self: start; }

@media (min-width: 768px) {
    .v2b12-flow,
    .v2b12-folk { margin: 30px 0; }
    .v2b12-flow__step { grid-template-columns: 38px 1fr; gap: 14px; padding-bottom: 18px; }
    .v2b12-flow__step:not(:last-child)::before { right: 19px; top: 38px; }
    .v2b12-flow__n { width: 38px; height: 38px; font-size: 12.5px; }
    .v2b12-flow__step > div { padding: 13px 15px; }
    .v2b12-flow__step b { font-size: 16.5px; }

    .v2b12-folk { padding: 17px 19px; }
    .v2b12-folk__list li {
        grid-template-columns: 148px 1fr;
        gap: 14px;
        align-items: start;
        padding: 13px 0;
    }
    .v2b12-folk__list li .v2b12-tag { justify-self: start; margin-top: 2px; }
}

@media (max-width: 390px) {
    .v2b12-flow__step { grid-template-columns: 30px 1fr; gap: 10px; }
    .v2b12-flow__step:not(:last-child)::before { right: 15px; top: 30px; }
    .v2b12-flow__n { width: 30px; height: 30px; font-size: 10.5px; }
    .v2b12-flow__step > div { padding: 10px 11px; }
    .v2b12-flow__step b { font-size: 14.5px; }
    .v2b12-flow__step span:not(.v2b12-flow__n) { font-size: 13.5px; }
    .v2b12-folk { padding: 12px; }
    .v2b12-folk__list li > div { font-size: 13.5px; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 5)
   The "policy checked" freshness marker.

   NOTE the selector. This <p> is a DIRECT CHILD of the article,
   so a bare `.v2b12-checked` loses the cascade to
   `.v2gpr-prose > p` and silently renders as 16.5px body copy.
   It has to be qualified as `.v2gpr-prose > p.v2b12-checked`
   to win. Same trap has bitten this pattern before.
   ============================================================= */

.v2gpr-prose > p.v2b12-checked {
    display: grid;
    grid-template-columns: 18px 1fr;
    gap: 9px;
    align-items: start;
    margin: 18px 0 22px;
    padding: 11px 13px;
    border: 1px dashed #C9D3DD;
    border-radius: 10px;
    background: #F8FAFC;
    font-size: 13.5px;
    line-height: 1.58;
    color: #55616E;
}
.v2gpr-prose > p.v2b12-checked svg {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: #0E7490;
    flex: none;
}
.v2gpr-prose > p.v2b12-checked b { color: #1A2332; }

@media (max-width: 390px) {
    .v2gpr-prose > p.v2b12-checked {
        grid-template-columns: 1fr;
        font-size: 12.5px;
        padding: 10px 11px;
    }
    .v2gpr-prose > p.v2b12-checked svg { display: none; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 6)
   Touch-target fix for the intro index.

   The index entries used to be <span>s and were not tappable, so
   38px was fine. The refresh turned all eight into anchor links,
   which made them tap targets and put them under the 44px floor
   (measured 38.3px / 39.3px at 390, 480 and 768px).

   Padding rather than a bare min-height, so the existing
   `align-items: baseline` keeps the mono index number aligned
   with the label instead of stranding it at the top of a taller
   box. Two-class selector so it wins on specificity, not order.
   ============================================================= */

.v2b12-index .v2b12-index__item {
    min-height: 44px;
    padding-top: 12px;
    padding-bottom: 12px;
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 7)
   Evidence Grader: keep the verdict on screen with the claims.

   Caught in the 390px pass. Fourteen full-width claim rows made
   the widget 1122px tall, so a reader tapping a claim near the
   top got their answer roughly 900px below the fold and saw
   nothing happen. The widget looked fine in a screenshot and was
   broken in use.

   Capping the claim list at ~5.2 rows leaves a half-row visible
   as the scroll cue and puts the verdict panel back inside the
   same screen. `overscroll-behavior: contain` stops the page
   from scrolling on when the list hits its end.
   ============================================================= */

@media (max-width: 767.98px) {
    .v2b12-grader__claims {
        max-height: 268px;
        overflow-y: auto;
        overscroll-behavior: contain;
        scrollbar-width: thin;
        scrollbar-color: #C3CCD6 transparent;
    }
    .v2b12-grader__claims::-webkit-scrollbar { width: 4px; }
    .v2b12-grader__claims::-webkit-scrollbar-thumb {
        background: #C3CCD6;
        border-radius: 4px;
    }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 8)
   Troubleshooting checklist + the editorial QA plan grid.

   .v2b12-tshoot is a real <ol> with counter-generated badges, so
   the order survives copy-paste and screen readers announce the
   position. The list is meant to be worked down in sequence, and
   a bulleted list would lose that.

   .v2b12-plan is one column on phones, two from 600px, four from
   1000px. It never becomes a scroller: it is short text and
   stacking reads better than a horizontal drag.
   ============================================================= */

.v2b12-tshoot,
.v2b12-plan {
    --bp-navy:   #1A2332;
    --bp-cyan:   #0E7490;
    --bp-cyan-tint: #ECFEFF;
    --bp-cyan-line: #BFE7EE;
    --bp-line:   #E3E8EF;
    --bp-shadow: 0 1px 2px rgba(10,16,23,.04), 0 10px 26px -14px rgba(14,116,144,.18);
    margin: 26px 0;
}

/* ---------- ordered troubleshooting checklist ---------- */
.v2gpr-prose > ol.v2b12-tshoot,
.v2b12-tshoot {
    list-style: none;
    counter-reset: tshoot;
    padding: 0;
    border: 1px solid var(--bp-line);
    border-radius: 13px;
    background: #fff;
    box-shadow: var(--bp-shadow);
    overflow: hidden;
}
/* NOT a grid. These <li>s contain mixed inline content (text nodes
   plus <strong>), and in a grid container every element child becomes
   its own grid item - so each <strong> got dropped into the 26px
   badge column and rendered one word per line, on top of the text
   beside it. Absolutely-positioned counter badge + padding-left keeps
   the content in normal inline flow. Same trap as the callout grids
   that need an icon as their first child. */
.v2b12-tshoot > li {
    counter-increment: tshoot;
    position: relative;
    display: block;
    padding: 12px 51px 12px 14px;
    margin: 0;
    font-size: 14.5px;
    line-height: 1.58;
    color: #44515F;
    border-top: 1px dashed var(--bp-line);
}
.v2b12-tshoot > li:first-child { border-top: 0; }
.v2b12-tshoot > li::before {
    content: counter(tshoot);
    position: absolute;
    right: 14px;
    top: 11px;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--bp-cyan-tint);
    border: 1px solid var(--bp-cyan-line);
    color: var(--bp-cyan);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
}
.v2b12-tshoot > li strong { color: var(--bp-navy); font-weight: 600; }

/* ---------- editorial QA plan ---------- */
.v2b12-plan {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}
.v2b12-plan__col {
    border: 1px solid var(--bp-line);
    border-radius: 12px;
    background: #fff;
    padding: 12px 14px;
    box-shadow: var(--bp-shadow);
}
.v2b12-plan__tag {
    display: block;
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
    color: var(--bp-cyan);
    margin-bottom: 8px;
}
.v2b12-plan__col ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.v2b12-plan__col li {
    position: relative;
    padding-right: 16px;
    margin: 0 0 6px;
    font-size: 14px;
    line-height: 1.5;
    color: #44515F;
}
.v2b12-plan__col li:last-child { margin-bottom: 0; }
.v2b12-plan__col li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 8px;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: var(--bp-cyan);
    opacity: .55;
}

@media (min-width: 600px) {
    .v2b12-plan { grid-template-columns: 1fr 1fr; gap: 12px; }
}

@media (min-width: 768px) {
    .v2b12-tshoot,
    .v2b12-plan { margin: 30px 0; }
    .v2b12-tshoot > li { padding: 13px 58px 13px 17px; }
    .v2b12-tshoot > li::before { right: 17px; top: 12px; width: 28px; height: 28px; font-size: 11.5px; }
}

@media (min-width: 1000px) {
    .v2b12-plan { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 390px) {
    .v2b12-tshoot > li {
        padding: 11px 45px 11px 12px;
        font-size: 13.5px;
    }
    .v2b12-tshoot > li::before { right: 12px; top: 10px; width: 24px; height: 24px; font-size: 10.5px; }
    .v2b12-plan__col { padding: 11px 12px; }
    .v2b12-plan__col li { font-size: 13.5px; }
}

/* =============================================================
   BLOG B12 V2 - 2026 EVIDENCE REFRESH (batch 9)
   Primary-sources touch targets.

   .v2gpr-docs__list a measures ~34.8px at 390px in the shared
   layer. These are the links a reader taps to check our claims
   against Google, so they should not be the hardest thing on the
   page to hit. Scoped to .v2b12-docs rather than fixed in the
   shared layer, which 30+ live posts render.
   ============================================================= */

.v2b12-docs .v2gpr-docs__list a {
    min-height: 44px;
    display: flex;
    align-items: center;
}

/* =============================================================
   BLOG TT V2 - EDITORIAL AUDIT #2 (2026-08-16)

   New furniture for the sections the audit asked for, plus this
   post's copy of the sticky-CTA overflow repair. All selectors are
   scoped to .v2tt-* so nothing here can move another V2 post.
   ============================================================= */

/* ---------- Official sources checked ----------
   Reuses the .v2tt-uses card (mono label + item grid) and adds the
   verification-date footer. The items are links, so they get the
   accent colour the surrounding prose uses rather than the muted
   grey a plain checklist item takes. */

.v2tt-src { border-color: rgba(11, 138, 71, 0.22); }
.v2tt-src .v2tt-uses__grid > div { align-items: flex-start; }
.v2tt-src .v2tt-uses__grid a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.v2tt-src .v2tt-uses__grid a:hover { color: var(--go-deep); }
.v2tt-src__foot {
    margin: 16px 0 0;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 13px;
    line-height: 1.65;
    color: var(--slate);
}
.v2tt-src__foot strong { color: var(--ink); }

/* ---------- Two-column revision log ----------
   .v2tt-ct defaults to the four-column comparison grid, so the log
   needs its own template. is-left stops the long "what changed"
   cell being centred like a comparison value. */

.v2tt-ct--rev .v2tt-ct__head,
.v2tt-ct--rev .v2tt-ct__row { grid-template-columns: 0.5fr 2fr; }
/* Both header cells sit above left-aligned content here, unlike the
   comparison table where only the first column is a row label. */
.v2tt-ct--rev .v2tt-ct__head > th { text-align: right; }
/* is-left: a cell holding a sentence rather than a comparison value.
   display:block restores normal inline flow - .v2tt-ct__val is a flex
   row with a 6px gap, which would otherwise break <b> away from the
   text that follows it. */
.v2tt-ct__val.is-left {
    display: block;
    text-align: right;
}

/* ---------- Single commercial CTA ----------
   The three plan cards left the article body in this audit; one
   button replaces them, so it needs the vertical room the plan
   grid used to occupy. */

.v2tt-onecta { margin: 22px 0 0; }
.v2gpr-prose p.v2tt-onecta { margin-bottom: 0; }

/* ---------- Sticky mobile CTA: scoped overflow repair ----------

   Same shared-layer behaviour already repaired on the cal, pts, reg
   and mtr posts: .v2-faq__wa resolves to flex: 1 0 100% (it is a
   full-width button in its FAQ home) and the shared .v2gpr-scta
   rule resets flex-shrink without resetting that 100% basis, so on
   a 390px viewport the WhatsApp button runs past the right edge and
   the pricing button collapses to an unlabelled square. The page
   sets overflow-x: clip, which hides the overflow from scrollWidth
   checks - so this never showed up as a failing test, only as a
   truncated button on a real phone. Repaired for this post only:
   changing the shared rule would move every V2 blog at once. */

.v2 .v2tt-scta .v2-faq__wa {
    flex: 0 0 auto;
    width: auto;
    max-width: 46%;
    min-width: 0;
    justify-content: center;
}
.v2 .v2tt-scta .v2-btn--primary {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 390px) {
    .v2 .v2tt-scta { padding-right: 10px; padding-left: 10px; }
    .v2 .v2tt-scta .v2-btn { font-size: 14px; }
    .v2 .v2tt-scta .v2-faq__wa { padding-right: 13px; padding-left: 13px; }
}

/* ---------- Mobile reflow for the two new tables ----------
   Under 720px the shared layer hides .v2tt-ct__head and stacks each
   row, relying on the .v2tt-ct__lab spans inside the cells for
   labels. The revision log has no per-cell labels (its row header
   IS the date), so it just needs the single-column stack. */

@media (max-width: 720px) {
    .v2tt-ct--rev .v2tt-ct__row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- BLOG TT V2 - Play Console screenshots (2026-08-16) ----------
   One annotated shot per track section. Same recipe as .v2cday-fig and
   .v2upd-fig (framed image + mist caption bar); scoped to .v2tt-fig so it
   cannot move those posts. The source files are ~2900px wide, so the img
   is width-constrained with height:auto - the width/height attributes on
   the tag exist only to reserve the right aspect ratio before decode. */

.v2tt-fig {
    margin: 26px 0;
    border: 1px solid var(--line);
    border-radius: 13px;
    overflow: hidden;
    background: var(--paper);
}
.v2tt-fig img {
    display: block;
    width: 100%;
    height: auto;
}
.v2tt-fig figcaption {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    padding: 12px 16px;
    background: var(--mist);
    border-top: 1px solid var(--line);
    color: var(--faint);
    font-size: 12.5px;
    line-height: 1.5;
}


/* ============================================================
   BLOG DNU V2 (/blog/closed-testing-days-not-updating)
   "Closed testing days not updating? Check your Google Play counter"

   BUILT 2026-09-11 from the R14 evidence dossier. Prefix: v2dnu-.
   Motif: READOUT versus RECORD. The Console number is a readout (an
   observation); the reader's own enrollment evidence is the record,
   and every component keeps the two apart. One local accent, an
   "instrument indigo", carries the readout / illustration layer
   (walker results, the continuity strip, policy-derived examples);
   the site green stays the confirmed / action state; a muted amber
   marks "not publicly established here". Nothing is red: nothing on
   this page is an automatic denial.

   Components: first-screen picker (links INTO the walker), the four
   evidence labels, location card, Tool 01 triage walker (two taps,
   O0-O9), Tool 02 continuity strip (grouped lanes, proportional
   interval bars, T marker), cause cards, symptom table, metric
   cards, tester-message generator, illustrative-records table,
   evidence ledger, Tool 03 packet builder, outcome cards. Rides the
   shared v2gpr- article layer (rail + chips, prose, h2/h3, note/warn,
   tool shell, faq, docs, author, related, dark CTA, sticky CTA).

   Two bold dark moments only: the quick answer and the bottom line.
   ============================================================ */

.v2dnu-article, .v2dnu-relgrid {
    --dnu-obs:       #3D3F9E;
    --dnu-obs-deep:  #2E3080;
    --dnu-obs-bg:    #EEEFF9;
    --dnu-obs-tint:  #E1E3F4;
    --dnu-obs-line:  rgba(61, 63, 158, 0.22);
    --dnu-unk:       #8A5A00;
    --dnu-unk-bg:    #FDF6E8;
    --dnu-unk-line:  rgba(138, 90, 0, 0.2);
}

/* Block-scoped reset (base reset skips lists, figures, blockquotes) */
.v2dnu-legend__list, .v2dnu-legend2__list, .v2dnu-ck, .v2dnu-checks,
.v2dnu-unk__list, .v2dnu-quote, .v2dnu-quote__q {
    margin: 0; padding: 0; list-style: none;
}

/* Elements whose base style sets display need an explicit hidden rule */
.v2dnu-res[hidden], .v2 .v2dnu-btn[hidden], .v2dnu-walk__step[hidden],
.v2dnu-scope__note[hidden] { display: none; }

/* Jump targets for the pre-merge anchors (#missed-day, #someone-left) */
.v2dnu-anchor { display: block; height: 0; scroll-margin-top: calc(var(--nav-h) + 26px); }

/* ---------- Hero ---------- */
.v2dnu-hero__go { color: var(--go); }
.v2dnu-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2dnu-fact--date b { font-size: 19px; letter-spacing: -0.01em; }

/* ---------- Quick answer (speakable; dark moment #1) ---------- */
.v2dnu-answer {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 4px 0 18px;
}
.v2dnu-answer__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2dnu-answer__tag svg { width: 16px; height: 16px; }
.v2dnu-answer__lead {
    font-size: 16px; line-height: 1.8; font-weight: 450;
    color: #C6D0DA;
}
.v2dnu-answer__lead strong { color: #fff; font-weight: 700; }
.v2dnu-answer__src {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-family: var(--font-mono);
    font-size: 10.5px; letter-spacing: 0.04em; line-height: 1.7;
    color: #93A0AC;
}
.v2 .v2dnu-answer__src a {
    color: #5FD4A0; font-weight: 600;
    text-decoration: underline; text-decoration-color: rgba(95, 212, 160, 0.4);
    text-underline-offset: 3px;
}

/* ---------- First-screen picker: four chips into Tool 01 ---------- */
.v2dnu-pick {
    background: var(--paper);
    border: 1px solid var(--dnu-obs-line);
    border-radius: 18px;
    padding: 18px 20px;
    margin: 0 0 22px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -30px rgba(46, 48, 128, 0.35);
}
.v2dnu-pick__lab { margin: 0 0 12px; font-size: 10px; color: var(--dnu-obs); }
.v2dnu-pick__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.v2 .v2dnu-pick__btn, .v2gpr-prose a.v2dnu-pick__btn {
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
    font-size: 14px; font-weight: 600; line-height: 1.35;
    color: var(--ink);
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2 .v2dnu-pick__btn::before {
    content: '';
    flex: 0 0 auto;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--dnu-obs-tint);
    border: 1.5px solid var(--dnu-obs-line);
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2 .v2dnu-pick__btn:hover { border-color: var(--dnu-obs); background: var(--dnu-obs-bg); color: var(--dnu-obs-deep); }
.v2 .v2dnu-pick__btn:hover::before { background: var(--dnu-obs); border-color: var(--dnu-obs); }
.v2dnu-pick__note,
.v2gpr-prose .v2dnu-pick__note {
    margin: 12px 0 0;
    font-size: 12.5px; line-height: 1.6; color: var(--faint);
}

/* ---------- SIGNATURE: the four evidence labels ----------
   A squared tag with a load-bearing left bar, not a pill: the label
   is a claim about authority, not decoration. */
.v2dnu-lbl {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.11em; line-height: 1;
    padding: 6px 9px 6px 11px;
    border-radius: 4px;
    border-right: 3px solid currentColor;
    white-space: nowrap;
}
.v2dnu-lbl.is-req { color: var(--ink);          background: var(--mist); }
.v2dnu-lbl.is-doc { color: var(--slate);        background: var(--mist); border-right-color: #C9D2DA; }
.v2dnu-lbl.is-chk { color: var(--go-deep);      background: var(--go-tint); }
.v2dnu-lbl.is-ex  { color: var(--dnu-obs-deep); background: var(--dnu-obs-bg); }
.v2dnu-lbl.is-com { color: var(--slate);        background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.v2dnu-lbl.is-unk { color: var(--dnu-unk);      background: var(--dnu-unk-bg); }
.v2gpr-prose > .v2dnu-lbl { margin: 26px 0 12px; }

.v2dnu-legend {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 22px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04);
}
.v2dnu-legend__lab { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2dnu-legend__strip { display: flex; flex-wrap: wrap; gap: 6px; }
.v2dnu-legend__more { margin-top: 10px; }
.v2dnu-legend__more summary {
    list-style: none; cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    min-height: 44px;
    font-size: 13px; font-weight: 600; color: var(--go-deep);
}
.v2dnu-legend__more summary::-webkit-details-marker { display: none; }
.v2dnu-legend__more summary::before {
    content: ''; width: 7px; height: 7px;
    border-left: 1.8px solid currentColor; border-bottom: 1.8px solid currentColor;
    transform: rotate(-45deg) translateY(-2px); transition: transform 0.18s ease;
}
.v2dnu-legend__more[open] summary::before { transform: rotate(135deg) translateY(-2px); }
.v2dnu-legend__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 20px;
    margin-top: 12px;
}
.v2dnu-legend__list li { display: grid; grid-template-columns: minmax(0, 1fr); gap: 7px; }
.v2dnu-legend__list li .v2dnu-lbl { justify-self: start; }
.v2dnu-legend__list li > span:last-child { font-size: 13.5px; line-height: 1.6; color: var(--slate); }

/* ---------- Static "Do this first" path (audit H01) ---------- */
.v2dnu-first {
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px 0 0 16px;
    padding: 18px 20px;
    margin: 0 0 22px;
}
.v2dnu-first__lab { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 10px; color: var(--go-deep); }
.v2dnu-first__lab svg { width: 15px; height: 15px; color: var(--go); }
.v2dnu-first__list { counter-reset: dnufirst; display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.v2dnu-first__list li {
    counter-increment: dnufirst;
    position: relative;
    padding-right: 32px;
    font-size: 14.5px; line-height: 1.65; color: var(--slate);
}
.v2dnu-first__list li strong { color: var(--ink); font-weight: 650; }
.v2dnu-first__list li::before {
    content: counter(dnufirst);
    position: absolute; right: 0; top: 1px;
    width: 22px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--go-tint); color: var(--go-deep);
    font-family: var(--font-mono); font-size: 10px; font-weight: 700;
}

/* Citation-ready passage before the metric cards */
.v2dnu-cite {
    margin: 14px 0 0;
    padding: 14px 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2dnu-cite p { font-size: 15px; line-height: 1.7; color: var(--ink); }

/* Escalation trigger (audit H06) */
.v2dnu-trigger {
    margin: 18px 0;
    padding: 15px 18px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
}
.v2dnu-trigger__lab { margin: 0 0 6px; font-size: 10px; color: var(--go-deep); }
.v2dnu-trigger p:last-child { font-size: 14.5px; line-height: 1.7; color: var(--ink); }

/* Field hint under a packet label */
.v2dnu-field__hint { display: block; margin: -2px 0 7px; font-size: 12.5px; line-height: 1.5; color: var(--faint); }

/* ---------- Table of contents ---------- */
.v2dnu-toc {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 22px 0 8px;
}
.v2dnu-toc__label { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2dnu-toc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
.v2 .v2dnu-toc__grid a, .v2gpr-prose .v2dnu-toc__grid a {
    text-decoration: none;
    display: flex; align-items: baseline; gap: 10px;
    padding: 7px 0;
    font-size: 14.5px; font-weight: 600; color: var(--ink);
}
.v2dnu-toc__grid a .v2-mono { font-size: 10px; color: var(--faint); flex-shrink: 0; }
.v2 .v2dnu-toc__grid a:hover { color: var(--go-deep); }
.v2 .v2dnu-toc__grid a:hover .v2-mono { color: var(--go); }

/* ---------- Headings, capsules, source lines, paths ---------- */
.v2dnu-h2 { text-wrap: balance; }
.v2dnu-h3 { scroll-margin-top: calc(var(--nav-h) + 26px); }

/* Answer capsule under every H2 */
.v2dnu-cap,
.v2gpr-prose > p.v2dnu-cap {
    margin: 0 0 18px;
    padding: 14px 18px;
    border-right: 3px solid var(--dnu-obs);
    background: var(--dnu-obs-bg);
    border-radius: 12px 0 0 12px;
    font-size: 15.5px; line-height: 1.7; font-weight: 500;
    color: var(--ink);
    text-wrap: pretty;
}

/* `.v2gpr-prose > p` is (0,1,1); the direct-child form is spelled out */
.v2dnu-src,
.v2gpr-prose > p.v2dnu-src {
    font-size: 13px; line-height: 1.65; color: var(--faint);
    margin: 12px 0 0;
}
.v2 .v2dnu-src a {
    color: var(--dnu-obs); font-weight: 600;
    text-decoration: underline; text-decoration-color: rgba(61, 63, 158, 0.3);
    text-underline-offset: 3px;
}
.v2 .v2dnu-src a:hover { text-decoration-color: var(--dnu-obs); }

.v2dnu-path {
    font-family: var(--font-mono);
    font-size: 0.82em; font-weight: 600;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 2px 7px;
    overflow-wrap: anywhere;
}

/* Shared note / warn spacing (icon-first grid: keep the icon) */
.v2dnu-note, .v2dnu-warn { margin: 22px 0; }

/* ---------- Location card (Table A) ---------- */
.v2dnu-loc {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 20px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 22px 44px -30px rgba(10, 16, 23, 0.2);
}
.v2dnu-loc__lab {
    display: flex; align-items: center; gap: 8px;
    margin: 0;
    padding: 13px 18px;
    background: var(--ink);
    color: #5FD4A0; font-size: 10px;
}
.v2dnu-loc__lab svg { width: 15px; height: 15px; }
.v2dnu-loc__table { width: 100%; border-collapse: collapse; }
.v2dnu-loc__table th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 11px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2dnu-loc__table td {
    padding: 14px 16px;
    font-size: 13.5px; line-height: 1.6; color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2dnu-loc__table tbody tr:last-child td { border-bottom: none; }
.v2dnu-loc__table td strong { display: block; color: var(--ink); font-weight: 650; }
.v2dnu-loc__table td .v2dnu-lbl { margin-top: 8px; }
.v2dnu-loc__table td:nth-child(1) { width: 26%; }
.v2dnu-loc__table td:nth-child(2) { width: 32%; }

/* ---------- Tool shell recolour (readout motif) ---------- */
.v2dnu-tool { margin: 22px 0 0; }
.v2dnu-tool .v2gpr-tool__tag {
    color: var(--dnu-obs-deep);
    background: var(--dnu-obs-bg);
    border-color: var(--dnu-obs-line);
}
.v2dnu-nojs,
.v2gpr-tool__body .v2dnu-nojs {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: var(--dnu-unk-bg);
    border: 1px solid var(--dnu-unk-line);
    border-radius: 10px;
    font-size: 13.5px; line-height: 1.6; color: var(--dnu-unk);
}

/* ---------- Buttons (button + link share the class) ---------- */
.v2 .v2dnu-btn, .v2gpr-prose a.v2dnu-btn {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 9px 16px;
    border-radius: 10px;
    background: var(--dnu-obs);
    border: 1px solid var(--dnu-obs);
    color: #fff;
    font-size: 13.5px; font-weight: 600; line-height: 1.3;
    text-align: center;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.v2 .v2dnu-btn:hover { background: var(--dnu-obs-deep); border-color: var(--dnu-obs-deep); }
.v2 .v2dnu-btn.is-done { background: var(--go); border-color: var(--go); }
.v2 .v2dnu-btn--ghost {
    background: var(--paper);
    border-color: var(--line);
    color: var(--ink);
}
.v2 .v2dnu-btn--ghost:hover { background: var(--mist); border-color: #C9D2DA; color: var(--ink); }
.v2 .v2dnu-btn .v2-ic { width: 15px; height: 15px; }

/* ---------- Option buttons (walker A/B/C, strip scenarios) ----------
   `.v2 button` in the base reset is (0,1,1) and zeroes padding, border
   and background, so every button-based control is written `.v2 <class>`. */
.v2dnu-walk__opts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
.v2dnu-walk__opts--b { grid-template-columns: minmax(0, 1fr); }
.v2 .v2dnu-opt {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    min-height: 46px;
    padding: 10px 14px;
    text-align: right;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 14px; font-weight: 600; line-height: 1.35;
    color: var(--slate);
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2 .v2dnu-opt::before {
    content: '';
    flex: 0 0 auto;
    width: 16px; height: 16px;
    border-radius: 50%;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    box-shadow: inset 0 0 0 3px var(--paper);
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2 .v2dnu-opt:hover { border-color: #C9D2DA; color: var(--ink); }
.v2 .v2dnu-opt.is-on {
    background: var(--dnu-obs-bg);
    border-color: var(--dnu-obs);
    color: var(--dnu-obs-deep);
}
.v2 .v2dnu-opt.is-on::before { background: var(--dnu-obs); border-color: var(--dnu-obs); }
.v2 .v2dnu-opt--sm { min-height: 44px; font-size: 13.5px; padding: 8px 12px; }
.v2 .v2dnu-opt--sc { flex: 1 1 auto; justify-content: flex-start; }

/* ---------- Tool 01: the walker ---------- */
.v2dnu-walk__step { margin-bottom: 18px; }
.v2dnu-walk__q,
.v2gpr-tool__body .v2dnu-walk__q {
    margin: 0 0 10px;
    font-family: var(--font-display);
    font-size: 15.5px; font-weight: 650; letter-spacing: -0.01em;
    color: var(--ink);
}
.v2dnu-walk__hint,
.v2gpr-tool__body .v2dnu-walk__hint {
    margin: -4px 0 10px;
    font-size: 13px; line-height: 1.6; color: var(--slate);
}
.v2dnu-walk__out { margin-top: 4px; }
.v2dnu-res {
    background: var(--dnu-obs-bg);
    border: 1px solid var(--dnu-obs-line);
    border-radius: 14px;
    padding: 18px 20px;
}
.v2dnu-res__h,
.v2gpr-tool__body .v2dnu-res__h {
    margin: 0 0 8px;
    font-family: var(--font-display);
    font-size: 17.5px; font-weight: 650; letter-spacing: -0.012em; line-height: 1.3;
    color: var(--dnu-obs-deep);
}
.v2 .v2dnu-res__h:focus, .v2 .v2dnu-strip__h:focus { outline: none; }
.v2dnu-res__b,
.v2gpr-tool__body .v2dnu-res__b { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--ink); }
.v2dnu-res__box {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 14px 16px;
    margin-top: 12px;
}
.v2dnu-res__lab,
.v2gpr-tool__body .v2dnu-res__lab { margin: 0 0 8px; font-size: 10px; color: var(--faint); }
.v2dnu-res__line,
.v2gpr-tool__body .v2dnu-res__line { margin: 0; font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2dnu-res__line + .v2dnu-res__line { margin-top: 6px; }
.v2dnu-res__acts {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    margin-top: 12px;
}
.v2dnu-res__acts--stack { flex-direction: column; align-items: stretch; }
.v2dnu-res__status,
.v2gpr-tool__body .v2dnu-res__status {
    font-family: var(--font-mono);
    font-size: 11px; letter-spacing: 0.04em; line-height: 1.5;
    color: var(--go-deep);
    flex: 1 1 100%;
}
.v2dnu-res__status:empty { display: none; }
.v2dnu-res__n,
.v2gpr-tool__body .v2dnu-res__n {
    margin: 12px 0 0;
    font-size: 14px; line-height: 1.7; color: var(--slate);
}
.v2dnu-res__n .v2dnu-lbl { margin-left: 6px; vertical-align: 1px; }
.v2dnu-res__fine,
.v2gpr-tool__body .v2dnu-res__fine { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--faint); }
.v2dnu-res__svc,
.v2gpr-tool__body .v2dnu-res__svc {
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: 1px dashed var(--dnu-obs-line);
    font-size: 13.5px; line-height: 1.7; color: var(--slate);
}
.v2 .v2dnu-res__svc a {
    color: var(--go-deep); font-weight: 700;
    text-decoration: underline; text-underline-offset: 3px;
}
.v2dnu-ck { counter-reset: dnuck; display: grid; gap: 8px; }
.v2dnu-ck li {
    counter-increment: dnuck;
    position: relative;
    padding-right: 30px;
    font-size: 14px; line-height: 1.65; color: var(--slate);
}
.v2dnu-ck li::before {
    content: counter(dnuck);
    position: absolute; right: 0; top: 1px;
    width: 21px; height: 21px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--dnu-obs-bg);
    color: var(--dnu-obs);
    font-family: var(--font-mono);
    font-size: 10px; font-weight: 700;
}
.v2dnu-walk__ctl { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.v2dnu-walk__ctl:empty { display: none; }
.v2dnu-scope { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 14px; }
.v2dnu-scope summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    min-height: 44px;
    font-size: 13.5px; font-weight: 650; color: var(--ink);
}
.v2dnu-scope summary::-webkit-details-marker { display: none; }
.v2dnu-scope summary svg { width: 16px; height: 16px; color: var(--slate); flex-shrink: 0; }
.v2dnu-scope[open] summary svg { color: var(--dnu-obs); }
.v2dnu-scope__p,
.v2gpr-tool__body .v2dnu-scope__p { margin: 4px 0 12px; font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2dnu-scope__note,
.v2gpr-tool__body .v2dnu-scope__note {
    margin: 12px 0 0;
    padding: 11px 14px;
    background: var(--dnu-unk-bg);
    border: 1px solid var(--dnu-unk-line);
    border-radius: 10px;
    font-size: 13.5px; line-height: 1.6; color: var(--dnu-unk);
}
.v2dnu-walk__foot,
.v2gpr-tool__body .v2dnu-walk__foot {
    display: flex; flex-wrap: wrap; gap: 4px 8px;
    margin: 18px 0 0;
    font-size: 10px; letter-spacing: 0.06em; line-height: 1.6;
    color: var(--faint);
}

/* ---------- Quote, verdict, "not established" list ---------- */
.v2dnu-quote {
    margin: 18px 0;
    padding: 18px 22px;
    border-right: 3px solid var(--dnu-obs);
    background: var(--dnu-obs-bg);
    border-radius: 14px 0 0 14px;
}
.v2dnu-quote__q p {
    font-family: var(--font-display);
    font-size: 21px; font-weight: 650; letter-spacing: -0.015em; line-height: 1.35;
    color: var(--ink);
}
.v2dnu-quote__c,
.v2gpr-prose .v2dnu-quote__c { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--slate); }
.v2 .v2dnu-quote__c a { color: var(--dnu-obs); font-weight: 600; text-decoration-color: rgba(61, 63, 158, 0.3); }

.v2dnu-verdict {
    margin: 20px 0;
    padding: 16px 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 14px 0 0 14px;
}
.v2dnu-verdict__lab { margin: 0 0 8px; font-size: 10px; color: var(--go-deep); }
.v2dnu-verdict__p { font-size: 16px; line-height: 1.7; color: var(--slate); }
.v2dnu-verdict__p strong { color: var(--ink); }

.v2dnu-unk {
    margin: 20px 0;
    padding: 16px 18px;
    background: var(--dnu-unk-bg);
    border: 1px solid var(--dnu-unk-line);
    border-radius: 14px;
}
.v2dnu-unk__lab {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    margin: 0 0 12px;
    font-size: 14.5px; font-weight: 650; line-height: 1.4; color: var(--ink);
}
.v2dnu-unk--inline .v2dnu-unk__lab { margin-bottom: 8px; }
.v2dnu-unk__p { font-size: 14px; line-height: 1.7; color: var(--slate); }
.v2dnu-unk__list { counter-reset: dnuunk; display: grid; gap: 10px; }
.v2dnu-unk__list li {
    counter-increment: dnuunk;
    position: relative;
    padding-right: 30px;
    font-size: 14px; line-height: 1.7; color: var(--slate);
}
.v2dnu-unk__list li::before {
    content: counter(dnuunk);
    position: absolute; right: 0; top: 2px;
    width: 21px; height: 21px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: rgba(138, 90, 0, 0.1);
    color: var(--dnu-unk);
    font-family: var(--font-mono);
    font-size: 10px; font-weight: 700;
}

/* ---------- Tool 02: the continuity strip ---------- */
.v2dnu-strip__flags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.v2dnu-flag {
    display: inline-flex; align-items: center;
    font-family: var(--font-mono);
    font-size: 9px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.3;
    padding: 5px 9px;
    border-radius: 999px;
}
.v2dnu-flag.is-ex  { color: var(--dnu-obs-deep); background: var(--dnu-obs-bg); border: 1px solid var(--dnu-obs-line); }
.v2dnu-flag.is-unk { color: var(--dnu-unk); background: var(--dnu-unk-bg); border: 1px solid var(--dnu-unk-line); }
.v2dnu-flag.is-req { color: var(--ink); background: var(--mist); border: 1px solid var(--line); }
.v2dnu-strip__pick { display: flex; flex-wrap: wrap; gap: 8px; }

.v2dnu-chart {
    --dnu-lab: 156px;
    margin-top: 16px;
    padding: 14px 16px 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
}
.v2dnu-axis {
    position: relative;
    height: 22px;
    margin: 0 var(--dnu-lab) 8px 0;
    margin-right: calc(var(--dnu-lab) + 12px);
}
.v2dnu-axis__win {
    position: absolute; top: 0; height: 100%;
    display: flex; align-items: flex-end;
    padding: 0 8px 4px 0;
    border-right: 1px dashed var(--dnu-obs-line);
    border-top: 2px solid var(--dnu-obs-line);
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--dnu-obs);
    white-space: nowrap;
}
.v2dnu-axis__t {
    position: absolute; left: 0; top: 0;
    transform: translateX(-50%);
    font-family: var(--font-mono);
    font-size: 11px; font-weight: 700; color: var(--ink);
    background: var(--paper);
    padding: 0 4px;
}
.v2dnu-lanes { display: grid; gap: 10px; }
.v2dnu-lane {
    display: grid;
    grid-template-columns: var(--dnu-lab) minmax(0, 1fr);
    gap: 4px 12px;
    align-items: center;
}
.v2dnu-lane__lab {
    font-size: 13px; font-weight: 600; line-height: 1.35; color: var(--ink);
    overflow-wrap: anywhere;
}
.v2dnu-lane__track {
    position: relative;
    height: 36px;
    border-left: 2px dashed var(--ink);
    background:
        linear-gradient(to left, transparent 33.333%, var(--dnu-obs-bg) 33.333%) no-repeat;
    border-radius: 0 6px 6px 0;
}
.v2dnu-seg {
    position: absolute; top: 6px; height: 24px;
    display: flex; align-items: center;
    padding: 0 8px;
    border-radius: 6px;
    overflow: hidden;
    box-sizing: border-box;
}
.v2dnu-seg i {
    font-style: normal;
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.v2dnu-seg.is-cont, .v2dnu-seg.is-left { background: var(--dnu-obs); color: #fff; }
.v2dnu-seg.is-left { border-radius: 12px 6px 6px 12px; }
.v2dnu-seg.is-gap {
    background: repeating-linear-gradient(-135deg, transparent 0 4px, var(--dnu-obs-line) 4px 6px);
    border: 1.5px dashed var(--dnu-obs);
    color: var(--dnu-obs-deep);
}
.v2dnu-seg.is-new {
    background: var(--go-tint);
    border: 1.5px solid var(--go);
    color: var(--go-deep);
}
.v2dnu-cells {
    position: absolute; top: 6px; height: 24px;
    display: grid;
    grid-template-columns: repeat(14, minmax(0, 1fr));
    gap: 2px;
}
.v2dnu-cell {
    display: flex; align-items: center; justify-content: center;
    border-radius: 4px;
    background: var(--dnu-obs-tint);
    border: 1px solid var(--dnu-obs-line);
    font-family: var(--font-mono);
    font-size: 11px; font-weight: 700;
    color: var(--dnu-unk);
}
.v2dnu-cell.is-miss { background: var(--dnu-unk-bg); border: 1.5px dashed var(--dnu-unk); }
.v2dnu-lane__note {
    grid-column: 2;
    font-family: var(--font-mono);
    font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase;
    color: var(--dnu-unk);
}
.v2dnu-strip__res {
    margin-top: 16px;
    padding: 16px 18px;
    background: var(--dnu-obs-bg);
    border: 1px solid var(--dnu-obs-line);
    border-radius: 14px;
}
.v2dnu-strip__h,
.v2gpr-tool__body .v2dnu-strip__h {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: 17.5px; font-weight: 650; letter-spacing: -0.012em; line-height: 1.3;
    color: var(--dnu-obs-deep);
}
.v2dnu-strip__b,
.v2gpr-tool__body .v2dnu-strip__b { margin: 0; font-size: 14.5px; line-height: 1.7; color: var(--ink); }
.v2dnu-strip__n,
.v2gpr-tool__body .v2dnu-strip__n { margin: 8px 0 0; font-size: 13.5px; font-weight: 600; line-height: 1.6; color: var(--slate); }
.v2dnu-legend2 { margin-top: 14px; }
.v2dnu-legend2__lab { margin: 0 0 8px; font-size: 10px; color: var(--faint); }
.v2dnu-legend2__list { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.v2dnu-legend2__list li { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--slate); }
.v2dnu-sw { display: inline-block; width: 20px; height: 12px; border-radius: 3px; flex-shrink: 0; }
.v2dnu-sw.is-cont { background: var(--dnu-obs); }
.v2dnu-sw.is-gap { background: repeating-linear-gradient(-135deg, transparent 0 3px, var(--dnu-obs-line) 3px 5px); border: 1.5px dashed var(--dnu-obs); }
.v2dnu-sw.is-new { background: var(--go-tint); border: 1.5px solid var(--go); }
.v2dnu-sw.is-miss { background: var(--dnu-unk-bg); border: 1.5px dashed var(--dnu-unk); }
.v2dnu-sw.is-t { width: 0; height: 14px; border-right: 2px dashed var(--ink); border-radius: 0; }

/* ---------- Cause cards ---------- */
.v2dnu-causes { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 22px 0 0; }
.v2dnu-cause {
    min-width: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2dnu-cause__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.v2dnu-cause__idx {
    flex-shrink: 0;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 11px;
    background: var(--dnu-obs-bg);
    color: var(--dnu-obs);
    font-family: var(--font-display);
    font-weight: 800; font-size: 19px; letter-spacing: -0.02em;
}
.v2dnu-cause__title {
    flex: 1 1 auto; min-width: 0;
    font-family: var(--font-display);
    font-weight: 650; font-size: 18px; letter-spacing: -0.014em; line-height: 1.3;
    color: var(--ink);
}
.v2dnu-cause__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    gap: 12px;
    margin-top: 16px;
}
.v2dnu-cause__col {
    background: var(--mist);
    border-radius: 12px;
    padding: 14px 16px;
}
.v2dnu-cause__col.is-act { background: var(--go-tint); }
.v2dnu-cause__col.is-act .v2dnu-cause__lab { color: var(--go-deep); }
.v2dnu-cause__lab { margin: 0 0 6px; font-size: 10px; color: var(--faint); }
.v2dnu-cause__col p:last-child, .v2dnu-cause__limit p:last-child { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
/* Four-item access check inside a cause card (re-audit 2026-09-12) */
.v2dnu-cause__steps { counter-reset: dnucs; display: grid; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.v2dnu-cause__steps li {
    counter-increment: dnucs;
    position: relative;
    padding-right: 28px;
    font-size: 14px; line-height: 1.65; color: var(--slate);
}
.v2dnu-cause__steps li strong { color: var(--ink); font-weight: 650; }
.v2dnu-cause__steps li::before {
    content: counter(dnucs);
    position: absolute; right: 0; top: 2px;
    width: 20px; height: 20px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--paper); border: 1px solid var(--line);
    color: var(--slate);
    font-family: var(--font-mono); font-size: 10px; font-weight: 700;
}
.v2dnu-cause__limit {
    margin-top: 12px;
    padding: 14px 16px;
    background: var(--dnu-unk-bg);
    border: 1px solid var(--dnu-unk-line);
    border-radius: 12px;
}
.v2dnu-cause__limit .v2dnu-cause__lab { color: var(--dnu-unk); }
.v2dnu-cause .v2dnu-src { margin-top: 14px; }

/* ---------- Symptom table (Table B) + records table (Table C) ---------- */
.v2dnu-symp, .v2dnu-rec {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 18px 0 0;
}
.v2dnu-rec__head { padding: 16px 18px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2dnu-rec__t { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 650; color: var(--ink); }
.v2dnu-rec__d { margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--slate); }
.v2dnu-symp__scroll, .v2dnu-rec__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2dnu-symp__table, .v2dnu-rec__table { width: 100%; min-width: 760px; border-collapse: collapse; }
.v2dnu-rec__table { min-width: 820px; }
.v2dnu-symp__table th, .v2dnu-rec__table th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 11px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2dnu-rec__table th { background: var(--paper); }
.v2dnu-symp__table td, .v2dnu-rec__table td {
    padding: 12px 14px;
    font-size: 13.5px; line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2dnu-symp__table tbody tr:last-child td, .v2dnu-rec__table tbody tr:last-child td { border-bottom: none; }
.v2dnu-symp__table td strong, .v2dnu-rec__table td strong { color: var(--ink); font-weight: 650; }
.v2dnu-symp__conf b { color: var(--ink); font-weight: 700; }
.v2dnu-rec__table td.is-conc { color: var(--ink); }
.v2dnu-rec__table td.is-not { background: rgba(253, 246, 232, 0.6); color: var(--dnu-unk); }

/* ---------- Metric cards ---------- */
.v2dnu-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; }
.v2dnu-metric {
    min-width: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px;
}
.v2dnu-metric__t { font-family: var(--font-display); font-size: 16.5px; font-weight: 650; letter-spacing: -0.012em; color: var(--ink); }
.v2dnu-metric__d { margin-top: 6px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2dnu-metric__row {
    display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 10px; align-items: baseline;
    padding: 10px 0 0; margin-top: 10px;
    border-top: 1px solid #F0F3F5;
    font-size: 13.5px; line-height: 1.55; color: var(--slate);
}
.v2dnu-metric__row > .v2-mono { font-size: 9px; padding: 4px 7px; border-radius: 4px; text-align: center; white-space: nowrap; }
.v2dnu-metric__row.is-yes > .v2-mono { color: var(--go-deep); background: var(--go-tint); }
.v2dnu-metric__row.is-no > .v2-mono { color: var(--dnu-unk); background: var(--dnu-unk-bg); }

/* In the three-column desktop grid each card is narrow, so the chip sits
   above its text; on phones the cards are full width and the row stays
   side by side. */
@media (min-width: 761px) {
    .v2dnu-metric__row { grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .v2dnu-metric__row > .v2-mono { justify-self: start; }
}

/* ---------- Generators: tester message + support packet ---------- */
.v2dnu-gen {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 18px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
}
.v2dnu-gen__fields, .v2dnu-pkt__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.v2dnu-pkt__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2dnu-field { display: block; min-width: 0; }
.v2dnu-field--wide { grid-column: 1 / -1; }
.v2dnu-field__lab { display: block; margin-bottom: 6px; font-size: 13px; font-weight: 600; line-height: 1.4; color: var(--ink); }
.v2 .v2dnu-field__in {
    display: block;
    width: 100%;
    min-height: 44px;
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 14.5px; color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 10px;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2dnu-field__in::placeholder { color: var(--faint); }
.v2 .v2dnu-field__in--area { resize: vertical; min-height: 68px; line-height: 1.55; }
.v2dnu-gen .v2dnu-nojs { margin: 0 0 14px; }
.v2 .v2dnu-field__in:focus {
    outline: none;
    border-color: var(--dnu-obs);
    background: var(--paper);
    box-shadow: 0 0 0 3px var(--dnu-obs-bg);
}
.v2dnu-gen__out { margin-top: 16px; }
.v2dnu-gen__lab { margin: 0 0 8px; font-size: 10px; color: var(--faint); }
.v2dnu-gen__pre {
    margin: 0;
    padding: 14px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-family: var(--font-body);
    font-size: 14px; line-height: 1.7; color: var(--ink);
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: anywhere;
    max-width: 100%;
}
.v2dnu-gen__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }

/* ---------- Access checklist ---------- */
.v2dnu-checks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 9px; margin: 16px 0; }
.v2dnu-checks li {
    position: relative;
    padding-right: 26px;
    font-size: 14.5px; line-height: 1.7; color: var(--slate);
}
.v2dnu-checks li strong { color: var(--ink); font-weight: 650; }
.v2dnu-checks li::before {
    content: '';
    position: absolute; right: 0; top: 7px;
    width: 15px; height: 15px;
    border-radius: 4px;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%230B8A47' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 12px 12px;
    background-position: center;
    background-repeat: no-repeat;
}

/* ---------- Evidence ledger (Table D) ---------- */
.v2dnu-ledger { border: 1px solid var(--line); border-radius: 16px; overflow: hidden; margin: 16px 0 18px; }
.v2dnu-ledger__row {
    display: grid;
    grid-template-columns: 128px minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 14px;
    padding: 12px 16px;
    border-bottom: 1px solid #F0F3F5;
    font-size: 13.5px; line-height: 1.6;
}
.v2dnu-ledger__row:nth-child(odd) { background: var(--mist); }
.v2dnu-ledger__row:last-child { border-bottom: none; }
.v2dnu-ledger__t { font-weight: 650; color: var(--ink); }
.v2dnu-ledger__f { color: var(--slate); }
.v2dnu-ledger__w { color: var(--faint); font-size: 13px; }

/* ---------- Outcome cards ---------- */
.v2dnu-outcomes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; }
.v2 .v2dnu-outcome, .v2gpr-prose a.v2dnu-outcome {
    text-decoration: none;
    font-weight: 400;
    color: var(--ink);
    display: flex; flex-direction: column; gap: 12px;
    min-width: 0;
    padding: 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2dnu-outcome:hover { border-color: #C9D2DA; box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.3); }
.v2dnu-outcome__ic {
    width: 40px; height: 40px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    border-radius: 11px;
}
.v2dnu-outcome__ic svg { width: 20px; height: 20px; }
.v2dnu-outcome__ic.is-go  { background: var(--go-tint); color: var(--go); }
.v2dnu-outcome__ic.is-unk { background: var(--dnu-unk-bg); color: var(--dnu-unk); }
.v2dnu-outcome__ic.is-obs { background: var(--dnu-obs-bg); color: var(--dnu-obs); }
.v2dnu-outcome__tx { display: flex; flex-direction: column; min-width: 0; }
.v2dnu-outcome__tx strong { font-family: var(--font-display); font-size: 15.5px; font-weight: 650; letter-spacing: -0.01em; line-height: 1.3; color: var(--ink); }
.v2dnu-outcome__tx > span { margin-top: 7px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2dnu-outcome__tx em {
    display: inline-flex; align-items: center; gap: 6px;
    margin-top: 12px;
    font-style: normal; font-size: 13px; font-weight: 700; color: var(--go-deep);
}
.v2dnu-outcome__tx em .v2-ic { width: 15px; height: 15px; transition: transform 0.18s ease; }
.v2 .v2dnu-outcome:hover .v2dnu-outcome__tx em .v2-ic { transform: translateX(-3px); }

/* ---------- FAQ ---------- */
.v2dnu-faq { margin-top: 18px; }
.v2dnu-faq__q {
    font-family: var(--font-display);
    font-weight: 600; font-size: 15.5px; letter-spacing: -0.01em; line-height: 1.45;
    color: var(--ink);
}

/* ---------- Bottom line (speakable; dark moment #2) ---------- */
.v2dnu-bottom {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 26px 0 0;
}
.v2dnu-bottom__tag { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; color: #5FD4A0; font-size: 10px; }
.v2dnu-bottom__tag svg { width: 16px; height: 16px; }
.v2dnu-bottom__text { font-size: 16px; line-height: 1.8; font-weight: 450; color: #C6D0DA; }
.v2dnu-bottom__text strong { color: #fff; font-weight: 700; }

/* ---------- Official documentation list ---------- */
.v2dnu-docs { margin-top: 26px; }
.v2dnu-docs .v2gpr-docs__label { font-size: 10px; color: var(--faint); }
.v2dnu-docs__note { margin: 12px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--faint); }

/* ---------- Related reading ---------- */
.v2dnu-relgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 880px;
    margin: 0 auto;
}
.v2 .v2dnu-rel {
    display: flex; align-items: center; gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2dnu-rel:hover { border-color: #C9D2DA; transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.4); }
.v2dnu-rel__ic {
    flex-shrink: 0;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px;
    background: var(--dnu-obs-bg);
    color: var(--dnu-obs);
}
.v2dnu-rel__ic svg { width: 19px; height: 19px; }
.v2dnu-rel__tx { flex: 1 1 auto; min-width: 0; }
.v2dnu-rel__tx strong { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.35; }
.v2dnu-rel__tx span { display: block; font-size: 12.5px; color: var(--slate); line-height: 1.45; margin-top: 3px; }
.v2dnu-rel__arw { color: var(--faint); flex-shrink: 0; transition: transform 0.18s ease, color 0.18s ease; }
.v2 .v2dnu-rel:hover .v2dnu-rel__arw { color: var(--go-deep); transform: translateX(-3px); }

/* ============================================================
   MOBILE / RESPONSIVE - written per component, mobile-first intent
============================================================ */
@media (max-width: 900px) {
    .v2dnu-relgrid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
    .v2dnu-metrics, .v2dnu-outcomes { grid-template-columns: minmax(0, 1fr); }
    .v2dnu-ledger__row { grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 12px 14px; }
    .v2dnu-ledger__t { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--faint); }
    .v2dnu-cause__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .v2dnu-answer { padding: 22px 18px; }
    .v2dnu-answer__lead { font-size: 15px; }
    .v2dnu-pick { padding: 16px; }
    .v2dnu-legend { padding: 17px 16px; }
    .v2dnu-legend__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2dnu-first { padding: 16px 15px; }
    .v2dnu-first__list li { font-size: 14px; }
    .v2dnu-toc { padding: 17px 16px; }
    .v2dnu-toc__grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
    .v2dnu-cap, .v2gpr-prose > p.v2dnu-cap { font-size: 15px; padding: 12px 14px; }

    /* Location card: stacked labelled rows, no sideways scroll */
    .v2dnu-loc__table, .v2dnu-loc__table tbody, .v2dnu-loc__table tr, .v2dnu-loc__table td { display: block; width: auto; }
    .v2dnu-loc__table thead { display: none; }
    .v2dnu-loc__table tr { padding: 14px 16px; border-bottom: 1px solid var(--line); }
    .v2dnu-loc__table tbody tr:last-child { border-bottom: none; }
    .v2dnu-loc__table td, .v2dnu-loc__table td:nth-child(1), .v2dnu-loc__table td:nth-child(2) { width: auto; padding: 5px 0; border-bottom: none; }
    .v2dnu-loc__table td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 3px;
        font-family: var(--font-mono);
        font-size: 9.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
        color: var(--faint);
    }
    .v2dnu-loc__table td:first-child::before { display: none; }
    .v2dnu-loc__table td strong { font-size: 15px; }
    .v2dnu-loc__table td .v2dnu-lbl { margin: 6px 0 4px; }

    /* Symptom + records tables: stacked labelled cards under 640px */
    .v2dnu-symp__scroll, .v2dnu-rec__scroll { overflow: visible; }
    .v2dnu-symp__table, .v2dnu-rec__table { min-width: 0; }
    .v2dnu-symp__table, .v2dnu-symp__table tbody, .v2dnu-symp__table tr, .v2dnu-symp__table td,
    .v2dnu-rec__table, .v2dnu-rec__table tbody, .v2dnu-rec__table tr, .v2dnu-rec__table td { display: block; width: auto; }
    .v2dnu-symp__table thead, .v2dnu-rec__table thead { display: none; }
    .v2dnu-symp__table tr, .v2dnu-rec__table tr { padding: 14px 16px; border-bottom: 1px solid var(--line); }
    .v2dnu-symp__table tbody tr:last-child, .v2dnu-rec__table tbody tr:last-child { border-bottom: none; }
    .v2dnu-symp__table td, .v2dnu-rec__table td { padding: 5px 0; border-bottom: none; }
    .v2dnu-symp__table td::before, .v2dnu-rec__table td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        font-family: var(--font-mono);
        font-size: 9.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
        color: var(--faint);
    }
    .v2dnu-symp__table td:first-child::before, .v2dnu-rec__table td:first-child::before { display: none; }
    .v2dnu-symp__table td strong, .v2dnu-rec__table td strong { font-size: 15px; }
    .v2dnu-rec__table td.is-not { background: none; padding: 8px 12px; margin-top: 6px; border-radius: 8px; background: var(--dnu-unk-bg); }

    .v2dnu-walk__opts { grid-template-columns: minmax(0, 1fr); }
    .v2dnu-res { padding: 16px 15px; }
    .v2dnu-res__box { padding: 13px 14px; }
    .v2dnu-res__acts .v2dnu-btn { flex: 1 1 auto; }
    .v2dnu-strip__pick { flex-direction: column; }
    .v2 .v2dnu-opt--sc { width: 100%; }
    .v2dnu-chart { --dnu-lab: 0px; padding: 12px 12px 10px; }
    .v2dnu-axis { margin-right: 0; height: 24px; }
    .v2dnu-lane { grid-template-columns: minmax(0, 1fr); gap: 5px; }
    .v2dnu-lane__note { grid-column: 1; }
    .v2dnu-quote { padding: 16px 18px; }
    .v2dnu-quote__q p { font-size: 18.5px; }
    .v2dnu-cause { padding: 19px 17px; }
    .v2dnu-cause__idx { width: 34px; height: 34px; font-size: 16px; border-radius: 9px; }
    .v2dnu-cause__title { font-size: 16.5px; }
    .v2dnu-cause__head .v2dnu-lbl { flex-basis: 100%; }
    .v2dnu-gen { padding: 16px; }
    .v2dnu-pkt__grid { grid-template-columns: minmax(0, 1fr); }
    .v2dnu-gen__acts .v2dnu-btn { width: 100%; }
    .v2dnu-bottom { padding: 22px 20px; }
    .v2dnu-bottom__text { font-size: 15px; }
    .v2dnu-unk { padding: 15px 15px; }
}

@media (max-width: 480px) {
    .v2dnu-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
    .v2dnu-facts .v2gpr-fact { padding: 12px 9px; }
    .v2dnu-facts .v2gpr-fact b { font-size: 17px; }
    .v2dnu-fact--date b { font-size: 13px; }
    .v2dnu-facts .v2-mono { font-size: 8.5px; }
    .v2dnu-pick__row { grid-template-columns: minmax(0, 1fr); }
    .v2dnu-walk__ctl .v2dnu-btn { flex: 1 1 auto; }
    .v2dnu-res__acts--stack .v2dnu-btn { width: 100%; }
    /* Continuity-strip bar captions at phone width. The bars are a PERCENTAGE of
       a much narrower track here, so a caption that fits the same bar at 1280px
       is clipped at 390px: measured over CDP, six locales (es, fr, tr, pt, id, nl)
       shipped an ellipsised caption while the character budgets passed. Dropping
       the size, the tracking and the padding buys about 20% and clears every
       language, instead of asking six translators for shorter words. All three
       properties are direction-neutral, so the rtl mirror carries the same rule
       and needs no rtlcss run. */
    .v2dnu-seg { padding: 0 4px; }
    .v2dnu-seg i { font-size: 8.5px; letter-spacing: 0.02em; }
    .v2dnu-legend2__list { gap: 8px 14px; }
}

@media (max-width: 380px) {
    .v2dnu-facts { grid-template-columns: 1fr 1fr; }
    .v2dnu-facts .v2gpr-fact:last-child { grid-column: 1 / -1; }
    .v2dnu-axis__win { font-size: 8.5px; }
}

/* Reduced motion: settle every v2dnu transition to its end state */
@media (prefers-reduced-motion: reduce) {
    .v2 .v2dnu-pick__btn, .v2 .v2dnu-pick__btn::before, .v2 .v2dnu-opt, .v2 .v2dnu-opt::before,
    .v2 .v2dnu-btn, .v2 .v2dnu-field__in, .v2 .v2dnu-outcome, .v2dnu-outcome__tx em .v2-ic,
    .v2 .v2dnu-rel, .v2dnu-rel__arw { transition: none !important; }
}
/* ============= END BLOG DNU V2 ============= */



/* ============================================================
   BLOG APN V2 (/blog/apply-for-production-button-not-showing)
   "Apply for Production Not Showing After 14 Days? Check These Steps"

   BUILT 2026-09-11 from the R13 research dossier. Prefix: v2apn-.
   Motif: a CONSOLE SERVICE DESK. One local accent, a Console blue,
   carries everything the reader can look up in Play Console (paths,
   screens, the walker's questions). Amber marks "not verified" and
   open inspection tasks. The site green is reserved for two states:
   a found button and a checked row. Nothing is red, because nothing
   on this page is an automatic failure.

   Components: the diagnostic walker (Tool A, first in the article),
   four evidence labels, the three-number strip, responsive
   record-tables (rows become labelled cards under 640px, no swipe),
   navigation path strips, the three-field capture card, a Console
   screenshot frame, a lettered cause list, the copyable tester
   message, the 14-day teaching strip, ten tappable checks (T4), the
   support-packet form (Tool B), notice cards, the outcome map and a
   service plaque. Rides the shared v2gpr- article layer (rail +
   chips, prose, h2/h3, note/warn/tip, faq, docs, author, related,
   dark CTA, sticky CTA).

   Two dark moments only: the quick answer and the bottom line.
   ============================================================ */

.v2apn-article, .v2apn-relgrid {
    --apn-c:        #2A5BA8;
    --apn-c-deep:   #1F4A8C;
    --apn-c-bg:     #EEF3FB;
    --apn-c-line:   rgba(42, 91, 168, 0.20);
    --apn-c-tint:   #DCE7F7;
    --apn-amber:    #8A5A00;
    --apn-amber-bg: #FDF6E8;
    --apn-amber-line: rgba(138, 90, 0, 0.18);
    --apn-err:      #B42318;
}

/* Block-scoped reset (base reset skips h4/ul/ol/dl/figure) */
.v2apn-legend__list, .v2apn-path, .v2apn-steps__list, .v2apn-causes__list,
.v2apn-toc__grid, .v2apn-walk__found ul {
    margin: 0; padding: 0; list-style: none;
}
.v2apn-article dl, .v2apn-article dd { margin: 0; }
.v2apn-article figure { margin: 0; }

/* ---------- Hero ---------- */
.v2apn-hero__go { color: var(--go); }
.v2apn-hero__lead { max-width: 720px; }
.v2apn-zone { padding-top: clamp(18px, 3vw, 30px); }

/* ---------- Evidence labels (four) ----------
   A squared tag with a load-bearing left bar: the label is a claim
   about authority, not decoration. Never green for a suspected cause. */
.v2apn-lbl {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    line-height: 1;
    padding: 6px 9px 6px 11px;
    border-radius: 4px;
    border-right: 3px solid currentColor;
    white-space: nowrap;
}
.v2apn-lbl.is-doc { color: var(--ink);       background: var(--mist); }
.v2apn-lbl.is-rep { color: var(--apn-c);     background: var(--apn-c-bg); }
.v2apn-lbl.is-int { color: var(--slate);     background: var(--paper); border: 1px dashed #C9D2DA; border-right: 3px solid currentColor; }
.v2apn-lbl.is-nv  { color: var(--apn-amber); background: var(--apn-amber-bg); }
.v2gpr-prose > .v2apn-lbl { margin: 26px 0 12px; }

/* ---------- SIGNATURE: the walker (Tool A) ---------- */
.v2apn-walk {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 0 0 28px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(10, 16, 23, 0.22);
}
.v2apn-walk__top {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 20px;
    background: var(--ink);
}
.v2apn-walk__lab {
    display: inline-flex; align-items: center; gap: 8px;
    color: #5FD4A0; font-size: 10px;
}
.v2apn-walk__lab svg { width: 15px; height: 15px; flex-shrink: 0; }
.v2apn-walk__count { margin-right: auto; font-size: 10px; color: #93A0AC; white-space: nowrap; }
.v2apn-walk__body { padding: 20px 22px 18px; }
.v2apn-walk__q {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19.5px;
    letter-spacing: -0.014em;
    line-height: 1.3;
    color: var(--ink);
    text-wrap: balance;
}
.v2apn-walk__qh { margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2apn-walk__opts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 16px;
}
/* `.v2 button` in the base reset is (0,1,1) and zeroes padding, border and
   background, so every button-based control here is written `.v2 <class>`. */
.v2 .v2apn-walk__opt {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    min-height: 50px;
    text-align: right;
    padding: 12px 16px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}
.v2 .v2apn-walk__opt::before {
    content: '';
    flex-shrink: 0;
    width: 10px; height: 10px;
    border-radius: 50%;
    border: 2px solid #C9D2DA;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2apn-walk__opt:hover { border-color: var(--apn-c); background: var(--apn-c-bg); }
.v2 .v2apn-walk__opt:hover::before { border-color: var(--apn-c); background: var(--apn-c); }
.v2 .v2apn-walk__opt:active { transform: translateY(1px); }
.v2apn-walk__ctrl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #F0F3F5;
}
.v2 .v2apn-walk__ctl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 6px 13px;
    font-size: 13px;
    font-weight: 600;
    color: var(--slate);
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    transition: color 0.18s ease, border-color 0.18s ease;
}
.v2 .v2apn-walk__ctl svg { width: 14px; height: 14px; }
.v2 .v2apn-walk__ctl:hover { color: var(--ink); border-color: #C9D2DA; }
.v2 .v2apn-walk__ctl[hidden] { display: none; }
.v2apn-walk__hint { font-size: 12px; line-height: 1.5; color: var(--faint); margin-right: auto; }
.v2apn-walk__found {
    margin-top: 16px;
    padding: 13px 16px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2apn-walk__found > p { margin: 0 0 8px; font-size: 9.5px; }
.v2apn-walk__found li {
    position: relative;
    padding-right: 18px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2apn-walk__found li + li { margin-top: 4px; }
.v2apn-walk__found li::before {
    content: '';
    position: absolute; right: 3px; top: 9px;
    width: 6px; height: 6px; border-radius: 2px;
    background: var(--apn-c);
}
.v2apn-walk__note { margin: 16px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--slate); }
.v2apn-walk__noscript {
    margin: 12px 0 0;
    padding: 12px 14px;
    background: var(--apn-amber-bg);
    border: 1px solid var(--apn-amber-line);
    border-radius: 10px;
    font-size: 13.5px; line-height: 1.6; color: var(--apn-amber);
}
.v2 .v2apn-walk__noscript a { color: var(--apn-amber); font-weight: 700; text-decoration: underline; }

/* Result card inside the walker */
.v2apn-res__k { margin: 0 0 6px; font-size: 9.5px; color: var(--faint); }
.v2apn-res__f {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 21px;
    letter-spacing: -0.016em;
    line-height: 1.25;
    color: var(--ink);
    text-wrap: balance;
    margin: 0 0 12px;
}
.v2apn-res__rows { margin-top: 16px; border-top: 1px solid #F0F3F5; }
.v2apn-res__rows > div {
    display: grid;
    grid-template-columns: 138px minmax(0, 1fr);
    gap: 6px 16px;
    padding: 12px 0;
    border-bottom: 1px solid #F0F3F5;
}
.v2apn-res__rows dt { font-size: 9.5px; color: var(--faint); padding-top: 4px; }
.v2apn-res__rows dd { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2apn-res__rows dd em { display: block; margin-top: 6px; font-style: normal; color: var(--ink); font-weight: 600; }
.v2apn-res__rows dd p { margin: 0; }
.v2apn-res__contra { font-weight: 600; color: var(--ink); }
.v2apn-res__pick { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.v2apn-res__notyet {
    margin-top: 10px !important;
    padding: 10px 13px;
    background: var(--apn-amber-bg);
    border: 1px solid var(--apn-amber-line);
    border-radius: 9px;
    font-size: 13.5px; color: var(--apn-amber);
}
.v2apn-res__notyet[hidden] { display: none; }
.v2apn-res__src { margin: 12px 0 0; font-size: 12.5px; line-height: 1.65; color: var(--slate); }
.v2 .v2apn-res__src a {
    color: var(--apn-c); font-weight: 600;
    text-decoration: underline; text-decoration-color: var(--apn-c-line); text-underline-offset: 3px;
}
.v2apn-res__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.v2 .v2apn-walk__act {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 9px 16px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--apn-c-deep);
    background: var(--apn-c-bg);
    border: 1px solid var(--apn-c-line);
    border-radius: 999px;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}
.v2 .v2apn-walk__act:hover { background: var(--apn-c-tint); border-color: var(--apn-c); }
.v2 .v2apn-walk__act.is-go { color: #fff; background: var(--go); border-color: var(--go); }
.v2 .v2apn-walk__act.is-go:hover { background: var(--go-deep); }
.v2 .v2apn-walk__act.is-quiet { color: var(--slate); background: var(--paper); border-color: var(--line); }
.v2 .v2apn-walk__act.is-quiet:hover { color: var(--ink); border-color: #C9D2DA; background: var(--mist); }

/* ---------- Quick answer (speakable; dark moment #1) ---------- */
.v2apn-answer {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 4px 0 26px;
}
.v2apn-answer__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2apn-answer__tag svg { width: 16px; height: 16px; }
.v2apn-answer__lead { font-size: 16px; line-height: 1.8; font-weight: 450; color: #C6D0DA; }
.v2apn-answer__lead strong { color: #fff; font-weight: 700; }
.v2apn-answer__note {
    margin-top: 16px; padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 14.5px; line-height: 1.7; color: #93A0AC;
}
.v2apn-answer__note strong { color: #C6D0DA; font-weight: 650; }

/* ---------- Legend ---------- */
.v2apn-legend {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04);
}
.v2apn-legend__lab { margin: 0 0 14px; font-size: 10px; color: var(--faint); }
.v2apn-legend__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.v2apn-legend__list li {
    display: grid;
    grid-template-columns: 158px minmax(0, 1fr);
    align-items: baseline;
    gap: 14px;
}
.v2apn-legend__list li > span:last-child { font-size: 14px; line-height: 1.65; color: var(--slate); }

/* ---------- The rule in three numbers ---------- */
.v2apn-nums {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 26px 0;
}
.v2apn-nums__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2apn-nums__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v2apn-num {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 15px;
    min-width: 0;
}
.v2apn-num b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800; font-size: 24px; letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2apn-num--date b { font-size: 17px; }
.v2apn-num .v2-mono { display: block; margin-top: 5px; font-size: 9px; line-height: 1.4; }
.v2apn-nums__src { margin-top: 12px; }

/* ---------- Table of contents ---------- */
.v2apn-toc {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0 8px;
}
.v2apn-toc__label { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2apn-toc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
.v2 .v2apn-toc__grid a {
    display: flex; align-items: baseline; gap: 10px;
    min-height: 44px;
    padding: 10px 0;
    font-size: 14.5px; font-weight: 600; color: var(--ink);
    text-decoration: none;
}
.v2apn-toc__grid a .v2-mono { font-size: 10px; color: var(--faint); flex-shrink: 0; }
.v2 .v2apn-toc__grid a:hover { color: var(--go-deep); }
.v2 .v2apn-toc__grid a:hover .v2-mono { color: var(--go); }

/* ---------- Headings ---------- */
.v2apn-h2 { text-wrap: balance; }
.v2apn-h3 { scroll-margin-top: calc(var(--nav-h) + 26px); }

/* ---------- Inline source lines ----------
   `.v2gpr-prose > p` is (0,2,1); the direct-child form is spelled out. */
.v2apn-src,
.v2gpr-prose > p.v2apn-src {
    font-size: 13px; line-height: 1.65; color: var(--slate);
    margin: 12px 0 0;
}
.v2 .v2apn-src a {
    color: var(--apn-c); font-weight: 600;
    text-decoration: underline; text-decoration-color: var(--apn-c-line); text-underline-offset: 3px;
}
.v2 .v2apn-src a:hover { text-decoration-color: var(--apn-c); }

/* Shared note/warn/tip family: spacing */
.v2apn-note, .v2apn-warn, .v2apn-tip { margin: 22px 0; }

/* ---------- Responsive record tables ----------
   Real <table> markup. Under 640px every row becomes a labelled
   vertical record (td::before reads data-th), so the header
   relationship survives without a horizontal swipe. */
.v2apn-tbl {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 22px 0 0;
    background: var(--paper);
}
.v2apn-tbl table { width: 100%; border-collapse: collapse; }
.v2apn-tbl th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2apn-tbl td {
    padding: 13px 16px;
    font-size: 13.5px; line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
}
.v2apn-tbl tbody tr:last-child td { border-bottom: none; }
.v2apn-tbl td strong { color: var(--ink); font-weight: 650; }
.v2apn-tbl td.is-yes { color: var(--ink); }
.v2apn-tbl td.is-no { color: var(--apn-amber); }
.v2apn-tbl tr.is-here td { background: var(--apn-c-bg); }
.v2apn-tbl tr.is-here td:first-child { box-shadow: inset -3px 0 0 var(--apn-c); }
.v2apn-tbl tr.is-fit td { background: rgba(232, 245, 238, 0.55); }
.v2apn-tbl tr.is-fit td:first-child { box-shadow: inset -3px 0 0 var(--go); }
.v2apn-tbl--stage td:first-child, .v2apn-tbl--after td:first-child { width: 30%; }
.v2apn-tbl--metric th:nth-child(2), .v2apn-tbl--metric th:nth-child(3) { width: 31%; }
.v2apn-tbl--states td:first-child { width: 22%; }

/* ---------- Navigation path strip ---------- */
.v2apn-path {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 6px;
    margin: 18px 0 0;
}
.v2apn-path li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 6px 8px 6px 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 10px;
    font-size: 13.5px; font-weight: 600; color: var(--ink);
}
.v2apn-path--tight li { padding: 6px 12px; }
.v2apn-path li.is-key { background: var(--apn-c-bg); border-color: var(--apn-c-line); color: var(--apn-c-deep); }
.v2apn-path li:not(:last-child)::after {
    content: '';
    display: inline-block;
    width: 7px; height: 7px;
    margin-right: 2px;
    border-left: 1.8px solid #B9C3CC;
    border-bottom: 1.8px solid #B9C3CC;
    transform: rotate(45deg);
    flex-shrink: 0;
}
.v2apn-path__n {
    width: 20px; height: 20px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--mist);
    color: var(--faint);
    font-size: 9.5px; font-weight: 700;
}
.v2apn-path li.is-key .v2apn-path__n { background: var(--apn-c); color: #fff; }
.v2apn-path__lab, .v2gpr-prose > p.v2apn-path__lab { margin: 22px 0 0; font-size: 10px; color: var(--faint); }

/* ---------- Three-field capture card ---------- */
.v2apn-capture {
    background: var(--paper);
    border: 1px solid var(--apn-c-line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0 0;
}
.v2apn-capture__head { padding: 18px 20px 16px; background: var(--apn-c-bg); border-bottom: 1px solid var(--apn-c-line); }
.v2apn-capture__lab { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 10px; color: var(--apn-c); }
.v2apn-capture__lab svg { width: 15px; height: 15px; }
.v2apn-capture__head > p:last-child { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2apn-capture__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2apn-capture__f { padding: 16px 18px; min-width: 0; }
.v2apn-capture__f + .v2apn-capture__f { border-right: 1px solid var(--line); }
.v2apn-capture__f b {
    display: block;
    font-family: var(--font-display);
    font-weight: 650; font-size: 15px; letter-spacing: -0.01em;
    color: var(--ink);
    margin-bottom: 6px;
}
.v2apn-capture__f span { font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Console capture figure ---------- */
.v2apn-shot { margin: 22px 0 0; }
.v2apn-shot__frame {
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    background: var(--paper);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 20px 40px -24px rgba(10, 16, 23, 0.18);
}
.v2apn-shot__frame img { display: block; width: 100%; height: auto; }
.v2apn-shot figcaption { font-size: 13px; line-height: 1.65; color: var(--slate); margin: 10px 4px 0; }

/* ---------- Numbered steps (owner comparison) ---------- */
.v2apn-steps {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 22px 0 0;
}
.v2apn-steps__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2apn-steps__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.v2apn-steps__list li {
    display: flex; align-items: flex-start; gap: 12px;
    font-size: 14.5px; line-height: 1.65; color: var(--slate);
}
.v2apn-steps__list li strong { color: var(--ink); font-weight: 650; }
.v2apn-steps__n {
    flex-shrink: 0;
    width: 24px; height: 24px; margin-top: 1px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 7px;
    background: var(--apn-c-bg); color: var(--apn-c);
    font-size: 10px; font-weight: 700;
}

/* ---------- Lettered cause list / pre-write checklist ---------- */
.v2apn-causes {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 22px 0 0;
}
.v2apn-causes__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2apn-causes__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.v2apn-causes__list li {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 11px 0;
    font-size: 14.5px; line-height: 1.7; color: var(--slate);
}
.v2apn-causes__list li + li { border-top: 1px solid var(--line); }
.v2apn-causes__list li strong { color: var(--ink); font-weight: 650; }
.v2apn-causes__n {
    flex-shrink: 0;
    font-size: 10px; font-weight: 700;
    color: var(--apn-c);
    background: var(--apn-c-bg);
    border-radius: 6px;
    padding: 5px 8px;
    margin-top: 3px;
}
.v2apn-causes__list--ck li { padding-right: 26px; position: relative; }
.v2apn-causes__list--ck li::before {
    content: '';
    position: absolute; right: 0; top: 17px;
    width: 15px; height: 15px; border-radius: 4px;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%230B8A47' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 12px 12px; background-position: center; background-repeat: no-repeat;
}

/* ---------- Copyable tester message ---------- */
.v2apn-msg {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    margin: 20px 0 0;
}
.v2apn-msg__head {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 12px 16px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2apn-msg__lab { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; color: var(--slate); }
.v2apn-msg__lab svg { width: 15px; height: 15px; }
.v2 .v2apn-msg__copy {
    display: inline-flex; align-items: center; gap: 7px;
    min-height: 40px;
    padding: 7px 14px;
    font-size: 13px; font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    flex-shrink: 0;
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}
.v2 .v2apn-msg__copy svg { width: 15px; height: 15px; }
.v2 .v2apn-msg__copy:hover { border-color: #C9D2DA; }
.v2 .v2apn-msg__copy.is-done { color: var(--go-deep); border-color: rgba(11, 138, 71, 0.3); background: var(--go-tint); }
.v2apn-msg__text { padding: 16px 18px 0; font-size: 15px; line-height: 1.8; color: var(--ink); }
.v2apn-msg__status { padding: 8px 18px 14px; font-size: 12.5px; color: var(--go-deep); min-height: 22px; }
.v2apn-msg__status:empty { padding-top: 0; }

/* Two side-by-side notes */
.v2apn-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 22px 0; }
.v2apn-duo > .v2gpr-note, .v2apn-duo > .v2gpr-tip { margin: 0; min-width: 0; }

/* ---------- Worked examples panel ---------- */
.v2apn-ex {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 22px 0 0;
}
.v2apn-ex__head { padding: 16px 20px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2apn-ex__lab { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 8px; font-size: 10px; color: var(--ink); }
.v2apn-ex__head > p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2apn-ex .v2apn-tbl { border: none; border-radius: 0; margin: 0; }
.v2apn-tbl--ex th { background: var(--paper); }

/* ---------- 14-day teaching strip ---------- */
.v2apn-strip {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px 20px;
    margin: 20px 0 0;
}
.v2apn-strip__scale {
    display: grid;
    grid-template-columns: repeat(14, minmax(0, 1fr));
    gap: 4px;
    margin-bottom: 6px;
}
.v2apn-strip__scale span { font-size: 9px; text-align: center; color: var(--faint); }
.v2apn-strip__scale span.is-apply { color: var(--go-deep); font-weight: 700; }
.v2apn-strip__row { padding: 10px 0; }
.v2apn-strip__row + .v2apn-strip__row { border-top: 1px solid #F0F3F5; }
.v2apn-strip__who {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    font-size: 13.5px; font-weight: 600; color: var(--ink);
    margin-bottom: 7px;
}
.v2apn-strip__tag { font-size: 9.5px; padding: 4px 8px; border-radius: 5px; white-space: nowrap; }
.v2apn-strip__tag.is-ok { color: var(--go-deep); background: var(--go-tint); }
.v2apn-strip__tag.is-no { color: var(--apn-amber); background: var(--apn-amber-bg); }
.v2apn-strip__cells { display: grid; grid-template-columns: repeat(14, minmax(0, 1fr)); gap: 4px; }
.v2apn-strip__cells i, .v2apn-strip__key i {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 4px;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2apn-strip__cells i.is-on, .v2apn-strip__key i.is-on { background: var(--apn-c); border-color: var(--apn-c); }
.v2apn-strip__key {
    display: flex; flex-wrap: wrap; gap: 8px 18px;
    margin-top: 14px; padding-top: 12px;
    border-top: 1px solid #F0F3F5;
}
.v2apn-strip__key span { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--slate); }
.v2apn-strip__key i { width: 14px; height: 14px; aspect-ratio: auto; }
.v2apn-strip__key b { font-size: 10px; color: var(--go-deep); }
.v2apn-strip__note { margin: 10px 0 0; font-size: 12.5px; line-height: 1.6; color: var(--slate); }

/* ---------- The ten checks (T4) ---------- */
.v2apn-checks {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 24px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(10, 16, 23, 0.18);
}
.v2apn-checks__top { display: flex; align-items: center; gap: 12px; padding: 13px 18px; background: var(--ink); }
.v2apn-checks__lab { display: inline-flex; align-items: center; gap: 8px; color: #5FD4A0; font-size: 10px; }
.v2apn-checks__lab svg { width: 15px; height: 15px; }
.v2apn-checks__count { margin-right: auto; font-size: 10px; color: #93A0AC; white-space: nowrap; }
.v2apn-checks__count b { color: #fff; }
.v2apn-checks__hint { padding: 12px 18px; font-size: 13px; line-height: 1.6; color: var(--slate); background: var(--mist); border-bottom: 1px solid var(--line); }
.v2 .v2apn-check {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    width: 100%;
    text-align: right;
    padding: 14px 18px;
    border-bottom: 1px solid #F0F3F5;
    transition: background 0.18s ease;
}
.v2 .v2apn-check:last-of-type { border-bottom: none; }
.v2 .v2apn-check:hover { background: var(--mist); }
.v2apn-check__n {
    flex-shrink: 0;
    width: 24px; height: 24px; margin-top: 1px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 7px;
    background: var(--apn-c-bg); color: var(--apn-c);
    font-size: 10px; font-weight: 700;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2apn-check__txt { flex: 1 1 auto; min-width: 0; display: grid; gap: 5px; }
.v2apn-check__row { display: grid; grid-template-columns: 176px minmax(0, 1fr); gap: 10px; align-items: baseline; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2apn-check__row > .v2-mono { font-size: 9px; padding-top: 2px; }
.v2apn-check__row strong { color: var(--ink); font-weight: 650; }
.v2apn-check__row em { font-style: normal; color: var(--apn-c-deep); font-weight: 600; }
.v2apn-check__box {
    flex-shrink: 0;
    width: 22px; height: 22px; margin-top: 1px;
    border-radius: 6px;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    position: relative;
    transition: background 0.18s ease, border-color 0.18s ease;
}
.v2apn-check__box::after {
    content: '';
    position: absolute; inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 15px 15px; background-position: center; background-repeat: no-repeat;
    opacity: 0; transition: opacity 0.16s ease;
}
.v2 .v2apn-check.is-checked { background: var(--go-tint); }
.v2apn-check.is-checked .v2apn-check__n { background: var(--go); color: #fff; }
.v2apn-check.is-checked .v2apn-check__box { background: var(--go); border-color: var(--go); }
.v2apn-check.is-checked .v2apn-check__box::after { opacity: 1; }

/* ---------- Support packet (Tool B) ---------- */
.v2apn-packet {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    overflow: hidden;
    margin: 26px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 14px 34px -20px rgba(10, 16, 23, 0.14);
    scroll-margin-top: calc(var(--nav-h) + 20px);
}
.v2apn-packet__head { padding: 20px 24px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2apn-packet__tag {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--apn-c); background: var(--apn-c-bg);
    border: 1px solid var(--apn-c-line);
    border-radius: 999px;
    padding: 5px 11px;
    font-size: 9.5px;
}
.v2apn-packet__tag svg { width: 13px; height: 13px; }
.v2apn-packet__title {
    font-family: var(--font-display);
    font-weight: 650; font-size: 19px; letter-spacing: -0.014em;
    color: var(--ink);
    margin: 13px 0 5px;
}
.v2apn-packet__head > p:last-child { font-size: 14px; line-height: 1.65; color: var(--slate); }
.v2apn-form { padding: 20px 24px 22px; }
.v2apn-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.v2apn-fld { display: block; min-width: 0; }
.v2apn-fld--full { grid-column: 1 / -1; }
.v2apn-fld__lab { display: block; font-size: 13px; font-weight: 650; color: var(--ink); margin-bottom: 6px; }
.v2apn-fld__hint { display: block; margin-top: 6px; font-size: 12px; line-height: 1.5; color: var(--faint); }
.v2apn-fld__err { display: block; margin-top: 6px; font-size: 12.5px; font-weight: 600; color: var(--apn-err); }
.v2apn-fld__err[hidden] { display: none; }
.v2 .v2apn-fld input, .v2 .v2apn-fld textarea, .v2 .v2apn-select select {
    display: block;
    width: 100%;
    padding: 12px 14px;
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.5;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid #C9D2DA;
    border-radius: 11px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2apn-fld textarea { resize: vertical; min-height: 84px; }
.v2 .v2apn-fld input::placeholder, .v2 .v2apn-fld textarea::placeholder { color: #A9B3BD; }
.v2 .v2apn-fld input:focus, .v2 .v2apn-fld textarea:focus, .v2 .v2apn-select select:focus {
    outline: none;
    border-color: var(--apn-c);
    box-shadow: 0 0 0 3px var(--apn-c-bg);
}
.v2apn-select { position: relative; display: block; }
.v2apn-select::after {
    content: '';
    position: absolute;
    left: 17px; top: 46%;
    width: 8px; height: 8px;
    border-left: 2px solid var(--slate);
    border-bottom: 2px solid var(--slate);
    transform: translateY(-50%) rotate(-45deg);
    pointer-events: none;
}
.v2 .v2apn-select select { appearance: none; -webkit-appearance: none; padding-left: 40px; cursor: pointer; }
.v2apn-form__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.v2 .v2apn-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px;
    padding: 10px 20px;
    font-size: 14.5px; font-weight: 600;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    text-decoration: none;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}
.v2 .v2apn-btn:hover { border-color: #C9D2DA; background: var(--mist); }
.v2 .v2apn-btn.is-primary { color: #fff; background: var(--go); border-color: var(--go); box-shadow: 0 1px 2px rgba(10, 16, 23, 0.10); }
.v2 .v2apn-btn.is-primary:hover { background: var(--go-deep); border-color: var(--go-deep); transform: translateY(-1px); }
.v2 .v2apn-btn.is-link { color: var(--apn-c-deep); background: var(--apn-c-bg); border-color: var(--apn-c-line); }
.v2 .v2apn-btn.is-link:hover { background: var(--apn-c-tint); border-color: var(--apn-c); }
.v2apn-out { padding: 20px 24px 22px; border-top: 1px solid var(--line); background: var(--mist); }
.v2apn-out[hidden] { display: none; }
.v2apn-out__note {
    padding: 10px 13px;
    background: var(--apn-amber-bg);
    border: 1px solid var(--apn-amber-line);
    border-radius: 9px;
    font-size: 13px; line-height: 1.6; color: var(--apn-amber);
    margin-bottom: 14px;
}
.v2apn-out__lab { display: block; margin-bottom: 8px; font-size: 9.5px; }
.v2 .v2apn-out__text {
    display: block;
    width: 100%;
    padding: 14px 16px;
    font-family: var(--font-mono);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--ink);
    background: var(--paper);
    border: 1px solid #C9D2DA;
    border-radius: 12px;
    resize: vertical;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
.v2 .v2apn-out__text:focus { outline: none; border-color: var(--apn-c); box-shadow: 0 0 0 3px var(--apn-c-bg); }
.v2apn-out__status { margin-top: 8px; font-size: 12.5px; color: var(--go-deep); min-height: 20px; }
.v2apn-out__next { margin-top: 14px; font-size: 13.5px; line-height: 1.65; color: var(--slate); }

/* ---------- Notice cards ---------- */
.v2apn-notices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 22px 0 0; }
.v2apn-notice {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 16px 18px;
    min-width: 0;
}
.v2apn-notice__t {
    display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
    font-family: var(--font-display);
    font-weight: 650; font-size: 15.5px; letter-spacing: -0.01em;
    color: var(--ink);
    margin-bottom: 8px;
}
.v2apn-notice > p:last-child { font-size: 14px; line-height: 1.7; color: var(--slate); }

/* ---------- Service plaque ---------- */
.v2apn-svc {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px 26px;
    align-items: center;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    margin: 24px 0 0;
}
.v2apn-svc__lab { margin: 0 0 8px; font-size: 10px; color: var(--go-deep); }
.v2apn-svc__tx > p:last-child { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2apn-svc__acts { display: flex; flex-direction: column; gap: 10px; }
.v2 .v2apn-svc__acts .v2-btn { width: 100%; }

/* ---------- Bottom line (speakable; dark moment #2) ---------- */
.v2apn-bottom {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 40px 0 0;
}
.v2apn-bottom__tag { display: flex; align-items: center; gap: 9px; margin-bottom: 14px; color: #5FD4A0; font-size: 10px; }
.v2apn-bottom__tag svg { width: 16px; height: 16px; }
.v2apn-bottom__text { font-size: 16px; line-height: 1.8; font-weight: 450; color: #C6D0DA; }
.v2apn-bottom__text strong { color: #fff; font-weight: 700; }

/* ---------- Official documentation lists ---------- */
.v2apn-docs { margin-top: 26px; }
.v2apn-docs .v2gpr-docs__label { font-size: 10px; color: var(--faint); }
.v2 .v2apn-docs .v2gpr-docs__list a { color: var(--apn-c); overflow-wrap: anywhere; min-height: 44px; padding-top: 10px; padding-bottom: 10px; }
.v2apn-docs--rep { margin-top: 12px; background: var(--paper); }
.v2apn-docs__note { margin-top: 12px; font-size: 12.5px; line-height: 1.6; color: var(--slate); }

/* ---------- Related resources ---------- */
.v2apn-relgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    max-width: 880px;
    margin: 0 auto;
}
.v2 .v2apn-rel {
    display: flex; align-items: center; gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2apn-rel:hover { border-color: #C9D2DA; transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.4); }
.v2apn-rel__ic {
    flex-shrink: 0;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 10px;
    background: var(--apn-c-bg); color: var(--apn-c);
}
.v2apn-rel__ic svg { width: 19px; height: 19px; }
.v2apn-rel__tx { flex: 1 1 auto; min-width: 0; }
.v2apn-rel__tx strong { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.35; }
.v2apn-rel__tx span { display: block; font-size: 12.5px; color: var(--slate); line-height: 1.45; margin-top: 3px; }
.v2apn-rel__arw { color: var(--faint); flex-shrink: 0; transition: transform 0.18s ease, color 0.18s ease; }
.v2 .v2apn-rel:hover .v2apn-rel__arw { color: var(--go-deep); transform: translateX(-3px); }

/* FAQ question text (the shared item styles the container only) */
.v2apn-faq__q {
    font-family: var(--font-display);
    font-weight: 600; font-size: 15.5px; letter-spacing: -0.01em; line-height: 1.45;
    color: var(--ink);
}

/* ============================================================
   MOBILE / RESPONSIVE
============================================================ */
@media (max-width: 900px) {
    .v2apn-relgrid { grid-template-columns: minmax(0, 1fr); }
    .v2apn-legend__list li { grid-template-columns: minmax(0, 1fr); gap: 7px; }
    .v2apn-legend__list li .v2apn-lbl { justify-self: start; }
    .v2apn-duo { grid-template-columns: minmax(0, 1fr); }
    .v2apn-svc { grid-template-columns: minmax(0, 1fr); }
    .v2apn-svc__acts { flex-direction: row; flex-wrap: wrap; }
    .v2 .v2apn-svc__acts .v2-btn { width: auto; flex: 1 1 180px; }
}

@media (max-width: 720px) {
    .v2apn-capture__grid { grid-template-columns: minmax(0, 1fr); }
    .v2apn-capture__f + .v2apn-capture__f { border-right: none; border-top: 1px solid var(--line); }
    .v2apn-form__grid { grid-template-columns: minmax(0, 1fr); }
    .v2apn-res__rows > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
    .v2apn-check__row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

@media (max-width: 640px) {
    .v2apn-zone { padding-top: 14px; }
    .v2apn-walk__top { padding: 12px 15px; }
    .v2apn-walk__body { padding: 16px 15px 15px; }
    .v2apn-walk__q { font-size: 18px; }
    .v2 .v2apn-walk__opt { font-size: 14.5px; padding: 11px 14px; }
    .v2apn-walk__hint { margin-right: 0; flex-basis: 100%; }
    .v2apn-res__f { font-size: 19px; }
    .v2apn-res__rows dd { font-size: 14px; }
    .v2 .v2apn-walk__act { flex: 1 1 auto; }
    .v2apn-answer { padding: 22px 18px; }
    .v2apn-answer__lead { font-size: 15px; }
    .v2apn-answer__note { font-size: 13.5px; }
    .v2apn-legend, .v2apn-toc, .v2apn-nums { padding: 17px 16px; }
    .v2apn-toc__grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
    .v2apn-num b { font-size: 21px; }
    .v2apn-num--date b { font-size: 14px; }

    /* Record tables become labelled cards: no horizontal swipe */
    .v2apn-tbl table, .v2apn-tbl tbody, .v2apn-tbl tr, .v2apn-tbl td { display: block; width: auto; }
    .v2apn-tbl thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .v2apn-tbl tr { padding: 6px 0; border-bottom: 1px solid var(--line); }
    .v2apn-tbl tbody tr:last-child { border-bottom: none; }
    .v2apn-tbl td { padding: 8px 16px; border-bottom: none; }
    .v2apn-tbl td::before {
        content: attr(data-th);
        display: block;
        font-family: var(--font-mono);
        font-size: 9px; font-weight: 600;
        text-transform: uppercase; letter-spacing: 0.12em;
        color: var(--faint);
        margin-bottom: 3px;
    }
    .v2apn-tbl td.is-no::before { color: var(--apn-amber); }
    .v2apn-tbl tr.is-here td:first-child, .v2apn-tbl tr.is-fit td:first-child { box-shadow: none; }
    .v2apn-tbl tr.is-here { border-right: 3px solid var(--apn-c); }
    .v2apn-tbl tr.is-fit { border-right: 3px solid var(--go); }
    .v2apn-tbl--stage td:first-child, .v2apn-tbl--after td:first-child, .v2apn-tbl--states td:first-child { width: auto; }
    .v2apn-tbl--metric th:nth-child(2), .v2apn-tbl--metric th:nth-child(3) { width: auto; }

    .v2apn-capture__head { padding: 16px 16px 14px; }
    .v2apn-capture__f { padding: 14px 16px; }
    .v2apn-steps, .v2apn-causes, .v2apn-strip { padding: 16px 15px; }
    .v2apn-msg__head { flex-wrap: wrap; }
    .v2apn-msg__text { padding: 14px 15px 0; font-size: 14.5px; }
    .v2apn-msg__status { padding-right: 15px; padding-left: 15px; }
    .v2apn-checks__top, .v2apn-checks__hint { padding-right: 15px; padding-left: 15px; }
    .v2 .v2apn-check { padding: 13px 15px; gap: 11px; }
    .v2apn-check__row { font-size: 13.5px; }
    .v2apn-packet__head { padding: 18px 16px; }
    .v2apn-form, .v2apn-out { padding: 18px 16px; }
    .v2 .v2apn-btn { flex: 1 1 auto; }
    .v2apn-notice { padding: 15px 15px; }
    .v2apn-svc { padding: 18px 16px; }
    .v2apn-bottom { padding: 22px 20px; }
    .v2apn-bottom__text { font-size: 15px; }
    .v2apn-strip__scale span { font-size: 8px; }
    .v2apn-strip__cells, .v2apn-strip__scale { gap: 3px; }
}

@media (max-width: 480px) {
    .v2apn-walk__lab { font-size: 9px; letter-spacing: 0.08em; }
    .v2apn-walk__count { font-size: 9px; }
    .v2apn-nums__grid { grid-template-columns: 1fr 1fr; gap: 8px; }
    .v2apn-nums__grid .v2apn-num--date { grid-column: 1 / -1; }
    .v2apn-path li { font-size: 13px; min-height: 36px; }
    .v2apn-res__pick > .v2apn-walk__act { flex: 1 1 100%; }
}

/* Reduced motion: settle every v2apn transition to its end state */
@media (prefers-reduced-motion: reduce) {
    .v2 .v2apn-walk__opt, .v2 .v2apn-walk__opt::before, .v2 .v2apn-walk__ctl, .v2 .v2apn-walk__act,
    .v2 .v2apn-check, .v2apn-check__n, .v2apn-check__box, .v2apn-check__box::after,
    .v2 .v2apn-msg__copy, .v2 .v2apn-btn, .v2 .v2apn-rel, .v2apn-rel__arw { transition: none !important; }
}
/* ============= END BLOG APN V2 ============= */


/* ---------- BLOG APN V2: 2026-09-11 audit additions ----------
   Answer before the tool, ten checks in the opening area, legend as a
   disclosure, result kinds, a visible import field, a no-script static
   template. Appended after the block so the base rules stay intact. */
.v2apn-orient, .v2gpr-prose > p.v2apn-orient { font-size: 15px; line-height: 1.7; color: var(--slate); margin: 0 0 22px; }
.v2apn-article .v2apn-walk { margin: 0 0 22px; }
.v2apn-article .v2apn-checks { margin: 0 0 26px; }
.v2apn-checks__list { margin: 0; padding: 0; list-style: none; }
.v2apn-checks__list li { display: block; }
.v2apn-checks__src { padding: 12px 18px 16px; border-top: 1px solid #F0F3F5; margin: 0 !important; }
details.v2apn-legend { padding: 0; }
.v2 .v2apn-legend__sum {
    list-style: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 20px; min-height: 52px;
}
.v2 .v2apn-legend__sum::-webkit-details-marker { display: none; }
.v2apn-legend__sum .v2apn-legend__lab { margin: 0; color: var(--ink); font-size: 10px; }
details.v2apn-legend[open] .v2gpr-faq__plus i { background: var(--go); }
details.v2apn-legend[open] .v2gpr-faq__plus i:last-child { transform: translate(50%, -50%) rotate(0deg); }
.v2apn-legend__intro { padding: 0 20px 14px; font-size: 14px; line-height: 1.65; color: var(--slate); }
details.v2apn-legend .v2apn-legend__list { padding: 0 20px 20px; }
.v2apn-res__k { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.v2apn-res__cat {
    display: inline-flex; align-items: center;
    padding: 4px 9px; border-radius: 999px;
    font-size: 9px; letter-spacing: 0.1em;
}
.v2apn-res__cat.is-known    { color: var(--apn-c-deep); background: var(--apn-c-bg); }
.v2apn-res__cat.is-missing  { color: var(--apn-amber); background: var(--apn-amber-bg); }
.v2apn-res__cat.is-escalate { color: #fff; background: var(--ink); }
.v2apn-res__cat.is-stage    { color: var(--slate); background: var(--mist); }
.v2apn-res__cat.is-found    { color: var(--go-deep); background: var(--go-tint); }
.v2apn-packet__privacy { margin-top: 10px; font-size: 13px; line-height: 1.6; color: var(--ink); font-weight: 600; }
.v2apn-form[hidden] { display: none; }
.v2apn-fld--import { padding: 12px 14px; background: var(--apn-c-bg); border: 1px solid var(--apn-c-line); border-radius: 12px; }
.v2apn-static { border-top: 1px solid var(--line); background: var(--paper); }
.v2 .v2apn-static__sum {
    list-style: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 14px 24px; min-height: 48px;
}
.v2 .v2apn-static__sum::-webkit-details-marker { display: none; }
.v2apn-static__lab { font-size: 10px; color: var(--slate); }
.v2apn-static__open { font-size: 13px; font-weight: 600; color: var(--apn-c-deep); white-space: nowrap; }
.v2apn-static[open] .v2apn-static__open { color: var(--faint); }
.v2apn-static__note { padding: 0 24px 12px; font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2apn-static__pre {
    margin: 0 24px 22px;
    padding: 14px 16px;
    font-family: var(--font-mono);
    font-size: 12.5px; line-height: 1.6;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}
@media (max-width: 640px) {
    .v2 .v2apn-legend__sum { padding: 14px 16px; }
    .v2apn-legend__intro { padding: 0 16px 12px; }
    details.v2apn-legend .v2apn-legend__list { padding: 0 16px 16px; }
    .v2 .v2apn-static__sum { padding: 13px 16px; }
    .v2apn-static__note { padding: 0 16px 10px; }
    .v2apn-static__pre { margin: 0 16px 18px; }
    .v2apn-checks__src { padding: 10px 15px 14px; }
}
/* ============= END BLOG APN V2 audit additions ============= */

/* ---------- BLOG APN V2: 2026-09-12 recheck additions (stale states, skip link) ---------- */
.v2apn-stale {
    padding: 12px 14px;
    background: var(--apn-amber-bg);
    border: 1px solid var(--apn-amber-line);
    border-radius: 12px;
    font-size: 13.5px; line-height: 1.6; color: var(--apn-amber);
}
.v2apn-stale[hidden] { display: none; }
.v2apn-stale > p { margin: 0 0 8px; }
.v2apn-stale .v2apn-form__acts { margin-top: 8px; }
.v2apn-stale--draft { margin-bottom: 12px; }
.v2 .v2apn-keep { display: inline-flex; align-items: center; gap: 9px; min-height: 40px; font-size: 13.5px; font-weight: 600; color: var(--ink); cursor: pointer; }
.v2 .v2apn-keep input { width: 18px; height: 18px; margin: 0; accent-color: var(--go); }
.v2 .v2apn-btn[disabled] { opacity: 0.45; cursor: not-allowed; transform: none; }
.v2 .v2apn-checks__skip { font-weight: 600; color: var(--apn-c); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.v2 .v2apn-checks__skip:hover { color: var(--apn-c-deep); }
/* ============= END BLOG APN V2 recheck additions ============= */

/* ============================================================
   BLOG RR26 V2 (/blog/google-play-app-rejection-rate-2026)
   "Google Play App Rejection Rate 2026: Official Data Explained"

   REBUILT 2026-09-12 against the deep-research editorial audit. The
   old v2rr- layer (a "2026 enforcement data report" motif: year
   plaques with proportional apps-blocked bars, ranked reason cards
   with a three-segment severity meter, impact-meter success levers,
   a rose "continue testing" fork) was deleted with the article it
   dressed. Its bars and meters encoded a ranking and an impact
   scale that no dataset supported, which is the audit's headline
   finding.

   Prefix: v2rj-. Motif: a LEDGER. One local accent, an evidence
   indigo, carries everything a reader can look up or recompute (the
   calculated ratio, the source lines, the Calculation label, the
   selected router row); the site green stays the pass/checked
   state; nothing is red, because nothing on this page is an
   automatic denial. Components: five evidence labels, real data
   tables with captions, a calculation card whose only chart is a
   single-ratio METER (same-hue fill on a tinted track, 4px rounded
   ends, value in text tokens), a decision router (a 5-row table a
   tap can highlight), eight check cards as problem / test / fix /
   source definition lists, a four-step flow, a two-record example,
   a real-checkbox checklist with a counter. Rides the shared v2gpr-
   article layer (rail + chips, prose, h2/h3, note/warn, faq, docs,
   author, related, dark CTA, sticky CTA).

   Two bold dark moments only: the quick answer and the bottom line.
   ============================================================ */

.v2rj-article {
    --rj-acc:      #3B47A6;
    --rj-acc-deep: #2E3A8C;
    --rj-acc-bg:   #EEF0FA;
    --rj-acc-tint: #E3E7F7;
    --rj-acc-line: rgba(59, 71, 166, 0.2);
    --rj-amber:    #8A5A00;
    --rj-amber-bg: #FDF6E8;
    --rj-amber-line: rgba(138, 90, 0, 0.18);
}

/* Block-scoped reset (gotcha 19: base reset skips h4/ul/ol/dl/table) */
.v2rj-article :where(h4, ul, ol, dl, dt, dd, table, caption) { margin: 0; padding: 0; }
.v2rj-legend__list, .v2rj-limits__list, .v2rj-flow__steps, .v2rj-steps { list-style: none; }

/* Retired 2026-07 anchors, kept so old deep links still land */
.v2rj-anchor {
    display: block;
    height: 0;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}

/* ---------- Hero ---------- */
.v2rj-eyebrow { display: inline-flex; align-items: center; gap: 7px; }
.v2rj-eyebrow svg { width: 15px; height: 15px; }
.v2rj-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2rj-fact small {
    display: block;
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--faint);
}
.v2rj-fact.is-calc { border-color: var(--rj-acc-line); background: var(--rj-acc-bg); }
.v2rj-fact.is-calc b { color: var(--rj-acc-deep); }
.v2rj-fact.is-calc small { color: var(--rj-acc); font-weight: 600; }
.v2rj-cover { position: relative; }
.v2rj-cover__badge {
    position: absolute;
    top: 14px; right: 14px;
    display: inline-flex; align-items: center; gap: 6px;
    padding: 7px 11px;
    border-radius: 999px;
    background: rgba(10, 16, 23, 0.82);
    color: #fff;
    font-size: 9.5px;
    backdrop-filter: blur(6px);
}
.v2rj-cover__badge svg { width: 13px; height: 13px; }

/* ---------- Quick answer (speakable; dark moment #1) ---------- */
.v2rj-answer {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 4px 0 26px;
}
.v2rj-answer__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2rj-answer__tag svg { width: 16px; height: 16px; }
.v2rj-answer__lead {
    font-size: 16.5px; line-height: 1.8; font-weight: 450;
    color: #C6D0DA;
}
.v2rj-answer__lead strong { color: #fff; font-weight: 700; }
.v2rj-answer__note {
    margin-top: 16px;
    padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 14px; line-height: 1.7;
    color: #93A0AC;
}
.v2 .v2rj-answer__note a {
    color: #C6D0DA;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(198, 208, 218, 0.4);
    text-underline-offset: 3px;
}
.v2 .v2rj-answer__note a:hover { color: #fff; text-decoration-color: #fff; }

/* ---------- SIGNATURE: the five evidence labels ----------
   A squared tag with a load-bearing left bar, deliberately not a
   pill: the label is a claim about where a statement comes from. */
.v2rj-lbl {
    display: inline-flex;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.11em;
    line-height: 1;
    padding: 6px 9px 6px 11px;
    border-radius: 4px;
    border-right: 3px solid currentColor;
    white-space: nowrap;
}
.v2rj-lbl.is-rep  { color: var(--ink);        background: var(--mist); }
.v2rj-lbl.is-calc { color: var(--rj-acc);     background: var(--rj-acc-bg); }
.v2rj-lbl.is-pol  { color: var(--slate);      background: var(--paper); box-shadow: inset 0 0 0 1px var(--line); }
.v2rj-lbl.is-prac { color: var(--go-deep);    background: var(--go-tint); }
.v2rj-lbl.is-ex   { color: var(--rj-amber);   background: var(--rj-amber-bg); }

/* A label that sits directly in the prose flow needs its own air */
.v2gpr-prose > .v2rj-lbl { margin: 24px 0 12px; }

.v2rj-legend {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04);
}
.v2rj-legend__lab { margin: 0 0 14px; font-size: 10px; color: var(--faint); }
.v2rj-legend__list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 11px; }
.v2rj-legend__list li {
    display: grid;
    /* minmax, not a fixed track: a translated label longer than the track
       CLIPS (measured 169px in a 129px box on the ctr post). */
    grid-template-columns: minmax(124px, max-content) minmax(0, 1fr);
    align-items: baseline;
    gap: 14px;
}
@supports (grid-template-columns: subgrid) {
    .v2rj-legend__list { grid-template-columns: max-content minmax(0, 1fr); gap: 11px 14px; }
    .v2rj-legend__list li { grid-column: 1 / -1; grid-template-columns: subgrid; }
}
.v2rj-legend__list li > span:last-child { font-size: 14px; line-height: 1.65; color: var(--slate); }

/* ---------- Table of contents ---------- */
.v2rj-toc {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 22px;
    margin: 26px 0 8px;
}
.v2rj-toc__label { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2rj-toc__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; }
.v2 .v2rj-toc__grid a {
    display: flex; align-items: baseline; gap: 10px;
    padding: 7px 0;
    font-size: 14.5px; font-weight: 600; color: var(--ink);
    text-decoration: none;
}
.v2rj-toc__grid a .v2-mono { font-size: 10px; color: var(--faint); flex-shrink: 0; }
.v2 .v2rj-toc__grid a:hover { color: var(--rj-acc-deep); }
.v2 .v2rj-toc__grid a:hover .v2-mono { color: var(--rj-acc); }

/* ---------- Headings ---------- */
.v2rj-h2 { text-wrap: balance; }
.v2rj-h3 { scroll-margin-top: calc(var(--nav-h) + 26px); }

/* ---------- Inline source lines ----------
   `.v2gpr-prose > p` is (0,2,1) and would win over a bare class on a
   direct child, so the direct-child form is spelled out. */
.v2rj-src,
.v2gpr-prose > p.v2rj-src {
    font-size: 13px;
    line-height: 1.65;
    color: var(--faint);
    margin: 10px 0 0;
}
.v2rj-src .v2-mono { font-size: 9.5px; margin-left: 4px; }
.v2 .v2rj-src a,
.v2 .v2rj-tbl a {
    color: var(--rj-acc);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: rgba(59, 71, 166, 0.3);
    text-underline-offset: 3px;
}
.v2 .v2rj-src a:hover, .v2 .v2rj-tbl a:hover { text-decoration-color: var(--rj-acc); }

/* ---------- Data tables (real <table>, caption, scroll shell) ---------- */
.v2rj-tbl {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    margin: 14px 0 0;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04);
}
.v2rj-tbl__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2rj-tbl table { width: 100%; min-width: 620px; border-collapse: collapse; }
.v2rj-tbl--metrics table { min-width: 760px; }
.v2rj-tbl caption {
    caption-side: top;
    text-align: right;
    padding: 14px 16px 10px;
    font-family: var(--font-mono);
    font-size: 10px; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2rj-tbl th, .v2rj-tbl td {
    padding: 12px 16px;
    text-align: right;
    vertical-align: top;
    font-size: 13.5px; line-height: 1.55;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
}
.v2rj-tbl thead th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    letter-spacing: 0.12em; text-transform: uppercase;
    color: var(--faint);
    white-space: nowrap;
    border-bottom: 1px solid var(--line);
}
.v2rj-tbl tbody th { font-weight: 650; color: var(--ink); white-space: nowrap; }
.v2rj-tbl tbody tr:last-child th, .v2rj-tbl tbody tr:last-child td { border-bottom: none; }
.v2rj-tbl .is-num { text-align: left; font-variant-numeric: tabular-nums; white-space: nowrap; }
.v2rj-tbl td strong { color: var(--ink); font-weight: 650; }
.v2rj-tbl tr.is-latest th, .v2rj-tbl tr.is-latest td { background: var(--rj-acc-bg); }
.v2rj-tbl tr.is-latest th { box-shadow: inset -3px 0 0 var(--rj-acc); }
.v2rj-calcv { color: var(--rj-acc-deep); font-weight: 700; }
.v2rj-tbl__note {
    margin: 0;
    padding: 12px 16px 14px;
    font-size: 12.5px; line-height: 1.6;
    color: var(--faint);
    border-top: 1px solid var(--line);
    background: var(--mist);
}

/* ---------- SIGNATURE: the calculation card ---------- */
.v2rj-calc {
    background: var(--paper);
    border: 1px solid var(--rj-acc-line);
    border-radius: 18px;
    margin: 20px 0 0;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(46, 58, 140, 0.28);
}
.v2rj-calc__head {
    display: flex; align-items: center; flex-wrap: wrap; gap: 12px 14px;
    padding: 16px 20px;
    background: var(--rj-acc-bg);
    border-bottom: 1px solid var(--rj-acc-line);
}
.v2rj-calc__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 650; font-size: 16px; letter-spacing: -0.012em;
    color: var(--ink);
}
.v2rj-calc__pick { display: flex; gap: 6px; margin-right: auto; }
/* `.v2 button` in the base reset zeroes padding/border/background, so
   button controls are written `.v2 <class>` or they render as bare text. */
.v2 .v2rj-calc__btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 40px; min-width: 64px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid var(--rj-acc-line);
    background: var(--paper);
    color: var(--rj-acc);
    font-family: var(--font-mono);
    font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
    transition: background 0.18s ease, color 0.18s ease;
}
.v2 .v2rj-calc__btn.is-on { background: var(--rj-acc); color: #fff; border-color: var(--rj-acc); }
.v2 .v2rj-calc__btn:hover:not(.is-on) { background: var(--rj-acc-tint); }

.v2rj-calc__eq {
    display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px;
    padding: 22px 20px 18px;
}
.v2rj-calc__term { min-width: 0; }
.v2rj-calc__term b {
    display: block;
    font-family: var(--font-display);
    font-weight: 800; font-size: 26px; letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.v2rj-calc__term .v2-mono { display: block; margin-top: 5px; font-size: 9.5px; }
.v2rj-calc__term.is-out b { color: var(--rj-acc-deep); }
.v2rj-calc__term.is-out .v2-mono { color: var(--rj-acc); }
.v2rj-calc__op {
    font-family: var(--font-mono);
    font-size: 15px; font-weight: 600;
    color: var(--faint);
    white-space: nowrap;
}

/* The METER: one ratio against a whole. Same-hue fill on a tinted
   track, 4px rounded data end, 2px surface ring, labels in text tokens. */
.v2rj-meter { padding: 4px 20px 20px; }
.v2rj-meter__lab { margin: 0 0 10px; font-size: 10px; color: var(--faint); }
.v2rj-meter__track {
    position: relative;
    height: 14px;
    border-radius: 4px;
    background: var(--rj-acc-tint);
    overflow: hidden;
}
.v2rj-meter__track i {
    position: absolute; inset: 0 auto 0 0;
    width: var(--w, 0%);
    min-width: 6px;
    border-radius: 4px 4px 4px 4px;
    background: var(--rj-acc);
    box-shadow: 0 0 0 2px var(--paper);
    transition: width 0.45s cubic-bezier(.2,.7,.2,1);
}
.v2rj-meter__scale {
    display: flex; justify-content: space-between;
    margin-top: 7px;
    font-size: 9px; color: var(--faint);
}
.v2rj-meter__cap,
.v2rj-calc .v2rj-meter__cap {
    margin: 12px 0 0;
    font-size: 14px; line-height: 1.6;
    color: var(--slate);
}

/* ---------- "What the ratio does not establish" ---------- */
.v2rj-limits {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 22px;
    margin: 20px 0;
}
.v2rj-limits__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2rj-limits__list { display: grid; gap: 10px; }
.v2rj-limits__list li {
    position: relative;
    padding-right: 24px;
    font-size: 14.5px; line-height: 1.7; color: var(--slate);
}
.v2rj-limits__list li::before {
    content: '';
    position: absolute; right: 2px; top: 10px;
    width: 12px; height: 2px; border-radius: 2px;
    background: var(--rj-acc);
}
.v2rj-limits__list li strong { color: var(--ink); font-weight: 650; }

/* Shared note/warn family (icon-first grid: keep the icon) */
.v2rj-note, .v2rj-warn { margin: 22px 0; }
.v2rj-note .v2rj-src { margin-top: 10px; }

/* ---------- Metric-boundary wording ---------- */
.v2rj-boundary {
    margin: 18px 0;
    padding: 16px 20px;
    border-right: 3px solid var(--rj-acc);
    background: var(--rj-acc-bg);
    border-radius: 14px 0 0 14px;
}
.v2rj-boundary p { margin: 0; font-size: 15px; line-height: 1.75; color: var(--ink); }

/* ---------- SIGNATURE: the decision router ---------- */
.v2rj-router {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 14px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 26px 52px -30px rgba(10, 16, 23, 0.22);
}
.v2rj-router__head { padding: 16px 18px; background: var(--mist); border-bottom: 1px solid var(--line); }
.v2rj-router__lab { margin: 0 0 11px; font-size: 10px; color: var(--faint); }
.v2rj-router__pick { display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2rj-router__btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px;
    font-size: 13px; font-weight: 600;
    color: var(--slate);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 14px;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}
.v2 .v2rj-router__btn:hover { color: var(--ink); border-color: #C9D2DA; }
.v2 .v2rj-router__btn.is-on { color: #fff; background: var(--rj-acc); border-color: var(--rj-acc); }
.v2rj-router__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2rj-router table { width: 100%; min-width: 680px; border-collapse: collapse; }
.v2rj-router th {
    font-family: var(--font-mono);
    font-size: 9.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: 0.12em;
    color: var(--faint);
    text-align: right;
    padding: 12px 16px;
    border-bottom: 1px solid var(--line);
    white-space: nowrap;
}
.v2rj-router td {
    padding: 14px 16px;
    font-size: 13.5px; line-height: 1.6;
    color: var(--slate);
    border-bottom: 1px solid #F0F3F5;
    vertical-align: top;
    transition: background 0.18s ease;
}
.v2rj-router tbody tr:last-child td { border-bottom: none; }
.v2rj-router td strong { color: var(--ink); font-weight: 650; }
.v2rj-router tbody tr.is-on td { background: var(--rj-acc-bg); }
.v2rj-router tbody tr.is-on td:first-child { box-shadow: inset -3px 0 0 var(--rj-acc); }
.v2 .v2rj-router td a { color: var(--rj-acc); }
.v2rj-router__out {
    display: block;
    margin: 0;
    padding: 14px 18px;
    background: var(--ink);
    color: #C6D0DA;
    font-size: 14px; line-height: 1.65;
}
.v2rj-router__out[hidden] { display: none; }
.v2 .v2rj-router__out a { color: #fff; text-decoration-color: rgba(255,255,255,0.4); }

/* ---------- The eight check cards ----------
   minmax(0, 1fr), not the implicit `auto` column (an auto track is
   floored at min-content and dragged a sibling post's mobile layout
   to 619px on a 390px screen). */
.v2rj-checks {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    margin: 14px 0 6px;
}
.v2rj-check {
    min-width: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 20px 22px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2rj-check__head { display: flex; align-items: center; gap: 13px; margin-bottom: 12px; }
.v2rj-check__idx {
    flex-shrink: 0;
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 11px;
    background: var(--mist);
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 800; font-size: 18px; letter-spacing: -0.02em;
}
.v2rj-check__title {
    font-family: var(--font-display);
    font-weight: 650; font-size: 17px; letter-spacing: -0.014em;
    line-height: 1.3; color: var(--ink);
}
.v2rj-check__lbls { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.v2rj-check__body { display: grid; gap: 10px; }
.v2rj-check__row {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--mist);
}
.v2rj-check__row dt { font-size: 9.5px; padding-top: 3px; }
.v2rj-check__row dd { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2rj-check__row.is-test { background: var(--rj-acc-bg); }
.v2rj-check__row.is-test dt { color: var(--rj-acc); }
.v2rj-check__row.is-fix { background: var(--go-tint); }
.v2rj-check__row.is-fix dt { color: var(--go-deep); }
.v2rj-check__row.is-fix dd { color: var(--ink); }
.v2rj-check__src { margin-top: 14px; }

/* ---------- Testing flow ---------- */
.v2rj-flow {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
    margin: 18px 0;
}
.v2rj-flow__lab { margin: 0 0 12px; font-size: 10px; color: var(--faint); }
.v2rj-flow__steps { display: grid; gap: 8px; }
.v2rj-flow__steps li {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 11px 13px;
    border-radius: 12px;
    background: var(--mist);
    font-size: 14.5px; line-height: 1.65; color: var(--slate);
}
.v2rj-flow__steps li strong { color: var(--ink); font-weight: 650; }
.v2rj-flow__steps li.is-decision { background: var(--rj-acc-bg); }
.v2rj-flow__n {
    flex-shrink: 0;
    width: 22px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--paper);
    color: var(--ink);
    font-size: 10px; font-weight: 700;
    box-shadow: inset 0 0 0 1px var(--line);
}
.v2rj-flow__steps li.is-decision .v2rj-flow__n { background: var(--rj-acc); color: #fff; box-shadow: none; }

/* Our advice, in its own block, never under a policy label */
.v2rj-ours {
    background: var(--paper);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
}
.v2rj-ours .v2rj-lbl { margin-bottom: 10px; }
.v2rj-ours p { font-size: 14.5px; line-height: 1.7; color: var(--slate); }
.v2rj-ours p + p { margin-top: 10px; }

/* ---------- The one contextual service box ---------- */
.v2rj-support {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 22px 24px;
    margin: 28px 0 8px;
    scroll-margin-top: calc(var(--nav-h) + 26px);
}
.v2rj-support__tag { margin: 0 0 10px; font-size: 10px; color: var(--go-deep); }
.v2rj-support__lead { margin: 0; font-size: 15px; line-height: 1.75; color: var(--ink); }
.v2rj-support__plans {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 16px 0;
}
.v2rj-plan {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    min-width: 0;
}
.v2rj-plan .v2-mono { display: block; font-size: 9px; }
.v2rj-plan b {
    display: block;
    margin-top: 6px;
    font-family: var(--font-display);
    font-weight: 700; font-size: 16px; letter-spacing: -0.015em;
    color: var(--ink);
}
.v2rj-plan__price { display: block; margin-top: 3px; font-size: 13px; font-weight: 600; color: var(--go-deep); }
.v2rj-plan.is-pop { border-color: rgba(11, 138, 71, 0.3); box-shadow: 0 0 0 2px var(--go-tint); }
.v2rj-support__act { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 18px; }
.v2gpr-prose .v2rj-support .v2-btn { text-decoration: none; }
.v2rj-support__fine { margin: 0; flex: 1 1 260px; font-size: 12.5px; line-height: 1.6; color: var(--faint); }

/* ---------- After a rejection: numbered steps ---------- */
.v2rj-steps { display: grid; gap: 8px; margin: 14px 0 6px; }
.v2rj-steps li {
    display: flex; align-items: flex-start; gap: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 12px 14px;
    font-size: 14.5px; line-height: 1.65; color: var(--slate);
}
.v2rj-steps li strong { color: var(--ink); font-weight: 650; }
.v2rj-steps__n {
    flex-shrink: 0;
    width: 22px; height: 22px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 6px;
    background: var(--rj-acc-bg);
    color: var(--rj-acc);
    font-size: 10px; font-weight: 700;
}

/* ---------- The illustrative record ---------- */
.v2rj-record {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 14px 0 6px;
}
.v2rj-record__tbl {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    background: var(--paper);
    border: 1px solid var(--rj-amber-line);
    border-radius: 14px;
    overflow: hidden;
}
.v2rj-record__tbl th, .v2rj-record__tbl td {
    padding: 9px 12px;
    text-align: right;
    vertical-align: top;
    font-size: 13px; line-height: 1.55;
    border-bottom: 1px solid #F0F3F5;
}
.v2rj-record__tbl tr:last-child th, .v2rj-record__tbl tr:last-child td { border-bottom: none; }
.v2rj-record__tbl th { width: 34%; font-size: 9.5px; padding-top: 12px; color: var(--rj-amber); background: var(--rj-amber-bg); }
.v2rj-record__tbl td { color: var(--slate); }
.v2rj-record__tbl tr:first-child td { color: var(--ink); font-weight: 650; }

/* ---------- Checklist (real checkboxes + counter) ---------- */
.v2rj-list {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    margin: 16px 0 0;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
}
.v2rj-list__top {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 18px;
    background: var(--ink);
}
.v2rj-list__count { font-size: 10px; color: #93A0AC; }
.v2rj-list__count b { color: #5FD4A0; font-weight: 700; font-size: 12px; }
.v2rj-list__group { padding: 12px 18px 14px; border-bottom: 1px solid #F0F3F5; }
.v2rj-list__group:last-child { border-bottom: none; }
.v2rj-list__glab { margin: 0 0 6px; font-size: 10px; color: var(--faint); }
.v2rj-list__item {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 9px 8px;
    margin: 0 -8px;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.16s ease;
}
.v2rj-list__item:hover { background: var(--mist); }
.v2rj-list__box {
    position: absolute;
    width: 1px; height: 1px;
    opacity: 0;
    margin: 0;
}
.v2rj-list__mark {
    width: 21px; height: 21px; margin-top: 2px;
    border-radius: 6px;
    border: 1.5px solid #C9D2DA;
    background: var(--paper);
    position: relative;
    transition: background 0.16s ease, border-color 0.16s ease;
}
.v2rj-list__mark::after {
    content: '';
    position: absolute; inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10.4 8.4 13.6 15 6.6' stroke='%23FFFFFF' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 15px 15px; background-position: center; background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.14s ease;
}
.v2rj-list__box:focus-visible + .v2rj-list__mark { outline: 2px solid var(--go); outline-offset: 3px; }
.v2rj-list__item.is-checked .v2rj-list__mark { background: var(--go); border-color: var(--go); }
.v2rj-list__item.is-checked .v2rj-list__mark::after { opacity: 1; }
.v2rj-list__txt { font-size: 14.5px; line-height: 1.65; color: var(--slate); }
.v2rj-list__item.is-checked .v2rj-list__txt { color: var(--faint); }
.v2rj-list__txt em { font-style: normal; font-weight: 600; color: var(--ink); }
.v2 .v2rj-list__txt a { color: var(--rj-acc); }

/* ---------- Bottom line (speakable; dark moment #2) ---------- */
.v2rj-bottom {
    background: var(--ink);
    border-radius: 18px;
    padding: 24px 28px;
    margin: 22px 0;
}
.v2rj-bottom__tag { display: flex; align-items: center; gap: 8px; color: #5FD4A0; margin-bottom: 12px; font-size: 10px; }
.v2rj-bottom__tag svg { width: 16px; height: 16px; }
.v2rj-bottom__text { font-size: 16px; line-height: 1.8; font-weight: 450; color: #C6D0DA; }
.v2rj-bottom__text strong { color: #fff; font-weight: 700; }

/* ---------- Sources (three grouped lists) + update history ---------- */
.v2rj-docs { display: grid; gap: 12px; margin: 26px 0 0; }
.v2rj-docs .v2gpr-docs { margin: 0; }
.v2rj-docs .v2gpr-docs__label { font-size: 10px; color: var(--faint); }
.v2 .v2rj-docs .v2gpr-docs__list a { color: var(--rj-acc); }
.v2rj-history {
    margin: 14px 0 0;
    padding: 16px 20px;
    border: 1px dashed var(--line);
    border-radius: 14px;
}
.v2rj-history__lab { margin: 0 0 8px; font-size: 10px; color: var(--faint); }
.v2rj-history p:last-child { margin: 0; font-size: 13.5px; line-height: 1.7; color: var(--slate); }
.v2rj-history strong { color: var(--ink); font-weight: 650; }

/* ---------- Related grid ---------- */
.v2rj-relgrid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}
.v2 .v2rj-rel {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 18px;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    text-decoration: none;
    color: var(--ink);
    transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.v2 .v2rj-rel:hover {
    border-color: #C9D2DA;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -18px rgba(10, 16, 23, 0.3);
}
.v2rj-rel__ic {
    width: 40px; height: 40px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 11px;
    background: var(--rj-acc-bg);
    color: var(--rj-acc);
}
.v2rj-rel__ic svg { width: 20px; height: 20px; }
.v2rj-rel__tx { min-width: 0; }
.v2rj-rel__tx strong { display: block; font-size: 15px; font-weight: 650; line-height: 1.35; letter-spacing: -0.01em; }
.v2rj-rel__tx span { display: block; margin-top: 3px; font-size: 13px; line-height: 1.5; color: var(--slate); }
.v2rj-rel .v2-ic { color: var(--faint); transition: transform 0.18s ease, color 0.18s ease; }
.v2 .v2rj-rel:hover .v2-ic { color: var(--rj-acc); transform: translateX(-3px); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .v2rj-relgrid { grid-template-columns: minmax(0, 1fr); }
    .v2rj-record { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .v2rj-answer { padding: 22px 20px; border-radius: 16px; }
    .v2rj-answer__lead { font-size: 15.5px; }
    .v2rj-legend, .v2rj-toc, .v2rj-limits, .v2rj-flow, .v2rj-ours { padding: 16px 16px; }
    .v2rj-legend__list li { grid-template-columns: minmax(0, 1fr); gap: 6px; }
    @supports (grid-template-columns: subgrid) {
        .v2rj-legend__list { grid-template-columns: minmax(0, 1fr); }
        .v2rj-legend__list li { grid-template-columns: minmax(0, 1fr); }
    }
    .v2rj-toc__grid { grid-template-columns: minmax(0, 1fr); }
    .v2rj-calc__head { padding: 14px 16px; }
    .v2rj-calc__pick { margin-right: 0; width: 100%; }
    .v2 .v2rj-calc__btn { flex: 1 1 0; }
    .v2rj-calc__eq { padding: 18px 16px 14px; gap: 8px 14px; }
    .v2rj-calc__term b { font-size: 22px; }
    .v2rj-meter { padding: 4px 16px 18px; }
    .v2rj-router__head { padding: 14px 16px; }
    .v2 .v2rj-router__btn { font-size: 12.5px; padding: 8px 12px; }
    .v2rj-check { padding: 18px 16px; }
    .v2rj-check__row { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 11px 12px; }
    .v2rj-support { padding: 18px 16px; }
    .v2rj-support__plans { grid-template-columns: minmax(0, 1fr); }
    .v2rj-plan { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 12px; }
    .v2rj-plan .v2-mono { grid-column: 1 / -1; }
    .v2rj-plan b { margin-top: 4px; }
    .v2rj-plan__price { margin-top: 4px; }
    .v2rj-record__tbl th { width: 38%; }
    .v2rj-list__group { padding: 10px 14px 12px; }
    .v2rj-list__item { margin: 0 -6px; padding: 8px 6px; }
    .v2rj-bottom { padding: 22px 20px; }
    .v2rj-bottom__text { font-size: 15px; }
    .v2 .v2rj-rel { padding: 14px 15px; gap: 12px; }
    .v2rj-history { padding: 14px 16px; }
}
@media (max-width: 480px) {
    .v2rj-facts { grid-template-columns: minmax(0, 1fr); }
    .v2rj-calc__eq { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2rj-calc__op { font-size: 13px; }
    .v2rj-calc__term.is-out { padding-top: 8px; border-top: 1px solid var(--rj-acc-line); }
}
@media (max-width: 380px) {
    .v2rj-calc__term b { font-size: 20px; }
    .v2 .v2rj-router__btn { min-height: 44px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .v2rj-meter__track i, .v2 .v2rj-rel, .v2rj-rel .v2-ic { transition: none; }
}
/* ============= END BLOG RR26 V2 - 2026-09-12 REBUILD LAYER ============= */

/* =============================================================
   BLOG CTNS V2 - 2026-09-12 REBUILD LAYER
   "Google Play App Not Available to Testers? How to Fix It"
   (/blog/google-play-app-not-available-to-testers)

   REBUILT against the editorial audit. The old v2ctns- layer (the
   "availability trace" of five relays, the five-fault board with
   BLOCKED tags, the 177-country recommendation trio, the
   logged-out smoke test) was deleted with the article it dressed:
   it staged five Console settings as the whole story, which is the
   audit's headline finding.

   Prefix: v2nat-. Motif: a TWO-STAGE ACCESS PATH (join, then
   install). One local accent, a Console blue, carries anything the
   reader looks up in Play Console; the site green stays the
   confirmed/pass state; nothing is red, because nothing here is a
   verdict. Components: the symptom router (a real table a tap can
   highlight), the video with its correction note, the numbered
   tester procedure, copy boxes with a textarea fallback, five
   check cards with console-window screenshots, the format-only
   link checker, state tables, the manual-confirmation checklist
   with native checkboxes, plans. Rides the shared v2gpr- article
   layer (rail + chips, prose, h2/h3, note/tip/warn, faq, docs,
   author, related, dark CTA, sticky CTA).

   Two dark moments only: the direct answer and the closing band.
============================================================= */

.v2nat-article {
    --nat-blue:      #1A5FB4;
    --nat-blue-deep: #144A8C;
    --nat-blue-bg:   #EEF4FB;
    --nat-blue-line: rgba(26, 95, 180, 0.18);
    --nat-amber:     #8A5A00;
    --nat-amber-bg:  #FDF6E8;
    --nat-amber-line: rgba(138, 90, 0, 0.18);
}

/* Block-scoped reset (base reset skips h4/ul/ol/figure) */
.v2nat-proc, .v2nat-list, .v2nat-ready__list, .v2nat-plan ul {
    margin: 0; padding: 0; list-style: none;
}

/* Retired 2026-07 anchors, kept so old deep links still land */
.v2nat-anchor { display: block; height: 0; scroll-margin-top: calc(var(--nav-h) + 26px); }

/* Visually hidden label for the checker input */
.v2-visually-hidden {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0);
    white-space: nowrap; border: 0;
}

/* ---------- Hero ---------- */
.v2nat-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2nat-fact--date b { font-size: 19px; letter-spacing: -0.01em; }

/* ---------- Direct answer (speakable; dark moment #1) ---------- */
.v2nat-answer {
    background: var(--ink);
    border-radius: 20px;
    padding: 26px 30px;
    margin: 4px 0 26px;
}
.v2nat-answer__tag {
    display: flex; align-items: center; gap: 9px;
    margin-bottom: 14px;
    color: #5FD4A0; font-size: 10px;
}
.v2nat-answer__tag i {
    width: 8px; height: 8px; border-radius: 50%;
    background: #5FD4A0;
    box-shadow: 0 0 0 4px rgba(95, 212, 160, 0.18);
}
.v2nat-answer__lead { font-size: 16px; line-height: 1.8; font-weight: 450; color: #C6D0DA; }
.v2nat-answer__lead strong { color: #fff; font-weight: 700; }
.v2nat-answer__note {
    margin-top: 16px; padding-top: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 14.5px; line-height: 1.7; color: #93A0AC;
}

/* ---------- Cover image (moved below the answer) ---------- */
.v2gpr-prose figure.v2nat-cover { margin: 22px 0 26px; }
.v2nat-cover img { display: block; width: 100%; height: auto; border-radius: 18px; border: 1px solid var(--line); }

/* ---------- Headings ---------- */
.v2nat-h2 { text-wrap: balance; }
.v2nat-h3 { scroll-margin-top: calc(var(--nav-h) + 26px); }
.v2nat-h4 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16.5px;
    letter-spacing: -0.012em;
    line-height: 1.3;
    color: var(--ink);
    margin: 24px 0 8px;
}

/* ---------- Inline source lines ----------
   `.v2gpr-prose > p` is (0,1,1) with a child combinator and would win
   over a bare class on a direct child, so both forms are spelled out. */
.v2nat-src,
.v2gpr-prose > p.v2nat-src,
.v2nat-check .v2nat-src {
    font-size: 12.5px; line-height: 1.6; color: var(--faint);
    margin: 10px 0 22px;
}
.v2 .v2nat-src a {
    color: var(--nat-blue-deep); font-weight: 600;
    text-decoration: underline; text-decoration-color: var(--nat-blue-line); text-underline-offset: 2px;
}
.v2 .v2nat-src a:hover { text-decoration-color: var(--nat-blue); }
.v2nat-fine, .v2gpr-prose > p.v2nat-fine { font-size: 13.5px; line-height: 1.65; color: var(--slate); margin: 12px 0 24px; }

/* ---------- Callouts: the shared grid wants an icon first child ---------- */
.v2nat-callout { margin: 22px 0; }

/* ---------- SIGNATURE: the symptom router ---------- */
.v2nat-router {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    margin: 22px 0 26px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.04), 0 20px 40px -28px rgba(10, 16, 23, 0.16);
}
.v2nat-router__head { padding: 18px 20px 14px; border-bottom: 1px solid var(--line); background: var(--mist); }
.v2nat-router__lab { margin: 0 0 11px; font-size: 10px; color: var(--faint); }
.v2nat-router__pick { display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2nat-router__btn {
    display: inline-flex; align-items: center;
    min-height: 40px;
    padding: 8px 14px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    color: var(--slate);
    font-family: var(--font-body);
    font-weight: 600; font-size: 13.5px; line-height: 1.2;
    cursor: pointer;
    transition: color .15s ease, border-color .15s ease, background .15s ease;
}
.v2 .v2nat-router__btn:hover { color: var(--ink); border-color: #C9D2DA; }
.v2 .v2nat-router__btn.is-on { background: var(--nat-blue); border-color: var(--nat-blue); color: #fff; }
.v2 .v2nat-router__btn:focus-visible { outline: 2px solid var(--nat-blue); outline-offset: 2px; }
.v2nat-router__scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.v2nat-router table { width: 100%; min-width: 560px; border-collapse: collapse; }
.v2nat-router th {
    text-align: right;
    padding: 11px 18px;
    font-family: var(--font-mono); font-size: 10px; font-weight: 600;
    letter-spacing: 0.1em; text-transform: uppercase;
    color: var(--faint);
    border-bottom: 1px solid var(--line);
}
.v2nat-router td {
    padding: 14px 18px;
    vertical-align: top;
    font-size: 14px; line-height: 1.65; color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2nat-router td:first-child { width: 38%; }
.v2nat-router tbody tr:last-child td { border-bottom: none; }
.v2nat-router td strong { color: var(--ink); font-weight: 650; }
.v2 .v2nat-router td a, .v2 .v2nat-router__out a {
    color: var(--nat-blue-deep); font-weight: 600;
    text-decoration: underline; text-decoration-color: var(--nat-blue-line); text-underline-offset: 2px;
}
.v2nat-router tbody tr.is-on td { background: var(--nat-blue-bg); }
.v2nat-router tbody tr.is-on td:first-child { box-shadow: inset -3px 0 0 var(--nat-blue); }
.v2nat-router__out {
    display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px;
    padding: 16px 20px;
    background: var(--nat-blue-bg);
    border-top: 1px solid var(--nat-blue-line);
    font-size: 14.5px; line-height: 1.65; color: var(--ink);
}
.v2nat-router__out[hidden] { display: none; }
.v2nat-router__outlab { font-size: 10px; color: var(--nat-blue-deep); }

/* ---------- Video (supplementary, click-to-play) ---------- */
.v2nat-video {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 18px;
    margin: 26px 0;
}
.v2nat-video__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.v2nat-video__badge {
    flex-shrink: 0; width: 40px; height: 40px; border-radius: 11px;
    background: var(--mist); color: var(--ink);
    display: flex; align-items: center; justify-content: center;
}
.v2nat-video__badge svg { width: 20px; height: 20px; }
.v2nat-video__title { font-family: var(--font-display); font-weight: 600; font-size: 16.5px; letter-spacing: -.015em; color: var(--ink); }
.v2nat-video__head p:not(.v2nat-video__title) { font-size: 13px; color: var(--slate); margin-top: 2px; }
.v2 .v2nat-video__frame {
    position: relative; display: block; width: 100%;
    aspect-ratio: 16 / 9;
    border: 0; padding: 0; border-radius: 14px; overflow: hidden;
    cursor: pointer; background: var(--ink);
}
.v2nat-video__frame img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; opacity: .82;
    transition: opacity .25s ease, transform .4s ease;
}
.v2 .v2nat-video__frame:hover img { opacity: 1; transform: scale(1.03); }
.v2nat-video__play {
    position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%);
    width: 64px; height: 64px; border-radius: 50%;
    background: var(--go); color: #fff;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 10px 30px -8px rgba(11, 138, 71, .6);
}
.v2nat-video__play svg { width: 30px; height: 30px; margin-right: 2px; }
.v2 .v2nat-video__frame:hover .v2nat-video__play { background: var(--go-deep); }
.v2nat-video__live { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; }
.v2nat-video__live iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.v2nat-video__fix {
    margin-top: 14px;
    padding: 13px 15px;
    background: var(--nat-amber-bg);
    border: 1px solid var(--nat-amber-line);
    border-radius: 12px;
}
.v2nat-video__fixlab { margin: 0 0 6px; font-size: 10px; color: var(--nat-amber); }
.v2nat-video__fix p:last-child { font-size: 13.5px; line-height: 1.65; color: var(--slate); }
.v2 .v2nat-video__fix a { color: var(--nat-blue-deep); font-weight: 600; text-decoration: underline; text-decoration-color: var(--nat-blue-line); text-underline-offset: 2px; }

/* ---------- Numbered procedure list ---------- */
.v2gpr-prose ol.v2nat-proc { margin: 18px 0; padding: 0; counter-reset: v2natproc; display: grid; gap: 9px; }
.v2nat-proc > li {
    counter-increment: v2natproc;
    position: relative;
    list-style: none;
    padding: 12px 48px 12px 15px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 14.5px; line-height: 1.65; color: var(--slate);
}
.v2nat-proc > li strong { color: var(--ink); font-weight: 650; }
.v2nat-proc > li::before {
    content: counter(v2natproc);
    position: absolute; right: 12px; top: 11px;
    width: 26px; height: 26px; border-radius: 8px;
    background: var(--paper); border: 1px solid var(--line);
    color: var(--nat-blue-deep);
    font: 700 12px/26px var(--font-mono); text-align: center;
}

/* ---------- Plain bullet list ---------- */
.v2gpr-prose ul.v2nat-list { margin: 14px 0 18px; padding: 0; display: grid; gap: 8px; }
.v2nat-list > li {
    position: relative;
    padding-right: 22px;
    font-size: 15px; line-height: 1.7; color: var(--slate);
}
.v2nat-list > li::before {
    content: "";
    position: absolute; right: 4px; top: 11px;
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--nat-blue);
}
.v2nat-list > li strong { color: var(--ink); font-weight: 650; }
.v2nat-list > li code {
    font-family: var(--font-mono); font-size: 12.5px;
    background: var(--mist); border: 1px solid var(--line); border-radius: 5px;
    padding: 1px 6px; color: var(--ink);
}
.v2nat-list--evi > li { font-size: 14.5px; }

/* ---------- Copy boxes (tester message, support packet) ---------- */
.v2nat-copy {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 16px 18px 14px;
    margin: 22px 0;
}
.v2nat-copy__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.v2nat-copy__lab { margin: 0; font-size: 10px; color: var(--faint); }
.v2 .v2nat-copy__btn {
    display: inline-flex; align-items: center; gap: 7px;
    min-height: 44px; padding: 9px 14px;
    border: 1px solid var(--line); border-radius: 10px;
    background: var(--mist); color: var(--ink);
    font-family: var(--font-body); font-weight: 600; font-size: 13px;
    cursor: pointer; white-space: nowrap;
    transition: background .15s ease, border-color .15s ease;
}
.v2 .v2nat-copy__btn:hover { background: #E9EDF1; }
.v2 .v2nat-copy__btn.is-done { background: var(--go-tint); border-color: rgba(11, 138, 71, .25); color: var(--go-deep); }
.v2 .v2nat-copy__btn .v2-ic { width: 16px; height: 16px; }
.v2nat-copy__text {
    display: block; width: 100%;
    box-sizing: border-box;
    resize: vertical;
    padding: 12px 14px;
    border: 1px solid var(--line); border-radius: 12px;
    background: var(--mist);
    font-family: var(--font-mono); font-size: 12.5px; line-height: 1.65; color: var(--ink);
}
.v2nat-copy__text:focus { outline: none; border-color: var(--nat-blue); box-shadow: 0 0 0 3px rgba(26, 95, 180, .12); background: var(--paper); }
.v2nat-copy__status { min-height: 0; margin: 8px 0 0; font-size: 12.5px; color: var(--go-deep); font-weight: 600; }
.v2nat-copy__status:empty { display: none; }
.v2nat-copy__foot { margin: 8px 0 0; font-size: 12px; line-height: 1.6; color: var(--faint); }

/* ---------- The five check cards ---------- */
.v2nat-checks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin: 22px 0 8px; }
.v2nat-check {
    min-width: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(18px, 3vw, 28px);
    scroll-margin-top: calc(var(--nav-h) + 18px);
}
.v2nat-check__head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.v2nat-check__idx {
    display: inline-flex; align-items: baseline; gap: 5px;
    width: max-content;
    font-size: 10px; color: var(--nat-blue-deep);
    background: var(--nat-blue-bg); border: 1px solid var(--nat-blue-line);
    border-radius: 6px; padding: 5px 9px;
}
.v2nat-check__idx i { font-style: normal; color: var(--faint); }
.v2nat-check__title {
    font-family: var(--font-display); font-weight: 700;
    font-size: clamp(1.2rem, 1.05rem + .6vw, 1.45rem);
    letter-spacing: -0.016em; line-height: 1.22; color: var(--ink);
    text-wrap: balance;
}
.v2nat-check > p { font-size: 15.5px; line-height: 1.8; color: var(--slate); margin: 12px 0; }
.v2nat-check > p strong { color: var(--ink); font-weight: 650; }
.v2 .v2nat-check > p a { color: var(--nat-blue-deep); font-weight: 600; text-decoration: underline; text-decoration-color: var(--nat-blue-line); text-underline-offset: 2px; }

/* ---------- Console-window screenshot frame ---------- */
.v2gpr-prose figure.v2nat-shot {
    margin: 20px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 16, 23, .04), 0 22px 42px -26px rgba(10, 16, 23, .18);
}
.v2nat-shot__bar {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
}
.v2nat-shot__dots { display: inline-flex; gap: 5px; flex-shrink: 0; }
.v2nat-shot__dots i { width: 9px; height: 9px; border-radius: 50%; background: #D4DBE1; }
.v2nat-shot__path { font-size: 10px; color: var(--faint); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v2nat-shot__frame { position: relative; display: block; line-height: 0; }
.v2nat-shot__frame img { width: 100%; height: auto; display: block; cursor: zoom-in; }
.v2nat-shot__zoom {
    position: absolute; left: 12px; bottom: 12px;
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 10px; color: #fff;
    background: rgba(10, 16, 23, .74);
    backdrop-filter: blur(4px);
    border-radius: 999px; padding: 5px 11px; line-height: 1;
    opacity: 0; transition: opacity .2s ease;
}
.v2nat-shot__zoom svg { width: 13px; height: 13px; }
.v2nat-shot__frame:hover .v2nat-shot__zoom { opacity: 1; }
.v2gpr-prose figcaption.v2nat-shot__cap {
    display: flex; gap: 10px; align-items: flex-start;
    padding: 13px 16px 15px;
    font-size: 13px; line-height: 1.55; color: var(--slate);
    background: var(--paper);
    border-top: 1px solid var(--line);
    margin: 0;
}
.v2nat-shot__cap strong { color: var(--ink); font-weight: 650; }
.v2nat-shot__cap-n {
    flex-shrink: 0; width: 20px; height: 20px; border-radius: 6px;
    background: var(--nat-blue-bg); color: var(--nat-blue-deep);
    font: 700 11px/20px var(--font-mono); text-align: center;
}

/* ---------- Mismatch / aligned state cards ---------- */
.v2nat-cmp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 20px 0; }
.v2nat-cmp__card { min-width: 0; background: var(--mist); border: 1px solid var(--line); border-radius: 15px; padding: 18px 20px; }
.v2nat-cmp__card h4 {
    display: flex; align-items: center; gap: 9px;
    font-family: var(--font-display); font-weight: 600; font-size: 15.5px; color: var(--ink);
    margin: 0 0 8px;
}
.v2nat-cmp__ic { display: inline-flex; width: 26px; height: 26px; border-radius: 8px; align-items: center; justify-content: center; flex-shrink: 0; }
.v2nat-cmp__ic svg { width: 17px; height: 17px; }
.v2nat-cmp__card p { font-size: 13.5px; line-height: 1.6; color: var(--slate); margin: 0; }
.v2nat-cmp__card p strong { color: var(--ink); font-weight: 650; }
.v2nat-cmp__card.is-good { background: var(--go-tint); border-color: rgba(11, 138, 71, .2); }
.v2nat-cmp__card.is-good .v2nat-cmp__ic { background: rgba(11, 138, 71, .14); color: var(--go-deep); }
.v2nat-cmp__card.is-bad .v2nat-cmp__ic { background: var(--paper); border: 1px solid var(--line); color: var(--slate); }

/* ---------- Big numbered steps (check 2) ---------- */
.v2nat-steps { display: grid; gap: 12px; margin: 20px 0; }
.v2nat-step { display: flex; gap: 15px; background: var(--mist); border: 1px solid var(--line); border-radius: 15px; padding: 18px 20px; }
.v2nat-step.is-key { background: var(--paper); border-color: var(--nat-blue-line); box-shadow: 0 0 0 3px rgba(26, 95, 180, .07); }
.v2nat-step__n {
    flex-shrink: 0; width: 32px; height: 32px; border-radius: 9px;
    background: var(--paper); border: 1px solid var(--line); color: var(--ink);
    font-family: var(--font-display); font-weight: 700; font-size: 15px;
    display: flex; align-items: center; justify-content: center;
}
.v2nat-step.is-key .v2nat-step__n { background: var(--nat-blue); border-color: var(--nat-blue); color: #fff; }
.v2nat-step__body { min-width: 0; }
.v2nat-step__body h4 { font-family: var(--font-display); font-weight: 600; font-size: 16px; letter-spacing: -.01em; color: var(--ink); margin: 0 0 5px; }
.v2nat-step__body p { font-size: 14px; line-height: 1.6; color: var(--slate); margin: 0; }
.v2nat-step__tip { margin-top: 10px; padding: 10px 13px; background: var(--nat-amber-bg); border: 1px solid var(--nat-amber-line); border-radius: 9px; font-size: 13px; line-height: 1.55; color: var(--slate); }
.v2nat-step__tip strong { color: var(--nat-amber); }

/* ---------- Tables (tracks, publishing states) ---------- */
.v2nat-tbl {
    margin: 14px 0 18px;
    overflow-x: auto; -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line); border-radius: 14px; background: var(--paper);
}
.v2nat-tbl table { width: 100%; min-width: 560px; border-collapse: collapse; }
.v2nat-tbl th {
    text-align: right; padding: 11px 16px;
    font-family: var(--font-mono); font-size: 10px; font-weight: 600;
    letter-spacing: .1em; text-transform: uppercase; color: var(--faint);
    background: var(--mist); border-bottom: 1px solid var(--line);
}
.v2nat-tbl td { padding: 12px 16px; vertical-align: top; font-size: 14px; line-height: 1.6; color: var(--slate); border-bottom: 1px solid var(--line); }
.v2nat-tbl tbody tr:last-child td { border-bottom: none; }
.v2nat-tbl td strong { color: var(--ink); font-weight: 650; }
.v2 .v2nat-tbl td a { color: var(--nat-blue-deep); font-weight: 600; text-decoration: underline; text-decoration-color: var(--nat-blue-line); text-underline-offset: 2px; }
.v2nat-tbl--states td:first-child { width: 36%; }
.v2nat-pill {
    display: inline-block;
    font-family: var(--font-mono); font-size: 10px; font-weight: 600;
    letter-spacing: .08em; text-transform: uppercase;
    border-radius: 999px; padding: 4px 10px; line-height: 1;
    white-space: nowrap;
}
.v2nat-pill.is-yes { background: var(--go-tint); color: var(--go-deep); }
.v2nat-pill.is-no { background: var(--mist); color: var(--ink); border: 1px solid var(--line); }
.v2nat-pill__note { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--faint); }

/* ---------- Link format checker ---------- */
.v2nat-scan {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(16px, 2.6vw, 22px);
    margin: 20px 0;
}
.v2nat-scan__head { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 14px; }
.v2nat-scan__ic {
    flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px;
    background: var(--nat-blue-bg); color: var(--nat-blue);
    display: flex; align-items: center; justify-content: center;
}
.v2nat-scan__ic svg { width: 22px; height: 22px; }
.v2nat-scan__title { font-family: var(--font-display); font-weight: 600; font-size: 17px; letter-spacing: -.015em; color: var(--ink); margin: 0; }
.v2nat-scan__head p:not(.v2nat-scan__title) { font-size: 13.5px; line-height: 1.55; color: var(--slate); margin: 3px 0 0; }
.v2nat-scan__form { display: flex; gap: 10px; }
.v2nat-scan__input {
    flex: 1 1 auto; min-width: 0; height: 46px;
    border: 1px solid var(--line); border-radius: 12px;
    padding: 0 15px;
    font-family: var(--font-mono); font-size: 13px; color: var(--ink);
    background: var(--paper);
    transition: border-color .18s ease, box-shadow .18s ease;
}
.v2nat-scan__input:focus { outline: none; border-color: var(--nat-blue); box-shadow: 0 0 0 3px rgba(26, 95, 180, .12); }
.v2nat-scan__input::placeholder { color: var(--faint); }
.v2 .v2nat-scan__btn {
    flex-shrink: 0;
    display: inline-flex; align-items: center; gap: 8px;
    height: 46px; padding: 0 18px;
    border: 0; border-radius: 12px;
    background: var(--nat-blue); color: #fff;
    font-family: var(--font-body); font-weight: 600; font-size: 14.5px;
    cursor: pointer; transition: background .18s ease;
}
.v2 .v2nat-scan__btn:hover { background: var(--nat-blue-deep); }
.v2 .v2nat-scan__btn .v2-ic { width: 18px; height: 18px; }
.v2nat-scan__result {
    display: flex; gap: 12px; align-items: flex-start;
    margin-top: 14px; padding: 15px 17px;
    border-radius: 13px; border: 1px solid var(--line); background: var(--paper);
    animation: v2RiseIn .4s cubic-bezier(0.22, 0.8, 0.26, 1) both;
}
.v2nat-scan__result[hidden] { display: none; }
.v2nat-scan__ric {
    flex-shrink: 0; width: 30px; height: 30px; border-radius: 9px;
    display: flex; align-items: center; justify-content: center;
    background: var(--mist); border: 1px solid var(--line); color: var(--slate);
}
.v2nat-scan__ric svg { width: 19px; height: 19px; }
.v2nat-scan__rbody { min-width: 0; }
.v2nat-scan__rbody strong { display: block; font-size: 14.5px; color: var(--ink); font-weight: 650; margin-bottom: 3px; }
.v2nat-scan__rbody > span { display: block; font-size: 13.5px; line-height: 1.6; color: var(--slate); }
.v2nat-scan__pkg { display: block; margin-top: 6px; }
.v2nat-scan__rbody code {
    font-family: var(--font-mono); font-size: 12px;
    background: var(--mist); border: 1px solid var(--line); border-radius: 5px;
    padding: 1px 5px; color: var(--ink); word-break: break-all;
}
.v2nat-scan__result.is-ok { background: var(--go-tint); border-color: rgba(11, 138, 71, .22); }
.v2nat-scan__result.is-ok .v2nat-scan__ric { background: rgba(11, 138, 71, .14); border-color: transparent; color: var(--go-deep); }
.v2nat-scan__result.is-info { background: var(--nat-blue-bg); border-color: var(--nat-blue-line); }
.v2nat-scan__result.is-info .v2nat-scan__ric { background: #fff; border-color: var(--nat-blue-line); color: var(--nat-blue-deep); }
.v2nat-scan__result.is-bad { background: var(--nat-amber-bg); border-color: var(--nat-amber-line); }
.v2nat-scan__result.is-bad .v2nat-scan__ric { background: #fff; border-color: var(--nat-amber-line); color: var(--nat-amber); }
.v2nat-scan__foot { display: flex; align-items: center; gap: 7px; margin-top: 12px; font-size: 11.5px; color: var(--faint); }
.v2nat-scan__foot svg { width: 15px; height: 15px; flex-shrink: 0; }

/* ---------- Manual-confirmation checklist (native checkboxes) ---------- */
.v2nat-ready {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(16px, 2.6vw, 22px);
    margin: 22px 0 8px;
}
.v2nat-ready__bar { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px 14px; margin-bottom: 16px; }
.v2nat-ready__lab { font-size: 10px; color: var(--faint); }
.v2nat-ready__count { font-size: 11px; color: var(--slate); text-align: left; white-space: nowrap; }
.v2nat-ready__track { grid-column: 1 / -1; height: 6px; border-radius: 999px; background: var(--mist); overflow: hidden; }
.v2nat-ready__track i { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--go); transition: width .35s cubic-bezier(0.22, 0.8, 0.26, 1); }
.v2gpr-prose ul.v2nat-ready__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.v2nat-rrow label {
    display: flex; gap: 13px; align-items: flex-start;
    padding: 14px 16px;
    background: var(--mist); border: 1px solid var(--line); border-radius: 12px;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease;
}
.v2nat-rrow label:hover { border-color: #C9D2DA; }
.v2nat-rrow__cb { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.v2nat-rrow__cb:focus-visible + .v2nat-rrow__box { outline: 2px solid var(--nat-blue); outline-offset: 2px; }
.v2nat-rrow__box {
    flex-shrink: 0; width: 24px; height: 24px; border-radius: 7px;
    background: var(--paper); border: 1.5px solid #C9D2DA; color: transparent;
    display: flex; align-items: center; justify-content: center;
    transition: background .18s ease, border-color .18s ease, color .18s ease;
}
.v2nat-rrow__box svg { width: 15px; height: 15px; }
.v2nat-rrow.is-done label { background: var(--go-tint); border-color: rgba(11, 138, 71, .22); }
.v2nat-rrow.is-done .v2nat-rrow__box { background: var(--go); border-color: var(--go); color: #fff; }
.v2nat-rrow__body { min-width: 0; }
.v2nat-rrow__body strong { display: block; font-family: var(--font-display); font-weight: 600; font-size: 15px; letter-spacing: -.01em; color: var(--ink); line-height: 1.3; }
.v2nat-rrow__body > span { display: block; font-size: 13px; line-height: 1.55; color: var(--slate); margin-top: 3px; }
.v2nat-rrow.is-done .v2nat-rrow__body strong { color: var(--go-deep); }
.v2nat-ready__done {
    margin: 14px 0 0; padding: 13px 15px;
    background: var(--go-tint); border: 1px solid rgba(11, 138, 71, .22); border-radius: 12px;
    font-size: 14px; line-height: 1.6; color: var(--go-deep); font-weight: 600;
}
.v2nat-ready__done[hidden] { display: none; }

/* ---------- Plans ---------- */
.v2nat-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 20px 0 8px; align-items: start; }
.v2nat-plan { position: relative; min-width: 0; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 22px 20px; text-align: center; }
.v2nat-plan--key { background: var(--ink); border-color: var(--ink); }
.v2nat-plan__badge {
    position: absolute; top: -10px; right: 50%; transform: translateX(50%);
    background: var(--go); color: #fff;
    font-size: 9.5px; border-radius: 999px; padding: 4px 12px; white-space: nowrap;
}
.v2nat-plan__name { font-family: var(--font-display); font-weight: 600; font-size: 16px; color: var(--ink); }
.v2nat-plan--key .v2nat-plan__name { color: #fff; }
.v2nat-plan__testers { display: block; margin-top: 4px; font-size: 10px; color: var(--faint); }
.v2nat-plan__amount { font-family: var(--font-display); font-weight: 800; font-size: 30px; letter-spacing: -.02em; color: var(--ink); margin: 8px 0 14px; font-variant-numeric: tabular-nums; }
.v2nat-plan--key .v2nat-plan__amount { color: #fff; }
.v2nat-plan ul { margin: 0 0 16px; display: grid; gap: 8px; text-align: right; }
.v2nat-plan ul li { display: flex; align-items: flex-start; gap: 9px; font-size: 13px; line-height: 1.45; color: var(--slate); }
.v2nat-plan--key ul li { color: #A9B4BF; }
.v2nat-plan ul li span { min-width: 0; }
.v2 .v2nat-plan__btn {
    display: block; width: 100%; padding: 11px 14px; border-radius: 10px;
    background: var(--mist); color: var(--ink);
    font-family: var(--font-body); font-weight: 600; font-size: 14px;
    text-decoration: none; transition: background .18s ease, color .18s ease;
}
.v2 .v2nat-plan__btn:hover { background: #E9EDF1; }
.v2 .v2nat-plan--key .v2nat-plan__btn { background: rgba(255, 255, 255, .1); color: #fff; }
.v2 .v2nat-plan__btn--primary { background: var(--go); color: #fff; }
.v2 .v2nat-plan__btn--primary:hover { background: var(--go-deep); }

/* ---------- Bottom line (speakable) ---------- */
.v2nat-bottom {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 18px;
    padding: 22px 26px;
    margin: 22px 0;
}
.v2nat-bottom__tag { margin: 0 0 8px; font-size: 10px; color: var(--go-deep); }
.v2nat-bottom__text { margin: 0; font-size: 15.5px; line-height: 1.75; color: var(--ink); font-weight: 500; }
.v2nat-docs { margin-top: 24px; }

/* =============================================================
   BLOG CTNS V2 - RESPONSIVE
============================================================= */
@media (max-width: 720px) {
    .v2nat-plans { grid-template-columns: 1fr; max-width: 380px; margin-inline: auto; }
    .v2nat-plan--key { order: -1; }
}
@media (max-width: 640px) {
    .v2nat-answer { padding: 20px 20px; }
    .v2nat-cmp { grid-template-columns: 1fr; gap: 12px; }
    .v2nat-scan__form { flex-direction: column; }
    .v2 .v2nat-scan__btn { width: 100%; justify-content: center; }
    .v2nat-shot__path { font-size: 9px; }
    .v2nat-video__title { font-size: 15.5px; }
    .v2nat-video__play { width: 54px; height: 54px; }
    .v2nat-video__play svg { width: 26px; height: 26px; }
    .v2nat-copy__head { flex-wrap: wrap; }
    .v2nat-router td:first-child { width: 42%; }
}
@media (max-width: 380px) {
    .v2nat-facts { grid-template-columns: 1fr; }
    .v2nat-step { flex-direction: column; gap: 10px; }
    .v2nat-proc > li { padding-right: 44px; }
}
/* ============= END BLOG CTNS V2 (2026-09-12 rebuild) ============= */

/* ---------- BLOG APN V2: 2026-09-12 recheck 2 (owner-comparison result kind) ---------- */
.v2apn-res__cat.is-compare { color: var(--apn-c-deep); background: var(--paper); border: 1px dashed var(--apn-c-line); }
/* ============= END BLOG APN V2 recheck 2 ============= */

/* ---------- BLOG APN V2: CJK legibility of the badge scale (2026-09-12) ----------
   Reported by the ja translator during the translation wave. The four evidence
   labels, the walker's result-kind badge and the numeric strip captions are set
   at 9px with 0.11em tracking and uppercase: a scale tuned for short Latin words
   like "INTERPRETATION". On kana, kanji and hangul, uppercase is a no-op and the
   tracking closes counters at that size.

   Width-neutral by construction: 9px x 1.11 tracking = 9.99px of advance per
   glyph, 10px x 0 tracking = 10.00px. .v2apn-lbl and .v2apn-res__cat are
   white-space: nowrap inside laid-out rows, so a wider badge would clip rather
   than wrap - the swap buys ~11% larger glyphs without buying any width.
   Verified after the change: overflow=0 on /ja and /ko at 375/390/430/768/1440. */
html:lang(ja) .v2apn-lbl, html:lang(ko) .v2apn-lbl,
html:lang(ja) .v2apn-res__cat, html:lang(ko) .v2apn-res__cat {
    font-size: 10px;
    letter-spacing: 0;
    text-transform: none;
}
html:lang(ja) .v2apn-num .v2-mono, html:lang(ko) .v2apn-num .v2-mono,
html:lang(ja) .v2apn-checks__count, html:lang(ko) .v2apn-checks__count {
    font-size: 10px;
    letter-spacing: 0;
}
/* ============= END BLOG APN V2 CJK legibility ============= */
/* ============= BLOG RR26 V2 i18n: long-language buttons (2026-09-12) ============= */
/* Dutch "Vergelijk de pakketten voor de gesloten test" overflowed the 390px viewport by
   29px: .v2 .v2-btn is nowrap. Let the support-box button wrap instead. No directional
   properties, so the same rule is appended verbatim to the RTL mirror. */
.v2 .v2rj-support__act .v2-btn { max-width: 100%; white-space: normal; text-align: center; }
/* ============= END BLOG RR26 V2 i18n ============= */

/* ---------- BLOG APN V2: Korean line breaking (2026-09-12) ----------
   Reported by the ko translator during the translation wave. CSS defaults break
   Korean at any character, so 프로덕션 splits as 프로덕/션 mid-word - most
   visible in the walker's option buttons, the ten-check rows and the tables in
   their under-640px card mode. `word-break: keep-all` restores word-level
   breaking; `overflow-wrap: anywhere` is its necessary partner here, because
   this page carries unbreakable Latin tokens (package names, IANA zone names,
   Console labels) that keep-all alone would push out of a narrow container.

   Scoped to :lang(ko). Japanese explicitly must NOT get this: ja reads with
   its own kinsoku rules and keep-all would leave long unbroken runs. Everything
   on this post is inside .v2apn-article, and word-break inherits, so one rule
   covers the widgets and the tables too; .v2apn-relgrid sits outside it. */
html:lang(ko) .v2apn-article,
html:lang(ko) .v2apn-relgrid {
    word-break: keep-all;
    overflow-wrap: anywhere;
}
/* ============= END BLOG APN V2 Korean line breaking ============= */

/* =====================================================================
   CLOSED TESTING PILLAR V2 (v2ctp-) - /google-play-closed-testing
   2026-09-27, report step N1. Rides the shared v2gpr- article layer
   (hero, qa, matrix, tool, seq, q3, faq, docs, author, related, cta);
   only the pillar's own pieces live here: hero routes, answer
   capsules, the rule quote, the scope card, the participation ladder,
   the priced plans strip, the symptom cards, the LIGHT bottom line and
   the related grid. No new tokens.

   Specificity notes (read before editing):
     - `.v2gpr-prose > p` (0,1,1) sets size/colour/margin on every
       direct <p> of the article, so pillar paragraphs are qualified as
       `.v2gpr-prose > p.v2ctp-*`.
     - `.v2gpr-prose ul/ol/figure` (0,1,1) zero margins and padding
       (gotcha 19 reset), so lists and the quote figure are qualified
       with their element too.
     - `.v2gpr-prose a` (0,1,1) underlines every link; card links are
       `.v2 .v2ctp-*` (0,2,0) and reset the decoration.
   ===================================================================== */

/* Hero: two routes + a quiet jump to the fixes */
.v2ctp-routes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.v2 .v2ctp-fixjump {
    display: inline-block;
    margin-top: 14px;
    font-size: 14px;
    font-weight: 500;
    color: var(--go-deep);
    text-decoration: underline;
    text-decoration-color: rgba(11, 138, 71, 0.35);
    text-underline-offset: 3px;
}
.v2 .v2ctp-fixjump:hover { text-decoration-color: var(--go-deep); }
.v2ctp-hero .v2gpr-byline { margin-top: 22px; }

/* Quick answer source line (inside the dark capsule, dark moment #1) */
.v2ctp-answer__src { margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: #93A0AC; }
.v2 .v2ctp-answer__src a {
    color: #C9D2DA;
    font-weight: 500;
    text-decoration: underline;
    text-decoration-color: rgba(201, 210, 218, 0.45);
    text-underline-offset: 2px;
}

/* Answer capsule under every H2 */
.v2gpr-prose > p.v2ctp-cap {
    border-right: 3px solid var(--go);
    padding: 2px 16px 2px 0;
    margin: 14px 0 22px;
    font-size: 16.5px;
    line-height: 1.7;
    font-weight: 500;
    color: var(--ink);
}

/* Google's rule, quoted */
.v2gpr-prose figure.v2ctp-quote {
    margin: 22px 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 20px 22px;
}
.v2ctp-quote__label { color: var(--go-deep); margin-bottom: 10px; }
.v2ctp-quote blockquote { margin: 0; padding: 0; }
.v2ctp-quote blockquote p {
    font-family: var(--font-display);
    font-size: 18px;
    line-height: 1.5;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--ink);
    text-wrap: pretty;
}
.v2gpr-prose .v2ctp-quote figcaption { margin: 10px 0 0; font-size: 12.5px; color: var(--faint); }
.v2gpr-prose .v2ctp-quote figcaption a { color: var(--slate); font-weight: 500; }

/* Scope card: must pass vs outside this rule */
.v2ctp-scope { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.v2ctp-scope__col { border: 1px solid var(--line); border-radius: 16px; padding: 18px 20px; background: var(--paper); }
.v2ctp-scope__col.is-in { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.28); }
.v2ctp-scope__tag { margin-bottom: 4px; }
.v2ctp-scope__col.is-in .v2ctp-scope__tag { color: var(--go-deep); }
.v2gpr-prose ul.v2ctp-scope__list { margin: 0; padding: 0; list-style: none; }
.v2ctp-scope__list li {
    position: relative;
    padding-right: 27px;
    margin: 10px 0 0;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--ink);
}
.v2ctp-scope__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff center / 11px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m4.5 10.5 3.5 3.5 7.5-8' stroke='%230B8A47' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2ctp-scope__col.is-out .v2ctp-scope__list li { color: var(--slate); }
.v2ctp-scope__col.is-out .v2ctp-scope__list li::before {
    background: var(--mist) center / 10px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 10h10' stroke='%239AA6B2' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Notes, sources, onward links, console paths */
.v2gpr-prose > p.v2ctp-note {
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 13px 16px;
    margin: 16px 0;
    font-size: 14.5px;
    line-height: 1.65;
    color: var(--slate);
}
.v2gpr-prose > p.v2ctp-src { margin: -12px 0 22px; font-size: 12.5px; line-height: 1.6; color: var(--faint); }
.v2gpr-prose > p.v2ctp-src a { color: var(--slate); font-weight: 500; }
.v2gpr-prose > p.v2ctp-more { margin: 14px 0 18px; font-size: 15px; line-height: 1.7; color: var(--slate); }
.v2ctp-path {
    font-family: var(--font-mono);
    font-size: 0.82em;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 1px 6px;
    color: var(--ink);
    overflow-wrap: anywhere;
}

/* Track chooser extras (the shell is the shared v2gpr-tool) */
.v2ctp-tool__links { font-size: 14px; }
.v2gpr-prose .v2ctp-tool__links a { color: var(--go-deep); }
.v2ctp-tool__note { margin-top: 10px; font-size: 12.5px; line-height: 1.55; color: var(--faint); }
.v2 .v2ctp-tool__reset { margin-top: 12px; }
/* .v2 .v2-btn is display:inline-flex, which beats the UA [hidden] rule */
.v2 .v2ctp-tool__reset[hidden] { display: none; }

/* Participation ladder: added -> opted in -> using -> 14 days */
.v2gpr-prose ol.v2ctp-ladder {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 20px 0 18px;
    padding: 0;
    list-style: none;
}
.v2ctp-ladder__rung {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 14px 14px 15px;
}
.v2ctp-ladder__rung.is-done { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.3); }
.v2ctp-ladder__n { color: var(--faint); }
.v2ctp-ladder__rung.is-done .v2ctp-ladder__n { color: var(--go-deep); }
.v2gpr-prose b.v2ctp-ladder__t {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 15px;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: var(--ink);
}
.v2ctp-ladder__d { font-size: 13px; line-height: 1.5; color: var(--slate); }
.v2gpr-prose ul.v2ctp-points { margin: 14px 0 16px; padding: 0; list-style: none; }
.v2ctp-points li {
    position: relative;
    padding-right: 22px;
    margin: 10px 0 0;
    font-size: 15.5px;
    line-height: 1.7;
    color: var(--slate);
}
.v2ctp-points li::before {
    content: "";
    position: absolute;
    right: 3px;
    top: 10px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
}

/* Tracks matrix has five columns: the shared 27% row-header width
   squeezes the other four into one-word lines. */
.v2gpr-matrix.v2ctp-matrix--tracks tbody th { width: 13%; }

/* DIY vs managed: highlight the service column */
.v2ctp-matrix--duel .is-feat { background: var(--go-tint); }
.v2ctp-matrix--duel thead th.is-feat { color: var(--go-deep); }

/* Plans strip (tier-aware prices, each links its landing) */
.v2ctp-plans { margin: 24px 0 8px; }
.v2ctp-plans__title { margin-bottom: 10px; }
.v2ctp-plans__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.v2 .v2ctp-plan {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--paper);
    color: inherit;
    font-weight: 400;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.v2 .v2ctp-plan:hover {
    border-color: #C9D2DA;
    box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.35);
    transform: translateY(-2px);
}
.v2 .v2ctp-plan.is-feat { border-color: rgba(11, 138, 71, 0.45); box-shadow: inset 0 0 0 1px rgba(11, 138, 71, 0.2); }
.v2ctp-plan__name { color: var(--faint); }
.v2 .v2ctp-plan__testers { font-family: var(--font-display); font-weight: 700; font-size: 17px; color: var(--ink); }
.v2ctp-plan__price {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2ctp-plan__go { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 13.5px; font-weight: 600; color: var(--go-deep); }
.v2ctp-plan__go .v2-ic { width: 15px; height: 15px; transition: transform 0.18s ease; }
.v2 .v2ctp-plan:hover .v2ctp-plan__go .v2-ic { transform: translateX(-3px); }
.v2ctp-plans__fine { margin-top: 10px; line-height: 1.7; }
.v2gpr-prose > p.v2ctp-guar {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.25);
    border-radius: 14px;
    padding: 15px 17px;
    margin: 16px 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--ink);
}
.v2ctp-guar svg { width: 22px; height: 22px; color: var(--go); flex-shrink: 0; margin-top: 1px; }
.v2ctp-help__ctas { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 6px; }
/* `.v2gpr-prose a` underlines every link, buttons included */
.v2 .v2ctp-help__ctas .v2-btn { text-decoration: none; }

/* Symptom cards */
.v2ctp-fix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 20px 0; }
.v2ctp-fix__card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.v2ctp-fix__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 16px 18px;
}
.v2ctp-fix__lab { font-size: 9.5px; margin-bottom: 4px; }
.v2 .v2ctp-fix__s {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 16px;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin: 0 0 12px;
}
.v2ctp-fix__c { font-size: 14px; line-height: 1.6; color: var(--slate); margin: 0 0 12px; }
.v2 .v2ctp-fix__go {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--go-deep);
    text-decoration: none;
}
.v2 .v2ctp-fix__go:hover { text-decoration: underline; text-underline-offset: 3px; }
.v2ctp-fix__go .v2-ic { width: 15px; height: 15px; flex-shrink: 0; }

/* FAQ question text (summary > span) */
.v2gpr-faq__item .v2ctp-faq__q {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 15.5px;
    letter-spacing: -0.01em;
    line-height: 1.45;
    color: var(--ink);
}

/* Bottom line: LIGHT on purpose (two dark moments max per page) */
.v2ctp-bottom {
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.25);
    border-radius: 18px;
    padding: 22px 24px;
    margin: 40px 0 18px;
}
.v2ctp-bottom__tag { display: flex; align-items: center; gap: 8px; color: var(--go-deep); margin-bottom: 10px; }
.v2ctp-bottom__tag svg { width: 16px; height: 16px; flex-shrink: 0; }
.v2ctp-bottom__text { font-size: 16px; line-height: 1.75; font-weight: 500; color: var(--ink); }

/* Author name (a <p>, not a heading: the outline stays gap-free) */
.v2ctp-author__name {
    font-family: var(--font-display);
    font-weight: 650;
    font-size: 19px;
    letter-spacing: -0.015em;
    margin: 4px 0 2px;
}
.v2 .v2ctp-author__name a { color: var(--ink); text-decoration: none; }
.v2 .v2ctp-author__name a:hover { color: var(--go-deep); }

/* Related grid */
.v2ctp-relgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; max-width: 880px; margin: 0 auto; }
.v2 .v2ctp-rel {
    display: flex;
    align-items: center;
    gap: 13px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 15px 16px;
    color: inherit;
    text-decoration: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.v2 .v2ctp-rel:hover {
    border-color: #C9D2DA;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px -18px rgba(10, 16, 23, 0.4);
}
.v2ctp-rel__tx { flex: 1 1 auto; min-width: 0; }
.v2ctp-rel__tx strong { display: block; font-size: 14.5px; font-weight: 650; color: var(--ink); line-height: 1.35; }
.v2ctp-rel__tx span { display: block; font-size: 12.5px; color: var(--slate); line-height: 1.45; margin-top: 3px; }
.v2ctp-rel__arw { width: 18px; height: 18px; color: var(--faint); flex-shrink: 0; transition: transform 0.18s ease, color 0.18s ease; }
.v2 .v2ctp-rel:hover .v2ctp-rel__arw { color: var(--go-deep); transform: translateX(-3px); }

/* Tablet */
@media (max-width: 900px) {
    .v2gpr-prose ol.v2ctp-ladder { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2ctp-plans__list { grid-template-columns: minmax(0, 1fr); }
    .v2 .v2ctp-plan { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 12px; row-gap: 2px; }
    .v2ctp-plan__name { flex-basis: 100%; }
    .v2ctp-plan__price { margin-right: auto; font-size: 22px; }
    .v2ctp-plan__go { flex-basis: 100%; margin-top: 2px; }
}

/* Phone */
@media (max-width: 640px) {
    .v2ctp-routes { flex-direction: column; }
    .v2 .v2ctp-routes .v2-btn { width: 100%; min-height: 48px; justify-content: center; }
    .v2gpr-prose > p.v2ctp-cap { font-size: 15.5px; padding-right: 13px; }
    .v2gpr-prose figure.v2ctp-quote { padding: 16px 17px; }
    .v2ctp-quote blockquote p { font-size: 16.5px; }
    .v2ctp-scope, .v2ctp-fix, .v2ctp-relgrid { grid-template-columns: minmax(0, 1fr); }
    .v2ctp-scope__col, .v2ctp-fix__card { padding: 15px 16px; }
    .v2ctp-points li { font-size: 15px; }
    .v2ctp-help__ctas { flex-direction: column; }
    .v2 .v2ctp-help__ctas .v2-btn { width: 100%; min-height: 48px; justify-content: center; }
    .v2ctp-bottom { padding: 18px; }
    .v2ctp-bottom__text { font-size: 15px; }
    /* The shared check-stamp pill is nowrap; long localized stamps (es, vi)
       ran past a 390px viewport. Let it wrap inside the column instead. */
    .v2ctp-hero .v2gpr-byline__fresh { white-space: normal; max-width: 100%; border-radius: 12px; line-height: 1.4; }
}
@media (max-width: 380px) {
    .v2gpr-prose ol.v2ctp-ladder { grid-template-columns: minmax(0, 1fr); }
}

/* Korean: word-level line breaking (same fix as the APN post). Not for ja:
   Japanese reads with its own kinsoku rules. */
html:lang(ko) .v2ctp-hero,
html:lang(ko) .v2ctp-article,
html:lang(ko) .v2ctp-relgrid {
    word-break: keep-all;
    overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
    .v2 .v2ctp-plan, .v2 .v2ctp-rel, .v2ctp-rel__arw, .v2ctp-plan__go .v2-ic { transition: none !important; }
    .v2 .v2ctp-plan:hover, .v2 .v2ctp-rel:hover, .v2 .v2ctp-rel:hover .v2ctp-rel__arw { transform: none; }
}
/* ============= END CLOSED TESTING PILLAR V2 ============= */

/* ============================================================
   12 TESTERS PAGE: P3B REBUILD (2026-09-28)
   Checkout-total lines (hero, plan sheet, plan cards), the two
   task checklists that replaced the DIY funnel, and the new
   production-access support section (.v2-t12acc, #production-access).
   ============================================================ */

/* Payable total next to every buy surface */
.v2-t12hero__total {
    margin-top: 14px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-t12hero__total b { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-t12hero__total + .v2-t12hero__fine { margin-top: 8px; }
.v2-t12kit__tot {
    margin: 0;
    padding: 0 18px 13px;
    background: var(--mist);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-t12kit__tot b { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-t12plans .v2-plan__total {
    margin-top: 10px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--slate);
    font-variant-numeric: tabular-nums;
}
.v2-t12plans .v2-plan--featured .v2-plan__total { color: #C2CBD4; }

/* Two paths: task checklists (DIY neutral markers, managed green ticks) */
.v2-t12how__list {
    list-style: none;
    padding: 0;
    margin-top: 15px;
    display: flex;
    flex-direction: column;
    gap: 11px;
}
.v2-t12how__list li {
    position: relative;
    padding-inline-start: 27px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-t12how__list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 2px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    border: 1.5px solid #C3CCD4;
    box-sizing: border-box;
}
.v2-t12how__list--go li { color: var(--ink); }
.v2-t12how__list--go li::before {
    border-color: var(--go);
    background: var(--go) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='m5 10.5 3.2 3.2L15 7' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.v2-t12how__verdict--diy {
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2-t12how__verdict--diy .v2-t12how__chip { color: var(--ink); }

/* Production-access support section */
.v2-t12acc { border-bottom: 1px solid var(--line); }
.v2-t12acc .v2-lead { max-width: 68ch; }
.v2-t12acc__label {
    margin-top: clamp(30px, 4vw, 42px);
    font-size: 11px;
    color: var(--faint);
}
.v2-t12acc__stages {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 18px);
}
.v2-t12acc__stage {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 18px 16px;
}
.v2-t12acc__num { font-size: 11px; color: var(--go-deep); }
.v2-t12acc__stage h3 {
    margin-top: 8px;
    font: 600 16.5px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12acc__stage p {
    margin-top: 7px;
    margin-bottom: 14px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2 .v2-t12acc__go {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: none;
}
.v2 .v2-t12acc__go:hover { color: var(--ink); }
.v2-t12acc__go .v2-ic { width: 15px; height: 15px; transition: transform 0.2s ease; }
.v2-t12acc__go:hover .v2-ic { transform: translateX(-3px); }
.v2-t12acc__grid {
    margin-top: clamp(34px, 4.5vw, 48px);
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 36px);
    align-items: start;
}
.v2-t12acc__h3 {
    font: 600 18px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12acc__table {
    margin-top: 14px;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    font-size: 13.5px;
    line-height: 1.5;
}
.v2-t12acc__table th {
    text-align: start;
    padding: 11px 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--slate);
}
.v2-t12acc__table th:first-child { color: var(--go-deep); }
.v2-t12acc__table td {
    padding: 12px 14px;
    vertical-align: top;
    color: var(--slate);
    border-bottom: 1px solid var(--line);
}
.v2-t12acc__table td:first-child { color: var(--ink); font-weight: 500; }
.v2-t12acc__table tr:last-child td { border-bottom: 0; }
.v2-t12acc__steps {
    list-style: none;
    padding: 0;
    margin-top: 14px;
    display: flex;
    flex-direction: column;
}
.v2-t12acc__steps li {
    position: relative;
    padding: 0 26px 18px 0;
    border-inline-start: 2px solid var(--line);
    margin-inline-start: 6px;
}
.v2-t12acc__steps li:last-child { padding-bottom: 0; border-inline-start-color: transparent; }
.v2-t12acc__steps li::before {
    content: "";
    position: absolute;
    inset-inline-start: -8px;
    top: 1px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--paper);
    border: 3px solid var(--go);
    box-sizing: border-box;
}
.v2-t12acc__steps b {
    display: block;
    font: 600 15.5px/1.3 var(--font-display);
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2-t12acc__steps p {
    margin-top: 5px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-t12acc__rej {
    margin-top: clamp(34px, 4.5vw, 48px);
    padding: clamp(20px, 3vw, 28px);
    border-radius: 18px;
    background: var(--mist);
    border: 1px solid var(--line);
    scroll-margin-top: 96px;
}
.v2-t12acc__rejgrid {
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(16px, 2.5vw, 28px);
}
.v2-t12acc__rejcol b {
    display: block;
    font-size: 14.5px;
    font-weight: 700;
    color: var(--ink);
}
.v2-t12acc__rejcol p {
    margin-top: 6px;
    font-size: 14px;
    line-height: 1.65;
    color: var(--slate);
}
.v2-t12acc__rejcol a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
#production-access { scroll-margin-top: 80px; }

.v2-t12acc.v2-anim .v2-t12acc__stage { opacity: 0; transform: translateY(14px); }
.v2-t12acc.v2-anim.is-in .v2-t12acc__stage {
    opacity: 1;
    transform: none;
    transition: opacity 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s), transform 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) var(--d, 0s);
}

@media (max-width: 1024px) {
    .v2-t12acc__stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2-t12acc__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .v2-t12acc__stages { grid-template-columns: minmax(0, 1fr); }
    .v2-t12acc__rejgrid { grid-template-columns: minmax(0, 1fr); }
    /* Responsibilities table becomes one card per row */
    .v2-t12acc__table,
    .v2-t12acc__table tbody,
    .v2-t12acc__table tr,
    .v2-t12acc__table td { display: block; width: 100%; }
    .v2-t12acc__table thead { display: none; }
    .v2-t12acc__table { border: 0; border-radius: 0; overflow: visible; }
    .v2-t12acc__table tr {
        border: 1px solid var(--line);
        border-radius: 12px;
        padding: 6px 0;
        margin-bottom: 10px;
    }
    .v2-t12acc__table td { padding: 7px 14px; border-bottom: 0; }
    .v2-t12acc__table td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 2px;
        font-family: var(--font-mono);
        font-size: 10.5px;
        font-weight: 600;
        letter-spacing: 0.04em;
        color: var(--faint);
    }
}
@media (prefers-reduced-motion: reduce) {
    .v2-t12acc.v2-anim .v2-t12acc__stage { opacity: 1; transform: none; }
    .v2-t12acc__go .v2-ic { transition: none; }
}
/* ============= END 12 TESTERS P3B ============= */

/* ============================================================
   12 TESTERS PAGE: P1 FOLLOW-UP (2026-09-29)
   "Does this apply to your app?" block in the requirement section
   and the setup-problem cards (.v2-t12fix, #setup-problems).
   ============================================================ */
.v2-t12rule__fit {
    margin-top: clamp(24px, 3vw, 32px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(20px, 2.6vw, 26px);
}
.v2-t12rule__fitlist {
    list-style: none;
    padding: 0;
    margin-top: 14px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 28px;
}
.v2-t12rule__fitlist li {
    position: relative;
    padding-inline-start: 22px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2-t12rule__fitlist li::before {
    content: "";
    position: absolute;
    inset-inline-start: 2px;
    top: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--go);
}
.v2-t12rule__fitlist b { color: var(--ink); font-weight: 600; }

.v2-t12fix { border-top: 1px solid var(--line); }
.v2-t12fix__grid {
    margin-top: clamp(30px, 4vw, 44px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12px, 1.6vw, 18px);
}
.v2-t12fix__card {
    display: flex;
    flex-direction: column;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 18px 16px;
}
.v2-t12fix__ic {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--go-deep);
}
.v2-t12fix__ic svg { width: 17px; height: 17px; }
.v2-t12fix__card h3 {
    margin-top: 12px;
    font: 600 16px/1.3 var(--font-display);
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2-t12fix__card p {
    margin-top: 7px;
    margin-bottom: 14px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2 .v2-t12fix__go {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: none;
}
.v2 .v2-t12fix__go:hover { color: var(--ink); }
.v2-t12fix__go .v2-ic { width: 15px; height: 15px; transition: transform 0.2s ease; }
.v2-t12fix__go:hover .v2-ic { transform: translateX(-3px); }

@media (max-width: 1024px) {
    .v2-t12fix__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .v2-t12rule__fitlist { grid-template-columns: minmax(0, 1fr); }
    .v2-t12fix__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    .v2-t12fix__go .v2-ic { transition: none; }
}
/* ============= END 12 TESTERS P1 FOLLOW-UP ============= */

/* ============================================================
   ANDROID QA SERVICE PAGE (v2q-, /android-app-qa-testing)
   2026-09-30, plan of record QA_LANDING_PAGE_PLAN.md.
   A separate product from closed testing. Reuses the V2 tokens
   and primitives (.v2-section, .v2-sechead, .v2-btn, .v2-plan,
   .v2-faq, .v2-cta). Dark moments: the featured plan card and
   the final CTA only. Pre-animation states live ONLY under
   .v2-anim / .is-play, so no-JS and reduced motion get the
   finished layout.
   ============================================================ */

/* List / figure / description reset first (gotcha 19) */
.v2q-demo,
.v2q-demo__days,
.v2q-demo__steps,
.v2q-cov,
.v2q-doc__meta,
.v2q-issue__steps,
.v2q-issue__ea,
.v2q-callouts,
.v2q-pass__grid,
.v2q-vs__list,
.v2q-tl__list,
.v2q-ready__grid,
.v2q-scope__chips,
.v2q-scope__list,
.v2q-intake__steps,
.v2q-intake__methods { margin: 0; padding: 0; list-style: none; }
.v2q-doc__meta dd,
.v2q-issue__ea dd { margin: 0; }

@keyframes v2qRise {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: none; }
}
@keyframes v2qMark {
    from { background-color: var(--paper); border-color: var(--line); color: var(--faint); }
}

/* ---------- QA: hero ---------- */

.v2q-hero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(40px, 7vh, 84px));
    padding-bottom: clamp(36px, 5vh, 60px);
    overflow: hidden;
}
.v2q-hero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 84% -12%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(40rem 28rem at -12% 112%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2q-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
    gap: clamp(36px, 5vw, 64px);
    align-items: center;
}
.v2q-hero__title {
    margin-top: 18px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.2rem, 1.25rem + 2.8vw, 3.05rem);
    line-height: 1.04;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2q-hero__go { display: block; color: var(--go); }
.v2q-hero__sub {
    margin-top: 20px;
    max-width: 54ch;
    font-size: clamp(16px, 1.5vw, 17.5px);
    line-height: 1.65;
    color: var(--slate);
    text-wrap: pretty;
}
.v2 .v2q-hero__note {
    display: inline-block;
    margin-top: 16px;
    padding: 6px 14px;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2 .v2q-hero__note a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.v2q-hero__price {
    margin-top: 22px;
    font-size: 15px;
    color: var(--slate);
}
.v2q-hero__price b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 27px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2q-hero__price span {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.03em;
    color: var(--faint);
    white-space: nowrap;
}
.v2q-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 14px;
}
.v2 .v2q-hero__wa {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 16px;
    font-size: 14px;
    font-weight: 500;
    color: var(--slate);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: var(--line);
    transition: color .15s ease;
}
.v2 .v2q-hero__wa:hover { color: var(--ink); }
.v2q-hero__wa .v2-ic { width: 16px; height: 16px; color: #25D366; }
.v2q-hero__track {
    margin-top: 28px;
    padding-top: 22px;
    border-top: 1px solid var(--line);
}
.v2q-hero__track-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: 8px;
    font-size: 14px;
    color: var(--slate);
}
.v2q-hero__track-row b { color: var(--ink); font-weight: 600; }
.v2q-hero__track-item { display: inline-flex; align-items: center; gap: 8px; }
.v2q-hero__track-sep { width: 4px; height: 4px; border-radius: 50%; background: var(--line); }

/* Hero card: Example QA workflow (illustration, not a live order) */
.v2q-hero__visual { display: flex; justify-content: flex-end; }
.v2q-demo {
    width: 100%;
    max-width: 470px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(18px, 2.4vw, 24px);
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2q-demo__head { display: flex; align-items: center; gap: 10px; min-height: 30px; }
.v2q-demo__label { color: var(--slate); }
.v2q-demo__chip {
    font-size: 11px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.v2 .v2q-demo__ctl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: auto;
    height: 30px;
    padding: 0 10px 0 12px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    transition: border-color .15s ease, background-color .15s ease;
}
.v2 .v2q-demo__ctl:hover { border-color: #B9C3CC; background: #FBFCFD; }
.v2 .v2q-demo__ctl[hidden] { display: none; }
.v2 .v2q-demo__ctl svg { width: 13px; height: 13px; flex: 0 0 auto; }
.v2 .v2q-demo__ctl .v2q-demo__ctl-play,
.v2 .v2q-demo__ctl .v2q-demo__ctl-replay { display: none; }
.v2 .v2q-demo__ctl[data-state="paused"] .v2q-demo__ctl-pause,
.v2 .v2q-demo__ctl[data-state="ended"] .v2q-demo__ctl-pause { display: none; }
.v2 .v2q-demo__ctl[data-state="paused"] .v2q-demo__ctl-play,
.v2 .v2q-demo__ctl[data-state="ended"] .v2q-demo__ctl-replay { display: block; }

.v2q-demo__app { display: flex; align-items: center; gap: 12px; margin-top: 16px; }
.v2q-demo__tile {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--ink);
    color: #FFFFFF;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-demo__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2q-demo__name { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; }
.v2q-demo__pkg {
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--faint);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2q-demo__ver {
    margin-right: auto;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--faint);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    white-space: nowrap;
}

.v2q-demo__rail {
    margin-top: 16px;
    padding: 11px 12px 12px;
    background: var(--mist);
    border-radius: 12px;
}
.v2q-demo__railcap { font-size: 10.5px; color: var(--slate); }
.v2q-demo__days {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 6px;
    margin-top: 9px;
}
.v2q-demo__d {
    text-align: center;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    color: var(--faint);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 5px 0;
    font-variant-numeric: tabular-nums;
}
.v2q-demo__d.is-done { color: #FFFFFF; background: var(--go); border-color: var(--go); }

.v2q-demo__steps {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 14px;
}
.v2q-demo__steps::before {
    content: "";
    position: absolute;
    right: 14px;
    top: 16px;
    bottom: 16px;
    width: 2px;
    border-radius: 2px;
    background: var(--line);
}
.v2q-demo__step { position: relative; display: flex; align-items: flex-start; gap: 12px; }
.v2q-demo__ic {
    position: relative;
    z-index: 1;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--slate);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-demo__ic svg { width: 16px; height: 16px; }
.v2q-demo__step--pass .v2q-demo__ic { background: var(--go); border-color: var(--go); color: #FFFFFF; }
.v2q-demo__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; padding-top: 4px; }
.v2q-demo__body > b { font-size: 13.5px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-demo__step--pass .v2q-demo__body > b { color: var(--go-deep); }
.v2q-demo__txt { font-size: 13px; line-height: 1.45; color: var(--slate); }
.v2q-demo__m {
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.02em;
    line-height: 1.5;
    color: var(--faint);
}
.v2q-demo__issue {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 6px;
    padding: 10px 12px;
    background: #FBFCFD;
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2q-demo__issuetop { display: flex; align-items: center; gap: 8px; }
.v2q-demo__id { font-family: var(--font-mono); font-size: 11.5px; font-weight: 700; color: var(--ink); }
.v2q-demo__issue .v2q-demo__txt { color: var(--ink); font-weight: 500; }
.v2q-demo__sum {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    padding: 11px 14px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ink);
}
.v2q-demo__sum svg { width: 18px; height: 18px; flex: 0 0 auto; color: var(--go); }

/* One short sequence (about 5s), started by JS, pausable, replayable */
.v2q-demo.is-play { animation: v2CardIn 0.55s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2q-demo.is-play .v2q-demo__d.is-done { animation: v2qMark 0.35s ease both; }
.v2q-demo.is-play .v2q-demo__d.is-done:nth-child(1) { animation-delay: 0.6s; }
.v2q-demo.is-play .v2q-demo__d.is-done:nth-child(2) { animation-delay: 1.75s; }
.v2q-demo.is-play .v2q-demo__d.is-done:nth-child(3) { animation-delay: 3.5s; }
.v2q-demo.is-play .v2q-demo__step { animation: v2qRise 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2q-demo.is-play .v2q-demo__step:nth-child(1) { animation-delay: 0.9s; }
.v2q-demo.is-play .v2q-demo__step:nth-child(2) { animation-delay: 1.9s; }
.v2q-demo.is-play .v2q-demo__step:nth-child(3) { animation-delay: 2.85s; }
.v2q-demo.is-play .v2q-demo__step:nth-child(4) { animation-delay: 3.65s; }
.v2q-demo.is-play .v2q-demo__sum { animation: v2qRise 0.5s cubic-bezier(0.22, 0.8, 0.26, 1) 4.4s both; }
.v2q-demo.is-paused,
.v2q-demo.is-paused * { animation-play-state: paused !important; }

/* Severity + status chips (neutral palette: text carries the meaning) */
.v2q-sev,
.v2q-status {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--paper);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
    line-height: 1.5;
    color: var(--slate);
    white-space: nowrap;
}
.v2q-sev--high { background: var(--ink); border-color: var(--ink); color: #FFFFFF; }
.v2q-sev--medium { border-color: #9AA6B2; color: var(--ink); }
.v2q-sev--low { background: var(--mist); }
.v2q-status--pass { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2q-status--open { color: var(--ink); }
.v2q-status--new { background: var(--mist); }

/* ---------- QA: answer capsule ---------- */

.v2q-answer { padding: clamp(8px, 1.5vw, 16px) 0 clamp(64px, 8vw, 100px); }
.v2q-answer__card {
    max-width: 880px;
    margin-inline: auto;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 16px;
    padding: 20px 28px 22px;
}
.v2q-answer__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 13px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font-size: 11.5px;
    font-weight: 700;
}
.v2q-answer__chip svg { width: 13px; height: 13px; flex: 0 0 auto; }
.v2q-answer__text {
    margin-top: 12px;
    font-size: 16.5px;
    line-height: 1.7;
    color: var(--slate);
    text-wrap: pretty;
}

/* ---------- QA: sample report ---------- */

.v2q-sample__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr);
    grid-template-areas: "doc side";
    gap: clamp(28px, 4vw, 52px);
    align-items: start;
    max-width: 1040px;
    margin: clamp(40px, 5vw, 56px) auto 0;
}
.v2q-doc {
    grid-area: doc;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -26px rgba(10, 16, 23, 0.18);
}
.v2q-doc__bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 16px;
    background: #FBFCFD;
    border-bottom: 1px solid var(--line);
}
.v2q-doc__dots { display: inline-flex; gap: 5px; flex: 0 0 auto; }
.v2q-doc__dots i { width: 8px; height: 8px; border-radius: 50%; background: #DCE2E7; }
.v2q-doc__file {
    min-width: 0;
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--slate);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.v2q-doc__chip {
    margin-right: auto;
    padding: 3px 9px;
    font-size: 11px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    white-space: nowrap;
}
.v2q-doc__page { padding: clamp(18px, 3vw, 28px); }
.v2q-doc__kicker { color: var(--go-deep); }
.v2q-doc__title {
    margin-top: 6px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -0.015em;
}
.v2q-doc__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 18px;
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--mist);
    border-radius: 12px;
}
.v2q-doc__meta div { min-width: 0; }
.v2q-doc__meta dt,
.v2q-issue__ea dt {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2q-doc__meta dd { margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--ink); overflow-wrap: anywhere; }
.v2 .v2q-doc__h {
    margin: 20px 0 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--slate);
}

.v2q-cov {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}
.v2q-cov__row {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    font-size: 13px;
    line-height: 1.45;
}
.v2q-cov__row + .v2q-cov__row { border-top: 1px solid var(--line); }
.v2q-cov__ic {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 10px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2q-cov__row--skip .v2q-cov__ic {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10h8' fill='none' stroke='%239AA6B2' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2q-cov__label { min-width: 0; color: var(--ink); }
.v2q-cov__status {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.02em;
    color: var(--go-deep);
    text-align: left;
}
.v2q-cov__row--skip .v2q-cov__label,
.v2q-cov__row--skip .v2q-cov__status { color: var(--slate); }

.v2q-issue {
    padding: 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2q-issue__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.v2q-issue__id { font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: var(--ink); }
.v2q-issue__top .v2q-status { margin-right: auto; }
.v2q-issue__title {
    margin-top: 8px;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.45;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2q-issue__steps { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; counter-reset: v2qstep; }
.v2q-issue__steps li {
    position: relative;
    padding-right: 25px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    counter-increment: v2qstep;
}
.v2q-issue__steps li::before {
    content: counter(v2qstep);
    position: absolute;
    right: 0;
    top: 1px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: var(--mist);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    line-height: 17px;
    text-align: center;
    color: var(--slate);
}
.v2q-issue__ea { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.v2q-issue__ea div { min-width: 0; padding: 8px 10px; background: var(--mist); border-radius: 10px; }
.v2q-issue__ea dd { margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--ink); }
.v2q-issue__env {
    margin-top: 10px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.02em;
    line-height: 1.65;
    color: var(--faint);
}
.v2q-issue--row {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 10px;
    margin-top: 8px;
    padding: 10px 14px;
}
.v2q-issue--row .v2q-issue__title { margin-top: 0; font-size: 13.5px; font-weight: 500; }
.v2q-doc__foot {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--slate);
}

.v2q-sample__side { grid-area: side; min-width: 0; }
.v2q-sample__side > .v2-mono { color: var(--slate); }
.v2q-callouts { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.v2q-callouts li { display: flex; align-items: flex-start; gap: 12px; }
.v2q-callouts__n {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--paper);
    border: 1px solid var(--line);
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    color: var(--go-deep);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-callouts__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2q-callouts__body b { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-callouts__body span { font-size: 14px; line-height: 1.55; color: var(--slate); }
.v2q-sample__note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 22px;
    padding: 12px 14px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--slate);
}
.v2q-sample__note svg { width: 18px; height: 18px; margin-top: 1px; flex: 0 0 auto; color: var(--faint); }
.v2 .v2q-sample__pdf { width: 100%; margin-top: 14px; }
.v2q-sample__dash {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.03em;
    line-height: 1.6;
    color: var(--faint);
}

.v2q-sample.v2-anim .v2q-doc,
.v2q-sample.v2-anim .v2q-sample__side { opacity: 0; transform: translateY(18px); }
.v2q-sample.v2-anim.is-in .v2q-doc { animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2q-sample.v2-anim.is-in .v2q-sample__side { animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) 0.18s both; }

/* ---------- QA: what one test pass includes ---------- */

.v2q-pass__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
    margin-top: clamp(40px, 5vw, 56px);
}
.v2q-pass__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 20px 18px 22px;
}
.v2q-pass__top { display: flex; align-items: center; justify-content: space-between; }
.v2q-pass__ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2q-pass__ic svg { width: 21px; height: 21px; }
.v2q-pass__card h3 {
    margin-top: 16px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17px;
    line-height: 1.25;
    letter-spacing: -0.015em;
}
.v2q-pass__card p { margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

.v2q-pass.v2-anim .v2q-pass__card { opacity: 0; transform: translateY(18px); }
.v2q-pass.v2-anim.is-in .v2q-pass__card {
    animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: calc(var(--i, 0) * 0.08s);
}

/* ---------- QA: plans (reuse .v2-plan cards) ---------- */

.v2-plans.v2q-plans__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 860px;
}
/* The shared featured card reserves headroom for the closed-testing discount
   ribbon; QA plans carry no ribbon, so use the normal card padding. */
.v2q-plan.v2-plan--featured { padding-top: clamp(24px, 3vw, 30px); }
.v2q-plan__fit { margin-top: 6px; font-size: 14px; line-height: 1.55; color: var(--slate); }
.v2-plan--featured .v2q-plan__fit { color: #A9B4BF; }
.v2q-plan__total { display: block; margin-top: 6px; font-size: 13.5px; color: var(--slate); }
.v2q-plan__total b { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-plan--featured .v2q-plan__total { color: #A9B4BF; }
.v2-plan--featured .v2q-plan__total b { color: #FFFFFF; }

.v2q-plans__foot {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: 14px;
    max-width: 860px;
    margin: clamp(22px, 3vw, 30px) auto 0;
}
.v2q-plans__addon,
.v2q-plans__pay {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2q-plans__addon { display: flex; align-items: flex-start; gap: 14px; }
.v2q-plans__addon-ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-plans__addon-ic svg { width: 21px; height: 21px; }
.v2q-plans__addon-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v2q-plans__addon-txt b { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-plans__addon-txt span { font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2q-plans__pay { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.v2q-plans__logos { display: inline-flex; align-items: center; gap: 10px; }
.v2 .v2q-plans__logos img { height: 20px; width: auto; opacity: 0.75; filter: grayscale(0.2); }
.v2q-plans__note { font-size: 12.5px; line-height: 1.5; color: var(--slate); }

/* ---------- QA: QA versus closed testing ---------- */

.v2q-vs__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    max-width: 960px;
    margin: clamp(40px, 5vw, 56px) auto 0;
}
.v2q-vs__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: clamp(22px, 3vw, 28px);
}
.v2q-vs__card--qa { border-color: rgba(11, 138, 71, 0.35); box-shadow: 0 0 0 3px var(--go-tint); }
.v2q-vs__tag {
    align-self: flex-start;
    padding: 4px 10px;
    font-size: 11px;
    font-weight: 700;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2q-vs__tag--go { color: var(--go-deep); background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); }
.v2q-vs__card h3 {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 22px;
    letter-spacing: -0.02em;
}
.v2q-vs__fit { margin-top: 8px; font-size: 14.5px; line-height: 1.6; color: var(--slate); }
.v2q-vs__list { display: flex; flex-direction: column; gap: 9px; flex: 1; margin: 16px 0 20px; }
.v2q-vs__list li,
.v2q-scope__list li {
    position: relative;
    padding-right: 26px;
    font-size: 14px;
    line-height: 1.5;
    color: var(--ink);
}
.v2q-vs__list li::before,
.v2q-scope__list li::before {
    content: "";
    position: absolute;
    right: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2q-vs__list--plain li { color: var(--slate); }
.v2q-vs__list--plain li::before {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%2355616D' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.v2 .v2q-vs__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    font-size: 14px;
    font-weight: 600;
    color: var(--go-deep);
}
.v2 .v2q-vs__link:hover { color: var(--ink); }
.v2q-vs__link .v2-ic { width: 16px; height: 16px; transition: transform 0.2s ease; }
.v2q-vs__link:hover .v2-ic { transform: translateX(-3px); }
.v2q-vs__both {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: baseline;
    gap: 4px 10px;
    max-width: 820px;
    margin: 22px auto 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
    text-align: center;
}
.v2q-vs__both b { color: var(--ink); }

.v2q-vs.v2-anim .v2q-vs__card { opacity: 0; transform: translateY(18px); }
.v2q-vs.v2-anim.is-in .v2q-vs__card { animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2q-vs.v2-anim.is-in .v2q-vs__card:nth-child(2) { animation-delay: 0.12s; }

/* ---------- QA: timeline ---------- */

.v2q-tl__wrap { max-width: 980px; margin: clamp(36px, 5vw, 52px) auto 0; }
.v2q-tl__tabs {
    display: flex;
    gap: 6px;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 22px;
    padding: 5px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2q-tl__tabs[hidden] { display: none; }
.v2 .v2q-tl__tab {
    min-height: 38px;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    color: var(--slate);
    white-space: nowrap;
    transition: background-color 0.18s ease, color 0.18s ease;
}
.v2 .v2q-tl__tab:hover { color: var(--ink); }
.v2 .v2q-tl__tab[aria-selected="true"] { background: var(--ink); color: #FFFFFF; }
.v2q-tl__panel + .v2q-tl__panel { margin-top: 40px; }
.v2q-tl__wrap.is-tabbed .v2q-tl__panel + .v2q-tl__panel { margin-top: 0; }
.v2q-tl__panel[hidden] { display: none; }
.v2 .v2q-tl__panel:focus-visible { outline-offset: 6px; border-radius: 14px; }
.v2q-tl__ptitle {
    margin-bottom: 14px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.015em;
}
.v2q-tl__wrap.is-tabbed .v2q-tl__ptitle {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.v2q-tl__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.65fr);
    gap: clamp(18px, 3vw, 30px);
    align-items: start;
}
.v2q-tl__list {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 8px clamp(16px, 2.5vw, 24px);
}
.v2q-tl__row {
    position: relative;
    display: grid;
    grid-template-columns: 96px 16px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 13px 0;
}
.v2q-tl__row + .v2q-tl__row { border-top: 1px solid var(--mist); }
.v2q-tl__row::before {
    content: "";
    position: absolute;
    right: calc(96px + 12px + 7px);
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--line);
}
.v2q-tl__row:first-child::before { top: 20px; }
.v2q-tl__row:last-child::before { bottom: auto; height: 20px; }
.v2q-tl__day {
    padding-top: 3px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2q-tl__dot {
    position: relative;
    z-index: 1;
    width: 16px;
    height: 16px;
    margin-top: 3px;
    border-radius: 50%;
    background: var(--paper);
    border: 2px solid var(--line);
}
.v2q-tl__row--start .v2q-tl__dot { border-color: var(--ink); }
.v2q-tl__row--report .v2q-tl__day { color: var(--go-deep); }
.v2q-tl__row--report .v2q-tl__dot { border-color: var(--go); }
.v2q-tl__row.is-final .v2q-tl__dot { background: var(--go); }
.v2q-tl__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.v2q-tl__txt b { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-tl__txt span { font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2q-tl__aside { display: flex; flex-direction: column; gap: 14px; }
.v2q-tl__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 18px 20px;
}
.v2q-tl__card .v2-mono { color: var(--slate); }
.v2 .v2q-tl__big {
    margin-top: 8px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2q-tl__card p + p:not(.v2q-tl__big) { margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: var(--slate); }

/* ---------- QA: release readiness ---------- */

.v2q-ready__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(40px, 5vw, 56px);
}
.v2q-ready__item {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
}
.v2q-ready__ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--mist);
    color: var(--slate);
    display: grid;
    place-items: center;
}
.v2q-ready__ic svg { width: 21px; height: 21px; }
.v2q-ready__item h3 {
    margin-top: 14px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 17.5px;
    line-height: 1.25;
    letter-spacing: -0.015em;
}
.v2q-ready__item p { margin-top: 8px; margin-bottom: 14px; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2 .v2q-ready__item .v2q-ready__limit {
    margin: auto 0 0;
    padding-top: 12px;
    border-top: 1px dashed var(--line);
    font-size: 13px;
    line-height: 1.5;
    color: var(--ink);
}
.v2q-ready__limit .v2-mono { margin-left: 6px; color: var(--faint); }
.v2q-ready__note {
    max-width: 720px;
    margin: 24px auto 0;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
    text-align: center;
}

.v2q-ready.v2-anim .v2q-ready__item { opacity: 0; transform: translateY(18px); }
.v2q-ready.v2-anim.is-in .v2q-ready__item {
    animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: calc(var(--i, 0) * 0.07s);
}

/* ---------- QA: scope and devices ---------- */

.v2q-scope__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 1000px;
    margin: clamp(40px, 5vw, 56px) auto 0;
}
.v2q-scope__card {
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px 24px;
}
.v2q-scope__ic {
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
}
.v2q-scope__ic svg { width: 21px; height: 21px; }
.v2q-scope__card h3 {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: -0.015em;
}
.v2q-scope__card > p { margin-top: 8px; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2q-scope__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.v2q-scope__card > .v2q-scope__chiplabel { margin-top: 16px; font-size: 11px; line-height: 1.4; color: var(--slate); }
.v2q-scope__chiplabel + .v2q-scope__chips { margin-top: 8px; }
.v2q-scope__chips li {
    padding: 5px 11px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2q-scope__list { display: flex; flex-direction: column; gap: 9px; margin-top: 12px; }
.v2q-scope__list--out li { color: var(--slate); }
.v2q-scope__list--out li::before {
    background-color: var(--mist);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 6.5l7 7m0-7-7 7' fill='none' stroke='%239AA6B2' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E");
}
.v2q-scope__more {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 24px;
    max-width: 1000px;
    margin: 16px auto 0;
    padding: 18px 22px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2q-scope__more-txt { display: flex; flex-direction: column; gap: 2px; flex: 1 1 320px; min-width: 0; }
.v2q-scope__more-txt b { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-scope__more-txt span { font-size: 13.5px; line-height: 1.55; color: var(--slate); }

/* ---------- QA: setup and test access ---------- */

.v2q-intake__steps {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.3fr) minmax(0, 0.85fr);
    gap: 16px;
    margin-top: clamp(40px, 5vw, 56px);
}
.v2q-intake__step {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 22px;
}
.v2q-intake__n { color: var(--go); }
.v2q-intake__step h3 {
    margin-top: 10px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 18px;
    line-height: 1.25;
    letter-spacing: -0.015em;
}
.v2q-intake__step > p { margin-top: 8px; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2q-intake__methods { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.v2q-intake__methods li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 9px 11px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.4;
    color: var(--ink);
}
.v2q-intake__methods svg { width: 16px; height: 16px; margin-top: 1px; flex: 0 0 auto; color: var(--go); }
.v2 .v2q-intake__step .v2q-intake__fine { margin-top: 10px; font-size: 12.5px; color: var(--faint); }
.v2q-intake__safe {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    max-width: 860px;
    margin: 18px auto 0;
    padding: 18px 20px;
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2q-intake__safe-ic {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--paper);
    border: 1px solid var(--line);
    color: var(--ink);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-intake__safe-ic svg { width: 21px; height: 21px; }
.v2q-intake__safe-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v2q-intake__safe-txt b { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-intake__safe-txt span { font-size: 13.5px; line-height: 1.55; color: var(--slate); }

.v2q-intake.v2-anim .v2q-intake__step { opacity: 0; transform: translateY(18px); }
.v2q-intake.v2-anim.is-in .v2q-intake__step {
    animation: v2qRise 0.6s cubic-bezier(0.22, 0.8, 0.26, 1) both;
    animation-delay: calc(var(--i, 0) * 0.1s);
}

/* ---------- QA: FAQ human strip (no portrait on this page) ---------- */

.v2q-faq__human {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin-top: 26px;
    padding: 14px 18px 14px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2q-faq__human-ic {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--go-tint);
    color: var(--go);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}
.v2q-faq__human-ic svg { width: 22px; height: 22px; }
.v2q-faq__human-t { flex: 1 1 auto; min-width: 0; }
.v2q-faq__human-t b { display: block; font-size: 14.5px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
.v2q-faq__human-t span { display: block; margin-top: 2px; font-size: 12.5px; color: var(--slate); }

/* ---------- QA: responsive ---------- */

@media (max-width: 1024px) {
    .v2q-pass__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2q-pass__card:last-child { grid-column: 1 / -1; }
    .v2q-ready__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .v2q-intake__steps { grid-template-columns: minmax(0, 1fr); max-width: 720px; margin-inline: auto; }
}

@media (max-width: 960px) {
    .v2q-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 48px; }
    .v2q-hero__visual { justify-content: center; }
    .v2q-sample__grid {
        grid-template-columns: minmax(0, 1fr);
        grid-template-areas: "doc" "side";
        max-width: 640px;
    }
    .v2q-tl__grid { grid-template-columns: minmax(0, 1fr); }
    .v2q-tl__aside { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .v2-plans.v2q-plans__grid { grid-template-columns: minmax(0, 1fr); max-width: 480px; }
    .v2q-plan__fit { text-align: center; }
    .v2q-plan__total { text-align: center; }
    .v2q-plans__foot { grid-template-columns: minmax(0, 1fr); max-width: 480px; }
    .v2q-vs__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
    .v2q-scope__grid { grid-template-columns: minmax(0, 1fr); max-width: 560px; }
    .v2q-scope__more { max-width: 560px; }
}

@media (max-width: 640px) {
    .v2q-hero { padding-top: calc(var(--nav-h) + 32px); padding-bottom: 32px; }
    .v2q-hero__grid { gap: 40px; }
    .v2q-hero__copy { text-align: center; }
    .v2q-hero__sub { margin-inline: auto; }
    .v2 .v2q-hero__note { border-radius: 14px; }
    .v2q-hero__cta { justify-content: center; }
    .v2q-hero__cta .v2-btn { width: 100%; height: 50px; }
    .v2q-hero__track-row { justify-content: center; gap: 8px 12px; }
    .v2q-hero__track-sep { display: none; }
    .v2q-demo { padding: 18px 16px; border-radius: 18px; }
    .v2q-demo__head { flex-wrap: wrap; row-gap: 8px; }
    .v2q-demo__days { gap: 4px; }
    .v2q-demo__d { font-size: 10.5px; }

    .v2q-answer { padding-bottom: 56px; }
    .v2q-answer__card { padding: 18px 18px 20px; border-radius: 14px; }
    .v2q-answer__text { font-size: 14.5px; line-height: 1.68; }

    .v2q-sample__grid { margin-top: 32px; gap: 26px; }
    .v2q-doc__bar { padding: 10px 12px; }
    .v2q-doc__page { padding: 16px 14px 18px; }
    .v2q-doc__title { font-size: 17.5px; }
    .v2q-doc__meta { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .v2q-cov__row { grid-template-columns: 16px minmax(0, 1fr); row-gap: 2px; padding: 8px 10px; }
    .v2q-cov__status { grid-column: 2; text-align: right; }
    .v2q-issue { padding: 12px; }
    .v2q-issue__ea { grid-template-columns: minmax(0, 1fr); }
    .v2q-issue--row { grid-template-columns: auto auto minmax(0, 1fr); padding: 10px 12px; }
    .v2q-issue--row .v2q-issue__title { grid-column: 1 / -1; grid-row: 2; }
    .v2q-issue--row .v2q-status { justify-self: end; }
    .v2q-callouts { gap: 14px; }
    .v2q-callouts__body b { font-size: 14.5px; }
    .v2q-callouts__body span { font-size: 13.5px; }

    .v2q-pass__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 32px; }
    .v2q-pass__card { padding: 18px; }
    .v2q-pass__card h3 { margin-top: 12px; font-size: 16.5px; }

    .v2q-plan.v2-plan--featured { padding-top: 22px; }
    .v2q-plans__addon, .v2q-plans__pay { padding: 16px 18px; }
    .v2q-plans__pay { align-items: center; text-align: center; }

    .v2q-vs__grid { margin-top: 32px; gap: 14px; }
    .v2q-vs__card { padding: 20px 18px; }
    .v2q-vs__card h3 { font-size: 20px; }
    .v2q-vs__list li { font-size: 13.5px; }

    .v2q-tl__wrap { margin-top: 30px; }
    .v2q-tl__tabs { width: 100%; border-radius: 16px; }
    .v2 .v2q-tl__tab {
        flex: 1 1 0;
        min-height: 44px;
        padding: 8px 10px;
        border-radius: 12px;
        font-size: 13.5px;
        line-height: 1.25;
        white-space: normal;
    }
    .v2q-tl__list { padding: 4px 14px; border-radius: 16px; }
    .v2q-tl__row { grid-template-columns: 70px 14px minmax(0, 1fr); gap: 10px; padding: 12px 0; }
    .v2q-tl__row::before { right: calc(70px + 10px + 6px); }
    .v2q-tl__dot { width: 14px; height: 14px; }
    .v2q-tl__day { font-size: 10.5px; letter-spacing: 0.06em; }
    .v2q-tl__txt b { font-size: 14.5px; }
    .v2q-tl__txt span { font-size: 13px; }
    .v2q-tl__aside { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .v2q-tl__card { padding: 16px 18px; }

    .v2q-ready__grid { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 32px; }
    .v2q-ready__item { padding: 18px; }

    .v2q-scope__grid { margin-top: 32px; gap: 10px; }
    .v2q-scope__card { padding: 18px; }
    .v2q-scope__more { padding: 16px 18px; }
    .v2q-scope__more .v2-btn { width: 100%; height: 48px; }

    .v2q-intake__steps { gap: 10px; margin-top: 32px; }
    .v2q-intake__step { padding: 18px; }
    .v2q-intake__methods { grid-template-columns: minmax(0, 1fr); }
    .v2q-intake__safe { padding: 16px; }

    .v2q-faq__human { padding: 16px; margin-top: 22px; gap: 12px; }
}

@media (max-width: 380px) {
    .v2q-demo__app { gap: 10px; }
    .v2q-demo__ver { display: none; }
    .v2q-hero__price b { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    .v2q-vs__link .v2-ic { transition: none; }
}
/* /services QA panel, launch branch only (services_v2/_qa_live): the
   coming-soon panel has no primary button, so these rules are inert today. */
.v2s-qa__box .v2-btn--primary { width: 100%; margin-top: 16px; }
.v2s-qa__box h3 span {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: #93A0AC;
    white-space: nowrap;
}
/* ============= END ANDROID QA SERVICE PAGE ============= */

/* Android QA audit: readable required text and narrow-screen reflow. */
.v2q-hero__price span, .v2q-doc__meta dt, .v2q-issue__ea dt,
.v2 .v2q-intake__step .v2q-intake__fine, .v2q-ready__limit .v2-mono { color: var(--slate); }
.v2q-hero__cta .v2-btn { flex-direction: column; height: auto; min-height: 52px; padding-block: 12px; gap: 3px; text-align: center; white-space: normal; }
.v2q-hero__cta .v2-btn span { font-size: 12px; font-weight: 500; }
.v2q-cta .v2-cta__fine > span { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .v2-footer__contact { min-width: 0; }
    .v2-footer__contact a { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
}
@media (max-width: 380px) {
    .v2-nav__in { gap: 8px; padding-inline: 12px; }
    .v2-nav__actions { gap: 4px; }
    .v2-nav__actions > .v2-btn { display: none; }
    .v2-nav__burger { flex: 0 0 40px; }
    .v2q-cta .v2-cta__fine { display: flex; flex-direction: column; gap: 8px; }
}


.v2q-jump { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-block: 16px; font-size: 14px; }
.v2q-jump a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 3px; padding-block: 8px; }

@media (max-width: 420px) {
    .v2-footer__contact { grid-template-columns: minmax(0, 1fr); }
    .v2-footer__contact a { height: auto; min-height: 44px; padding: 8px 12px; overflow: visible; }
}

/* ============================================================
   START ANDROID QA SALES PAGE (v2qs-, /android-app-qa-testing)
   2026-10-09, plan of record QA_LANDING_PAGE_SALES_PLAN.md.
   Seven short sections on top of the V2 tokens and primitives
   (.v2-section, .v2-sechead, .v2-btn, .v2-plan, .v2-faq, .v2-cta).
   The older v2q- block above is no longer referenced by the page.
   ============================================================ */

.v2qs-ex__steps,
.v2qs-ex__meta,
.v2qs-get__grid,
.v2qs-plan__specs,
.v2qs-how__steps { margin: 0; padding: 0; list-style: none; }

/* ---------- QA sales: hero ---------- */

.v2qs-hero {
    position: relative;
    padding-top: calc(var(--nav-h) + clamp(40px, 7vh, 84px));
    padding-bottom: clamp(28px, 4vh, 44px);
    overflow: hidden;
}
.v2qs-hero__wash {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(52rem 34rem at 84% -12%, rgba(11, 138, 71, 0.07), transparent 62%),
        radial-gradient(40rem 28rem at -12% 112%, rgba(10, 16, 23, 0.04), transparent 62%);
}
.v2qs-hero__grid {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(32px, 5vw, 64px);
    align-items: center;
}
.v2qs-hero__title {
    margin-top: 18px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(2.3rem, 1.3rem + 3vw, 3.3rem);
    line-height: 1.04;
    letter-spacing: -0.028em;
    text-wrap: balance;
}
.v2qs-hero__go { display: block; color: var(--go); }
.v2qs-hero__sub {
    margin-top: 20px;
    max-width: 50ch;
    font-size: clamp(17px, 1.6vw, 19px);
    line-height: 1.6;
    color: var(--slate);
    text-wrap: pretty;
}
.v2qs-not {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 10px;
    align-items: start;
    margin-top: 20px;
    max-width: 56ch;
    padding: 12px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-right: 3px solid var(--ink);
    border-radius: 10px;
}
.v2qs-not__ic { display: inline-flex; width: 22px; height: 22px; color: var(--ink); margin-top: 1px; }
.v2qs-not__ic svg { width: 100%; height: 100%; }
.v2 .v2qs-not p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--slate); }
.v2qs-not p b { color: var(--ink); font-weight: 700; }
.v2 .v2qs-not a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.v2qs-hero__price {
    margin-top: 24px;
    font-size: 15px;
    color: var(--slate);
}
.v2qs-hero__price b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 28px;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}
.v2qs-hero__price span {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.03em;
    color: var(--faint);
}
.v2qs-hero__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 22px;
    margin-top: 14px;
}
/* "Ask on WhatsApp" is a full ghost button (same as the home hero's
   "Ask a question"); the icon ring on hover comes from the shared
   WhatsApp button rule. */
.v2qs-hero__wa .v2-ic { width: 20px; height: 20px; color: #25D366; }

/* Example report entry (static) */
.v2qs-ex {
    margin: 0;
    padding: 18px 20px 16px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 2px 6px rgba(10,16,23,.04), 0 24px 48px -24px rgba(10,16,23,.22);
}
.v2qs-ex__cap { display: flex; align-items: center; gap: 8px; color: var(--faint); }
.v2qs-ex__cap .v2-mono { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.v2qs-ex__top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
}
.v2qs-ex__id {
    font-family: var(--font-mono);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
}
.v2qs-ex__sev {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    font-size: 12px;
    font-weight: 700;
    color: #FFFFFF;
    background: #B42318;
    border-radius: 999px;
}
.v2qs-ex__status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-right: auto;
    padding: 3px 7px 3px 10px;
    font-size: 12px;
    font-weight: 700;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 999px;
}
.v2qs-ex__status svg { width: 14px; height: 14px; }
/* Slimmer High / Fixed chips (2026-10-11): same place and colours, less height */
.v2qs-ex__sev,
.v2qs-ex__status { padding-top: 1px; padding-bottom: 1px; font-size: 11.5px; line-height: 1.4; }
.v2qs-ex__status svg { width: 12px; height: 12px; }
.v2 .v2qs-ex__title {
    margin: 10px 0 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    line-height: 1.3;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2qs-ex__lab {
    margin: 16px 0 6px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--faint);
}
.v2qs-ex__steps { counter-reset: qs; }
.v2qs-ex__steps li {
    position: relative;
    padding: 5px 28px 5px 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--slate);
    counter-increment: qs;
}
.v2qs-ex__steps li::before {
    content: counter(qs);
    position: absolute;
    right: 0;
    top: 6px;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--ink);
    background: var(--mist);
    border-radius: 6px;
}
.v2qs-ex__ea {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 12px;
}
.v2qs-ex__ea > div {
    padding: 10px 12px;
    background: var(--mist);
    border-radius: 10px;
}
.v2qs-ex__ea .v2-mono { display: block; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); }
.v2 .v2qs-ex__ea p { margin: 4px 0 0; font-size: 14px; line-height: 1.45; color: var(--ink); }
.v2qs-ex__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: 14px;
}
.v2qs-ex__meta li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--slate);
    border: 1px solid var(--line);
    border-radius: 999px;
}
.v2qs-ex__meta li svg { width: 14px; height: 14px; }
.v2qs-ex__meta li.is-good { color: var(--go-deep); border-color: #C9EAD6; background: var(--go-tint); }
.v2 .v2qs-ex__note {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--faint);
}

/* Trust line */
.v2qs-trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 16px;
    margin-top: clamp(28px, 4vh, 44px);
    padding-top: 18px;
    border-top: 1px solid var(--line);
    font-size: 14px;
    color: var(--slate);
}
.v2qs-trust__label { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--faint); margin-left: 8px; }
.v2qs-trust__item { display: inline-flex; align-items: center; gap: 8px; }
.v2qs-trust__item b { color: var(--ink); font-weight: 600; }
.v2qs-trust__sep { width: 4px; height: 4px; border-radius: 50%; background: var(--line); }

/* ---------- QA sales: what you get ---------- */

.v2qs-get__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(28px, 4vh, 44px);
}
.v2qs-get__card {
    padding: 24px 24px 26px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2qs-get__ic {
    display: inline-grid;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 12px;
}
.v2qs-get__ic svg { width: 24px; height: 24px; }
.v2 .v2qs-get__card h3 {
    margin: 16px 0 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2 .v2qs-get__card p {
    margin: 8px 0 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--slate);
}
.v2 .v2qs-get__note {
    margin: 18px 0 0;
    text-align: center;
    font-size: 14.5px;
    color: var(--slate);
}

/* ---------- QA sales: plans ---------- */

.v2 .v2qs-plans__guide {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 28px;
    margin: 22px auto 0;
    max-width: 72ch;
    text-align: center;
    font-size: 15.5px;
    line-height: 1.55;
    color: var(--slate);
}
.v2qs-plans__guide b { color: var(--ink); font-weight: 600; }
.v2qs-plans__grid { margin-top: clamp(26px, 4vh, 40px); }
.v2 .v2qs-plan__for {
    margin: 10px 0 0;
    font-size: 15px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-plan--featured .v2qs-plan__for { color: #B9C4CE; }
.v2qs-plan__total {
    display: block;
    margin-top: 6px;
    font-size: 14px;
    color: var(--slate);
}
.v2qs-plan__total b { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.v2-plan--featured .v2qs-plan__total { color: #B9C4CE; }
.v2-plan--featured .v2qs-plan__total b { color: #FFFFFF; }
.v2qs-plan__specs { margin-top: 18px; display: grid; gap: 10px; }
.v2qs-plan__specs li {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
    align-items: start;
    font-size: 15px;
    line-height: 1.45;
    color: var(--slate);
}
.v2qs-plan__specs b {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 24px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
    text-align: left;
}
.v2qs-plan__specs span { display: block; padding-top: 3px; }
.v2qs-plan__specs small {
    display: block;
    margin-top: 2px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    color: var(--faint);
}
.v2-plan--featured .v2qs-plan__specs li { color: #D6DEE5; }
.v2-plan--featured .v2qs-plan__specs b { color: #FFFFFF; }
.v2-plan--featured .v2qs-plan__specs small { color: #8FA0AE; }
.v2qs-plan .v2-plan__cta { margin-top: 22px; }
.v2 .v2qs-plans__both {
    margin: 22px auto 0;
    max-width: 78ch;
    text-align: center;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2qs-plans__both b { color: var(--ink); font-weight: 600; }
.v2qs-plans__addon {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 18px auto 0;
    max-width: 640px;
    padding: 14px 18px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
}
.v2qs-plans__addon-ic { display: inline-flex; flex: 0 0 auto; width: 22px; height: 22px; color: var(--go-deep); margin-top: 1px; }
.v2qs-plans__addon-ic svg { width: 100%; height: 100%; }
.v2 .v2qs-plans__addon p { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--slate); }
.v2qs-plans__addon b { color: var(--ink); font-weight: 600; }

/* ---------- QA sales: how it works ---------- */

.v2qs-how__steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(28px, 4vh, 44px);
}
.v2qs-how__step {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 14px;
    align-items: start;
    padding: 22px 22px 24px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2qs-how__num {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 18px;
    color: #FFFFFF;
    background: var(--ink);
    border-radius: 12px;
}
.v2 .v2qs-how__step h3 {
    margin: 6px 0 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18.5px;
    letter-spacing: -0.012em;
    color: var(--ink);
}
.v2 .v2qs-how__step p {
    margin: 8px 0 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}

/* ---------- QA sales: QA testing or closed testing ---------- */

.v2qs-vs__in { max-width: 920px; }
.v2qs-vs__wrap {
    margin-top: clamp(26px, 4vh, 40px);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2qs-vs__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    font-size: 15px;
    line-height: 1.5;
}
.v2qs-vs__table th,
.v2qs-vs__table td {
    padding: 14px 18px;
    text-align: right;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
}
.v2qs-vs__table tr:last-child th,
.v2qs-vs__table tr:last-child td { border-bottom: 0; }
.v2qs-vs__table thead th {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 15.5px;
    color: var(--ink);
    background: var(--mist);
}
.v2qs-vs__table thead th.is-qa { color: var(--go-deep); }
.v2qs-vs__table tbody th {
    width: 26%;
    font-weight: 600;
    color: var(--ink);
}
.v2qs-vs__table td { color: var(--slate); }
.v2qs-vs__table td.is-qa { color: var(--ink); background: rgba(11, 138, 71, 0.04); }
.v2qs-vs__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
}
.v2 .v2qs-vs__both {
    margin: 18px 0 0;
    text-align: center;
    font-size: 14.5px;
    color: var(--slate);
}
.v2qs-vs__both b { color: var(--ink); font-weight: 600; }

/* ---------- QA sales: responsive ---------- */

@media (max-width: 1023px) {
    .v2qs-get__grid,
    .v2qs-how__steps { grid-template-columns: 1fr; }
}
@media (max-width: 899px) {
    .v2qs-hero__grid { grid-template-columns: 1fr; }
    .v2qs-hero__visual { max-width: 560px; }
}
@media (max-width: 639px) {
    .v2qs-hero { padding-top: calc(var(--nav-h) + 28px); }
    .v2qs-hero__title { font-size: clamp(2rem, 9vw, 2.5rem); }
    .v2qs-hero__sub { font-size: 16.5px; }
    .v2qs-hero__cta .v2-btn { width: 100%; justify-content: center; }
    .v2qs-ex { padding: 16px 16px 14px; }
    .v2qs-ex__ea { grid-template-columns: 1fr; }
    .v2qs-trust__label { width: 100%; margin-left: 0; }
    .v2qs-plans__guide { flex-direction: column; gap: 6px; }
    .v2qs-vs__table { font-size: 14px; }
    .v2qs-vs__table th,
    .v2qs-vs__table td { padding: 12px 12px; }
    .v2qs-vs__table tbody th { width: 30%; }
    .v2qs-vs__links .v2-btn { width: 100%; justify-content: center; }
}

/* ============= END ANDROID QA SALES PAGE (v2qs-) ============= */

/* ============================================================
   START ANDROID QA SALES PAGE: FULL COMPARISON (v2qs-cmp, 2026-10-09)
   "Everything you receive" table under the plan cards.
   ============================================================ */

.v2qs-cmp__in { max-width: 1000px; }
.v2qs-cmp__wrap {
    margin-top: clamp(26px, 4vh, 40px);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.v2qs-cmp__table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    overflow: hidden;
    font-size: 15px;
    line-height: 1.5;
}
.v2qs-cmp__table th,
.v2qs-cmp__table td {
    padding: 13px 18px;
    text-align: right;
    vertical-align: top;
    border-bottom: 1px solid var(--line);
}
.v2qs-cmp__table thead th {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 16px;
    color: var(--ink);
    background: var(--mist);
    vertical-align: bottom;
}
.v2qs-cmp__table thead th span { display: block; }
.v2qs-cmp__table thead th small {
    display: block;
    margin-top: 2px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--faint);
}
.v2qs-cmp__table thead th.is-featured { color: var(--go-deep); }
.v2qs-cmp__table thead th.is-featured small { color: var(--go-deep); opacity: .8; }
.v2qs-cmp__table th:not(:first-child),
.v2qs-cmp__table td { width: 22%; }
.v2qs-cmp__table tbody th[scope="row"] {
    font-weight: 500;
    color: var(--ink);
}
.v2qs-cmp__table td {
    color: var(--ink);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}
.v2qs-cmp__table td.is-featured { background: rgba(11, 138, 71, 0.045); }
.v2qs-cmp__group th {
    padding: 10px 18px 8px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--faint);
    background: var(--mist);
}
.v2qs-cmp__table tbody:last-child tr:last-child th,
.v2qs-cmp__table tbody:last-child tr:last-child td { border-bottom: 0; }
.v2qs-cmp__yes {
    display: inline-grid;
    place-items: center;
    width: 24px;
    height: 24px;
    color: var(--go-deep);
    background: var(--go-tint);
    border-radius: 50%;
}
.v2qs-cmp__yes svg { width: 14px; height: 14px; }
.v2 .v2qs-cmp__not {
    margin: 18px auto 0;
    max-width: 82ch;
    text-align: center;
    font-size: 14px;
    line-height: 1.6;
    color: var(--slate);
}
.v2qs-cmp__not b { color: var(--ink); font-weight: 600; }
.v2qs-cmp__ctas {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 22px;
}
.v2 .v2qs-plans__both a {
    color: var(--go-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 639px) {
    .v2qs-cmp__table { font-size: 13.5px; }
    .v2qs-cmp__table th,
    .v2qs-cmp__table td { padding: 11px 10px; }
    .v2qs-cmp__table thead th { font-size: 14px; }
    .v2qs-cmp__table th:not(:first-child),
    .v2qs-cmp__table td { width: 24%; }
    .v2qs-cmp__group th { padding: 8px 10px 6px; }
    .v2qs-cmp__ctas .v2-btn { width: 100%; justify-content: center; }
}

/* ============= END ANDROID QA SALES PAGE: FULL COMPARISON ============= */

/* ============================================================
   START ANDROID QA SALES PAGE: WHO IT IS FOR (v2qs-who, 2026-10-09)
   Added from the market research (plan section 4d). Three short
   audience cards on a mist band right under the hero, then one
   honest note. Mirrors the .v2qs-get card recipe.
   ============================================================ */

/* Compact band: the plans must stay within reach from the hero. */
.v2.v2 .v2qs-who { padding-top: clamp(40px, 6vh, 56px); padding-bottom: clamp(40px, 6vh, 56px); }
.v2qs-who .v2-sechead { margin-bottom: 0; }
.v2qs-who__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(22px, 3vh, 32px);
}
.v2qs-who__card {
    padding: 22px 22px 24px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
}
.v2qs-who__ic {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 11px;
}
.v2qs-who__ic svg { width: 22px; height: 22px; }
.v2 .v2qs-who__card h3 {
    margin: 14px 0 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19px;
    letter-spacing: -0.015em;
    color: var(--ink);
}
.v2 .v2qs-who__card p {
    margin: 8px 0 0;
    font-size: 15px;
    line-height: 1.6;
    color: var(--slate);
}
.v2 .v2qs-who__note {
    margin: 18px auto 0;
    max-width: 760px;
    text-align: center;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--slate);
}
.v2qs-who__note b { color: var(--ink); font-weight: 600; }

@media (max-width: 1023px) {
    /* Stacked: icon left, text right, so three cards stay under one phone screen and a half. */
    .v2qs-who__grid { grid-template-columns: 1fr; gap: 10px; }
    .v2qs-who__card {
        display: grid;
        grid-template-columns: 36px 1fr;
        column-gap: 14px;
        align-items: start;
        padding: 16px 16px 17px;
        border-radius: 14px;
    }
    .v2qs-who__ic { width: 36px; height: 36px; border-radius: 10px; grid-row: 1 / span 2; }
    .v2qs-who__ic svg { width: 20px; height: 20px; }
    .v2 .v2qs-who__card h3 { margin: 0; font-size: 17px; }
    .v2 .v2qs-who__card p { margin: 6px 0 0; font-size: 14.5px; line-height: 1.55; }
    .v2 .v2qs-who__note { font-size: 14px; text-align: right; }
}

/* ============= END ANDROID QA SALES PAGE: WHO IT IS FOR (v2qs-who) ============= */

/* ============================================================
   START ANDROID QA SALES PAGE: THIRD PLAN (v2qs-plan--3, 2026-10-10)
   QA Launch joins the plan grid and the comparison table. The
   shared .v2-plans grid is already three columns; this block only
   adds the quiet badge on a non-featured card and rebalances the
   comparison columns for three plans.
   ============================================================ */

.v2 .v2qs-plan__badge--quiet {
    color: var(--go-deep);
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.18);
}
.v2qs-cmp__table th:not(:first-child),
.v2qs-cmp__table td { width: 19%; }
/* Phone: four columns do not fit, so each row becomes a block: the
   label on its own line, then the three plan values side by side,
   each captioned with its plan name. */
@media (max-width: 639px) {
    .v2qs-cmp__table,
    .v2qs-cmp__table thead,
    .v2qs-cmp__table tbody,
    .v2qs-cmp__table tr { display: block; width: 100%; }
    .v2qs-cmp__table tbody tr {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border-bottom: 1px solid var(--line);
    }
    .v2qs-cmp__table tbody tr:last-child { border-bottom: 0; }
    .v2qs-cmp__table tr.v2qs-cmp__group { display: block; }
    .v2qs-cmp__table tr.v2qs-cmp__group th { display: block; width: auto; }
    .v2qs-cmp__table tbody th[scope="row"] {
        grid-column: 1 / -1;
        width: auto;
        padding: 12px 12px 4px;
        border-bottom: 0;
    }
    .v2qs-cmp__table tbody td {
        width: auto;
        padding: 4px 12px 12px;
        border-bottom: 0;
    }
    .v2qs-cmp__table tbody td::before {
        content: attr(data-plan);
        display: block;
        min-height: 26px; /* two caption lines, so the values line up */
        margin-bottom: 4px;
        font-family: var(--font-mono);
        font-size: 10px;
        letter-spacing: .06em;
        text-transform: uppercase;
        color: var(--faint);
    }
    .v2qs-cmp__table thead { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .v2qs-cmp__table thead tr { display: contents; }
    .v2qs-cmp__table thead th { width: auto; font-size: 13px; padding: 12px 12px 10px; }
    .v2qs-cmp__table thead th:first-child { grid-column: 1 / -1; padding-bottom: 0; }
}

/* "No" cell in the comparison: quiet, never a dash. */
.v2 .v2qs-cmp__no { color: var(--faint); font-size: 14px; }

/* ============= END ANDROID QA SALES PAGE: THIRD PLAN (v2qs-plan--3) ============= */

/* ============= ANDROID QA SALES PAGE: PLAN FEATURE LINE (v2qs-plan__feat) ============= */
/* 2026-10-11: QA Launch card names its Google Play Store listing check. */
.v2 .v2qs-plan__feat {
    display: grid;
    grid-template-columns: 20px 1fr;
    gap: 10px;
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--go-tint);
    font-size: 14px;
    line-height: 1.5;
    color: var(--slate);
}
.v2 .v2qs-plan__feat svg { width: 20px; height: 20px; color: var(--go); margin-top: 1px; }
.v2 .v2qs-plan__feat b { color: var(--ink); }
/* ============= END ANDROID QA SALES PAGE: PLAN FEATURE LINE ============= */

/* ============= ANDROID QA SALES PAGE: PLAN CARD ALIGNMENT (2026-10-11) =============
   Cards share one row set (subgrid on desktop): name, description,
   price, specs, button. Prices and buttons line up across all three
   cards whatever each description's length; the button row is the
   last one, so every button sits on the card's bottom edge. */
.v2qs-plans__grid { padding-top: 14px; }
.v2 .v2qs-plan { position: relative; }
.v2 .v2qs-plan__ribbon {
    position: absolute;
    top: 0;
    right: 50%;
    transform: translate(50%, -50%);
    margin: 0;
    box-shadow: 0 6px 16px -8px rgba(10, 16, 23, 0.35);
}
.v2 .v2qs-plan__badge--quiet.v2qs-plan__ribbon { background: #E8F6EE; }
.v2 .v2qs-plan .v2-plan__head { min-height: 0; }
.v2 .v2qs-plan .v2qs-plan__body { display: flex; flex-direction: column; }
.v2 .v2qs-plan .v2-plan__cta { margin-top: 24px; }

/* Specs: numbers in equal-width chips, so 7 and 14 start on the same line. */
.v2 .v2qs-plan__specs { padding: 0; margin: 18px 0 0; list-style: none; gap: 12px; }
.v2 .v2qs-plan__specs li { grid-template-columns: 40px 1fr; gap: 12px; align-items: center; }
.v2 .v2qs-plan__specs b {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    border-radius: 9px;
    background: var(--mist);
    font-size: 17px;
    text-align: center;
}
.v2 .v2qs-plan__specs span { padding-top: 0; }
.v2 .v2-plan--featured .v2qs-plan__specs b { background: rgba(255, 255, 255, 0.08); }
.v2 .v2-plan--featured .v2qs-plan__feat { background: rgba(62, 207, 129, 0.12); color: #C2CBD4; }
.v2 .v2-plan--featured .v2qs-plan__feat b { color: #FFFFFF; }

@media (min-width: 901px) {
    .v2 .v2qs-plans__grid { grid-template-rows: repeat(5, auto); row-gap: 0; }
    .v2 .v2qs-plans__grid > .v2qs-plan {
        display: grid;
        grid-row: span 5;
        grid-template-rows: subgrid;
        row-gap: 0;
        padding-top: 30px;
    }
    /* The button row is the last subgrid row; the body above it takes the slack. */
    .v2 .v2qs-plan .v2-plan__cta { align-self: end; }
}
@media (max-width: 900px) {
    /* Room for the edge badge between stacked cards; one left edge per card. */
    .v2 .v2qs-plans__grid { row-gap: 30px; }
    .v2 .v2qs-plan .v2-plan__head { justify-content: flex-start; }
    .v2 .v2qs-plan .v2-plan__price { text-align: right; justify-content: flex-start; }
    .v2 .v2qs-plan { padding-top: 28px; }
}
/* ============= END ANDROID QA SALES PAGE: PLAN CARD ALIGNMENT ============= */

/* ============= CHECKOUT V2: ACCOUNT STEP (2026-10-11) =============
   Google button, New customer / I have an account switch, visible
   password note. Shared by the rail (_rail) and the guest modal. */
.v2-ck__google { width: 100%; margin-top: 10px; }
.v2-ck__who .v2-auth__or, .v2-ck__modal-card .v2-auth__or { margin: 14px 0 12px; }
.v2-ck__mode {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
    padding: 4px;
    margin-bottom: 14px;
    border-radius: 12px;
    background: var(--mist);
    border: 1px solid var(--line);
}
.v2 .v2-ck__mode-btn {
    height: 38px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    color: var(--slate);
    cursor: pointer;
    transition: background .15s, color .15s, box-shadow .15s;
}
.v2 .v2-ck__mode-btn.is-on { background: var(--paper); color: var(--ink); box-shadow: 0 1px 2px rgba(10, 16, 23, .08); }
.v2 .v2-ck__mode-btn:focus-visible { outline: 3px solid #2872bd; outline-offset: 2px; }
.v2-ck__who .v2-ck__passnote, .v2-ck__modal-card .v2-ck__passnote { margin: 6px 0 0; padding: 0; background: none; border: 0; font-size: 12.5px; color: var(--faint); }
.v2-ck__passnote a { color: var(--go-deep); }
.v2-ck__swap { margin-top: 12px; text-align: center; font-size: 13px; color: var(--slate); }
.v2 .v2-ck__swap button {
    border: 0;
    background: none;
    padding: 0;
    font: inherit;
    font-weight: 600;
    color: var(--go-deep);
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}
/* Signed-in card: avatar initial, name, email, switch link. */
.v2-ck__me {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--paper);
}
.v2-ck__me-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--go-tint);
    color: var(--go-deep);
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 17px;
}
.v2-ck__me-text { display: flex; flex-direction: column; min-width: 0; font-size: 14px; color: var(--slate); line-height: 1.35; }
.v2-ck__me-text b { color: var(--ink); font-weight: 700; }
.v2-ck__me-text span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v2 .v2-ck__me-switch { font-size: 12.5px; color: var(--go-deep); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
@media (max-width: 420px) {
    .v2-ck__me { grid-template-columns: 40px minmax(0, 1fr); }
    .v2-ck__me-switch { grid-column: 2; }
}
/* ============= END CHECKOUT V2: ACCOUNT STEP ============= */

/* ============= TWO SERVICES CHOOSER + QA CROSS-LINK (v2x-, 2026-10-11) ============= */
.v2x-promo__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    max-width: 960px;
    margin: clamp(32px, 5vw, 48px) auto 0;
}
.v2x-promo__card {
    display: flex;
    flex-direction: column;
    padding: clamp(22px, 3vw, 30px);
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
}
.v2x-promo__card--ct { border-color: color-mix(in srgb, var(--go) 40%, var(--line)); box-shadow: 0 18px 40px -30px rgba(10, 16, 23, .35); }
.v2x-promo__chip {
    align-self: flex-start;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 5px 10px;
    border-radius: 999px;
    background: var(--mist);
    color: var(--slate);
}
.v2x-promo__card--ct .v2x-promo__chip { background: var(--go-tint); color: var(--go-deep); }
.v2 .v2x-promo__card h3 { font-family: var(--font-display); font-size: 22px; line-height: 1.2; margin: 14px 0 8px; color: var(--ink); }
.v2 .v2x-promo__card p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--slate); }
.v2 .v2x-promo__price { margin: 14px 0 18px; font-size: 14px; color: var(--slate); }
.v2x-promo__price b { font-family: var(--font-display); font-size: 20px; color: var(--ink); }
.v2x-promo__card .v2-btn { margin-top: auto; justify-content: center; }
.v2 .v2x-promo__both { max-width: 760px; margin: 20px auto 0; text-align: center; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2x-promo__both b { color: var(--ink); }
.v2 .v2x-cross { max-width: 820px; margin: 22px auto 0; text-align: center; font-size: 14px; line-height: 1.6; color: var(--slate); }
.v2x-cross b { color: var(--ink); }
.v2 .v2x-cross a { color: var(--go-deep); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
@media (max-width: 760px) {
    .v2x-promo__grid { grid-template-columns: 1fr; gap: 14px; }
}
.v2x-promo__chip { white-space: nowrap; }
/* ============= END TWO SERVICES CHOOSER + QA CROSS-LINK ============= */

/* ============= NAV: SEVEN LINKS ON ENGLISH PAGES (2026-10-11) =============
   The QA testing link makes seven items; between the 960px collapse and
   about 1240px they need tighter spacing and must never wrap. */
.v2-nav__links a, .v2-nav__login { white-space: nowrap; }
@media (max-width: 1240px) {
    .v2-nav__links { gap: 18px; }
    .v2-nav__links a { font-size: 14px; }
}
@media (max-width: 1080px) {
    .v2-nav__links { gap: 13px; }
    .v2-nav__links a { font-size: 13.5px; }
}
/* Seven links do not fit beside the language switch and the two buttons
   under about 1040px: collapse to the burger there (same rules as 960px). */
@media (max-width: 1040px) {
    .v2-nav--seven .v2-nav__links, .v2-nav--seven .v2-nav__login { display: none; }
    .v2-nav--seven .v2-nav__burger { display: block; }
    .v2-nav--seven .v2-lang { display: none; }
    .v2-nav--seven .v2-nav__actions { gap: 8px; }
    .v2-nav--seven .v2-nav__in { gap: 16px; }
}
/* ============= END NAV: SEVEN LINKS ============= */

/* ============= ANDROID QA SALES PAGE: REVIEW PASS (2026-10-11) =============
   Plan names are H3s now (outline + screen readers): same mono label
   look as the span they replace. plans.units is the second line under
   the cards (what a flow, a round and a fix build are). */
.v2 .v2qs-plan__name { margin: 0; font-size: 11px; font-weight: 600; line-height: 1.4; }
.v2 .v2qs-plans__units { margin-top: 10px; }
/* ============= END ANDROID QA SALES PAGE: REVIEW PASS ============= */

/* ============= ANDROID QA SALES PAGE: REPORT SAMPLES (2026-10-11) =============
   Landing section #samples (cards that open one anonymised report each)
   and the sample report page (v2qsr-*), which wraps the shared .qr
   document styles from qa-report-v2.css inside the V2 chrome. */
.v2 .v2qs-samples { border-top: 1px solid var(--line); }
.v2qs-samples__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-top: clamp(22px, 3vh, 32px);
}
.v2 .v2qs-sample {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 22px 20px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    /* !important = smooth even when the OS asks for reduced motion (global kill switch) */
    transition: border-color .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2qs-sample:hover,
.v2 .v2qs-sample:focus-visible {
    border-color: var(--go);
    transform: translateY(-4px);
    box-shadow: 0 22px 40px -26px rgba(11, 138, 71, 0.45), 0 2px 6px -2px rgba(10, 16, 23, 0.08);
}
.v2 .v2qs-sample:focus-visible { outline: none; }
.v2 .v2qs-sample__chip {
    align-self: flex-start;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--go);
    background: #E8F6EE;
    border-radius: 999px;
    padding: 4px 9px;
    white-space: nowrap;
}
.v2 .v2qs-sample__title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: var(--ink);
}
.v2 .v2qs-sample__lead { margin: 0; font-size: 14.5px; line-height: 1.5; color: var(--slate); }
.v2 .v2qs-sample__lead b { color: var(--ink); font-weight: 600; }
.v2 .v2qs-sample__meta {
    list-style: none;
    margin: auto 0 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--line);
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.02em;
    color: var(--faint);
}
.v2 .v2qs-sample__read {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--go);
}
.v2 .v2qs-sample__read svg { width: 16px; height: 16px; transition: transform .45s cubic-bezier(.34, 1.56, .64, 1) !important; }
.v2 .v2qs-sample:hover .v2qs-sample__read svg,
.v2 .v2qs-sample:focus-visible .v2qs-sample__read svg { transform: translateX(-5px); }
/* Title and link text warm up to green with the lift */
.v2 .v2qs-sample__title,
.v2 .v2qs-sample__read,
.v2 .v2qs-sample__chip { transition: color .3s ease, background-color .3s ease !important; }
.v2 .v2qs-sample:hover .v2qs-sample__title,
.v2 .v2qs-sample:focus-visible .v2qs-sample__title { color: var(--go-deep); }
.v2 .v2qs-sample:hover .v2qs-sample__read,
.v2 .v2qs-sample:focus-visible .v2qs-sample__read { color: var(--go-deep); }
.v2 .v2qs-sample:hover .v2qs-sample__chip { background: #D7F0E2; }

/* ---------- QA page: card hover (who / what you get / how it works) ----------
   Same lift as the sample cards above, plus a small move on each card's
   icon or step number. */
.v2 .v2qs-who__card,
.v2 .v2qs-get__card,
.v2 .v2qs-how__step {
    transition: border-color .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2 .v2qs-who__card:hover,
.v2 .v2qs-get__card:hover,
.v2 .v2qs-how__step:hover {
    border-color: var(--go);
    transform: translateY(-3px);
    box-shadow: 0 18px 36px -24px rgba(10, 16, 23, 0.42);
}
.v2 .v2qs-who__ic,
.v2 .v2qs-get__ic,
.v2 .v2qs-how__num {
    transition: transform .35s cubic-bezier(.34, 1.56, .64, 1), background-color .22s ease, color .22s ease, border-color .22s ease !important;
}
.v2 .v2qs-who__card:hover .v2qs-who__ic {
    color: var(--go-deep);
    background: var(--go-tint);
    border-color: rgba(11, 138, 71, 0.25);
    transform: scale(1.08) rotate(6deg);
}
.v2 .v2qs-get__card:hover .v2qs-get__ic { transform: scale(1.1) rotate(-6deg); }
.v2 .v2qs-how__step:hover .v2qs-how__num {
    background: var(--go);
    transform: scale(1.08);
}

/* ---------- QA page: scroll reveal ----------
   qa_service_v2.blade.php adds .v2-anim to each grid (only when motion is
   allowed and IntersectionObserver exists) and .is-in once it scrolls into
   view; without JS everything is simply visible. Uses the individual
   `translate` property so it never fights the hover `transform`. */
.v2-anim > .v2qs-who__card,
.v2-anim > .v2qs-get__card,
.v2-anim > .v2qs-sample,
.v2-anim > .v2qs-how__step,
.v2-anim > .v2qs-plan {
    opacity: 0;
    translate: 0 22px;
}
.v2-anim.is-in > .v2qs-who__card,
.v2-anim.is-in > .v2qs-get__card,
.v2-anim.is-in > .v2qs-sample,
.v2-anim.is-in > .v2qs-how__step,
.v2-anim.is-in > .v2qs-plan {
    opacity: 1;
    translate: 0 0;
    /* keep the hover properties in the list, or this rule would cancel them;
       !important = exempt from the global reduced-motion kill switch */
    transition: opacity .6s ease, translate .7s cubic-bezier(.22, 1, .36, 1),
        border-color .3s ease, transform .4s cubic-bezier(.22, 1, .36, 1), box-shadow .4s cubic-bezier(.22, 1, .36, 1) !important;
}
.v2-anim.is-in > :nth-child(2) { transition-delay: .09s; }
.v2-anim.is-in > :nth-child(3) { transition-delay: .18s; }
.v2-anim.is-in > :nth-child(4) { transition-delay: .27s; }
.v2-anim.is-in > :nth-child(5) { transition-delay: .36s; }
.v2-anim.is-in > :nth-child(6) { transition-delay: .45s; }
/* Once revealed, drop the delay so hover reacts instantly */
.v2-anim.is-done > * { transition-delay: 0s !important; }
.v2 .v2qs-samples__note { margin: 22px auto 0; max-width: 70ch; text-align: center; font-size: 14px; line-height: 1.55; color: var(--slate); }
@media (max-width: 900px) { .v2qs-samples__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .v2qs-samples__grid { grid-template-columns: minmax(0, 1fr); } }

/* Sample report page */
.v2qsr-head {
    padding-top: calc(var(--nav-h) + clamp(28px, 5vh, 52px));
    padding-bottom: clamp(22px, 3vh, 34px);
    background: var(--paper);
    border-bottom: 1px solid var(--line);
}
.v2 .v2qsr-back {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 18px;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--slate);
    text-decoration: none;
}
.v2 .v2qsr-back svg { width: 16px; height: 16px; }
.v2 .v2qsr-back:hover { color: var(--ink); }
.v2qsr-title {
    margin: 12px 0 0;
    font-family: var(--font-display);
    font-weight: 800;
    font-size: clamp(1.9rem, 1.2rem + 2.2vw, 2.8rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
    text-wrap: balance;
}
.v2 .v2qsr-sub { margin: 14px 0 0; max-width: 64ch; font-size: 16px; line-height: 1.6; color: var(--slate); text-wrap: pretty; }
.v2 .v2qsr-facts { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2qsr-facts li {
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: 0.04em;
    color: var(--ink);
    background: var(--mist);
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 6px 11px;
}
.v2 .v2qsr-facts li.is-crit { background: #FBEFED; border-color: #F2CFC9; color: #B42318; }
.v2 .v2qsr-facts li.is-minor { background: #F8F0DF; border-color: #ECDDB8; color: #9A5B00; }
.v2qsr-body { padding: clamp(24px, 4vh, 40px) 0 clamp(44px, 6vh, 72px); background: var(--mist); }
.v2qsr-body .qr { margin: 0 auto; max-width: none; }
.v2qsr-body .qr-grid { margin-top: 0; }
.v2qsr-body .qr-side { top: calc(var(--nav-h) + 16px); }
.v2 .qr-card p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2 .v2qsr-others { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.v2 .v2qsr-others a { font-size: 13.5px; line-height: 1.4; color: var(--ink); text-decoration: none; }
.v2 .v2qsr-others a:hover { color: var(--go); text-decoration: underline; text-underline-offset: 2px; }
.v2 .qr-card--cta { background: var(--ink); border-color: var(--ink); }
.v2 .qr-card--cta .qr-card__h { color: #9AA7B2; }
.v2 .qr-card--cta p { margin: 0 0 14px; color: #D6DEE5; }
.v2 .qr-card--cta .v2-btn { width: 100%; }
@media (max-width: 900px) {
    .v2qsr-body .qr-grid { grid-template-columns: minmax(0, 1fr); }
    .v2qsr-body .qr-side { position: static; }
}
.v2 .qr-privacy {
    margin: 0 0 18px;
    padding: 12px 16px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--slate);
    background: var(--mist);
    border: 1px solid var(--line);
    border-right: 3px solid var(--go);
    border-radius: 10px;
}
.v2 .qr-privacy b { color: var(--ink); font-weight: 600; }
/* ============= END ANDROID QA SALES PAGE: REPORT SAMPLES ============= */

/* Pricing hero "Choose your plan" (2026-10-15): the down arrow bobs gently and drops through on hover
   (the shared .v2-btn:hover .v2-ic rule slid it sideways). !important keeps it under reduced motion. */
@keyframes v2PlanArrowBob {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(3px); }
}
@keyframes v2PlanArrowDrop {
    0%   { transform: translateY(0); opacity: 1; }
    45%  { transform: translateY(9px); opacity: 0; }
    46%  { transform: translateY(-9px); opacity: 0; }
    100% { transform: translateY(0); opacity: 1; }
}
.v2 .v2-phero__cta a[href="#pricing"] .v2-ic { animation: v2PlanArrowBob 1.8s ease-in-out infinite !important; }
.v2 .v2-phero__cta a[href="#pricing"]:hover .v2-ic,
.v2 .v2-phero__cta a[href="#pricing"]:focus-visible .v2-ic { animation: v2PlanArrowDrop .6s cubic-bezier(.22,1,.36,1) both !important; }


/* ============================================================
   PLAN "BEST FOR" LINE + WHICH PLAN FITS (2026-10-26)
   pricing_v2/_fit.blade.php under the plan cards (pricing + home).
   Logical properties only, so the RTL mirror needs no flip.
   ============================================================ */
.v2-plan__best {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--slate);
}
.v2-plan__best b { color: var(--go-deep); font-weight: 700; }
.v2-plan--featured .v2-plan__best { color: rgba(255, 255, 255, 0.74); }
.v2-plan--featured .v2-plan__best b { color: #3ECF81; }

.v2-fit { margin-top: clamp(52px, 6vw, 76px); }
.v2-fit__head { max-width: 660px; margin-inline: auto; text-align: center; }
.v2 .v2-fit__h {
    margin: 12px 0 0;
    font-family: var(--font-display);
    font-size: clamp(24px, 2.7vw, 32px);
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--ink);
}
.v2 .v2-fit__lead { margin-top: 12px; font-size: 16px; line-height: 1.55; color: var(--slate); }
.v2-fit__pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    margin-top: 32px;
}
.v2-fit__card {
    display: flex;
    flex-direction: column;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 26px 28px;
}
.v2-fit__card--qa {
    border-color: rgba(11, 138, 71, 0.38);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05), 0 28px 56px -28px rgba(10, 16, 23, 0.18);
}
.v2-fit__top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; }
.v2-fit__name {
    font-family: var(--font-mono);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--slate);
}
.v2-fit__price { font-family: var(--font-display); font-size: 21px; font-weight: 700; color: var(--ink); }
.v2-fit__price .v2-plan__cur { font-size: 0.7em; vertical-align: 0.35em; }
.v2-fit__price small {
    margin-inline-start: 7px;
    font-family: var(--font-body);
    font-size: 12.5px;
    font-weight: 500;
    color: var(--faint);
}
.v2-fit__chip {
    align-self: flex-start;
    margin-top: 16px;
    padding: 5px 11px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: var(--mist);
    font-size: 11.5px;
    font-weight: 700;
    color: var(--slate);
}
.v2-fit__card--qa .v2-fit__chip { background: var(--go-tint); border-color: rgba(11, 138, 71, 0.22); color: var(--go-deep); }
.v2 .v2-fit__title {
    margin: 10px 0 0;
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 700;
    line-height: 1.25;
    color: var(--ink);
}
.v2-fit__list { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 10px; }
.v2-fit__list li {
    position: relative;
    padding-inline-start: 26px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--ink);
}
.v2-fit__list li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background-color: var(--go-tint);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='%230B8A47' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-size: 11px;
    background-position: center;
    background-repeat: no-repeat;
}
.v2 .v2-fit__when {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--slate);
}
.v2-fit__when b { color: var(--ink); }
.v2-fit__cta { margin-top: auto; padding-top: 20px; }
.v2 .v2-fit__cta .v2-btn { width: 100%; }
.v2-fit__why { margin-top: 44px; }
.v2 .v2-fit__whyh {
    margin: 0;
    text-align: center;
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
}
.v2-fit__tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 22px; }
.v2-fit__tile { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 20px; }
.v2-fit__ic {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--go-tint);
    color: var(--go);
}
.v2-fit__ic svg { width: 21px; height: 21px; }
.v2 .v2-fit__tile h5 {
    margin: 14px 0 0;
    font-family: var(--font-display);
    font-size: 16.5px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
}
.v2 .v2-fit__tile p { margin-top: 8px; font-size: 13.5px; line-height: 1.55; color: var(--slate); }
.v2 .v2-fit__note { margin-top: 24px; text-align: center; font-size: 13px; line-height: 1.5; color: var(--slate); }

@media (max-width: 960px) {
    .v2-fit__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .v2-fit__pair { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (max-width: 640px) {
    .v2-fit__card { padding: 20px 18px; }
    .v2 .v2-fit__title { font-size: 19px; }
    .v2-fit__list li { font-size: 14px; }
    .v2-fit__tiles { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .v2-fit__tile { padding: 16px 18px; }
    .v2 .v2-fit__lead { font-size: 15px; }
}

/* ============================================================
   HOME ORDER CARD (2026-10-26)
   The ads landing page's Order Card in the homepage hero
   (home_v2/_ordercard.blade.php). A copy of the "Order Card"
   section of lp-v2.page.css with the entrance re-scoped to
   .v2-hero.v2-oc-anim and the keyframes renamed v2OcRise; keep
   it in sync with that file. Not part of the ads stylesheet build
   (lp-v2.css gets these rules from lp-v2.page.css).
   ============================================================ */
/* ---------- Order Card (hero signature of this page) ---------- */
.v2-lpcard {
    width: 100%;
    max-width: 470px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    padding: clamp(20px, 2.6vw, 28px);
    box-shadow:
        0 1px 2px rgba(10, 16, 23, 0.05),
        0 28px 56px -20px rgba(10, 16, 23, 0.16);
}
.v2-lpcard__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.v2-lpcard__head > * { white-space: nowrap; }
.v2-lpcard__start {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--go-deep);
}
.v2-lpcard__start i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--go);
    box-shadow: 0 0 0 0 rgba(11, 138, 71, 0.35);
    animation: v2LpPulse 2.2s ease-out infinite;
}
@keyframes v2LpPulse {
    0%   { box-shadow: 0 0 0 0 rgba(11, 138, 71, 0.35); }
    70%  { box-shadow: 0 0 0 8px rgba(11, 138, 71, 0); }
    100% { box-shadow: 0 0 0 0 rgba(11, 138, 71, 0); }
}
.v2-lpcard__title {
    margin-top: 12px;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 19.5px;
    letter-spacing: -0.015em;
    line-height: 1.2;
}
.v2-lpcard__title span { color: var(--slate); font-weight: 500; }
.v2-lpcard__plans {
    margin-top: 16px;
    display: grid;
    gap: 8px;
}
.v2-lpplan {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--paper);
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.v2-lpplan:hover { border-color: #C9D2DA; }
.v2-lpplan.is-on {
    border-color: var(--go);
    background: #FBFDFC;
    box-shadow: 0 0 0 3px rgba(11, 138, 71, 0.14);
}
.v2-lpplan:has(input:focus-visible) { outline: 2px solid var(--go); outline-offset: 2px; }
.v2-lpplan input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
}
.v2-lpplan__n {
    font-family: var(--font-display);
    font-weight: 800;
    font-size: 26px;
    letter-spacing: -0.03em;
    line-height: 1;
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
}
.v2-lpplan.is-on .v2-lpplan__n { color: var(--go); }
.v2-lpplan__meta { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.v2-lpplan__meta b {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 14.5px;
    font-weight: 600;
    color: var(--ink);
}
.v2-lpplan__meta span { font-size: 12.5px; color: var(--slate); }
/* Scoped under __meta: the "__meta span" rule (0,1,1) would otherwise
   repaint the chip slate at 12.5px (verified in the first render). */
.v2-lpplan__meta .v2-lpplan__chip {
    font: 700 10.5px/1 var(--font-body);
    letter-spacing: 0.02em;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--go);
    color: #FFFFFF;
}
.v2-lpplan__price { text-align: left; }
.v2-lpplan__amt {
    display: block;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 20px;
    letter-spacing: -0.02em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    color: var(--ink);
}
.v2-lpplan__was {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--faint);
    white-space: nowrap;
}
.v2-lpplan__was s { text-decoration: line-through; }
/* Same discount voice as the pricing cards' "NN% off" pill */
.v2-lpplan__off {
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--go-tint);
    border: 1px solid rgba(11, 138, 71, 0.22);
    color: var(--go-deep);
    font: 700 10px/1.2 var(--font-body);
    letter-spacing: 0.01em;
}
.v2 .v2-lpcard__go { width: 100%; margin-top: 16px; }
.v2-lpcard__total {
    margin-top: 12px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--slate);
    text-align: center;
}
.v2-lpcard__total b { color: var(--ink); font-weight: 600; }
.v2-lpcard__fine {
    margin-top: 8px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.04em;
    color: var(--faint);
}
.v2-lpcard__fine span { white-space: nowrap; }
/* Locales (2026-10-26): long header labels (de "Start in 4 bis 6 Stunden")
   wrap instead of running past the card, and on phones a long guarantee
   phrase may wrap inside its span. English keeps its one-line layout. */
.v2-lpcard__head { flex-wrap: wrap; row-gap: 6px; }
@media (max-width: 520px) {
    .v2-lpcard__fine span { white-space: normal; }
}
.v2-lpcard__pay {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.v2-lpcard__logos { display: inline-flex; align-items: center; gap: 8px; }
.v2-lpcard__logos img { height: 18px; width: auto; display: block; }

/* Card entrance: card rises, plan rows cascade. Pre-state lives under
   .v2-anim only (JS adds it), so no-JS and reduced motion get the final layout. */
.v2-hero.v2-oc-anim .v2-lpcard { animation: v2OcRise .7s cubic-bezier(0.22, 0.8, 0.26, 1) both; }
.v2-hero.v2-oc-anim .v2-lpplan { animation: v2OcRise .55s cubic-bezier(0.22, 0.8, 0.26, 1) both; animation-delay: calc(.28s + var(--i) * .09s); }
@keyframes v2OcRise {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: none; }
}

@media (max-width: 960px) {
    .v2-hero__visual .v2-lpcard { max-width: 520px; }
}
@media (max-width: 640px) {
    .v2-hero__visual .v2-lpcard { padding: 18px; max-width: none; }
    .v2-hero__visual .v2-lpplan { padding: 11px 12px; gap: 10px; grid-template-columns: 38px minmax(0, 1fr) auto; }
    .v2-hero__visual .v2-lpplan__n { font-size: 22px; }
    .v2-hero__visual .v2-lpplan__meta b { font-size: 14px; }
    .v2-hero__visual .v2-lpplan__amt { font-size: 18px; }
    .v2-hero__visual .v2-lpcard__pay { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 480px) {
    .v2-hero__visual .v2-lpcard__head .v2-mono { display: none; }
    .v2-hero__visual .v2-lpcard__head { justify-content: flex-start; }
}
@media (max-width: 380px) {
    .v2-hero__visual .v2-lpplan__chip { display: none; }
}
/* Locales (2026-10-26): prices like "19,99 USD" and longer discount labels
   make the price column wider than in English. On phones the struck price
   and the label stack so the plan description keeps its room, and an
   over-long word (pl "zweryfikowanych") breaks instead of drawing over the
   price. English keeps its one-line price row. */
.v2-lpplan__meta { overflow-wrap: break-word; }
@media (max-width: 640px) {
    html:not([lang="en"]) .v2-hero__visual .v2-lpplan__was { flex-direction: column; align-items: flex-end; gap: 3px; }
}

/* ============================================================
   HOME REPORT SAMPLES (2026-10-26)
   home_v2/_reports (English): the QA sample report cards replace
   the single PDF frame. The cards are the QA page's .v2qs-sample
   styles (already in this file); these rules add the caption, the
   two actions per card (web + PDF) and the receive/depth row under
   the grid. Mirrors the ads page's "Report samples grid" rules in
   lp-v2.page.css (.v2-lpsamples__*); keep them alike.
   ============================================================ */
.v2 .v2-rsamp__cap { margin: 18px auto 0; max-width: 64ch; text-align: center; font-size: 14.5px; line-height: 1.55; color: var(--slate); }
.v2-rsamp__grid { margin-top: 28px; }
.v2 .v2-rsamp__card { cursor: default; display: flex; flex-direction: column; }
.v2 .v2-rsamp__card:hover { transform: none; }
.v2-rsamp__actions { margin-top: auto; padding-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .v2-rsamp__actions .v2-btn { flex: 1 1 auto; justify-content: center; min-width: 0; }
.v2 .v2-rsamp__note { margin: 22px auto 0; max-width: 70ch; text-align: center; font-size: 14px; line-height: 1.55; color: var(--slate); }
.v2-rsamp__after {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
    margin-top: clamp(40px, 5vw, 56px);
    padding-top: clamp(32px, 4vw, 44px);
    border-top: 1px solid var(--line);
}
.v2-rsamp__after .v2-reports__tiers { margin-top: 0; }
@media (max-width: 900px) {
    .v2-rsamp__after { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

/* Home hero: rating line links to the #reviews wall */
.v2-hero__trust-link { color: inherit; text-decoration: underline; text-decoration-color: #C9D2DA; text-underline-offset: 3px; transition: text-decoration-color .15s ease; }
.v2-hero__trust-link:hover { text-decoration-color: var(--go); }

/* Home review wall: 5-line clamp + Read more (JS adds .v2-rwall--clamp) */
.v2-rwall--clamp .v2-rcard__text:not(.is-open) {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.v2 .v2-rcard__more {
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    color: var(--go-deep);
    cursor: pointer;
}
.v2 .v2-rcard__more:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Home: the customer video embedded in the reviews section as its featured
   story (no own section band; a card on the mist background). */
.v2-video--in {
    max-width: 1060px;
    margin: clamp(28px, 4vw, 40px) auto 0;
    padding: clamp(22px, 3vw, 36px);
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 20px;
    box-shadow: 0 1px 2px rgba(10, 16, 23, .05), 0 28px 56px -20px rgba(10, 16, 23, .16);
}
.v2-video--in > .v2-container { padding: 0; max-width: none; }
.v2-video--in .v2-video__h { font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.1rem); }

/* ---------- /reviews: wall head + answer, FAQ, hero rating links (2026-10-28) ---------- */
/* Symmetric rules (no left/right), so the rtl mirror carries them verbatim. */
.v2-rvwall { padding-top: clamp(48px, 7vw, 88px); }
.v2-rvwall__head {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: 20px clamp(32px, 5vw, 64px);
    align-items: start;
    max-width: 1060px;
    margin: 0 auto 30px;
}
.v2-rvwall__lede .v2-h2 { margin-top: 12px; }
.v2-rvwall__answer { margin: 0; font-size: 16.5px; }
.v2-rvfaq__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    max-width: 1060px;
    margin: 36px auto 0;
}
.v2-rvfaq__item {
    padding: 22px 24px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--paper);
}
.v2-rvfaq__q {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.12rem;
    line-height: 1.3;
    letter-spacing: -0.012em;
    color: var(--ink);
}
.v2-rvfaq__a { margin-top: 10px; font-size: 15.5px; line-height: 1.62; color: var(--slate); }
.v2-phero__trust-link {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid color-mix(in srgb, currentColor 35%, transparent);
    transition: border-color .15s ease, color .15s ease;
}
.v2-phero__trust-link:hover { color: var(--ink); border-color: currentColor; }
@media (max-width: 860px) {
    .v2-rvwall__head { grid-template-columns: 1fr; gap: 16px; }
    .v2-rvfaq__grid { grid-template-columns: 1fr; }
}

/* ---------- Review wall extras (2026-10-28): static strip tiles (ads LP: proof, no exits) ---------- */
/* Symmetric rules (no left/right), so the rtl mirrors carry them verbatim. */
.v2-rapps__tile {
    display: block;
    width: 56px;
    height: 56px;
    border-radius: 15px;
    overflow: hidden;
    background: var(--paper);
    border: 1px solid var(--line);
    box-shadow: 0 1px 2px rgba(10, 16, 23, 0.05);
}
.v2-rapps__tile img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) {
    .v2-rapps__tile { width: 48px; height: 48px; border-radius: 13px; }
}
