/* PetEvia foundation only. Theme owns color values; native Grid owns columns. */
.pv-foundation-heading {
  color: var(--eth-text-title);
  font-size: clamp(1.7rem, 2.5vw, 2.2rem);
  line-height: var(--eth-lh-heading);
  letter-spacing: -.035em;
  margin: 0 0 var(--eth-space-xs);
}
.pv-foundation-kicker {
  color: var(--eth-primary);
  font-size: var(--eth-fs-xs);
  font-weight: var(--eth-fw-bold);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pv-foundation-lead {
  color: var(--eth-text-muted);
  max-width: var(--eth-content-measure);
  font-size: var(--eth-fs-body);
  line-height: var(--eth-lh-body);
  margin: 0 0 var(--eth-space-m);
}
.pv-foundation-panel {
  padding: var(--eth-component-pad-m);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-m);
  background: var(--eth-bg-surface);
  color: var(--eth-text-body);
  min-width: 0;
}
.pv-foundation-title {
  color: var(--eth-text-title);
  font-size: var(--eth-card-title-s);
  line-height: var(--eth-lh-heading);
  margin: 0;
}
.pv-foundation-copy {
  color: var(--eth-text-body);
  font-size: var(--eth-fs-small);
  line-height: var(--eth-lh-body);
  margin: 0;
}
.pv-foundation-token {
  color: var(--eth-text-muted);
  font-size: var(--eth-fs-xs);
  font-family: var(--eth-font-mono);
  overflow-wrap: anywhere;
  margin: 0;
}
.pv-foundation-swatch {
  position: relative;
  min-height: 6rem;
  border-radius: var(--eth-radius-s);
  border: 1px solid var(--eth-border);
}
.pv-foundation-swatch-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.pv-foundation-swatch--primary { background: var(--eth-primary); }
.pv-foundation-swatch--secondary { background: var(--eth-secondary); }
.pv-foundation-swatch--tertiary { background: var(--eth-tertiary); }
.pv-foundation-swatch--body { background: var(--eth-bg-body); }
.pv-foundation-swatch--surface { background: var(--eth-bg-surface); }
.pv-foundation-swatch--muted { background: var(--eth-bg-muted); }
.pv-foundation-swatch--warm { background: var(--eth-bg-warm); }
.pv-foundation-swatch--primary-soft { background: var(--eth-bg-primary-soft); }
.pv-foundation-swatch--secondary-soft { background: var(--eth-bg-secondary-soft); }
.pv-foundation-swatch--tertiary-soft { background: var(--eth-bg-tertiary-soft); }
.pv-foundation-swatch--brand-dark { background: var(--eth-bg-brand-dark); }
.pv-foundation-swatch--border { background: var(--eth-border); }
.pv-foundation-chip {
  display: inline-block;
  padding: .35rem .65rem;
  background: var(--eth-bg-primary-soft);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-full);
  color: var(--eth-primary);
  font-size: var(--eth-fs-xs);
}
.pv-foundation-note {
  padding: var(--eth-component-pad-s);
  background: var(--eth-bg-warm);
  border: 1px solid var(--eth-border-warm);
  border-radius: var(--eth-radius-s);
  color: var(--eth-text-body);
  font-size: var(--eth-fs-small);
  line-height: var(--eth-lh-body);
}
.pv-foundation-inverse {
  padding: var(--eth-component-pad-l);
  background: var(--eth-bg-body);
  border-radius: var(--eth-radius-l);
  color: var(--eth-text-body);
}
.pv-foundation-inverse .pv-foundation-title {
  color: var(--eth-text-title);
}
.pv-foundation-inverse .pv-foundation-copy {
  color: var(--eth-text-body);
}
.pv-foundation-editable-sample {
  padding: var(--eth-component-pad-m);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-m);
  background: var(--eth-bg-surface);
}

/* PetEvia shared modules, batch 1. Theme tokens own colors and density.
 * Grid placement/columns are native attributes. Each card owns its appearance.
 * Native explicit appearance fields remain inherit and can override this CSS. */
.pv-section-kicker {
  color: var(--eth-primary);
  font-size: var(--eth-fs-xs);
  font-weight: var(--eth-fw-bold);
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 0 0 var(--eth-space-2xs);
}
.pv-section-heading {
  color: var(--eth-text-title);
  font-size: var(--eth-fs-h2);
  line-height: var(--eth-lh-heading);
  letter-spacing: -.035em;
  margin: 0 0 var(--eth-space-xs);
}
.pv-section-lead {
  color: var(--eth-text-muted);
  font-size: var(--eth-fs-small);
  line-height: var(--eth-lh-body);
  max-width: var(--eth-content-measure);
  margin: 0 0 var(--eth-space-m);
}
.pv-module-note {
  color: var(--eth-text-muted);
  font-size: var(--eth-fs-xs);
  line-height: var(--eth-lh-body);
  margin: var(--eth-space-xs) 0 0;
}
.pv-feature-card {
  --pv-accent: var(--eth-primary);
  --pv-tint: var(--eth-bg-primary-soft);
  --pv-label-ink: var(--eth-primary);
  position: relative;
  min-width: 0;
  height: 100%;
  padding: var(--eth-component-pad-m);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-m);
  background: var(--eth-bg-surface);
  color: var(--eth-text-body);
  overflow: hidden;
  transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m), background var(--eth-transition-m);
}
.pv-feature-card--secondary {
  --pv-accent: var(--eth-secondary);
  --pv-tint: var(--eth-bg-secondary-soft);
  --pv-label-ink: color-mix(in srgb, var(--eth-secondary) 65%, var(--eth-text-title));
}
.pv-feature-card--tertiary {
  --pv-accent: var(--eth-tertiary);
  --pv-tint: var(--eth-bg-tertiary-soft);
  --pv-label-ink: var(--eth-tertiary);
}
.pv-feature-card--home { min-height: 8.625rem; padding: calc(var(--eth-component-pad-m) * .875) calc(var(--eth-component-pad-m) * .75); }
.pv-feature-card--cat { min-height: 7.375rem; padding: calc(var(--eth-component-pad-m) * .8); }
.pv-feature-card--dog { min-height: 7.5rem; padding: calc(var(--eth-component-pad-m) * .875); }
.pv-feature-card--supplements { min-height: 7.6875rem; }
.pv-feature-copy { min-width: 0; flex: 1 1 0; }
.pv-feature-card--arrow .pv-feature-copy { padding-inline-end: var(--eth-component-pad-s); }
.pv-feature-icon {
  width: calc(var(--eth-component-pad-s) * 2.5);
  height: calc(var(--eth-component-pad-s) * 2.5);
  flex: 0 0 auto;
  border-radius: var(--eth-radius-s);
  background: var(--pv-tint);
  color: var(--pv-accent);
  transition: transform var(--eth-transition-m), background var(--eth-transition-m), color var(--eth-transition-m);
}
.pv-feature-icon .etb-icon__glyph { width: 50%; height: 50%; }
.pv-feature-icon svg { width: 100%; height: 100%; }
.pv-feature-label {
  display: block;
  color: var(--pv-label-ink);
  font-size: calc(var(--eth-fs-xs) * .75);
  font-weight: var(--eth-fw-bold);
  line-height: 1.5;
  letter-spacing: .1em;
  margin: 0 0 .375rem;
}
.pv-feature-title {
  color: var(--eth-text-title);
  font-size: var(--eth-card-title-s);
  font-weight: var(--eth-fw-heading);
  line-height: var(--eth-lh-heading);
  letter-spacing: -.02em;
  margin: 0 0 .375rem;
}
.pv-feature-card--home .pv-feature-title,
.pv-feature-card--cat .pv-feature-title { font-size: calc(var(--eth-card-title-s) * .94); }
.pv-feature-title a { color: inherit; text-decoration: none; }
.pv-feature-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pv-feature-title a:focus-visible { outline: none; }
.pv-feature-copytext {
  color: var(--eth-text-muted);
  font-size: calc(var(--eth-fs-xs) * .92);
  line-height: 1.6;
  margin: 0;
}
.pv-feature-arrow {
  position: absolute;
  inset-inline-end: var(--eth-component-pad-s);
  top: var(--eth-component-pad-s);
  width: .875rem;
  height: .875rem;
  color: var(--pv-accent);
  pointer-events: none;
}
.pv-feature-arrow .etb-icon__glyph, .pv-feature-arrow svg { width: 100%; height: 100%; }
.pv-feature-card--linked::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  height: 3px;
  background: var(--pv-accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--eth-transition-m);
}
@media (hover: hover) and (pointer: fine) {
.pv-feature-card:hover { transform: translateY(-3px); border-color: var(--pv-accent); box-shadow: var(--eth-shadow-s); }
}

.pv-feature-card--linked:focus-within { outline: 2px solid var(--pv-accent); outline-offset: 3px; box-shadow: var(--eth-focus-ring); }
.pv-feature-card--linked:focus-within::after { transform: scaleX(1); }
@media (hover: hover) and (pointer: fine) {
.pv-feature-card--linked:hover::after { transform: scaleX(1); }
}

.pv-feature-card--supplements:focus-within { background: var(--pv-tint); transform: translateY(-5px); }
@media (hover: hover) and (pointer: fine) {
.pv-feature-card--supplements:hover { background: var(--pv-tint); transform: translateY(-5px); }
}

.pv-feature-card--supplements:focus-within .pv-feature-icon { transform: rotate(-6deg); }
@media (hover: hover) and (pointer: fine) {
.pv-feature-card--supplements:hover .pv-feature-icon { transform: rotate(-6deg); }
}

.pv-source-section { background: var(--eth-bg-warm); }
.pv-source-section--compact { background: var(--eth-bg-surface); }
.pv-source-card {
  --pv-accent: var(--eth-primary);
  --pv-tint: var(--eth-bg-primary-soft);
  --pv-label-ink: var(--eth-primary);
  min-width: 0;
  height: 100%;
  padding: var(--eth-component-pad-m);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-m);
  background: var(--eth-bg-surface);
  color: var(--eth-text-body);
  transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m);
}
.pv-source-card--stock {
  --pv-accent: var(--eth-secondary);
  --pv-tint: var(--eth-bg-secondary-soft);
  --pv-label-ink: color-mix(in srgb, var(--eth-secondary) 65%, var(--eth-text-title));
  background: var(--eth-bg-secondary-soft);
  border-color: color-mix(in srgb, var(--eth-secondary) 20%, var(--eth-bg-surface));
}
.pv-source-card--private { --pv-tint: var(--eth-bg-primary-soft); }
.pv-source-card--custom {
  --pv-accent: var(--eth-tertiary);
  --pv-tint: var(--eth-bg-tertiary-soft);
  --pv-label-ink: var(--eth-tertiary);
}
.pv-source-card--home { min-height: 27.5rem; box-shadow: var(--eth-shadow-xs); }
.pv-source-card--service { min-height: 19rem; }
.pv-source-card--compact { min-height: 18.5rem; }
.pv-source-card--compact.pv-source-card--stock { background: color-mix(in srgb, var(--eth-bg-secondary-soft) 55%, var(--eth-bg-surface)); }
.pv-source-card--compact.pv-source-card--private { background: color-mix(in srgb, var(--eth-bg-primary-soft) 65%, var(--eth-bg-surface)); }
.pv-source-card--compact.pv-source-card--custom { background: var(--eth-bg-tertiary-soft); }
.pv-source-label {
  color: var(--pv-label-ink);
  font-size: calc(var(--eth-fs-xs) * .75);
  line-height: 1.5;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: var(--eth-fw-bold);
  margin: 0;
}
.pv-source-highlight {
  align-self: flex-start;
  padding: .4375rem .625rem;
  border: 1px solid color-mix(in srgb, var(--pv-accent) 35%, var(--eth-bg-surface));
  border-radius: var(--eth-radius-xs);
  background: var(--eth-bg-surface);
  color: var(--pv-label-ink);
  font-size: calc(var(--eth-fs-xs) * .75);
  line-height: 1.5;
  font-weight: var(--eth-fw-bold);
}
.pv-source-icon {
  width: calc(var(--eth-component-pad-s) * 2.5);
  height: calc(var(--eth-component-pad-s) * 2.5);
  border-radius: var(--eth-radius-s);
  background: var(--pv-tint);
  color: var(--pv-accent);
}
.pv-source-icon .etb-icon__glyph { width: 50%; height: 50%; }
.pv-source-icon svg { width: 100%; height: 100%; }
.pv-source-title {
  color: var(--eth-text-title);
  font-size: calc(var(--eth-card-title-m) * 1.1);
  font-weight: var(--eth-fw-heading);
  line-height: var(--eth-lh-heading);
  letter-spacing: -.025em;
  margin: 0;
}
.pv-source-card--compact .pv-source-title { font-size: calc(var(--eth-card-title-m) * .95); }
.pv-source-copy {
  color: var(--eth-text-muted);
  font-size: calc(var(--eth-fs-xs) * .92);
  line-height: 1.72;
  margin: 0;
}
.pv-source-detail {
  border-top: 1px solid var(--eth-border);
  padding-block-start: var(--eth-component-pad-xs);
  align-items: flex-start;
}
.pv-source-detail-key {
  min-width: 4.4rem;
  color: var(--eth-text-title);
  font-size: calc(var(--eth-fs-xs) * .85);
  font-weight: var(--eth-fw-bold);
}
.pv-source-detail-value {
  flex: 1 1 0;
  min-width: 0;
  color: var(--eth-text-muted);
  font-size: calc(var(--eth-fs-xs) * .85);
  line-height: 1.55;
  margin: 0;
}
.pv-source-point {
  padding: .3125rem .4375rem;
  background: var(--eth-bg-surface);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-xs);
  color: var(--eth-text-body);
  font-size: calc(var(--eth-fs-xs) * .75);
  line-height: 1.5;
}
.pv-source-actions { padding-block-start: var(--eth-component-pad-xs); align-items: flex-start; }
.pv-source-action { font-size: calc(var(--eth-fs-xs) * .94); line-height: 1.5; font-weight: var(--eth-fw-bold); }
@media (hover: hover) and (pointer: fine) {
.pv-source-card:hover { transform: translateY(-3px); border-color: var(--pv-accent); box-shadow: var(--eth-shadow-s); }
}

