/* PORTFOLIO family — batch 4 variants. Tokens only; reduced-motion fallbacks required. */

/* ============================ before_after ============================
   Reuses the compare family's data-apb-behavior="compare-slider" marker + --apb-cis-p custom prop
   (see component-compare.css .apb-rx-cis-*) — same JS drives the divider, only class names differ. */
.apb-rx-pfba { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfba-wrap { max-width: 1020px; margin: 0 auto; }
.apb-rx-pfba-list { margin-top: clamp(24px,4vh,40px); }
.apb-rx-pfba-item { margin-bottom: clamp(30px,5vh,48px); }
.apb-rx-pfba-item:last-child { margin-bottom: 0; }
.apb-rx-pfba-frame { position: relative; border-radius: var(--apb-rx-radius); overflow: hidden; box-shadow: var(--apb-rx-shadow-2); aspect-ratio: 16/8; user-select: none; touch-action: none; }
.apb-rx-pfba-after, .apb-rx-pfba-before { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pfba-beforewrap { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--apb-cis-p, 50%)) 0 0); }
.apb-rx-pfba-tagB, .apb-rx-pfba-tagA { position: absolute; top: 12px; z-index: 1; font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 60%, transparent); border-radius: var(--apb-rx-radius-pill,999px); padding: 5px 12px; pointer-events: none; }
.apb-rx-pfba-tagB { left: 12px; }
.apb-rx-pfba-tagA { right: 12px; background: var(--apb-rx-brand); }
.apb-rx-pfba-handle { position: absolute; top: 0; bottom: 0; left: var(--apb-cis-p, 50%); transform: translateX(-50%); width: 40px; display: flex; align-items: center; justify-content: center; cursor: ew-resize; }
.apb-rx-pfba-handle::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 2px; background: var(--apb-rx-surface); }
.apb-rx-pfba-handle svg { position: relative; width: 40px; height: 40px; padding: 11px; border-radius: 50%; background: var(--apb-rx-surface); color: var(--apb-rx-ink); box-shadow: var(--apb-rx-shadow-2); }
.apb-rx-pfba-cap { display: flex; align-items: baseline; gap: 14px; padding: 12px 4px 0; flex-wrap: wrap; }
.apb-rx-pfba-cap b { font-size: 16px; font-weight: 750; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-rx-pfba-cap span { font-size: 13px; color: var(--apb-rx-muted); }
.apb-rx-pfba-cap i { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 800; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); }