@media (hover: hover) and (pointer: fine) {
.pv-source-card--service:hover { transform: translateY(-4px); border-color: var(--pv-accent); box-shadow: var(--eth-shadow-s); }
}

.pv-source-card:focus-within { border-color: var(--pv-accent); }
@media (max-width: 768px) {
  .pv-feature-card, .pv-source-card { min-height: 0; padding: var(--eth-component-pad-s); }
  .pv-feature-icon { width: calc(var(--eth-component-pad-s) * 2.25); height: calc(var(--eth-component-pad-s) * 2.25); }
}
@media (min-width: 769px) and (max-width: 1024px) {
  .pv-feature-card--home.pv-feature-card--tertiary { min-height: 6.875rem; }
  .pv-source-card--home.pv-source-card--custom { min-height: 16rem; }
  .pv-source-card--compact.pv-source-card--custom { min-height: 15rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pv-feature-card, .pv-feature-card::after, .pv-feature-icon, .pv-source-card { transition: none; }
  .pv-feature-card:hover, .pv-feature-card--supplements:focus-within, .pv-feature-card--supplements:hover .pv-feature-icon,
  .pv-feature-card--supplements:focus-within .pv-feature-icon, .pv-source-card--service:hover { transform: none; }
}

/* PetEvia batch 2: section overline, need navigation, trust/document panels.
 * Grid columns and placement stay in native attributes, not these rules. */
.pv-overline, .pv-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  max-width: 100%;
  color: var(--eth-primary);
  font-size: calc(var(--eth-fs-xs) * .85);
  font-weight: var(--eth-fw-bold);
  line-height: 1.5;
  letter-spacing: .14em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
  margin: 0 0 var(--eth-space-2xs);
}
.pv-overline::before, .pv-section-kicker::before {
  content: "";
  display: block;
  flex: 0 0 1.375rem;
  width: 1.375rem;
  height: 2px;
  background: var(--eth-secondary);
}
.pv-section-head { margin-block-end: var(--eth-component-pad-m); }
.pv-section-copy { flex: 1 1 0; min-width: 0; }
.pv-section-copy .pv-section-lead { margin-block-end: 0; }
.pv-section-link { flex-shrink: 0; font-size: var(--eth-fs-xs); }
.pv-need-directory--supplements { background: var(--eth-bg-primary-soft); }
.pv-need-card {
  position: relative;
  min-width: 0;
  height: 100%;
  min-height: 7rem;
  padding: var(--eth-component-pad-s);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-m);
  background: var(--eth-bg-surface);
  color: var(--eth-text-body);
  transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m), background var(--eth-transition-m);
}
.pv-need-card--supplements { min-height: 8rem; }
.pv-need-card--dog { padding: calc(var(--eth-component-pad-m) * .8); }
.pv-need-copy { min-width: 0; flex: 1 1 0; }
.pv-need-card--arrow .pv-need-copy { padding-inline-end: .75rem; }
.pv-need-icon {
  flex: 0 0 auto;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: var(--eth-radius-s);
  color: var(--eth-primary);
  background: var(--eth-bg-primary-soft);
}
.pv-need-icon .etb-icon__glyph { width: 52%; height: 52%; }
.pv-need-icon svg { width: 100%; height: 100%; }
.pv-need-title {
  color: var(--eth-text-title);
  font-size: calc(var(--eth-card-title-s) * .94);
  font-weight: var(--eth-fw-heading);
  line-height: var(--eth-lh-heading);
  letter-spacing: -.02em;
  margin: 0 0 .375rem;
}
.pv-need-card--supplements .pv-need-title { font-size: calc(var(--eth-card-title-s) * .88); }
.pv-need-title a { color: inherit; text-decoration: none; }
.pv-need-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pv-need-title a:focus-visible { outline: none; }
.pv-need-description { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .88); line-height: 1.6; margin: 0; }
.pv-need-arrow { position: absolute; top: 1.25rem; inset-inline-end: .875rem; width: .75rem; height: .75rem; color: var(--eth-tertiary); pointer-events: none; }
.pv-need-arrow .etb-icon__glyph, .pv-need-arrow svg { width: 100%; height: 100%; }
@media (hover: hover) and (pointer: fine) {
.pv-need-card:hover { transform: translateY(-3px); border-color: var(--eth-primary); box-shadow: var(--eth-shadow-s); }
}

.pv-need-card:focus-within { outline: 2px solid var(--eth-primary); outline-offset: 3px; box-shadow: var(--eth-focus-ring); }
.pv-trust-panel, .pv-document-panel, .pv-spec-document-panel {
  min-width: 0;
  height: 100%;
  padding: var(--eth-component-pad-l);
  border: 1px solid var(--eth-border);
  border-radius: var(--eth-radius-l);
  color: var(--eth-text-body);
}
.pv-trust-panel {
  --pv-panel-accent: var(--eth-secondary);
  --pv-panel-tint: var(--eth-bg-secondary-soft);
  background: var(--eth-bg-secondary-soft);
  border-color: color-mix(in srgb, var(--eth-secondary) 18%, var(--eth-bg-surface));
}
.pv-document-panel {
  --pv-panel-accent: var(--eth-tertiary);
  --pv-panel-tint: var(--eth-bg-tertiary-soft);
  background: var(--eth-bg-tertiary-soft);
  border-color: color-mix(in srgb, var(--eth-tertiary) 22%, var(--eth-bg-surface));
}
.pv-spec-document-panel {
  --pv-panel-accent: var(--eth-secondary);
  --pv-panel-tint: var(--eth-bg-secondary-soft);
  padding: var(--eth-component-pad-m);
  background: color-mix(in srgb, var(--eth-bg-secondary-soft) 55%, var(--eth-bg-surface));
  border-color: color-mix(in srgb, var(--eth-secondary) 18%, var(--eth-bg-surface));
}
.pv-spec-document-panel--documents {
  --pv-panel-accent: var(--eth-tertiary);
  --pv-panel-tint: var(--eth-bg-tertiary-soft);
  background: var(--eth-bg-tertiary-soft);
  border-color: color-mix(in srgb, var(--eth-tertiary) 22%, var(--eth-bg-surface));
}
.pv-panel-header { min-width: 0; }
.pv-panel-headcopy { min-width: 0; flex: 1 1 0; }
.pv-panel-title {
  color: var(--eth-text-title);
  font-size: calc(var(--eth-card-title-l) * 1.15);
  font-weight: var(--eth-fw-heading);
  line-height: 1.2;
  letter-spacing: -.035em;
  margin: 0 0 var(--eth-component-pad-xs);
}
.pv-panel-lead { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .96); line-height: 1.75; margin: 0; }
.pv-panel-corner { flex: 0 0 auto; width: 2.625rem; height: 2.625rem; color: var(--eth-primary); background: var(--eth-bg-surface); border-radius: var(--eth-radius-m); }
.pv-panel-corner .etb-icon__glyph { width: 50%; height: 50%; }
.pv-panel-corner svg { width: 100%; height: 100%; }
.pv-trust-tile {
  min-width: 0;
  height: 100%;
  padding: var(--eth-component-pad-s);
  border: 1px solid color-mix(in srgb, var(--eth-secondary) 20%, var(--eth-bg-surface));
  border-radius: var(--eth-radius-m);
  background: color-mix(in srgb, var(--eth-bg-surface) 85%, transparent);
}
.pv-trust-tile-copy { flex: 1 1 0; min-width: 0; }
.pv-trust-tile-icon { width: 2rem; height: 2rem; flex: 0 0 auto; border-radius: var(--eth-radius-s); color: var(--eth-secondary); background: var(--eth-bg-secondary-soft); }
.pv-trust-tile-icon .etb-icon__glyph { width: 55%; height: 55%; }
.pv-trust-tile-icon svg { width: 100%; height: 100%; }
.pv-trust-tile-title { color: var(--eth-text-title); font-size: calc(var(--eth-card-title-s) * .82); line-height: var(--eth-lh-heading); font-weight: var(--eth-fw-heading); margin: 0 0 .375rem; }
.pv-trust-tile-description { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .85); line-height: 1.6; margin: 0; }
.pv-panel-actions { padding-block-start: var(--eth-component-pad-s); }
.pv-panel-footnote { flex: 1 1 0; min-width: 0; color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .8); line-height: 1.65; margin: 0; }
.pv-document-level {
  min-width: 0;
  padding: var(--eth-component-pad-s);
  border: 1px solid color-mix(in srgb, var(--eth-tertiary) 18%, var(--eth-bg-surface));
  border-radius: var(--eth-radius-m);
  background: color-mix(in srgb, var(--eth-bg-surface) 80%, transparent);
}
.pv-document-level-copy { flex: 1 1 0; min-width: 0; }
.pv-document-number { flex: 0 0 auto; color: var(--eth-tertiary); font-size: calc(var(--eth-fs-xs) * .8); font-weight: var(--eth-fw-bold); line-height: 1.7; }
.pv-document-level-title { color: var(--eth-text-title); font-size: calc(var(--eth-card-title-s) * .84); line-height: 1.5; font-weight: var(--eth-fw-heading); margin: 0 0 .25rem; }
.pv-document-level-description { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .83); line-height: 1.6; margin: 0; }
.pv-document-chip { padding: .4375rem .625rem; color: var(--eth-tertiary); background: var(--eth-bg-surface); border: 1px solid color-mix(in srgb, var(--eth-tertiary) 30%, var(--eth-bg-surface)); border-radius: var(--eth-radius-xs); font-size: calc(var(--eth-fs-xs) * .8); line-height: 1.4; }
.pv-document-chip--icon { align-items: center; width: auto; flex: 0 0 auto; }
.pv-document-chip-icon { flex: 0 0 auto; width: .875rem; height: .875rem; color: var(--eth-tertiary); }
.pv-document-chip-icon .etb-icon__glyph, .pv-document-chip-icon svg { width: 100%; height: 100%; }
.pv-document-market { min-width: 0; padding: var(--eth-component-pad-s); border-radius: var(--eth-radius-m); border: 1px solid color-mix(in srgb, var(--eth-tertiary) 22%, var(--eth-bg-surface)); background: color-mix(in srgb, var(--eth-tertiary) 9%, var(--eth-bg-surface)); }
.pv-document-market-icon { flex: 0 0 auto; width: 2rem; height: 2rem; color: var(--eth-tertiary); background: var(--eth-bg-surface); border-radius: var(--eth-radius-s); }
.pv-document-market-icon .etb-icon__glyph { width: 55%; height: 55%; }
.pv-document-market-icon svg { width: 100%; height: 100%; }
.pv-destination-review { min-width: 0; padding: var(--eth-component-pad-m); border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m); background: var(--eth-bg-surface); margin-block-start: var(--eth-space-xs); }
.pv-destination-copy { flex: 1 1 0; min-width: 0; width: auto; }
.pv-destination-label { color: var(--eth-primary); font-size: calc(var(--eth-fs-xs) * .75); font-weight: var(--eth-fw-bold); letter-spacing: .1em; margin: 0 0 .5rem; }
.pv-destination-title { color: var(--eth-text-title); font-size: calc(var(--eth-card-title-s) * .85); font-weight: var(--eth-fw-heading); line-height: 1.5; margin: 0 0 .375rem; }
.pv-destination-description { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .85); line-height: 1.65; margin: 0; max-width: var(--eth-content-measure); }
.pv-destination-steps { flex: 0 1 auto; width: auto; max-width: 100%; }
.pv-destination-step { color: var(--eth-text-title); font-size: calc(var(--eth-fs-xs) * .8); line-height: 1.6; }
.pv-destination-step strong { display: inline-block; padding: .25rem .375rem; background: var(--eth-bg-primary-soft); color: var(--eth-primary); border-radius: var(--eth-radius-xs); margin-inline-end: .375rem; }
.pv-destination-arrow { color: var(--eth-text-muted); font-size: var(--eth-fs-xs); }
.pv-panel-label { color: color-mix(in srgb, var(--pv-panel-accent) 65%, var(--eth-text-title)); font-size: calc(var(--eth-fs-xs) * .75); font-weight: var(--eth-fw-bold); letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.pv-spec-title { color: var(--eth-text-title); font-size: var(--eth-card-title-m); font-weight: var(--eth-fw-heading); line-height: var(--eth-lh-heading); letter-spacing: -.025em; margin: 0; }
.pv-spec-documents--dog .pv-spec-title { font-size: calc(var(--eth-card-title-m) * 1.1); }
.pv-spec-copy { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .9); line-height: 1.75; margin: 0; }
.pv-spec-item { height: 100%; min-width: 0; padding: var(--eth-component-pad-xs); border: 1px solid var(--eth-border); border-radius: var(--eth-radius-s); background: color-mix(in srgb, var(--eth-bg-surface) 90%, transparent); }
.pv-spec-item-icon { flex: 0 0 auto; width: 1.75rem; height: 1.75rem; border-radius: var(--eth-radius-xs); color: var(--pv-panel-accent); background: var(--pv-panel-tint); }
.pv-spec-item-icon .etb-icon__glyph { width: 55%; height: 55%; }
.pv-spec-item-icon svg { width: 100%; height: 100%; }
.pv-spec-item-copy { min-width: 0; flex: 1 1 0; }
.pv-spec-item-title { color: var(--eth-text-title); font-size: calc(var(--eth-card-title-s) * .76); font-weight: var(--eth-fw-heading); line-height: 1.5; margin: 0 0 .25rem; }
.pv-spec-item-description { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .8); line-height: 1.6; margin: 0; }
.pv-spec-caveat { color: var(--eth-text-muted); font-size: calc(var(--eth-fs-xs) * .83); line-height: 1.7; margin: 0; }
.pv-spec-action { font-size: calc(var(--eth-fs-xs) * .85); }
@media (max-width: 768px) {
  .pv-trust-panel, .pv-document-panel { padding: var(--eth-component-pad-m); }
  .pv-spec-document-panel { padding: var(--eth-component-pad-s); }
  .pv-panel-title { font-size: var(--eth-card-title-l); }
  .pv-panel-corner { width: 2rem; height: 2rem; }
  .pv-trust-tile { padding: var(--eth-component-pad-xs); }
  .pv-trust-tile-icon { width: 1.75rem; height: 1.75rem; }
  .pv-destination-review { padding: var(--eth-component-pad-s); }
  .pv-need-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pv-need-card { transition: none; }
  .pv-need-card:hover { transform: none; }
}

/* Shared state repairs. Theme owns colors; each module owns its hover/focus. */
@media (hover: hover) and (pointer: fine) {
.pv-source-card--home:hover { box-shadow: var(--eth-shadow-m); }
}

.pv-source-card:focus-within { outline: 2px solid var(--pv-accent); outline-offset: 3px; }
.pv-trust-tile { transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m); }
@media (hover: hover) and (pointer: fine) {
.pv-trust-tile:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--eth-secondary) 55%, var(--eth-bg-surface)); box-shadow: var(--eth-shadow-s); }
}

.pv-document-level { transition: background var(--eth-transition-s), border-color var(--eth-transition-s); }
@media (hover: hover) and (pointer: fine) {
.pv-document-level:hover { background: var(--eth-bg-surface); border-color: color-mix(in srgb, var(--eth-tertiary) 45%, var(--eth-bg-surface)); }
}

.pv-panel-header .pv-panel-title { margin: 0; }
.pv-trust-panel .pv-panel-lead, .pv-document-panel .pv-panel-lead { margin: 0 0 .5rem; }
.pv-trust-tile-copy .pv-trust-tile-title { margin: 0 0 .25rem; }
.pv-trust-tile-copy .pv-trust-tile-description { margin: 0; }
.pv-document-level-copy .pv-document-level-title { margin: 0 0 .25rem; }
.pv-document-level-copy .pv-document-level-description { margin: 0; }
.pv-document-level-copy .pv-document-chips { margin-block-start: .625rem; }

/* Home appearance. Columns and spans are exclusively native Grid attributes. */
.pv-home-features { padding-block: 0 var(--eth-space-m); }
.pv-home-section-head { margin-block-end: 1.625rem; }
.pv-home-section-head .pv-overline { margin: 0; }
.pv-home-section-head .pv-section-heading { font-size: clamp(1.6875rem,2.5vw,2.1875rem); margin: .6rem 0 .75rem; }
.pv-home-section-head .pv-section-lead { font-size: .875rem; line-height: 1.76; margin: 0; }
.pv-home-header-copy { flex: 1 1 0; min-width: 0; }
.pv-home-header-actions { flex: 0 0 auto; width: auto; align-self: flex-end; }
.pv-home-link { font-size: .8125rem; font-weight: var(--eth-fw-bold); }
.pv-home-link .etb-button-block__button { font-size: inherit; }
.pv-home-products, .pv-home-quality { background: var(--eth-bg-body); }

/* Preserve native Hero spacing and heading-scale controls. */
.pv-home-hero .etb-hero.pv-business-hero .etb-hero__heading { font-size: calc(clamp(2.125rem,3.6vw,3.25rem) * var(--etb-heading-scale,.8) / .8); }
.pv-home-hero .etb-hero.pv-business-hero .etb-hero__heading br + .etb-inline-accent { font-size: clamp(1.6rem,2.7vw,2.375rem); }
.pv-home-hero .etb-hero__image { object-position: 65% center; }
.pv-home-hero .pv-home-hero-lead, .pv-home-hero .pv-home-hero-secondary { color: var(--eth-text-muted); font-size: .875rem; line-height: 1.77; margin: 0 0 .625rem; }
.pv-home-hero .etb-hero__body > .etb-button-block { display: inline-flex; width: auto; margin-block-start: .75rem; margin-inline-end: .5rem; }
.pv-home-hero .etb-button-block__button { font-size: .8125rem; }

/* Native Tabs: header and navigation share a flexible row; panels stay full width. */
.pv-product-eyebrow .pv-overline { margin: 0; }
.pv-home-products .pv-product-tabs.etb-tabs-content { margin: .6rem 0 0; }
.pv-product-tabs .etb-tabs-content__inner { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.5rem; }
.pv-product-tabs .etb-tabs-content__header { flex: 1 1 42rem; width: auto; align-items: flex-start; text-align: start; gap: .75rem; margin: 0; }
.pv-product-tabs .etb-tabs-content__title { width: 100%; text-align: start; font-size: calc(clamp(1.6875rem,2.5vw,2.1875rem) * var(--etb-heading-scale,1)); letter-spacing: -.038em; margin: 0; }
.pv-product-tabs .etb-tabs-content__desc { text-align: start; max-width: var(--eth-content-measure); font-size: .875rem; line-height: 1.76; margin: 0; }
.pv-product-tabs.is-style-pill .etb-tabs-content__nav { flex: 0 0 auto; width: auto; padding: .3125rem; gap: .1875rem; border: 1px solid var(--eth-border); border-radius: var(--eth-radius-s); background: var(--eth-bg-surface); }
.pv-product-tabs.is-style-pill .etb-tabs-content__tab { border: 0; border-radius: var(--eth-radius-xs); padding: .625rem .75rem; font-size: .75rem; font-weight: var(--eth-fw-bold); }
.pv-product-tabs .etb-tabs-content__panel { flex: 0 0 100%; min-width: 0; width: 100%; margin-top: 0; }
.pv-product-slot { color: var(--eth-text-muted); font-size: .8125rem; border: 1px dashed var(--eth-border); border-radius: var(--eth-radius-s); padding: var(--eth-component-pad-m); margin: var(--eth-space-xs) 0 0; background: var(--eth-bg-surface); }
.pv-range-intro { padding: var(--eth-component-pad-s); border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m); background: var(--eth-bg-primary-soft); min-width: 0; }
.pv-range-icon { width: 2.5rem; height: 2.5rem; flex: 0 0 2.5rem; border-radius: var(--eth-radius-s); background: var(--eth-bg-surface); color: var(--eth-primary); }
.pv-range-icon .etb-icon__glyph { width: 55%; height: 55%; }
.pv-range-icon svg { width: 100%; height: 100%; }
.pv-range-copy { flex: 1 1 0; min-width: 0; }
.pv-range-copy .pv-range-title { font-size: .875rem; color: var(--eth-text-title); margin: 0 0 .25rem; }
.pv-range-copy .pv-range-description { font-size: .75rem; line-height: 1.7; color: var(--eth-text-muted); margin: 0; }
.pv-range-link { width: auto; flex: 0 0 auto; font-size: .75rem; }
.pv-range-link .etb-button-block__button { font-size: inherit; }
.pv-product-footer { margin-top: var(--eth-space-xs); }
.pv-product-footer-note { width: auto; margin: 0; font-size: .75rem; line-height: 1.6; color: var(--eth-text-muted); }

.pv-home-discovery, .pv-home-process { background: var(--eth-bg-primary-soft); }
.pv-discovery-panel { height: 100%; padding: var(--eth-component-pad-m); border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m); background: var(--eth-bg-surface); min-width: 0; }
.pv-discovery-title { color: var(--eth-text-title); font-size: 1.3125rem; letter-spacing: -.025em; margin: 0 0 .375rem; }
.pv-wellness-entry { position: relative; border-bottom: 1px solid var(--eth-border); padding-block: .75rem; min-width: 0; }
.pv-wellness-icon { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; color: var(--eth-primary); }
.pv-wellness-icon .etb-icon__glyph, .pv-wellness-icon svg { width: 100%; height: 100%; }
.pv-wellness-copy { flex: 1 1 0; width: auto; min-width: 0; }
.pv-wellness-title { color: var(--eth-text-title); font-size: .8125rem; line-height: 1.45; margin: 0 0 .25rem; transition: color var(--eth-transition-s); }
.pv-wellness-title a { color: inherit; text-decoration: none; }
.pv-wellness-title a::after { content: ""; position: absolute; inset: 0; }
.pv-wellness-description, .pv-discovery-note { color: var(--eth-text-muted); font-size: .75rem; line-height: 1.65; margin: 0; }
.pv-wellness-arrow { flex: 0 0 .8125rem; width: .8125rem; height: .8125rem; color: var(--eth-primary); pointer-events: none; transition: transform var(--eth-transition-s); }
.pv-wellness-arrow .etb-icon__glyph, .pv-wellness-arrow svg { width: 100%; height: 100%; }
.pv-wellness-entry:focus-within .pv-wellness-title { color: var(--eth-primary); }
@media (hover: hover) and (pointer: fine) {
.pv-wellness-entry:hover .pv-wellness-title { color: var(--eth-primary); }
}

@media (hover: hover) and (pointer: fine) {
.pv-wellness-entry:hover .pv-wellness-arrow { transform: translate(3px,-3px); }
}

.pv-wellness-entry:focus-within { outline: 2px solid var(--eth-primary); outline-offset: 3px; }
.pv-discovery-note { margin-block-start: .5rem; }
.pv-animal-card { min-width: 0; position: relative; min-height: 14.75rem; border-radius: var(--eth-radius-m); overflow: hidden; background: var(--eth-bg-brand-dark); transition: transform var(--eth-transition-m), box-shadow var(--eth-transition-m); }
.pv-animal-image { margin: 0; position: absolute; inset: 0; height: 100%; }
.pv-animal-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; transition: transform var(--eth-transition-m); }
.pv-animal-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(transparent 35%,color-mix(in srgb,var(--eth-bg-brand-dark) 90%,transparent)); }
.pv-animal-badge { position: absolute; z-index: 1; left: .6875rem; top: .6875rem; padding: .35rem .5rem; background: var(--eth-bg-warm); color: var(--eth-text-title); font-size: .625rem; font-weight: var(--eth-fw-bold); border-radius: var(--eth-radius-xs); }
.pv-animal-caption { position: absolute; z-index: 1; bottom: 0; padding: .875rem; padding-inline-end: 1.875rem; width: 100%; }
.pv-animal-title { font-size: 1.0625rem; line-height: 1.35; margin: 0 0 .3rem; color: var(--eth-light); }
.pv-animal-title a { color: inherit; text-decoration: none; }
.pv-animal-title a::after { content: ""; position: absolute; inset: -16rem 0 0; }
.pv-animal-description { color: var(--eth-light); font-size: .75rem; line-height: 1.5; margin: 0; }
.pv-animal-arrow { position: absolute; z-index: 2; bottom: 1rem; right: .75rem; width: 1rem; height: 1rem; color: var(--eth-light); pointer-events: none; }
.pv-animal-arrow .etb-icon__glyph, .pv-animal-arrow svg { width: 100%; height: 100%; }
.pv-animal-card:focus-within { transform: translateY(-3px); box-shadow: var(--eth-shadow-m); }
@media (hover: hover) and (pointer: fine) {
.pv-animal-card:hover { transform: translateY(-3px); box-shadow: var(--eth-shadow-m); }
}

@media (hover: hover) and (pointer: fine) {
.pv-animal-card:hover img { transform: scale(1.04); }
}

.pv-animal-card:focus-within { outline: 2px solid var(--eth-secondary); outline-offset: 3px; }
.pv-home-scope-note { color: var(--eth-text-muted); font-size: .75rem; line-height: 1.6; margin: var(--eth-space-xs) 0 0; text-align: center; }

.pv-audience-intro { height: 100%; min-width: 0; padding: var(--eth-component-pad-l); border-radius: var(--eth-radius-m); background: var(--eth-bg-primary-soft); }
.pv-audience-label { color: var(--eth-primary); font-size: .6875rem; font-weight: var(--eth-fw-bold); letter-spacing: .11em; }
.pv-audience-intro-title { color: var(--eth-text-title); font-size: 1.625rem; line-height: 1.22; letter-spacing: -.035em; margin: 1.125rem 0 .8125rem; }
.pv-audience-copy { color: var(--eth-text-muted); font-size: .8125rem; line-height: 1.7; margin: 0; }
.pv-audience-actions { padding-block-start: var(--eth-space-m); }
.pv-audience-card { height: 100%; min-width: 0; padding: 1.3125rem 1.375rem; border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m); background: var(--eth-bg-surface); transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m); }
.pv-audience-icon { width: 2.25rem; height: 2.25rem; margin-bottom: .6875rem; color: var(--eth-primary); background: var(--eth-bg-primary-soft); border-radius: var(--eth-radius-s); }
.pv-audience-icon .etb-icon__glyph { width: 50%; height: 50%; }
.pv-audience-icon svg { width: 100%; height: 100%; }
.pv-audience-body .pv-audience-title { font-size: 1rem; color: var(--eth-text-title); line-height: 1.35; margin: 0 0 .5rem; letter-spacing: -.025em; }
.pv-audience-fit { color: var(--eth-primary); font-size: .6875rem; font-weight: var(--eth-fw-bold); }
@media (hover: hover) and (pointer: fine) {
.pv-audience-card:hover { transform: translateY(-3px); border-color: color-mix(in srgb,var(--eth-primary) 40%,var(--eth-bg-surface)); box-shadow: var(--eth-shadow-m); }
}