/* ============================ kanban ============================ */
.apb-rx-pfkan { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-soft); }
.apb-rx-pfkan-wrap { max-width: 1120px; margin: 0 auto; }
.apb-rx-pfkan-board { display: grid; grid-template-columns: repeat(var(--apb-rx-cols,3),1fr); gap: 16px; align-items: start; margin-top: clamp(24px,4vh,38px); }
.apb-rx-pfkan-col { background: color-mix(in srgb, var(--apb-rx-ink) 4%, var(--apb-rx-surface)); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .9); padding: 12px; }
.apb-rx-pfkan-colh { display: flex; align-items: center; gap: 8px; padding: 4px 6px 12px; font-size: 12.5px; font-weight: 750; color: var(--apb-rx-ink); }
.apb-rx-pfkan-colh i { width: 9px; height: 9px; border-radius: 50%; background: var(--dot,var(--apb-rx-brand)); flex: none; }
.apb-rx-pfkan-colh span { margin-left: auto; font-size: 11px; font-weight: 700; color: var(--apb-rx-fg-subtle,var(--apb-rx-muted)); background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: var(--apb-rx-radius-pill,999px); padding: 2px 9px; }
.apb-rx-pfkan-card { display: block; background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; text-decoration: none; margin-bottom: 10px; transition: transform var(--apb-rx-t-fast,.16s), box-shadow var(--apb-rx-t-fast,.16s); }
.apb-rx-pfkan-card:last-child { margin-bottom: 0; }
.apb-rx-pfkan-card:hover { transform: translateY(-3px); box-shadow: var(--apb-rx-shadow-2); }
.apb-rx-pfkan-card img { width: 100%; aspect-ratio: 16/8; object-fit: cover; display: block; }
.apb-rx-pfkan-body { display: block; padding: 11px 13px 13px; }
.apb-rx-pfkan-body b { display: block; font-size: 14px; font-weight: 750; letter-spacing: -.01em; color: var(--apb-rx-ink); }
.apb-rx-pfkan-chips { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 8px; }
.apb-rx-pfkan-chip { font-size: 10px; font-weight: 700; letter-spacing: .03em; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); background: var(--apb-rx-soft); border-radius: var(--apb-rx-radius-pill,999px); padding: 3px 9px; }
.apb-rx-pfkan-done .apb-rx-pfkan-chip { color: var(--apb-rx-muted); }
@media (max-width: 820px) { .apb-rx-pfkan-board { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfkan-card { transition: none; } }

/* ============================ year_wall ============================ */
.apb-rx-pfywall { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-ink); }
.apb-rx-pfywall-wrap { max-width: 1160px; margin: 0 auto; }
.apb-rx-pfywall-head { display: flex; align-items: baseline; gap: 18px; flex-wrap: wrap; }
.apb-rx-pfywall-head .apb-rx-pf-head { text-align: left; }
.apb-rx-pfywall h2 { color: #fff; }
.apb-rx-pfywall-count { margin-left: auto; font-size: 12.5px; color: color-mix(in srgb, #fff 55%, transparent); font-variant-numeric: tabular-nums; }
.apb-rx-pfywall-grid { display: grid; grid-template-columns: repeat(8,1fr); gap: 7px; margin-top: clamp(22px,4vh,36px); }
.apb-rx-pfywall-cell { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: calc(var(--apb-rx-radius) * .35); display: block; text-decoration: none; }
.apb-rx-pfywall-cell img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.8) brightness(.85); transition: filter var(--apb-rx-t,.28s), transform var(--apb-rx-t,.28s); }
.apb-rx-pfywall-cell:hover { z-index: 2; }
.apb-rx-pfywall-cell:hover img { filter: saturate(1.05) brightness(1); transform: scale(1.5); }
.apb-rx-pfywall-cell span { position: absolute; left: 5px; bottom: 5px; right: 5px; font-size: 9.5px; font-weight: 700; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 62%, transparent); border-radius: 5px; padding: 3px 7px; opacity: 0; transition: opacity var(--apb-rx-t-fast,.16s); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; }
.apb-rx-pfywall-cell:hover span, .apb-rx-pfywall-cell:focus-visible span { opacity: 1; }
@media (max-width: 820px) { .apb-rx-pfywall-grid { grid-template-columns: repeat(4,1fr); } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfywall-cell img { transition: none; } .apb-rx-pfywall-cell:hover img { transform: none; } .apb-rx-pfywall-cell span { opacity: 1; } }