.pv-approach-panel { overflow: hidden; border-radius: var(--eth-radius-l); background: var(--eth-bg-body); }
.pv-approach-grid { gap: 0; }
.pv-approach-visual { position: relative; min-height: 24.5rem; height: 100%; }
.pv-approach-image { position: absolute; inset: 0; margin: 0; height: 100%; }
.pv-approach-image img { width: 100%; height: 100%; object-fit: cover; }
.pv-approach-visual::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,transparent,color-mix(in srgb,var(--eth-bg-brand-dark) 45%,transparent)); }
.pv-approach-overlay { position: absolute; z-index: 1; bottom: 1.4375rem; left: 1.625rem; padding: .6rem .8rem; background: var(--eth-light); color: var(--eth-bg-brand-dark); font-size: .625rem; font-weight: var(--eth-fw-bold); letter-spacing: .06em; border-radius: var(--eth-radius-xs); max-width: calc(100% - 3rem); }
.pv-approach-content { padding: 3rem 3.5rem; min-width: 0; }
.pv-approach-content .pv-overline, .pv-inquiry-intro .pv-overline { color: var(--eth-text-muted); }
.pv-approach-content .pv-overline { margin: 0 0 1.125rem; }
.pv-approach-title { color: var(--eth-text-title); font-size: clamp(1.875rem,3.1vw,2.5625rem); line-height: 1.16; letter-spacing: -.04em; margin: 0 0 1.125rem; }
.pv-approach-title em { font-style: normal; color: color-mix(in srgb,var(--eth-primary) 30%,var(--eth-light)); }
.pv-approach-copy { color: var(--eth-text-body); font-size: .8125rem; line-height: 1.8; margin: 0 0 .5625rem; }
.pv-approach-points { display: flex; flex-wrap: wrap; gap: .75rem 1.1875rem; list-style: none; padding: 0; margin: 1.125rem 0 .9375rem; color: var(--eth-text-body); font-size: .75rem; font-weight: var(--eth-fw-bold); }
.pv-approach-points li::before { content: "✓"; margin-inline-end: .375rem; }
.pv-approach-tagline { color: var(--eth-text-title); font-size: .8125rem; font-weight: var(--eth-fw-bold); margin: 0; }

.pv-process-step { position: relative; height: 100%; min-width: 0; padding: 1.5rem 1.4375rem 1.625rem; background: var(--eth-bg-surface); border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m); }
.pv-process-number { color: color-mix(in srgb,var(--eth-secondary) 65%,var(--eth-text-title)); font-size: .75rem; font-weight: var(--eth-fw-bold); letter-spacing: .1em; }
.pv-process-step .pv-process-title { font-size: 1.0625rem; color: var(--eth-text-title); margin: 0; line-height: 1.35; }
.pv-process-step .pv-process-copy { font-size: .8125rem; color: var(--eth-text-muted); line-height: 1.7; margin: 0; }
.pv-process-arrow { position: absolute; right: -.875rem; top: 1.8125rem; z-index: 1; width: 1.25rem; height: 1.25rem; color: color-mix(in srgb,var(--eth-primary) 50%,var(--eth-bg-surface)); pointer-events: none; }
.pv-process-arrow .etb-icon__glyph, .pv-process-arrow svg { width: 100%; height: 100%; }
.pv-faq-answer { font-size: .8125rem; color: var(--eth-text-muted); line-height: 1.8; margin: 0; }
.pv-faq-accordion { width: 100%; }
.pv-faq-accordion .etb-accordion__question { font-size: .875rem; line-height: 1.5; padding-block: 1.0625rem; }
.pv-faq-accordion .etb-accordion__answer { padding-block: 0 1.125rem; }

.pv-inquiry-shell { gap: 0; border-radius: var(--eth-radius-l); overflow: hidden; box-shadow: var(--eth-shadow-s); }
.pv-inquiry-intro { height: 100%; padding: var(--eth-space-m); background: var(--eth-bg-body); min-width: 0; }
.pv-inquiry-title { color: var(--eth-text-title); font-size: clamp(1.875rem,2.5vw,2.25rem); line-height: 1.18; letter-spacing: -.035em; margin: 0 0 .9375rem; }
.pv-inquiry-copy { color: var(--eth-text-body); font-size: .8125rem; line-height: 1.8; margin: 0 0 .8125rem; }
.pv-inquiry-check { color: var(--eth-text-body); font-size: .8125rem; margin: 0; }
.pv-inquiry-mark { color: var(--eth-text-muted); font-size: .75rem; margin: var(--eth-space-m) 0 0; }
.pv-inquiry-placeholder { height: 100%; min-height: 24rem; padding: var(--eth-space-m); background: var(--eth-bg-warm); justify-content: center; min-width: 0; }
.pv-inquiry-form-title { color: var(--eth-text-title); font-size: 1.375rem; margin: 0 0 var(--eth-space-s); }
.pv-inquiry-placeholder-label { color: var(--eth-primary); font-size: 1.125rem; font-weight: var(--eth-fw-bold); padding: var(--eth-component-pad-m); border: 1px dashed var(--eth-border-strong); border-radius: var(--eth-radius-m); margin: 0; }
.pv-inquiry-placeholder-copy, .pv-inquiry-placeholder-note { color: var(--eth-text-muted); font-size: .8125rem; line-height: 1.7; margin: 0; }

/* Same three tiers as the theme's native Grid. No reference-specific breakpoints. */
@media (max-width:1024px) {
  .pv-home-header-copy { flex: none; width: 100%; }
  .pv-home-header-actions { align-self: flex-start; }
  .pv-product-tabs .etb-tabs-content__inner { align-items: flex-start; }
  .pv-product-tabs .etb-tabs-content__header { flex: 0 0 100%; }
  .pv-product-tabs.is-style-pill .etb-tabs-content__nav { justify-content: flex-start; }
  .pv-range-link { white-space: normal; max-width: 12rem; }
  .pv-approach-visual { min-height: 18rem; }
  .pv-approach-content { padding: var(--eth-component-pad-l); }
  .pv-process-arrow--desktop { display: none; }
}
@media (max-width:768px) {
  .pv-product-tabs.is-style-pill .etb-tabs-content__nav { width: 100%; }
  .pv-product-tabs.is-style-pill .etb-tabs-content__tab { flex: 1 1 0; min-width: 0; padding-inline: .375rem; }
  .pv-range-copy { flex: none; width: 100%; }
  .pv-range-icon { align-self: flex-start; }
  .pv-range-link { max-width: none; align-self: flex-start; }
  .pv-discovery-panel { padding: var(--eth-component-pad-s); }
  .pv-wellness-entry { gap: .375rem; }
  .pv-wellness-icon { flex-basis: .9375rem; width: .9375rem; height: .9375rem; }
  .pv-wellness-title { font-size: .75rem; }
  .pv-wellness-arrow { display: none; }
  .pv-animal-card { min-height: 13rem; }
  .pv-animal-caption { padding: .625rem .625rem 1.8125rem; }
  .pv-animal-badge { left: .5rem; top: .5rem; font-size: .5625rem; }
  .pv-animal-title { font-size: .9375rem; }
  .pv-audience-intro, .pv-audience-card { padding: var(--eth-component-pad-m); }
  .pv-approach-visual { min-height: 15rem; }
  .pv-approach-content, .pv-inquiry-intro, .pv-inquiry-placeholder { padding: var(--eth-component-pad-m); }
  .pv-approach-points { flex-direction: column; gap: .5rem; }
  .pv-approach-overlay { left: 1rem; bottom: 1rem; max-width: calc(100% - 2rem); }
  .pv-process-step { padding: 1rem; }
  .pv-process-step .pv-process-title { font-size: .9375rem; }
  .pv-process-step .pv-process-copy { font-size: .75rem; }
  .pv-inquiry-placeholder { min-height: 18rem; }
}
@media (prefers-reduced-motion:reduce) {
  .pv-source-card--home, .pv-trust-tile, .pv-document-level, .pv-audience-card, .pv-animal-card, .pv-animal-image img, .pv-wellness-title, .pv-wellness-arrow { transition: none; }
  .pv-source-card--home:hover, .pv-trust-tile:hover, .pv-audience-card:hover, .pv-animal-card:hover, .pv-animal-card:focus-within, .pv-animal-card:hover img, .pv-wellness-entry:hover .pv-wellness-arrow { transform: none; }
}

/* Card feedback v1: native family defaults and explicit opt-in for new compositions.
   --item / --surface never lift their nested card contents. No layout ownership. */
.pv-process-step,
.pv-card-feedback--lift {
  transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m);
}
.pv-card-feedback--item,
.pv-card-feedback--surface {
  transition: background-color var(--eth-transition-s), border-color var(--eth-transition-s);
}
@media (hover: hover) and (pointer: fine) {
  .pv-process-step:hover,
  .pv-card-feedback--lift:hover {
    transform: translateY(-3px);
    border-color: color-mix(in srgb, var(--eth-primary) 40%, var(--eth-bg-surface));
    box-shadow: var(--eth-shadow-s);
  }
  .pv-card-feedback--item:hover {
    background-color: color-mix(in srgb, var(--eth-bg-primary-soft) 50%, var(--eth-bg-surface));
    border-color: color-mix(in srgb, var(--eth-primary) 35%, var(--eth-bg-surface));
  }
  .pv-card-feedback--surface:hover {
    border-color: color-mix(in srgb, var(--eth-primary) 35%, var(--eth-bg-surface));
  }
}
.pv-process-step:focus-within,
.pv-audience-card:focus-within,
.pv-card-feedback--lift:focus-within,
.pv-card-feedback--item:focus-within,
.pv-card-feedback--surface:focus-within {
  outline: 2px solid var(--eth-primary);
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .pv-process-step, .pv-source-card,
  .pv-card-feedback--lift, .pv-card-feedback--item, .pv-card-feedback--surface { transition: none; }
  .pv-process-step:hover, .pv-source-card:hover,
  .pv-card-feedback--lift:hover { transform: none; }
}

/* About variants and reusable content families. Theme tokens and native Grid own layout. */
.pv-about-hero .etb-hero.pv-business-hero .etb-hero__heading { font-size: clamp(2.125rem,3.6vw,3.25rem); line-height:1.1; letter-spacing:-.045em; }
.pv-about-hero-lead { font-size:.9375rem; line-height:1.85; color:var(--eth-text-muted); }
.pv-about-hero .etb-hero__media img { object-position:50% 40%; }
.pv-about-proof { padding-bottom:var(--eth-space-l); }
.pv-feature-card--about { display:flex; align-items:flex-start; gap:.8125rem; padding:1.1875rem; min-height:6.625rem; }
.pv-feature-card--about .pv-feature-icon { flex:0 0 2.5rem; width:2.5rem; height:2.5rem; margin:0; }
.pv-feature-card--about .pv-feature-title { font-size:.9375rem; }
.pv-feature-card--about .pv-feature-copytext { font-size:.8125rem; line-height:1.65; margin:0; }
.pv-about-heading { max-width:52rem; margin-bottom:1.75rem; }
.pv-about-heading .pv-section-heading, .pv-about-copy .pv-section-heading { margin:.6875rem 0 1rem; }
.pv-about-heading .pv-section-lead { margin:0; }
.pv-about-copy, .pv-about-copy p, .pv-about-copy h2 { min-width:0; }
.pv-about-body { font-size:.9375rem; line-height:1.85; color:var(--eth-text-muted); margin:0 0 .875rem; }
.pv-about-copy .pv-about-body:last-child { margin-bottom:0; }
.pv-about-story, .pv-about-cooperation, .pv-about-quality, .pv-about-final { background:var(--eth-bg-surface); }
.pv-about-range { background:var(--eth-bg-warm); }
.pv-about-partners { background:var(--eth-bg-primary-soft); }
.pv-about-process { background:var(--eth-bg-body); }
.pv-about-panel-head { margin-bottom:1.375rem; }
.pv-about-panel-label { font-size:.6875rem; text-transform:uppercase; letter-spacing:.1em; font-weight:var(--eth-fw-bold); color:var(--eth-primary); margin:0 0 .375rem; }
.pv-about-caption { font-size:.75rem; line-height:1.7; color:var(--eth-text-muted); margin:0; }
.pv-brand-relationship { background:var(--eth-bg-primary-soft); border:1px solid var(--eth-border); padding:var(--eth-component-pad-l); border-radius:var(--eth-radius-l); }
.pv-brand-relationship > .pv-about-caption { margin-top:1.125rem; }
.pv-relationship-node { position:relative; background:var(--eth-bg-surface); padding:1.125rem; border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); height:100%; }
.pv-relationship-node--partner::before { content:'→'; position:absolute; left:-1.5rem; top:45%; color:var(--eth-primary); pointer-events:none; }
.pv-about-tile-icon { display:flex; width:2.375rem; height:2.375rem; flex:0 0 2.375rem; padding:.625rem; border-radius:var(--eth-radius-s); color:var(--eth-primary); background:var(--eth-bg-primary-soft); margin-bottom:.875rem; }
.pv-relationship-node--partner .pv-about-tile-icon { color:var(--eth-secondary); background:var(--eth-bg-secondary-soft); }
.pv-about-tile-icon .etb-icon__glyph,.pv-about-tile-icon svg,.pv-about-mini-icon .etb-icon__glyph,.pv-about-mini-icon svg { width:100%; height:100%; }
.pv-about-card-title { color:var(--eth-text-title); font-size:1.0625rem; line-height:1.4; margin:0 0 .5rem; }
.pv-about-card-copy { color:var(--eth-text-muted); font-size:.8125rem; line-height:1.75; margin:0; }
.pv-range-card { background:var(--eth-bg-surface); border:1px solid var(--eth-border-warm); border-radius:var(--eth-radius-m); padding:var(--eth-component-pad-m); height:100%; }
.pv-about-number { color:var(--eth-secondary); font-size:.6875rem; font-weight:var(--eth-fw-bold); letter-spacing:.1em; margin:0 0 1.25rem; }
.pv-about-tag { display:inline-flex; font-size:.6875rem; margin:1rem 0 0; padding:.3125rem .5rem; }
.pv-source-card--about { display:flex; flex-direction:column; padding:var(--eth-component-pad-m); min-height:0; }
.pv-source-card--about .pv-source-service-icon { display:flex; width:2.625rem; height:2.625rem; padding:.625rem; border-radius:var(--eth-radius-s); color:var(--pv-accent); background:var(--eth-bg-surface); margin-bottom:1rem; }
.pv-source-card--about .pv-source-service-icon .etb-icon__glyph, .pv-source-card--about .pv-source-service-icon svg { width:100%; height:100%; }
.pv-source-card--about .pv-source-eyebrow { margin:0; font-size:.6875rem; font-weight:var(--eth-fw-bold); letter-spacing:.1em; text-transform:uppercase; color:var(--pv-label-ink); }
.pv-source-card--about .pv-source-title { font-size:1.3125rem; }
.pv-source-card--about .pv-source-description { font-size:.8125rem; line-height:1.8; margin:0; }
.pv-source-card--about.pv-source-card--private { background:var(--eth-bg-primary-soft); }
.pv-source-card--about.pv-source-card--custom { background:var(--eth-bg-tertiary-soft); }
.pv-about-card-actions { margin-top:auto; padding-top:1.25rem; }
.pv-about-card-actions .pv-about-link { padding-left:0; font-size:.8125rem; }
.pv-about-note { padding:.875rem; margin-top:1.375rem; border:1px solid var(--eth-border); border-radius:var(--eth-radius-s); background:var(--eth-bg-surface); }
.pv-about-note-icon { color:var(--eth-primary); width:1.125rem; flex:0 0 1.125rem; }
.pv-partner-workflow { background:var(--eth-bg-surface); border:1px solid var(--eth-border); border-radius:var(--eth-radius-l); padding:var(--eth-component-pad-m); box-shadow:var(--eth-shadow-xs); }
.pv-partner-step { padding:.9375rem .5rem; border:1px solid transparent; border-bottom-color:var(--eth-border); border-radius:var(--eth-radius-s); }
.pv-partner-step .pv-about-tile-icon { margin-bottom:0; }
.pv-partner-step .pv-about-card-title { font-size:.9375rem; }
.pv-partner-workflow > .pv-about-caption { margin-bottom:1rem; }
.pv-about-foot { font-size:.6875rem; line-height:1.7; color:var(--eth-text-muted); padding:.75rem; margin:1rem 0 0; background:var(--eth-bg-primary-soft); border-radius:var(--eth-radius-s); }
.pv-requirements-panel { padding:var(--eth-component-pad-m); border-radius:var(--eth-radius-m); border:1px solid var(--eth-border); height:100%; }
.pv-requirements-panel--documentation { background:var(--eth-bg-tertiary-soft); }
.pv-requirements-panel--market { background:var(--eth-bg-secondary-soft); }
.pv-about-panel-eyebrow { margin:0 0 .5rem; font-size:.6875rem; letter-spacing:.12em; font-weight:var(--eth-fw-bold); color:var(--eth-tertiary); }
.pv-requirements-panel--market .pv-about-panel-eyebrow { color:color-mix(in srgb,var(--eth-secondary) 65%,var(--eth-text-title)); }
.pv-about-panel-title { font-size:1.5rem; line-height:1.3; color:var(--eth-text-title); margin:0 0 .75rem; }
.pv-about-panel-lead { font-size:.8125rem; line-height:1.8; color:var(--eth-text-muted); margin:0 0 1.125rem; }
.pv-requirements-item { border:1px solid var(--eth-border); border-radius:var(--eth-radius-s); background:var(--eth-bg-surface); padding:.75rem; min-width:0; height:100%; }
.pv-requirements-item-copy { min-width:0; }
.pv-about-mini-icon { width:1.6875rem; height:1.6875rem; flex:0 0 1.6875rem; padding:.375rem; color:var(--eth-tertiary); background:var(--eth-bg-tertiary-soft); border-radius:var(--eth-radius-s); }
.pv-requirements-panel--market .pv-about-mini-icon { color:var(--eth-secondary); background:var(--eth-bg-secondary-soft); }
.pv-about-item-title { color:var(--eth-text-title); font-size:.8125rem; line-height:1.45; margin:0 0 .25rem; }
.pv-about-item-copy { color:var(--eth-text-muted); font-size:.75rem; line-height:1.7; margin:0; }
.pv-about-caveat { color:var(--eth-text-muted); font-size:.75rem; line-height:1.7; margin:1rem 0 0; }
.pv-process-step--compact { padding:1.1875rem; }
.pv-process-step--compact .pv-process-number { margin:0 0 .9375rem; }
.pv-process-step--compact .pv-process-title { margin:0 0 .5rem; font-size:1rem; }
.pv-process-step--compact .pv-process-copy { margin:0; font-size:.8125rem; }
.pv-image-cta { border-radius:var(--eth-radius-l); overflow:hidden; background:var(--eth-bg-brand-dark); }
.pv-image-cta-copy { padding:2.5rem; color:var(--eth-light); }
.pv-image-cta-copy .pv-overline { color:color-mix(in srgb,var(--eth-primary) 20%,var(--eth-light)); }
.pv-image-cta-title { color:var(--eth-light); font-size:clamp(1.75rem,2.7vw,2.375rem); line-height:1.2; margin:.75rem 0 1rem; }
.pv-image-cta-description { color:color-mix(in srgb,var(--eth-primary) 15%,var(--eth-light)); font-size:.875rem; line-height:1.8; margin:0; }
.pv-image-cta-actions { margin-top:1.5rem; }
.pv-image-cta-copy .eth-btn--primary { color:var(--eth-bg-brand-dark); background:var(--eth-light); border-color:var(--eth-light); }
.pv-image-cta-copy .eth-btn--outline { color:var(--eth-light); background:transparent; border-color:var(--eth-light); }
@media (hover:hover) and (pointer:fine) {
 .pv-image-cta-copy .eth-btn--primary:hover { background:var(--eth-bg-primary-soft); }
 .pv-image-cta-copy .eth-btn--outline:hover { color:var(--eth-bg-brand-dark); background:var(--eth-light); }
}
.pv-requirements-panel .pv-about-panel-eyebrow { margin:0 0 .5rem; }
.pv-requirements-panel .pv-about-caveat { margin:1rem 0 0; }
.pv-requirements-item-copy .pv-about-item-title { margin:0 0 .25rem; }
.pv-requirements-item-copy .pv-about-item-copy { margin:0; }
.pv-about-panel-head .pv-about-panel-label, .pv-image-cta-tag .pv-about-panel-label { margin:0 0 .375rem; }
.pv-about-panel-head .pv-about-caption, .pv-image-cta-tag .pv-about-card-title { margin:0; }
.pv-image-cta-art { position:relative; min-height:19rem; background:var(--eth-bg-brand-dark); overflow:hidden; }
.pv-image-cta-art::before { content:''; position:absolute; width:20rem; height:20rem; border:1px solid color-mix(in srgb,var(--eth-light) 18%,var(--eth-bg-brand-dark)); border-radius:50%; right:0; top:-2rem; }
.pv-image-cta-image { position:absolute; width:65%; height:78%; left:15%; top:10%; margin:0; }
.pv-image-cta-image img { width:100%; height:100%; object-fit:cover; border-radius:var(--eth-radius-m); }
.pv-image-cta-tag { position:absolute; right:5%; bottom:8%; padding:.75rem 1rem; background:var(--eth-bg-surface); border-radius:var(--eth-radius-s); box-shadow:var(--eth-shadow-s); }
.pv-image-cta-tag .pv-about-card-title { font-size:.875rem; margin:0; }
@media (max-width:1024px) {
 .pv-image-cta-copy { padding:var(--eth-component-pad-l); }
 .pv-image-cta-art { min-height:18rem; }
}
@media (max-width:768px) {
 .pv-brand-relationship, .pv-partner-workflow, .pv-requirements-panel, .pv-range-card, .pv-source-card--about { padding:var(--eth-component-pad-m); }
 .pv-relationship-node--partner::before { content:'↓'; top:-1.75rem; left:50%; }
 .pv-about-proof { padding-bottom:var(--eth-space-m); }
 .pv-image-cta-copy { padding:var(--eth-component-pad-m); }
 .pv-about-heading { margin-bottom:1.375rem; }
 .pv-about-card-title { font-size:1rem; }
 .pv-process-step--compact { padding:1rem; }
 .pv-process-step--compact .pv-process-title { font-size:.9375rem; }
}

/* Contact compositions. Existing card/requirements/FAQ/image-CTA families stay shared. */
.pv-contact-hero { padding-top:var(--eth-space-l); }
.pv-contact-intro { padding:1.875rem .5rem 1.5rem 0; }
.pv-contact-heading { color:var(--eth-text-title); font-size:clamp(2.125rem,3.5vw,3.125rem); line-height:1.1; letter-spacing:-.045em; margin:.875rem 0 1.125rem; }
.pv-contact-heading .etb-inline-accent { color:var(--eth-primary); }
.pv-contact-intro .pv-contact-lead { font-size:.9375rem; line-height:1.85; color:var(--eth-text-muted); margin:0; }
.pv-contact-tags { margin-top:1.4375rem; }
.pv-contact-tag { display:inline-flex; padding:.4375rem .625rem; background:var(--eth-bg-surface); border:1px solid var(--eth-border); border-radius:var(--eth-radius-s); color:var(--eth-primary); font-size:.75rem; font-weight:var(--eth-fw-bold); margin:0; }
.pv-contact-note { padding:.875rem; background:var(--eth-bg-primary-soft); border:1px solid var(--eth-border); border-radius:var(--eth-radius-s); margin-top:1.5625rem; }
.pv-contact-note-icon { width:1.125rem; flex:0 0 1.125rem; color:var(--eth-primary); }
.pv-contact-note .pv-contact-note-copy { font-size:.8125rem; line-height:1.75; color:var(--eth-text-muted); margin:0; }
.pv-contact-form { position:relative; border:1px solid var(--eth-border); border-radius:var(--eth-radius-l); padding:var(--eth-component-pad-l); background:var(--eth-bg-surface); box-shadow:var(--eth-shadow-s); overflow:hidden; height:100%; scroll-margin-top:var(--eth-space-l); }
.pv-contact-form::before { content:''; position:absolute; top:0; left:0; right:0; height:.25rem; background:linear-gradient(90deg,var(--eth-primary),var(--eth-secondary)); }
.pv-contact-form-heading { min-width:0; }
.pv-contact-form-heading .pv-contact-form-title { font-size:1.625rem; letter-spacing:-.035em; line-height:1.25; color:var(--eth-text-title); margin:0 0 .5rem; }
.pv-contact-form-heading .pv-contact-form-description { font-size:.8125rem; line-height:1.75; color:var(--eth-text-muted); margin:0; }
.pv-contact-form-head .pv-contact-form-badge { flex:0 0 auto; color:var(--eth-primary); background:var(--eth-bg-primary-soft); border-radius:var(--eth-radius-s); font-size:.625rem; letter-spacing:.08em; font-weight:var(--eth-fw-bold); padding:.4375rem .5rem; margin:0; }
.pv-contact-form-placeholder { border:1px dashed var(--eth-border-strong); border-radius:var(--eth-radius-m); padding:var(--eth-component-pad-m); min-height:20rem; justify-content:center; margin-top:1.5rem; background:var(--eth-bg-muted); }
.pv-contact-placeholder-icon { width:2rem; height:2rem; color:var(--eth-primary); }
.pv-contact-form-placeholder .pv-contact-placeholder-title { font-size:1.125rem; color:var(--eth-text-title); margin:0; }
.pv-contact-form-placeholder .pv-contact-placeholder-copy { font-size:.875rem; color:var(--eth-text-body); margin:0; }
.pv-contact-form-placeholder .pv-contact-placeholder-fields { font-size:.75rem; color:var(--eth-text-muted); line-height:1.75; margin:0; }
.pv-contact-services { background:var(--eth-bg-warm); }
.pv-contact-process, .pv-contact-faq, .pv-contact-final { background:var(--eth-bg-surface); }
.pv-contact-requirements { background:var(--eth-bg-muted); }
.pv-audience-card--service { padding:var(--eth-component-pad-m); min-height:0; }
.pv-audience-card--service .pv-audience-icon { margin:0 0 1rem; }
.pv-service-card--primary .pv-audience-icon { color:var(--eth-primary); background:var(--eth-bg-primary-soft); }
.pv-service-card--secondary .pv-audience-icon { color:var(--eth-secondary); background:var(--eth-bg-secondary-soft); }
.pv-service-card--tertiary .pv-audience-icon { color:var(--eth-tertiary); background:var(--eth-bg-tertiary-soft); }
.pv-audience-body .pv-service-description { font-size:.8125rem; color:var(--eth-text-muted); line-height:1.75; margin:0; }
.pv-service-card-actions { padding-top:1rem; }
.pv-service-card-actions .pv-service-label { font-size:.6875rem; font-weight:var(--eth-fw-bold); color:var(--eth-primary); letter-spacing:.06em; text-transform:uppercase; line-height:1.6; margin:0; }
.pv-contact-faq .pv-faq-intro { min-width:0; }
.pv-contact-faq .pv-faq-intro .pv-about-heading { margin-bottom:1.25rem; }
.pv-contact-faq .pv-faq-intro .pv-section-heading { font-size:clamp(1.75rem,2.6vw,2.25rem); }
@media (max-width:1024px) {
 .pv-contact-intro { padding:0; }
 .pv-contact-hero { padding-top:var(--eth-space-m); }
}
@media (max-width:768px) {
 .pv-contact-form { padding:var(--eth-component-pad-m); }
 .pv-contact-form-placeholder { min-height:16rem; }
 .pv-contact-heading { font-size:2.125rem; }
}