/* ============================ accordion_slats ============================ */
.apb-rx-pfslat { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfslat-wrap { max-width: 1040px; margin: 0 auto; }
.apb-rx-pfslat-stack { display: flex; flex-direction: column; gap: 10px; margin-top: clamp(24px,4vh,40px); }
.apb-rx-pfslat-slat { position: relative; height: 84px; border-radius: calc(var(--apb-rx-radius) * .8); overflow: hidden; display: block; text-decoration: none; transition: height var(--apb-rx-t-slow,.55s) cubic-bezier(.4,0,.2,1); box-shadow: var(--apb-rx-shadow-1); }
.apb-rx-pfslat-slat:hover, .apb-rx-pfslat-slat:focus-within { height: 340px; }
.apb-rx-pfslat-slat img { position: absolute; inset: 0; width: 100%; height: 340px; object-fit: cover; }
.apb-rx-pfslat-slat::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--apb-rx-ink) 68%, transparent), color-mix(in srgb, var(--apb-rx-ink) 15%, transparent) 55%, transparent); transition: opacity var(--apb-rx-t,.28s); }
.apb-rx-pfslat-bar { position: absolute; left: 20px; right: 20px; top: 0; height: 84px; display: flex; align-items: center; gap: 16px; z-index: 1; }
.apb-rx-pfslat-bar i { font-style: normal; font-size: 12px; font-weight: 800; color: color-mix(in srgb, #fff 65%, transparent); font-variant-numeric: tabular-nums; }
.apb-rx-pfslat-bar b { font-family: var(--apb-rx-font-display,inherit); font-weight: 800; font-size: clamp(17px,2.2vw,24px); letter-spacing: -.015em; color: #fff; }
.apb-rx-pfslat-bar span { margin-left: auto; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in srgb, #fff 70%, transparent); }
.apb-rx-pfslat-more { position: absolute; left: 20px; bottom: 18px; z-index: 1; max-width: 52ch; color: color-mix(in srgb, #fff 85%, transparent); font-size: 13.5px; line-height: 1.55; opacity: 0; transform: translateY(8px); transition: opacity var(--apb-rx-t,.28s) .12s, transform var(--apb-rx-t,.28s) .12s; }
.apb-rx-pfslat-slat:hover .apb-rx-pfslat-more, .apb-rx-pfslat-slat:focus-within .apb-rx-pfslat-more { opacity: 1; transform: none; }
.apb-rx-pfslat-more em { display: block; font-style: normal; font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: color-mix(in srgb, var(--apb-rx-brand) 55%, #fff); margin-bottom: 5px; }
@media (hover: none) { .apb-rx-pfslat-slat { height: 220px; } .apb-rx-pfslat-more { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfslat-slat { transition: none; height: 220px; } .apb-rx-pfslat-more { opacity: 1; transform: none; transition: none; } }

/* ============================ receipt ============================
   SUBTOTAL/TAX/TOTAL lines are renderer-owned decorative defaults (not authorable data). */
.apb-rx-pfrec { padding: clamp(56px,10vh,110px) 24px; overflow: hidden; background: radial-gradient(70vmax 50vmax at 15% -10%, var(--apb-rx-soft), transparent 60%), var(--apb-rx-surface); }
.apb-rx-pfrec-wrap { max-width: 1040px; margin: 0 auto; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(30px,5vw,72px); align-items: center; }
.apb-rx-pfrec-paper { justify-self: center; width: min(360px,100%); background: color-mix(in srgb, var(--apb-rx-surface) 92%, #fdfdfb); padding: 26px 24px 20px; transform: rotate(1.6deg); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 12.5px; color: var(--apb-rx-ink); line-height: 1.7; box-shadow: var(--apb-rx-shadow-3); transition: transform var(--apb-rx-t,.28s); clip-path: polygon(0 0,100% 0,100% calc(100% - 8px),97% 100%,93% calc(100% - 8px),89% 100%,85% calc(100% - 8px),81% 100%,77% calc(100% - 8px),73% 100%,69% calc(100% - 8px),65% 100%,61% calc(100% - 8px),57% 100%,53% calc(100% - 8px),49% 100%,45% calc(100% - 8px),41% 100%,37% calc(100% - 8px),33% 100%,29% calc(100% - 8px),25% 100%,21% calc(100% - 8px),17% 100%,13% calc(100% - 8px),9% 100%,5% calc(100% - 8px),0 100%); }
.apb-rx-pfrec-paper:hover, .apb-rx-pfrec-paper:focus-within { transform: rotate(0deg); }
.apb-rx-pfrec-shop { text-align: center; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.apb-rx-pfrec-rule { border: none; border-top: 1px dashed var(--apb-rx-line); margin: 10px 0; }
.apb-rx-pfrec-line { display: flex; justify-content: space-between; gap: 12px; text-decoration: none; color: var(--apb-rx-ink); }
.apb-rx-pfrec-line:hover b { color: var(--apb-rx-accent-text,var(--apb-rx-brand)); }
.apb-rx-pfrec-line b { font-weight: 700; text-transform: uppercase; }
.apb-rx-pfrec-line span { color: var(--apb-rx-muted); }
.apb-rx-pfrec-total { display: flex; justify-content: space-between; font-weight: 800; font-size: 14px; margin-top: 2px; text-transform: uppercase; }
.apb-rx-pfrec-bar { margin: 14px auto 6px; height: 34px; max-width: 220px; background: repeating-linear-gradient(90deg, var(--apb-rx-ink) 0 2px, transparent 2px 5px, var(--apb-rx-ink) 5px 6px, transparent 6px 10px); }
.apb-rx-pfrec-thanks { text-align: center; font-size: 11px; color: var(--apb-rx-muted); }
@media (max-width: 820px) { .apb-rx-pfrec-wrap { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfrec-paper { transition: none; transform: none; } }

/* ============================ orbit ============================
   Preset s1..s5 satellite positions; counter-rotation keeps thumbs upright; hover pauses both spins. */
.apb-rx-pforb { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-ink); overflow: hidden; }
.apb-rx-pforb-wrap { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(28px,4vw,56px); align-items: center; }
.apb-rx-pforb h2, .apb-rx-pforb .apb-rx-pf-head h2 { color: #fff; }
.apb-rx-pforb-space { position: relative; aspect-ratio: 1; max-width: 520px; margin: 0 auto; width: 100%; }
.apb-rx-pforb-ring { position: absolute; inset: 0; border: 1px dashed color-mix(in srgb, var(--apb-rx-brand) 35%, transparent); border-radius: 50%; }
.apb-rx-pforb-ring--in { inset: 17%; }
.apb-rx-pforb-core { position: absolute; inset: 36%; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; background: radial-gradient(circle at 32% 28%, color-mix(in srgb, var(--apb-rx-brand) 35%, var(--apb-rx-ink)), color-mix(in srgb, var(--apb-rx-ink) 92%, #000) 72%); border: 1px solid color-mix(in srgb, var(--apb-rx-brand) 45%, transparent); box-shadow: 0 0 60px var(--apb-rx-glow-soft); }
.apb-rx-pforb-core b { color: #fff; font-family: var(--apb-rx-font-display,inherit); font-weight: 800; font-size: clamp(16px,1.9vw,22px); letter-spacing: -.01em; }
.apb-rx-pforb-core span { color: color-mix(in srgb, #fff 60%, transparent); font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; }
.apb-rx-pforb-spin { position: absolute; inset: 0; animation: pforbSpin calc(46s / var(--apb-rx-dur,1)) linear infinite; transform-origin: 50% 50%; }
.apb-rx-pforb-space:hover .apb-rx-pforb-spin, .apb-rx-pforb-space:focus-within .apb-rx-pforb-spin { animation-play-state: paused; }
@keyframes pforbSpin { to { transform: rotate(360deg); } }
.apb-rx-pforb-sat { position: absolute; width: clamp(72px,9vw,110px); aspect-ratio: 1; border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; text-decoration: none; box-shadow: var(--apb-rx-shadow-3); border: 2px solid color-mix(in srgb, #fff 12%, transparent); animation: pforbCounter calc(46s / var(--apb-rx-dur,1)) linear infinite reverse; transform-origin: 50% 50%; }
.apb-rx-pforb-space:hover .apb-rx-pforb-sat, .apb-rx-pforb-space:focus-within .apb-rx-pforb-sat { animation-play-state: paused; }
@keyframes pforbCounter { to { transform: rotate(360deg); } }
.apb-rx-pforb-sat:hover, .apb-rx-pforb-sat:focus-visible { z-index: 3; border-color: color-mix(in srgb, var(--apb-rx-brand) 70%, #fff); }
.apb-rx-pforb-sat img { width: 100%; height: 100%; object-fit: cover; display: block; }
.apb-rx-pforb-sat span { position: absolute; left: 0; right: 0; bottom: 0; font-size: 9.5px; font-weight: 700; color: #fff; text-align: center; background: color-mix(in srgb, var(--apb-rx-ink) 62%, transparent); padding: 3px 6px; opacity: 0; transition: opacity var(--apb-rx-t-fast,.16s); }
.apb-rx-pforb-sat:hover span, .apb-rx-pforb-sat:focus-visible span { opacity: 1; }
.apb-rx-pforb-s1 { top: -6%; left: 50%; margin-left: calc(clamp(72px,9vw,110px) / -2); }
.apb-rx-pforb-s2 { top: 22%; right: -4%; }
.apb-rx-pforb-s3 { bottom: 2%; right: 8%; }
.apb-rx-pforb-s4 { bottom: 2%; left: 8%; }
.apb-rx-pforb-s5 { top: 22%; left: -4%; }
@media (max-width: 860px) { .apb-rx-pforb-wrap { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pforb-spin, .apb-rx-pforb-sat { animation: none; } .apb-rx-pforb-sat span { opacity: 1; } }

/* ============================ pin_map ============================
   Positions are inline (renderer-computed left/top from the preset catalog); this CSS only styles the
   decorative canvas + pin/card chrome. Legend is evidence-gated (only rendered when the `legend` slot has data). */
.apb-rx-pfmap { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfmap-wrap { max-width: 1120px; margin: 0 auto; }
.apb-rx-pfmap-canvas { position: relative; border-radius: calc(var(--apb-rx-radius) * 1.1); overflow: hidden; aspect-ratio: 16/8; margin-top: clamp(24px,4vh,40px); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); background: radial-gradient(60vmax 40vmax at 20% 0%, color-mix(in srgb, var(--apb-rx-brand) 7%, transparent), transparent 55%), radial-gradient(color-mix(in srgb, var(--apb-rx-ink) 16%, transparent) 1.5px, transparent 2px), var(--apb-rx-soft); background-size: auto, 18px 18px, auto; }
.apb-rx-pfmap-land { position: absolute; border-radius: 48% 52% 55% 45%/55% 48% 52% 45%; background: color-mix(in srgb, var(--apb-rx-brand) 9%, var(--apb-rx-surface)); border: 1px solid color-mix(in srgb, var(--apb-rx-brand) 18%, transparent); }
.apb-rx-pfmap-l1 { width: 34%; height: 56%; left: 8%; top: 12%; }
.apb-rx-pfmap-l2 { width: 26%; height: 44%; right: 12%; top: 8%; border-radius: 55% 45% 48% 52%/45% 55% 45% 55%; }
.apb-rx-pfmap-l3 { width: 20%; height: 30%; right: 26%; bottom: 6%; border-radius: 45% 55% 52% 48%/52% 45% 55% 48%; }
.apb-rx-pfmap-pin { position: absolute; width: 18px; height: 18px; z-index: 2; }
.apb-rx-pfmap-pin i { position: absolute; inset: 0; border-radius: 50%; background: var(--apb-rx-brand); border: 3px solid var(--apb-rx-surface); box-shadow: 0 4px 12px -2px var(--apb-rx-glow); }
.apb-rx-pfmap-pin::before { content: ""; position: absolute; inset: -7px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--apb-rx-brand) 45%, transparent); animation: pfmapPulse calc(2.2s / var(--apb-rx-dur,1)) ease-out infinite; }
@keyframes pfmapPulse { from { transform: scale(.5); opacity: 1; } to { transform: scale(1.5); opacity: 0; } }
.apb-rx-pfmap-card { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%) translateY(8px); width: 230px; z-index: 3; background: var(--apb-rx-surface); border: var(--apb-rx-border,1px) solid var(--apb-rx-line); border-radius: calc(var(--apb-rx-radius) * .7); overflow: hidden; box-shadow: var(--apb-rx-shadow-3); opacity: 0; pointer-events: none; transition: opacity var(--apb-rx-t,.28s), transform var(--apb-rx-t,.28s); text-decoration: none; display: block; }
.apb-rx-pfmap-pin:hover .apb-rx-pfmap-card, .apb-rx-pfmap-pin:focus-within .apb-rx-pfmap-card { opacity: 1; transform: translateX(-50%) translateY(0); pointer-events: auto; }
.apb-rx-pfmap-card img { width: 100%; aspect-ratio: 16/8; object-fit: cover; display: block; }
.apb-rx-pfmap-card b { display: block; padding: 10px 12px 2px; font-size: 13.5px; font-weight: 750; color: var(--apb-rx-ink); }
.apb-rx-pfmap-card span { display: block; padding: 0 12px 12px; font-size: 11.5px; color: var(--apb-rx-muted); }
.apb-rx-pfmap-legend { display: flex; justify-content: center; gap: 22px; margin-top: 18px; font-size: 12.5px; color: var(--apb-rx-muted); flex-wrap: wrap; }
.apb-rx-pfmap-legend b { color: var(--apb-rx-ink); }
@media (max-width: 720px) { .apb-rx-pfmap-canvas { aspect-ratio: 4/5; } .apb-rx-pfmap-card { width: 180px; } }
@media (prefers-reduced-motion: reduce) { .apb-rx-pfmap-pin::before { animation: none; opacity: 0; } }

/* ============================ quote_pairs ============================ */
.apb-rx-pfqp { padding: clamp(56px,10vh,110px) 24px; background: var(--apb-rx-surface); }
.apb-rx-pfqp-wrap { max-width: 1040px; margin: 0 auto; }
.apb-rx-pfqp-pair { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(20px,3.5vw,44px); align-items: center; padding: clamp(24px,4vh,38px) 0; border-top: var(--apb-rx-border,1px) solid var(--apb-rx-line); }
.apb-rx-pfqp-pair--solo { grid-template-columns: 1fr; }
.apb-rx-pfqp-pair:first-child { border-top: none; }
.apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) { grid-template-columns: .9fr 1.1fr; }
.apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) .apb-rx-pfqp-media { order: 2; }
.apb-rx-pfqp-media { position: relative; display: block; border-radius: var(--apb-rx-radius); overflow: hidden; box-shadow: var(--apb-rx-shadow-2); text-decoration: none; }
.apb-rx-pfqp-media img { width: 100%; aspect-ratio: 16/10; object-fit: cover; display: block; transition: transform var(--apb-rx-t-slow,.55s); }
.apb-rx-pfqp-media:hover img { transform: scale(1.03); }
.apb-rx-pfqp-media span { position: absolute; left: 12px; bottom: 12px; font-size: 11.5px; font-weight: 700; color: #fff; background: color-mix(in srgb, var(--apb-rx-ink) 55%, transparent); backdrop-filter: blur(6px); border-radius: var(--apb-rx-radius-pill,999px); padding: 5px 12px; }
.apb-rx-pfqp-words { position: relative; padding-left: 22px; }
.apb-rx-pfqp-words::before { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; border-radius: 2px; background: var(--apb-rx-brand); }
.apb-rx-pfqp-words blockquote { margin: 0 0 14px; font-family: var(--apb-rx-font-display,inherit); font-weight: 700; font-size: clamp(17px,2.1vw,23px); letter-spacing: -.012em; line-height: 1.4; color: var(--apb-rx-ink); }
.apb-rx-pfqp-who { display: flex; align-items: center; gap: 11px; }
.apb-rx-pfqp-who img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex: none; }
.apb-rx-pfqp-who b { display: block; font-size: 13.5px; font-weight: 700; color: var(--apb-rx-ink); }
.apb-rx-pfqp-who span span { font-size: 12px; color: var(--apb-rx-muted); }
.apb-rx-pfqp-link { display: inline-flex; align-items: center; gap: 7px; margin-top: 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--apb-rx-accent-text,var(--apb-rx-brand)); text-decoration: none; }
.apb-rx-pfqp-link:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 780px) {
  .apb-rx-pfqp-pair, .apb-rx-pfqp-pair--solo, .apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) { grid-template-columns: 1fr; }
  .apb-rx-pfqp-pair:nth-child(even):not(.apb-rx-pfqp-pair--solo) .apb-rx-pfqp-media { order: 0; }
}
@media (prefers-reduced-motion: reduce) { .apb-rx-pfqp-media img { transition: none; } }