/* Supplements navigation and content variants; no Loop or Filter styles. */
.pv-supplements-hero .etb-hero.pv-business-hero .etb-hero__heading { font-size:clamp(2.125rem,3.5vw,3.25rem); line-height:1.1; letter-spacing:-.045em; }
.pv-supplements-hero-lead { font-size:.9375rem; line-height:1.85; color:var(--eth-text-muted); }
.pv-supplements-features { padding-bottom:var(--eth-space-l); }
.pv-supplements-heading { max-width:58rem; margin-bottom:1.625rem; }
.pv-supplements-heading .pv-section-heading { margin:.625rem 0 .75rem; }
.pv-supplements-heading .pv-section-lead { margin:0; }
.pv-supplements-species, .pv-supplements-formats, .pv-supplements-guide, .pv-supplements-faq { background:var(--eth-bg-surface); }
.pv-supplements-needs { background:var(--eth-bg-warm); }
.pv-supplements-buyers { background:var(--eth-bg-primary-soft); }
.pv-supplements-catalog-heading { padding-bottom:var(--eth-space-s); }
.pv-species-card { position:relative; min-width:0; height:100%; border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); background:var(--eth-bg-surface); overflow:hidden; }
.pv-species-image { margin:0; height:11rem; overflow:hidden; }
.pv-species-image img { width:100%; height:100%; object-fit:cover; transition:transform var(--eth-transition-m); }
.pv-species-body { position:relative; padding:1rem 2.5rem 1rem 1rem; }
.pv-species-body .pv-species-title { font-size:1.0625rem; color:var(--eth-text-title); line-height:1.35; margin:0 0 .375rem; }
.pv-species-title a, .pv-format-title a { color:inherit; text-decoration:none; }
.pv-species-title a::after, .pv-format-title a::after { content:''; position:absolute; inset:0; z-index:1; }
.pv-species-body { position:static; }
.pv-species-body .pv-species-description { color:var(--eth-text-muted); font-size:.75rem; line-height:1.6; margin:0; }
.pv-species-status { position:absolute; left:.625rem; top:.625rem; font-size:.5625rem; letter-spacing:.08em; font-weight:var(--eth-fw-bold); color:var(--eth-primary); background:var(--eth-bg-surface); padding:.3125rem .4375rem; border-radius:var(--eth-radius-s); margin:0; pointer-events:none; }
.pv-species-card--planned .pv-species-status { color:var(--eth-tertiary); background:var(--eth-bg-tertiary-soft); }
.pv-supplements-species .pv-supplements-species-note { color:var(--eth-text-muted); font-size:.75rem; line-height:1.7; margin:1rem 0 0; }
.pv-species-arrow { position:absolute; right:.875rem; bottom:1.375rem; width:1rem; height:1rem; color:var(--eth-primary); pointer-events:none; }
.pv-supplements-needs .pv-need-card { height:100%; }
.pv-format-card { position:relative; min-width:0; height:100%; background:var(--eth-bg-surface); border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); overflow:hidden; }
.pv-format-image { height:10rem; margin:0; overflow:hidden; }
.pv-format-image img { width:100%; height:100%; object-fit:cover; transition:transform var(--eth-transition-m); }
.pv-format-body { padding:1rem 2.5rem 1rem 1rem; }
.pv-format-body .pv-format-title { color:var(--eth-text-title); font-size:1.0625rem; line-height:1.4; margin:0 0 .375rem; }
.pv-format-body .pv-format-description { color:var(--eth-text-muted); font-size:.75rem; line-height:1.6; margin:0; }
.pv-format-arrow { position:absolute; right:1rem; bottom:1.5rem; color:var(--eth-primary); width:1rem; height:1rem; pointer-events:none; }
.pv-buyer-content { height:100%; min-height:19rem; padding:var(--eth-component-pad-l); background:var(--eth-bg-surface); border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); }
.pv-buyer-content .pv-buyer-tag { color:var(--eth-primary); font-size:.6875rem; font-weight:var(--eth-fw-bold); letter-spacing:.1em; margin:0 0 1rem; }
.pv-buyer-content .pv-buyer-title { color:var(--eth-text-title); font-size:1.75rem; line-height:1.25; margin:0 0 1rem; }
.pv-buyer-content .pv-buyer-description { color:var(--eth-text-muted); font-size:.9375rem; line-height:1.85; margin:0 0 1.5rem; }
.pv-buyer-tabs.etb-tabs-content--layout-left .etb-tabs-content__inner { grid-template-columns:minmax(0,1fr) minmax(0,2fr); grid-template-areas:'nav panel'; }
.pv-buyer-tabs .etb-tabs-content__nav { border:0; }
.pv-buyer-tabs.etb-tabs-content button.etb-tabs-content__tab { text-align:left; justify-content:flex-start; white-space:normal; line-height:1.6; padding:1rem; }
.pv-buyer-tabs.etb-tabs-content button.etb-tabs-content__tab[aria-selected=true] { color:var(--eth-text-title); background:var(--eth-bg-surface); border-color:var(--eth-primary); }
.pv-supplements-guide-footer { padding-top:1.25rem; }
.pv-supplements-guide-footer .pv-guide-footer-copy { margin:0; font-size:.8125rem; color:var(--eth-text-muted); }
.pv-supplements-sourcing .pv-source-card--service { min-height:0; height:100%; }
.pv-supplements-bridge { background:var(--eth-bg-surface); }
.pv-inline-cta { padding:var(--eth-component-pad-l); border-radius:var(--eth-radius-l); background:var(--eth-bg-brand-dark); }
.pv-inline-cta-copy { min-width:0; max-width:56rem; }
.pv-inline-cta-copy .pv-overline { color:color-mix(in srgb,var(--eth-primary) 20%,var(--eth-light)); }
.pv-inline-cta-copy .pv-inline-cta-title { color:var(--eth-light); font-size:clamp(1.625rem,2.5vw,2rem); line-height:1.25; margin:.5rem 0 .75rem; }
.pv-inline-cta-copy .pv-inline-cta-description { color:color-mix(in srgb,var(--eth-primary) 15%,var(--eth-light)); font-size:.875rem; line-height:1.8; margin:0; }
.pv-inline-cta .etb-button-block { flex:0 0 auto; }
.pv-inline-cta .eth-btn--primary { color:var(--eth-bg-brand-dark); background:var(--eth-light); border-color:var(--eth-light); }
.pv-supplements-quality .pv-panel-title { margin:0; }
.pv-supplements-quality .pv-panel-lead { margin:.75rem 0 0; }
.pv-supplements-quality .pv-document-level-copy .pv-document-level-title { margin:0 0 .25rem; }
.pv-supplements-quality .pv-document-level-copy .pv-document-level-description { margin:0; }
.pv-supplements-inquiry .pv-inquiry-check { color:var(--eth-text-body); font-size:.8125rem; line-height:1.7; margin:.75rem 0 0; }
@media (hover:hover) and (pointer:fine) {
 .pv-species-card:hover img, .pv-format-card:hover img { transform:scale(1.04); }
 .pv-species-card--planned:hover { transform:translateY(-2px); }
 .pv-inline-cta .eth-btn--primary:hover { background:var(--eth-bg-primary-soft); }
}
@media (max-width:1024px) {
 .pv-inline-cta { align-items:flex-start; }
 .pv-buyer-tabs.etb-tabs-content--layout-left .etb-tabs-content__inner { grid-template-columns:minmax(0,1fr); grid-template-areas:'nav' 'panel'; }
 .pv-buyer-tabs .etb-tabs-content__nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:0; }
}
@media (max-width:768px) {
 .pv-species-image { height:9rem; }
 .pv-format-image { height:8rem; }
 .pv-species-body, .pv-format-body { padding:.875rem 2rem .875rem .875rem; }
 .pv-species-body .pv-species-title, .pv-format-body .pv-format-title { font-size:.9375rem; }
 .pv-buyer-content, .pv-inline-cta { padding:var(--eth-component-pad-m); }
 .pv-buyer-content .pv-buyer-title { font-size:1.5rem; }
 .pv-buyer-content { min-height:0; }
}
@media (prefers-reduced-motion:reduce) {
 .pv-species-image img, .pv-format-image img { transition:none; }
 .pv-species-card:hover img, .pv-format-card:hover img, .pv-species-card--planned:hover { transform:none; }
}

/* Dog Supplements V2: new compositions; existing card families remain shared. */
.pv-dog-heading { margin-block-end:var(--eth-component-pad-m); max-width:54rem; }
.pv-dog-heading .pv-section-heading { margin:.625rem 0 .75rem; }
.pv-dog-heading .pv-section-lead { margin:0; }
.pv-dog-catalog-heading { background:var(--eth-bg-muted); }
.pv-dog-note { color:var(--eth-text-muted); font-size:.75rem; line-height:1.75; margin:1rem 0 0; }
.pv-dog-life { background:var(--eth-bg-warm); }
.pv-life-card { --pv-life-accent:var(--eth-primary); --pv-life-tint:var(--eth-bg-primary-soft); height:100%; min-width:0; padding:var(--eth-component-pad-s); border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); background:var(--eth-bg-surface); }
.pv-life-card--puppy { --pv-life-accent:var(--eth-secondary); --pv-life-tint:var(--eth-bg-secondary-soft); }
.pv-life-card--senior { --pv-life-accent:var(--eth-tertiary); --pv-life-tint:var(--eth-bg-tertiary-soft); }
.pv-life-top { margin-block-end:.875rem; }
.pv-life-copy { min-width:0; }
.pv-life-icon { flex:0 0 auto; width:3rem; height:3rem; color:var(--pv-life-accent); background:var(--pv-life-tint); border-radius:50%; }
.pv-life-icon .etb-icon__glyph, .pv-life-icon svg { width:60%; height:60%; }
.pv-life-label { color:var(--eth-primary); font-size:.625rem; font-weight:var(--eth-fw-bold); letter-spacing:.09em; text-transform:uppercase; line-height:1.6; margin:0 0 .3rem; }
.pv-life-title { color:var(--eth-text-title); font-size:var(--eth-card-title-s); line-height:1.3; margin:0; }
.pv-life-description { color:var(--eth-text-muted); font-size:.8125rem; line-height:1.75; margin:0; }
.pv-dog-spec-copy .pv-section-heading { margin:.625rem 0 1rem; }
.pv-dog-spec-description { color:var(--eth-text-muted); font-size:.875rem; line-height:1.8; margin:0 0 1rem; }
.pv-dog-spec-tags { margin-block:1.125rem; }
.pv-dog-spec-tag { border:1px solid var(--eth-border); background:var(--eth-bg-primary-soft); color:var(--eth-primary); border-radius:var(--eth-radius-xs); padding:.375rem .5rem; font-size:.6875rem; line-height:1.5; margin:0; }
.pv-dog-spec-detail { position:relative; padding-inline-start:.875rem; color:var(--eth-text-body); font-size:.8125rem; line-height:1.8; margin:0 0 .5rem; }
.pv-dog-spec-detail::before { content:""; position:absolute; left:0; top:.65em; width:.25rem; height:.25rem; background:var(--eth-primary); border-radius:50%; }
.pv-dog-spec-copy > .etb-button-block { margin-block-start:1.25rem; }
.pv-dog-spec-visual { min-width:0; }
.pv-dog-spec-pair > .pv-dog-spec-photo { flex:0 0 auto; }
.pv-dog-spec-photo { position:relative; min-width:0; overflow:hidden; border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); background:var(--eth-bg-muted); }
.pv-dog-spec-photo--main { height:100%; min-height:25rem; }
.pv-dog-spec-image { margin:0; width:100%; }
.pv-dog-spec-image img { display:block; width:100%; height:12rem; object-fit:cover; }
.pv-dog-spec-photo--main .pv-dog-spec-image { height:100%; }
.pv-dog-spec-photo--main .pv-dog-spec-image img { position:absolute; inset:0; height:100%; object-position:center; }
.pv-dog-photo-label { position:absolute; bottom:.5rem; left:.5rem; right:.5rem; width:fit-content; max-width:calc(100% - 1rem); background:color-mix(in srgb,var(--eth-bg-surface) 94%,transparent); border-radius:var(--eth-radius-xs); color:var(--eth-text-title); padding:.375rem .5rem; font-size:.625rem; font-weight:var(--eth-fw-bold); line-height:1.4; margin:0; }
.pv-dog-spec-facts { background:var(--eth-bg-primary-soft); border-radius:var(--eth-radius-s); padding:.625rem .75rem; margin-block-start:.75rem; justify-content:space-between; }
.pv-dog-spec-fact { color:var(--eth-primary); font-size:.625rem; line-height:1.5; margin:0; }
.pv-dog-sourcing-note { margin-block-start:1rem; padding:var(--eth-component-pad-s); border-radius:var(--eth-radius-m); }
.pv-dog-sourcing-note .pv-inline-cta-title { font-size:1rem; margin:0 0 .375rem; }
.pv-dog-sourcing-note .pv-inline-cta-description { font-size:.8125rem; }
.pv-dog-sourcing-note .eth-btn--outline { color:var(--eth-bg-brand-dark); background:var(--eth-light); border-color:var(--eth-light); }
.pv-dog-process { background:var(--eth-bg-primary-soft); }
.pv-dog-faq { background:var(--eth-bg-muted); }
.pv-dog-faq .pv-dog-heading { margin-block-end:1.25rem; }
.pv-dog-faq-support { background:var(--eth-bg-warm); padding:var(--eth-component-pad-s); border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); }
.pv-dog-support-title { color:var(--eth-text-title); font-size:.9375rem; line-height:1.4; margin:0 0 .5rem; }
.pv-dog-support-copy { color:var(--eth-text-muted); font-size:.8125rem; line-height:1.7; margin:0 0 .875rem; }
@media (hover:hover) and (pointer:fine) {
 .pv-dog-sourcing-note .eth-btn--outline:hover { background:var(--eth-bg-primary-soft); }
}
@media (max-width:768px) {
 .pv-life-card { padding:var(--eth-component-pad-s); }
 .pv-dog-spec-image img { height:10rem; }
 .pv-dog-spec-pair > .pv-dog-spec-photo { flex:1 1 0; }
 .pv-dog-spec-photo--main { height:16rem; min-height:16rem; }
}

/* Cat category compositions. Shared card defaults retain their existing feedback. */
.pv-category-heading { min-width:0; max-width:58rem; margin-block-end:var(--eth-component-pad-m); }
.pv-category-heading .pv-section-heading { margin:.625rem 0 .75rem; }
.pv-category-heading .pv-section-lead { margin:0; }
.pv-category-head-actions { margin-block-end:var(--eth-component-pad-m); }
.pv-category-head-actions > .pv-category-heading { flex:1 1 0; margin-block-end:0; }
.pv-category-head-actions > .etb-button-block { flex:0 0 auto; }
.pv-category-note { color:var(--eth-text-muted); font-size:.75rem; line-height:1.75; margin:1rem 0 0; }
.pv-cat-catalog-heading { background:var(--eth-bg-muted); }
.pv-cat-needs .pv-section-head > .pv-category-heading { flex:1 1 0; margin:0; }
.pv-cat-life { background:var(--eth-bg-warm); }
.pv-life-card--photo { padding:var(--eth-component-pad-s); }
.pv-life-card--photo .pv-life-top { gap:.625rem; }
.pv-life-card--photo .pv-life-copy { flex:1 1 0; }
.pv-life-photo { flex:0 0 3rem; width:3rem; height:3rem; margin:0; border-radius:var(--eth-radius-s); overflow:hidden; }
.pv-life-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.pv-life-card--photo .pv-life-title { font-size:1rem; }
.pv-life-card--photo .pv-life-label { font-size:.5625rem; }
.pv-life-card--photo .pv-life-description { font-size:.8125rem; }
.pv-cat-spec-title { font-size:var(--eth-card-title-m); line-height:1.35; color:var(--eth-text-title); margin:0 0 1rem; }
.pv-cat-spec-description { font-size:.875rem; color:var(--eth-text-muted); line-height:1.8; margin:0 0 1rem; }
.pv-cat-spec-tags { margin-block:1.25rem; }
.pv-cat-spec-tag { padding:.375rem .5rem; background:var(--eth-bg-primary-soft); color:var(--eth-primary); border:1px solid var(--eth-border); border-radius:var(--eth-radius-xs); font-size:.6875rem; line-height:1.5; margin:0; }
.pv-cat-spec-copy > .etb-button-block { margin-block-start:1.25rem; }
.pv-cat-spec-visual { min-width:0; }
.pv-spec-gallery-photo { position:relative; min-width:0; overflow:hidden; border:1px solid var(--eth-border); border-radius:var(--eth-radius-m); background:var(--eth-bg-muted); }
.pv-spec-gallery-image { width:100%; margin:0; }
.pv-spec-gallery-image img { display:block; width:100%; height:8rem; object-fit:cover; }
.pv-spec-gallery-photo--main { height:100%; min-height:17rem; }
.pv-spec-gallery-photo--main .pv-spec-gallery-image { height:100%; }
.pv-spec-gallery-photo--main .pv-spec-gallery-image img { position:absolute; inset:0; height:100%; }
.pv-spec-gallery-pair > .pv-spec-gallery-photo { flex:0 0 auto; }
.pv-spec-gallery-label { position:absolute; left:.5rem; bottom:.5rem; max-width:calc(100% - 1rem); padding:.375rem .5rem; border-radius:var(--eth-radius-xs); background:color-mix(in srgb,var(--eth-bg-surface) 94%,transparent); color:var(--eth-text-title); font-size:.625rem; line-height:1.4; font-weight:var(--eth-fw-bold); margin:0; }
.pv-cat-sourcing-note { padding:var(--eth-component-pad-s); margin-block-start:1rem; border-radius:var(--eth-radius-m); }
.pv-cat-sourcing-note .pv-inline-cta-title { margin:0 0 .375rem; font-size:1rem; }
.pv-cat-sourcing-note .pv-inline-cta-description { font-size:.8125rem; }
.pv-cat-sourcing-note .eth-btn--secondary { color:var(--eth-text-title); }
.pv-cat-process { background:var(--eth-bg-primary-soft); }
.pv-cat-faq { background:var(--eth-bg-muted); }
@media (max-width:1024px) {
 .pv-cat-needs .pv-section-head, .pv-category-head-actions { align-items:flex-start; }
 .pv-category-head-actions > .pv-category-heading, .pv-cat-needs .pv-section-head > .pv-category-heading { flex:0 0 auto; }
}
@media (max-width:768px) {
 .pv-spec-gallery-image img { height:10rem; }
 .pv-spec-gallery-photo--main { height:16rem; min-height:16rem; }
 .pv-spec-gallery-pair > .pv-spec-gallery-photo { flex:1 1 0; }
}

/* PetEvia product introduction foundation v1.
 * Opt-in roles and variants only; no product content or new templates.
 * Section owns surfaces/spacing, native Grid owns responsive columns.
 * Cards pair the existing family class with its --product variant.
 * Explicit native appearance attributes stay authoritative. */
.pv-product-heading { min-width:0; }
.pv-product-overline {
  margin:0 0 var(--eth-space-2xs); color:var(--eth-link);
  font-family:var(--eth-font-body); font-size:calc(var(--eth-card-title-s) * .75);
  font-weight:var(--eth-fw-bold); line-height:var(--eth-lh-body);
  letter-spacing:.1em; text-transform:uppercase; overflow-wrap:anywhere;
}
.pv-product-overline::before {
  content:""; display:inline-block; width:var(--eth-component-pad-m);
  height:1px; margin-inline-end:var(--eth-space-2xs); vertical-align:middle;
  background:var(--eth-secondary);
}
.pv-product-title {
  margin:0 0 var(--eth-space-xs); color:var(--eth-text-title);
  font-family:var(--eth-font-heading); font-size:var(--eth-fs-h2);
  font-weight:var(--eth-fw-heading); line-height:var(--eth-lh-heading);
  letter-spacing:-.025em; overflow-wrap:anywhere; text-wrap:balance;
}
.pv-product-lead {
  margin:0; max-width:var(--eth-content-measure); color:var(--eth-text-muted);
  font-size:var(--eth-fs-body); line-height:var(--eth-lh-body); overflow-wrap:anywhere;
}
.pv-product-card-title {
  margin:0; color:var(--eth-text-title); font-family:var(--eth-font-heading);
  font-size:var(--eth-card-title-m); font-weight:var(--eth-fw-heading);
  line-height:var(--eth-lh-heading); overflow-wrap:anywhere;
}
.pv-product-copy {
  margin:0; color:var(--eth-text-muted); font-size:calc(var(--eth-card-title-s) * .875);
  line-height:var(--eth-lh-body); overflow-wrap:anywhere;
}
.pv-product-label {
  margin:0; color:var(--eth-link); font-size:calc(var(--eth-card-title-s) * .75);
  font-weight:var(--eth-fw-semibold); line-height:var(--eth-lh-body);
  letter-spacing:.06em; overflow-wrap:anywhere;
}
.pv-product-icon {
  --pv-product-accent:var(--eth-primary); --pv-product-tint:var(--eth-bg-primary-soft);
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  width:calc(var(--eth-component-pad-s) * 2.75); height:calc(var(--eth-component-pad-s) * 2.75);
  padding:0; border-radius:var(--eth-radius-s);
  color:var(--pv-product-accent); background:var(--pv-product-tint);
}
.pv-product-icon--secondary { --pv-product-accent:var(--eth-secondary); --pv-product-tint:var(--eth-bg-secondary-soft); }
.pv-product-icon--tertiary { --pv-product-accent:var(--eth-tertiary); --pv-product-tint:var(--eth-bg-tertiary-soft); }
.pv-product-icon .etb-icon__glyph { width:55%; height:55%; }
.pv-product-icon svg { display:block; width:100%; height:100%; }

/* Reuse feature family tone and feedback, with readable product copy. */
.pv-feature-card--product { min-height:0; padding:var(--eth-component-pad-m); }
.pv-feature-card--product .pv-feature-title {
  font-size:calc(var(--eth-card-title-s) * 1.125); line-height:var(--eth-lh-heading);
  margin:0; overflow-wrap:anywhere;
}
.pv-feature-card--product .pv-feature-copytext {
  font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body);
  margin:0; overflow-wrap:anywhere;
}
.pv-feature-card--product-strip {
  height:auto; padding:var(--eth-component-pad-s) 0;
  border:0; border-radius:0; background:transparent; box-shadow:none;
}
.pv-feature-card--product-strip .pv-feature-title { font-size:var(--eth-card-title-s); }
.pv-feature-card--product-strip .pv-feature-copytext { font-size:calc(var(--eth-card-title-s) * .8125); }
.pv-feature-card--product-strip:is(:hover,:focus-within) { transform:none; background:transparent; box-shadow:none; }

/* Procurement: the optional featured card also carries theme-inverted. */
.pv-source-card--product {
  min-height:0; padding:var(--eth-component-pad-l);
  background:var(--eth-bg-surface); border-color:var(--eth-border);
}
.pv-source-card--product .pv-source-eyebrow {
  font-size:calc(var(--eth-card-title-s) * .75); line-height:var(--eth-lh-body);
  margin:0; color:var(--pv-label-ink); overflow-wrap:anywhere;
}
.pv-source-card--product .pv-source-title {
  margin:0; color:var(--eth-text-title); font-size:var(--eth-card-title-m);
  line-height:var(--eth-lh-heading); overflow-wrap:anywhere;
}
.pv-source-card--product :is(.pv-source-description,.pv-source-copy) {
  margin:0; color:var(--eth-text-muted); font-size:calc(var(--eth-card-title-s) * .875);
  line-height:var(--eth-lh-body); overflow-wrap:anywhere;
}
.pv-source-card--product-featured {
  --pv-label-ink:var(--eth-light); --pv-accent:var(--eth-light);
  background:var(--eth-bg-brand-dark); color:var(--eth-light);
}
.pv-source-card--product-featured :is(.pv-source-title,.pv-product-card-title,.pv-product-label) { color:var(--eth-light); }
.pv-source-card--product-featured :is(.pv-source-description,.pv-source-copy,.pv-product-copy) { color:color-mix(in srgb,var(--eth-light) 82%,var(--eth-bg-brand-dark)); }
.pv-source-card--product-featured .pv-product-link { color:var(--eth-light); }
.pv-source-card--product-featured .pv-product-link:hover { color:var(--eth-bg-primary-soft); }
.pv-source-card--product-featured .pv-product-link:focus-visible { outline-color:currentColor; }
.pv-source-card--product-featured .pv-product-icon { color:var(--eth-light); background:color-mix(in srgb,var(--eth-light) 12%,var(--eth-bg-brand-dark)); }
.pv-spec-document-panel--product {
  height:100%; min-width:0; padding:var(--eth-component-pad-l); border-radius:var(--eth-radius-m);
}
.pv-spec-document-panel--product :is(.pv-spec-title,.pv-product-card-title) {
  margin:0; color:var(--eth-text-title); font-size:var(--eth-card-title-m);
  line-height:var(--eth-lh-heading); overflow-wrap:anywhere;
}
.pv-spec-document-panel--product :is(.pv-spec-description,.pv-product-copy) {
  margin:0; font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body);
}
.pv-process-step--product { min-height:0; padding:var(--eth-component-pad-m); }
.pv-process-step--product .pv-process-number {
  margin:0; color:var(--eth-link); font-size:calc(var(--eth-card-title-s) * .75);
  line-height:var(--eth-lh-body); font-weight:var(--eth-fw-bold);
}
.pv-process-step--product .pv-process-title {
  margin:0; font-size:calc(var(--eth-card-title-s) * 1.125); line-height:var(--eth-lh-heading);
}
.pv-process-step--product .pv-process-copy {
  margin:0; font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body);
}

/* Nested ingredient entries use surface feedback, never a second lift. */
.pv-product-ingredient {
  min-width:0; padding:var(--eth-component-pad-s);
  border:1px solid var(--eth-border); border-radius:var(--eth-radius-s);
  color:var(--eth-text-body); background:var(--eth-bg-surface);
}
.pv-product-ingredient-number {
  display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto;
  width:calc(var(--eth-component-pad-s) * 2.5); height:calc(var(--eth-component-pad-s) * 2.5);
  margin:0; border-radius:var(--eth-radius-s); background:var(--eth-bg-primary-soft);
  color:var(--eth-link); font-size:calc(var(--eth-card-title-s) * .75); font-weight:var(--eth-fw-bold);
}
.pv-product-ingredient-title { margin:0; color:var(--eth-text-title); font-size:calc(var(--eth-card-title-s) * 1.125); line-height:var(--eth-lh-heading); overflow-wrap:anywhere; }
.pv-product-note {
  min-width:0; margin:0; padding:var(--eth-component-pad-s);
  border:1px solid var(--eth-border-warm); border-inline-start:3px solid var(--eth-link);
  border-radius:var(--eth-radius-s); background:var(--eth-bg-warm); color:var(--eth-text-body);
  font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body); overflow-wrap:anywhere;
}
.pv-product-tag {
  display:inline-block; align-self:flex-start; max-width:100%; margin:0; padding:var(--eth-component-pad-xs);
  border:1px solid var(--eth-border); border-radius:var(--eth-radius-xs);
  background:var(--eth-bg-surface); color:var(--eth-text-body);
  font-size:calc(var(--eth-card-title-s) * .75); line-height:var(--eth-lh-body); overflow-wrap:anywhere;
}
.pv-product-media { min-width:0; margin:0; overflow:hidden; border-radius:var(--eth-radius-m); background:var(--eth-bg-muted); }
.pv-product-media img { display:block; width:100%; max-width:100%; height:auto; }

/* Two-column specification display; data ownership remains with B2B fields. */
.pv-product-specs { min-width:0; max-width:100%; margin:0; overflow-x:auto; }
.pv-product-specs table { width:100%; margin:0; table-layout:fixed; border-collapse:collapse; }
.pv-product-specs caption { text-align:start; padding:var(--eth-component-pad-s); color:var(--eth-text-title); font-size:var(--eth-fs-small); font-weight:var(--eth-fw-semibold); }
.pv-product-specs :is(th,td) {
  padding:var(--eth-component-pad-s); border:1px solid var(--eth-border); vertical-align:top;
  text-align:start; font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body);
  overflow-wrap:anywhere;
}
.pv-product-specs th { color:var(--eth-text-title); background:var(--eth-bg-muted); font-weight:var(--eth-fw-semibold); }
.pv-product-specs td { color:var(--eth-text-body); background:var(--eth-bg-surface); }
.pv-product-specs tbody th { width:34%; }
.pv-product-specs--wide table { min-width:calc(var(--eth-content-measure) * .75); }
.pv-product-faq .etb-accordion__question { font-size:var(--eth-fs-small); line-height:var(--eth-lh-body); padding-block:var(--eth-component-pad-s); }
.pv-product-faq .etb-accordion__answer { padding-block:0 var(--eth-component-pad-s); }
.pv-product-faq .pv-faq-answer { font-size:calc(var(--eth-card-title-s) * .875); line-height:var(--eth-lh-body); }
.pv-product-link { color:var(--eth-link); font-size:var(--eth-fs-small); font-weight:var(--eth-fw-semibold); line-height:var(--eth-lh-body); text-decoration:none; transition:color var(--eth-transition-s); overflow-wrap:anywhere; }
.pv-product-link:hover { color:var(--eth-link-hover); text-decoration:underline; text-underline-offset:.2em; }
.pv-product-link:focus-visible { outline:2px solid var(--eth-link); outline-offset:3px; border-radius:var(--eth-radius-xs); }

@media(max-width:768px) {
  .pv-feature-card--product,.pv-source-card--product,.pv-spec-document-panel--product,.pv-process-step--product { padding:var(--eth-component-pad-s); }
  .pv-feature-card--product-strip { padding:var(--eth-component-pad-s) 0; }
  .pv-product-specs :is(th,td) { padding:var(--eth-component-pad-xs); }
  .pv-product-specs tbody th { width:40%; }
}

/* PetEvia product feature presentation v2 — 2026-10-24 */
/* Product module baseline: independent native copies share these semantic roles.
   No global card rules, no fixed colors and no forced editor appearance fields. */
.pv-feature-card.pv-feature-card--product {
    --pv-product-feature-accent: var(--eth-primary);
    box-sizing: border-box; min-width: 0; height: 100%;
    padding: var(--eth-component-pad-m);
    border: 1px solid var(--eth-border); border-radius: var(--eth-radius-m);
    background: var(--eth-bg-surface); color: var(--eth-text-body);
    box-shadow: none; cursor: auto;
    transition: transform var(--eth-transition-m), border-color var(--eth-transition-m), box-shadow var(--eth-transition-m);
}
.pv-feature-card--product.pv-feature-card--secondary { --pv-product-feature-accent: var(--eth-secondary); }
.pv-feature-card--product.pv-feature-card--tertiary { --pv-product-feature-accent: var(--eth-tertiary); }
.pv-feature-card--product .pv-feature-title {
    margin: 0; font-family: var(--eth-font-heading); font-weight: var(--eth-fw-semibold);
    line-height: var(--eth-lh-heading); letter-spacing: -.015em; overflow-wrap: anywhere;
}
.pv-feature-card--product .pv-feature-title:where(:not(.has-text-color)) { color: var(--eth-text-title); }
.pv-feature-card--product .pv-feature-title:where(:not([class*="-font-size"])) { font-size: calc(var(--eth-card-title-s) * 1.0625); }
.pv-feature-card--product .pv-feature-copytext {
    margin: 0; line-height: var(--eth-lh-body); overflow-wrap: anywhere;
}
.pv-feature-card--product .pv-feature-copytext:where(:not(.has-text-color)) { color: var(--eth-text-muted); }
.pv-feature-card--product .pv-feature-copytext:where(:not([class*="-font-size"])) { font-size: calc(var(--eth-fs-small) * .95); }
.pv-feature-card--product .pv-product-icon {
    --pv-product-accent: var(--eth-primary); --pv-product-tint: var(--eth-bg-primary-soft);
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
    box-sizing: border-box; width: var(--etb-icon-size); height: var(--etb-icon-size);
    padding: 0; border: 0;
}
.pv-feature-card--product .pv-product-icon.etb-icon--size-m { --etb-icon-size: calc(var(--eth-component-pad-s) * 2.5); }
.pv-feature-card--product .pv-product-icon:where(.etb-icon--shape-none) { border-radius: var(--eth-radius-s); }
.pv-feature-card--product .pv-product-icon:where(.etb-icon--shape-none.etb-icon--tone-current) { color: var(--pv-product-accent); background: var(--pv-product-tint); }
.pv-feature-card--product .pv-product-icon--secondary { --pv-product-accent: var(--eth-secondary); --pv-product-tint: var(--eth-bg-secondary-soft); }
.pv-feature-card--product .pv-product-icon--tertiary { --pv-product-accent: var(--eth-tertiary); --pv-product-tint: var(--eth-bg-tertiary-soft); }
.pv-feature-card--product .pv-product-icon .etb-icon__glyph { display: block; width: 52%; height: 52%; }
.pv-feature-card--product .pv-product-icon svg { display: block; width: 100%; height: 100%; }

/* Service strip: native Grid still owns columns and gaps. */
.pv-product-module-services.eth-section--tight { padding-block: var(--eth-space-s); }
.pv-feature-card--product.pv-feature-card--product-strip {
    height: auto; padding: var(--eth-component-pad-xs) 0;
    border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
.pv-feature-card--product-strip .pv-feature-title:where(:not([class*="-font-size"])) { font-size: var(--eth-fs-small); }
.pv-feature-card--product-strip .pv-feature-copytext:where(:not([class*="-font-size"])) { font-size: calc(var(--eth-fs-small) * .875); }
.pv-feature-card--product.pv-feature-card--product-strip:is(:hover,:focus-within) { transform: none; box-shadow: none; }
@media (min-width: 1025px) {
    .pv-product-module-services .etb-grid > .etb-grid-item + .etb-grid-item { border-inline-start: 1px solid var(--eth-border); padding-inline-start: var(--eth-component-pad-s); }
}
@media (min-width: 769px) and (max-width: 1024px) {
    .pv-product-module-services .etb-grid > .etb-grid-item:nth-child(2) { border-inline-start: 1px solid var(--eth-border); padding-inline-start: var(--eth-component-pad-s); }
    .pv-product-module-services .etb-grid > .etb-grid-item:nth-child(3) { border-top: 1px solid var(--eth-border); padding-top: var(--eth-component-pad-xs); }
}
@media (max-width: 768px) {
    .pv-product-module-services .etb-grid > .etb-grid-item + .etb-grid-item { border-top: 1px solid var(--eth-border); padding-top: var(--eth-component-pad-xs); }
    .pv-feature-card.pv-feature-card--product:where(:not(.pv-feature-card--product-strip)) { padding: var(--eth-component-pad-s); }
}

/* Cards are informational. A real link inside receives its own keyboard focus. */
@media (hover: hover) and (pointer: fine) {
    .pv-feature-card.pv-feature-card--product:where(:not(.pv-feature-card--product-strip)):hover {
        transform: translateY(calc(var(--eth-space-3xs) * -.375)); box-shadow: var(--eth-shadow-s);
    }
    .pv-feature-card.pv-feature-card--product:where(:not(.pv-feature-card--product-strip):not([class*="etb-border-"])):hover { border-color: color-mix(in srgb, var(--pv-product-feature-accent) 35%, var(--eth-border)); }
}
.pv-feature-card.pv-feature-card--product:where(:not(.pv-feature-card--product-strip)):focus-within {
    border-color: var(--pv-product-feature-accent); box-shadow: var(--eth-shadow-s);
    outline: 2px solid var(--pv-product-feature-accent); outline-offset: 3px;
}
.pv-feature-card--product a:focus-visible { outline: 2px solid var(--eth-link); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
    .pv-feature-card.pv-feature-card--product { transition: none; }
    .pv-feature-card.pv-feature-card--product:is(:hover,:focus-within) { transform: none; }
}
/* Suppress the older global family's hover lift on touch-only devices. */
@media (hover: none) {
    .pv-feature-card.pv-feature-card--product:hover { transform: none; }
}

/* PetEvia dynamic specification composition v2 — 2026-10-24 */
/* Product specification composition. Data and native Grid remain their owners. */
.pv-spec-detail-grid { align-items: stretch; }
.pv-spec-detail-side { min-width: 0; }
.pv-spec-detail-copy { max-width: var(--eth-content-measure); }
.pv-spec-detail-copy > :is(.pv-product-overline,.pv-spec-detail-title,.pv-spec-detail-description),.pv-spec-detail-card > .pv-spec-detail-note { margin-block: 0; }
.pv-spec-detail-title {
    margin: 0; color: var(--eth-text-title); font-family: var(--eth-font-heading);
    font-size: var(--eth-fs-h2); font-weight: var(--eth-fw-heading); line-height: var(--eth-lh-heading);
    letter-spacing: -.025em; overflow-wrap: anywhere;
}
.pv-spec-detail-description {
    max-width: 44ch; margin: 0; color: var(--eth-text-muted);
    font-size: var(--eth-fs-small); line-height: var(--eth-lh-body); overflow-wrap: anywhere;
}
.pv-spec-detail-copy > .pv-spec-detail-action { align-self: flex-start; margin-top: var(--eth-space-2xs); }
.pv-spec-detail-action .eth-btn { background: var(--eth-bg-surface); border-color: var(--eth-border); border-radius: var(--eth-radius-s); box-shadow: none; }
.pv-spec-detail-card {
    min-width: 0; max-width: 100%; padding: 0; border: 1px solid var(--eth-border);
    border-radius: var(--eth-radius-m); background: var(--eth-bg-surface);
    overflow: hidden; box-shadow: 0 var(--eth-space-2xs) var(--eth-space-l) color-mix(in srgb,var(--eth-primary) 3%,transparent);
}
.pv-spec-detail-card .etb-product-specs { margin: 0; overflow: visible; }
.pv-spec-detail-card .etb-product-specs table { display: table; width: 100%; margin: 0; table-layout: fixed; border-collapse: collapse; }
.pv-spec-detail-card .etb-product-specs caption {
    caption-side: top; margin: 0; padding: var(--eth-component-pad-s) var(--eth-component-pad-m);
    background: var(--eth-bg-primary-soft); border-bottom: 1px solid var(--eth-border);
    color: var(--eth-link); text-align: start; text-transform: uppercase;
    font-size: calc(var(--eth-fs-small) * .8); font-weight: var(--eth-fw-bold);
    letter-spacing: .1em; line-height: var(--eth-lh-body);
}
.pv-spec-detail-card .etb-product-specs :is(th,td) {
    padding: calc(var(--eth-component-pad-s) * .875) var(--eth-component-pad-m);
    border: 0; border-bottom: 1px solid var(--eth-border);
    color: var(--eth-text-title); background: transparent;
    font-size: calc(var(--eth-fs-small) * .925); line-height: var(--eth-lh-body);
    text-align: start; vertical-align: top; overflow-wrap: anywhere;
}
.pv-spec-detail-card .etb-product-specs th { width: 36%; color: var(--eth-text-body); font-weight: var(--eth-fw-semibold); }
.pv-spec-detail-card .etb-product-specs td { font-weight: var(--eth-fw-regular); }
.pv-spec-detail-card .etb-product-specs tr:last-child :is(th,td) { border-bottom: 0; }
.pv-spec-detail-note {
    margin: 0; padding: var(--eth-component-pad-s) var(--eth-component-pad-m);
    border-top: 1px solid var(--eth-border); background: color-mix(in srgb,var(--eth-bg-muted) 35%,var(--eth-bg-surface));
    color: var(--eth-text-muted); font-size: calc(var(--eth-fs-small) * .8); line-height: var(--eth-lh-body);
}
@media(min-width:1025px) {
    .pv-spec-detail-copy { position: sticky; top: calc(var(--eth-product-sticky-offset,0px) + var(--eth-product-module-nav-height,0px) + var(--eth-space-s)); }
}
@media(max-width:1024px) {
    .pv-spec-detail-copy { position: static; }
    .pv-spec-detail-description { max-width: var(--eth-content-measure); }
}
@media(max-width:480px) {
    .pv-spec-detail-card .etb-product-specs :is(caption,th,td),.pv-spec-detail-note { padding-inline: var(--eth-component-pad-s); }
    .pv-spec-detail-card .etb-product-specs th { width: 38%; }
}
@media(hover:hover) and (pointer:fine) {
    .pv-spec-detail-card .etb-product-specs tr:hover { background: color-mix(in srgb,var(--eth-bg-primary-soft) 28%,var(--eth-bg-surface)); }
}