/**
 * Package 94 — single active PDP visual system.
 * Owns: hero, gallery, sticky shell, chapters, visual components.
 * Historical files (pdp-journey-architecture, pdp-worldclass, pdp-premium-completion)
 * remain in repo but are no longer enqueued.
 */

:root {
    --pdp-charcoal: #1c1917;
    --pdp-brown: #6b4423;
    --pdp-green: #51b035;
    --pdp-leaf: #749f4e;
    --pdp-blue: #69a1c8;
    --pdp-orange: #ea8336;
    --pdp-coral: #d6978c;
    --pdp-yellow: #efc63b;
    --pdp-surface: #f8f8f8;
    --pdp-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --pdp-radius-sm: 8px;
    --pdp-radius-md: 12px;
    --pdp-radius-lg: 18px;
    --pdp-radius-pill: 999px;
    --pdp-context-height: 58px;
    --pdp-nav-height: 48px;
    --aanya-global-sticky-bottom: 64px;
    --aanya-header-live-height: var(--aanya-current-header-height, 64px);
    --pdp-shell-wide: 1320px;
    --pdp-shell-standard: 1220px;
    --pdp-shell-reading: 860px;
    --pdp-gap: clamp(1rem, 2vw, 2rem);
    --pdp-section-space: clamp(3.5rem, 5vw, 4.5rem);
    --pdp-card-radius: 16px;
    --pdp-card-feature-radius: 18px;
    --pdp-card-border: #e3e3e3;
    --pdp-card-padding: 24px;
    --pdp-card-padding-mobile: 16px;
    --pdp-card-gap: 20px;
    --pdp-card-shadow: 0 8px 24px rgba(28, 25, 23, 0.045);
    --pdp-card-bg: #fff;
}

.pdp-journey,
.pdp-journey-hero-wrap,
.pdp-journey-body,
.pdp-hero,
.pdp-hero__grid--media,
.pdp-hero__media {
    overflow: visible;
    transform: none;
    filter: none;
    contain: none;
}

.pdp-journey {
    overflow-x: clip;
}

.pdp-journey .pdp-shell {
    max-width: min(100%, var(--pdp-shell-wide));
}

.pdp-journey .pdp-journey-body {
    max-width: min(100%, var(--pdp-shell-standard));
}

/* ── Sticky product shell ── */
.pdp-sticky-product-shell {
    position: sticky;
    top: var(--aanya-global-sticky-bottom);
    z-index: 920;
    width: 100%;
    background: transparent;
    border-bottom: 0;
    color: #fff;
}

.pdp-sticky-product-shell.has-context {
    box-shadow: 0 8px 22px rgba(28, 25, 23, 0.06);
}

.pdp-product-context-bar {
    display: none;
    pointer-events: none;
    background: #51b035;
    color: #fff;
}

.pdp-product-context-bar.is-visible {
    display: block;
    height: var(--pdp-context-height);
    pointer-events: auto;
}

.pdp-product-context-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0  clamp(1rem, 2vw, 1.25rem);
    max-width: 1320px;
    margin: 0 auto;
    height: var(--pdp-context-height);
}

.pdp-product-context-bar__identity {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    min-width: 0;
    flex: 1 1 auto;
}

.pdp-product-context-bar__thumb {
    width: 36px;
    height: 36px;
    border-radius: var(--pdp-radius-sm);
    object-fit: cover;
    flex-shrink: 0;
    background: var(--pdp-surface);
}

.pdp-product-context-bar__thumb--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--pdp-leaf);
}

.pdp-product-context-bar__name {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 700;
    line-height: 1.2;
    color: #fff;
    overflow-wrap: anywhere;
    max-width: 48ch;
}

.pdp-product-context-bar__brand {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.2;
    color: rgba(255, 255, 255, 0.84);
    white-space: nowrap;
}

.pdp-product-context-bar__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.pdp-product-context-bar__price {
    font-size: 0.8125rem;
    font-weight: 700;
    color: #fff;
}

.pdp-product-context-bar__icon-actions {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.pdp-product-context-bar__icon,
.pdp-product-context-bar__icon-actions .wishlist-button {
    width: 36px;
    height: 36px;
    padding: 0;
    border-radius: var(--pdp-radius-sm);
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.pdp-product-context-bar__icon:hover,
.pdp-product-context-bar__icon-actions .wishlist-button:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(28, 25, 23, 0.08);
}

.pdp-product-context-bar__buy {
    min-height: 36px;
    padding: 0.35rem 0.75rem;
    gap: 0.35rem;
}

.pdp-hero-identity-sentinel {
    display: block;
    height: 1px;
    width: 100%;
    pointer-events: none;
}

.pdp-journey-nav {
    position: relative;
    top: auto;
    z-index: auto;
    background: #fff;
    color: var(--pdp-charcoal);
    border-bottom: 1px solid rgba(107, 68, 35, 0.12);
    box-shadow: 0 5px 16px rgba(28, 25, 23, 0.06);
}

.pdp-journey-nav__inner {
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 clamp(1rem, 2vw, 1.25rem);
    overflow-x: auto;
    scrollbar-width: none;
}

.pdp-journey-nav__inner::-webkit-scrollbar {
    display: none;
}

.pdp-journey-nav__list {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.25rem;
    list-style: none;
    margin: 0;
    padding: 0.35rem 0;
    height: var(--pdp-nav-height);
    align-items: center;
}

.pdp-journey-nav__list a {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0.35rem 0.85rem;
    border-radius: var(--pdp-radius-pill);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pdp-charcoal);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, background 0.15s, border-color 0.15s;
}

.pdp-journey-nav__list a:hover {
    background: #f2f2f2;
    color: #181a19;
}

.pdp-journey-nav__list a.is-active,
.pdp-journey-nav__list a[aria-current="true"] {
    background: #e8f4df;
    color: #244b18;
    border-bottom-color: #77bd4c;
}

/* ── Hero ── */
.pdp-hero .product-summary,
.pdp-hero .product-identity {
    position: static !important;
    top: auto !important;
    transform: none !important;
}

.pdp-hero--premium {
    padding: 0.5rem 0 1.25rem;
}

.pdp-hero__grid--media {
    display: grid;
    grid-template-columns: minmax(0, 0.48fr) minmax(0, 0.52fr);
    gap: clamp(1.25rem, 2.5vw, 2rem);
    align-items: start;
    min-width: 0;
}

.pdp-hero__media,
.pdp-hero__identity {
    min-width: 0;
}

.pdp-hero .product-hero-category {
    margin: 0 0 0.4rem;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pdp-brown);
}

.pdp-hero .product-brand {
    margin: 0 0 0.3rem;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pdp-leaf);
}

.pdp-hero .product-title {
    max-width: 18ch;
    margin: 0 0 0.65rem;
    font-size: clamp(2.35rem, 3.2vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
    font-weight: 800;
    color: var(--pdp-charcoal);
}

.pdp-hero .product-excerpt {
    max-width: 40ch;
    margin: 0 0 1rem;
    font-size: 1.0625rem;
    line-height: 1.55;
    color: color-mix(in srgb, var(--pdp-charcoal) 72%, var(--pdp-brown));
}

/* ── Gallery contract (UIUX-008R PDP reconstruction) ─────────────────────
 * The one canonical media-gallery component; no other PDP layer restyles
 * it. States (data-media-state): empty → compact missing-media slot, no
 * carousel chrome; single → the item only; multi → stage + a control row
 * [previous | thumbnail rail | next]. The previous/next buttons occupy their
 * own grid columns (44px safe zones), so they can never overlap a thumbnail
 * or the media; the rail is its own bounded region that scrolls internally.
 * ──────────────────────────────────────────────────────────────────────── */
.pdp-media-gallery {
    --pdp-gallery-thumb: 4rem;
    --pdp-gallery-control: 2.75rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.pdp-media-gallery__stage-shell {
    position: relative;
    min-width: 0;
}

.pdp-media-gallery__stage {
    position: relative;
    box-sizing: border-box;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border: 1px solid var(--u8r-rule, #d9deda);
    border-radius: var(--u8r-radius-tile, 14px);
    background: #fff;
}

.pdp-media-gallery__panel {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(.75rem, 3%, 1.5rem);
    visibility: hidden;
    opacity: 0;
    transition: opacity .16s ease, visibility 0s linear .16s;
}

.pdp-media-gallery__panel.is-active {
    visibility: visible;
    opacity: 1;
    transition: opacity .16s ease;
}

.pdp-media-gallery__zoom-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    cursor: zoom-in;
}

.pdp-media-gallery__image,
.pdp-media-gallery__video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.pdp-media-gallery__zoom-fab {
    position: absolute;
    right: .625rem;
    bottom: .625rem;
    z-index: 2;
    display: grid;
    width: var(--pdp-gallery-control);
    height: var(--pdp-gallery-control);
    place-items: center;
    padding: 0;
    border: 1px solid var(--u8r-rule, #d9deda);
    border-radius: 50%;
    background: #fff;
    color: var(--u8r-ink, #181a19);
    cursor: pointer;
}

.pdp-media-gallery__zoom-fab[hidden] {
    display: none;
}

.pdp-media-gallery__placeholder {
    display: grid;
    width: 100%;
    height: 100%;
    place-content: center;
    justify-items: center;
    gap: .5rem;
    color: var(--u8r-muted, #59615c);
    text-align: center;
}

.pdp-media-gallery__placeholder > span {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border: 1px solid var(--u8r-rule, #d9deda);
    border-radius: 50%;
    background: #fff;
}

.pdp-media-gallery__placeholder svg {
    width: 1.125rem;
    height: 1.125rem;
}

.pdp-media-gallery__placeholder small {
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.3;
}

/* Empty (owner correction): the missing-media state keeps the SAME stage
   geometry as real media on desktop — the same rule as product cards — so the
   opening never reflows around an absent image. Phones use a short band. */
.pdp-media-gallery--empty .pdp-media-gallery__stage {
    border-style: dashed;
    border-color: var(--u8r-rule-strong, #b7bfb9);
    background: var(--u8r-section, #f4f5f6);
}

/* Control row: [previous][rail][next] — three separate grid tracks. */
.pdp-media-gallery__rail {
    display: grid;
    grid-template-columns: var(--pdp-gallery-control) minmax(0, 1fr) var(--pdp-gallery-control);
    align-items: center;
    gap: .5rem;
    min-width: 0;
}

.pdp-media-gallery__nav {
    position: relative;
    z-index: 1;
    display: grid;
    width: var(--pdp-gallery-control);
    height: var(--pdp-gallery-control);
    place-items: center;
    padding: 0;
    border: 1px solid var(--u8r-rule, #d9deda);
    border-radius: 50%;
    background: #fff;
    color: var(--u8r-ink, #181a19);
    cursor: pointer;
}

.pdp-media-gallery__nav svg {
    width: 1.125rem;
    height: 1.125rem;
}

.pdp-media-gallery__nav:hover {
    border-color: var(--u8r-rule-strong, #b7bfb9);
}

.pdp-media-gallery__nav:focus-visible,
.pdp-media-gallery__thumb:focus-visible,
.pdp-media-gallery__zoom-fab:focus-visible {
    outline: 3px solid var(--u8r-focus, #356c80);
    outline-offset: 2px;
}

/* The rail is its own bounded, internally scrolling region. */
.pdp-media-gallery__thumbs {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 3px;
    overflow: hidden;
}

.pdp-media-gallery__thumbs .swiper-slide {
    width: var(--pdp-gallery-thumb);
    height: auto;
    flex-shrink: 0;
}

.pdp-media-gallery__thumb {
    position: relative;
    display: block;
    box-sizing: border-box;
    width: var(--pdp-gallery-thumb);
    height: var(--pdp-gallery-thumb);
    padding: 3px;
    border: 1px solid var(--u8r-rule, #d9deda);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.pdp-media-gallery__thumb[aria-pressed="true"] {
    border-color: var(--u8r-ink, #181a19);
    box-shadow: inset 0 0 0 1px var(--u8r-ink, #181a19);
}

.pdp-media-gallery__thumb-media {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    overflow: hidden;
    border-radius: 7px;
    background: var(--u8r-section, #f4f5f6);
    color: var(--u8r-muted, #59615c);
}

.pdp-media-gallery__thumb-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pdp-media-gallery__thumb-media svg {
    width: 1.125rem;
    height: 1.125rem;
}

.pdp-media-gallery__thumb-type {
    position: absolute;
    right: 6px;
    bottom: 6px;
    display: grid;
    width: 1.25rem;
    height: 1.25rem;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--u8r-ink, #181a19);
}

.pdp-media-gallery__thumb-type svg {
    width: .75rem;
    height: .75rem;
}

.pdp-media-gallery__counter {
    margin: 0;
    color: var(--u8r-muted, #59615c);
    font-size: .8125rem;
    line-height: 1.4;
    text-align: center;
}

@media (max-width: 899px) {
    .pdp-media-gallery__stage {
        aspect-ratio: 4 / 3;
    }

    /* Empty on phones: a short labelled band, not a tall blank canvas
       directly under the product name. */
    .pdp-media-gallery--empty .pdp-media-gallery__stage {
        aspect-ratio: auto;
        height: 4.5rem;
    }

    .pdp-media-gallery--empty .pdp-media-gallery__placeholder {
        grid-auto-flow: column;
        align-items: center;
        gap: .625rem;
    }

    .pdp-media-gallery--empty .pdp-media-gallery__placeholder > span {
        width: 2.25rem;
        height: 2.25rem;
    }
}

@media (max-width: 767px) {
    .pdp-media-gallery {
        --pdp-gallery-thumb: 3.5rem;
    }
}

/* WCAG 2.2 target size: a thumbnail cut by the rail edge would be a sliver
   target, so only fully visible thumbnails are shown. Clipped ones stay in
   the tab order and stay operable (transparent, not hidden): focusing or
   activating one slides it fully into view; previous/next, the arrow keys and
   the rail's scroll reach the rest. */
.pdp-media-gallery__thumbs.swiper-initialized .swiper-slide:not(.swiper-slide-fully-visible) {
    opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
    .pdp-media-gallery__panel,
    .pdp-media-gallery__panel.is-active {
        transition: none;
    }
}

/* ── Product details (UIUX-008R) ──────────────────────────────────────────
 * The opening's compact facts list: label over value in ruled cells, two
 * or three per row on wide screens, a stacked "label — value" list on
 * phones. Status facts link to their chapter; a missing mandatory fact is
 * a muted neutral state. Never cards, never a panel-in-panel.
 */
.pdp-product-details {
    --color-focus: #1f2328;
    min-width: 0;
}

.pdp-product-details__title {
    margin: 0 0 .375rem;
    color: var(--pdp-ink, #181a19);
    font-size: var(--pdp-text-label, .8125rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
}

.pdp-product-details__list {
    display: grid;
    /* auto-fit: the recorded facts share the full column width (no empty
       tracks leaving a void beside two or three facts). */
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 11.5rem), 1fr));
    column-gap: 1.25rem;
    margin: 0;
}

.pdp-product-details__row {
    display: grid;
    align-content: start;
    gap: .125rem;
    min-width: 0;
    padding: .625rem 0;
    border-top: 1px solid var(--pdp-rule, #d9deda);
}

.pdp-product-details__row dt {
    color: var(--pdp-muted, #59615c);
    font-size: var(--pdp-text-label, .8125rem);
    font-weight: 500;
    line-height: 1.35;
}

.pdp-product-details__row dd {
    display: grid;
    gap: .0625rem;
    min-width: 0;
    margin: 0;
    color: var(--pdp-ink, #181a19);
    font-size: .9375rem;
    font-weight: 650;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.pdp-product-details__link {
    justify-self: start;
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--pdp-rule-strong, #b7bfb9);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}

.pdp-product-details__link:hover {
    text-decoration-color: currentColor;
}

.pdp-product-details__link:focus-visible,
.pdp-product-details__source a:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 2px;
    border-radius: 2px;
}

.pdp-product-details__detail {
    color: var(--pdp-muted, #59615c);
    font-size: var(--pdp-text-label, .8125rem);
    font-weight: 450;
}

.pdp-product-details__row[data-state="missing"] dd {
    color: var(--pdp-muted, #59615c);
    font-weight: 500;
}

.pdp-product-details__source {
    max-width: none;
    margin: .25rem 0 0;
    padding-top: .625rem;
    border-top: 1px solid var(--pdp-rule, #d9deda);
    color: var(--pdp-muted, #59615c);
    font-size: var(--pdp-text-label, .8125rem);
    line-height: 1.45;
}

.pdp-product-details__source a {
    color: var(--pdp-ink, #181a19);
    font-weight: 600;
    text-underline-offset: 3px;
}

/* Phones: one stacked "label — value" list. */
@media (max-width: 575.98px) {
    .pdp-product-details__list {
        grid-template-columns: minmax(0, 1fr);
    }

    .pdp-product-details__row {
        grid-template-columns: minmax(6.5rem, 38%) minmax(0, 1fr);
        align-items: baseline;
        column-gap: .75rem;
        padding: .5rem 0;
    }
}

/* ── Explore cue (UIUX-008R) ──────────────────────────────────────────────
 * The bottom edge of the opening stage: one restrained link into the
 * decision journey. Neutral surface, a small multicolour intelligence mark
 * in the AANYA accent palette, a clear downward arrow. Subordinate to the
 * commerce actions: no solid green, no black button, no motion loop.
 * Placement belongs to the page composition (pdp-visual-authority.css).
 */
.pdp-explore-cue {
    --color-focus: #1f2328;
    display: inline-grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: .75rem;
    box-sizing: border-box;
    min-height: 3.5rem;
    max-width: 100%;
    padding: .5rem .5rem .5rem .75rem;
    border: 1px solid var(--pdp-rule, #d9deda);
    border-radius: 999px;
    background: var(--pdp-quiet, #f4f5f6);
    color: var(--pdp-ink, #181a19);
    text-decoration: none;
    transition: border-color .16s ease, background-color .16s ease;
}

.pdp-explore-cue:hover {
    border-color: var(--pdp-rule-strong, #b7bfb9);
    background: #fff;
}

.pdp-explore-cue:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}

.pdp-explore-cue__mark {
    display: inline-flex;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--pdp-rule, #d9deda);
}

.pdp-explore-cue__mark svg {
    width: 1.375rem;
    height: 1.375rem;
    fill: none;
    stroke-width: 2.4;
    stroke-linecap: round;
}

.pdp-explore-cue__arc--a { stroke: var(--accent-blue, #356c80); }
.pdp-explore-cue__arc--b { stroke: var(--accent-yellow, #e3a12f); }
.pdp-explore-cue__arc--c { stroke: var(--accent-coral, #9c6064); }
.pdp-explore-cue__arc--d { stroke: var(--brand-green, #2f6f53); }

.pdp-explore-cue__lens {
    fill: var(--pdp-ink, #181a19);
    stroke: none;
}

.pdp-explore-cue__text {
    display: grid;
    min-width: 0;
    gap: .0625rem;
}

.pdp-explore-cue__headline {
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.3;
}

.pdp-explore-cue__supporting {
    color: var(--pdp-muted, #59615c);
    font-size: var(--pdp-text-label, .8125rem);
    line-height: 1.35;
}

.pdp-explore-cue__arrow {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--pdp-rule-strong, #b7bfb9);
    border-radius: 50%;
    background: #fff;
    color: var(--pdp-ink, #181a19);
    transition: transform .16s ease, border-color .16s ease;
}

.pdp-explore-cue:hover .pdp-explore-cue__arrow,
.pdp-explore-cue:focus-visible .pdp-explore-cue__arrow {
    border-color: var(--pdp-ink, #181a19);
    transform: translateY(2px);
}

/* Phones: headline only — the optional supporting line would wrap to four lines. */
@media (max-width: 575.98px) {
    .pdp-explore-cue {
        min-height: 3.25rem;
    }

    .pdp-explore-cue__supporting {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pdp-explore-cue,
    .pdp-explore-cue__arrow {
        transition: none;
    }

    .pdp-explore-cue:hover .pdp-explore-cue__arrow,
    .pdp-explore-cue:focus-visible .pdp-explore-cue__arrow {
        transform: none;
    }
}

.pdp-journey ul,
.pdp-journey ol {
    list-style: none;
    padding-left: 0;
}

.pdp-story-feature__media .pdp-designed-panel__badge {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
}

.pdp-designed-panel__badge {
    position: absolute;
    top: 8px;
    right: 8px;
    font-size: 0.5625rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 0.15rem 0.35rem;
    border-radius: 4px;
    background: rgba(28, 25, 23, 0.06);
    color: var(--pdp-brown);
}

/* ── Chapters ── */
.pdp-chapter {
    margin-block: 0;
    padding-block: var(--pdp-section-space);
    scroll-margin-top: calc(var(--aanya-global-sticky-bottom) + var(--pdp-context-height) + var(--pdp-nav-height) + 16px);
}

.pdp-chapter__head {
    margin-bottom: 1.5rem;
}

.pdp-chapter__eyebrow {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pdp-leaf);
}

.pdp-chapter__eyebrow--editorial { color: var(--pdp-coral); }

.pdp-chapter__title {
    margin: 0.4rem 0 0;
    font-size: clamp(2rem, 3vw, 2.5rem);
    line-height: 1.12;
    color: var(--pdp-charcoal);
}

.pdp-chapter__lede {
    margin: 0.55rem 0 0;
    font-size: 1.0625rem;
    line-height: 1.5;
    color: var(--pdp-brown);
    max-width: 52ch;
}

.pdp-chapter--suitability,
.pdp-chapter--source,
.pdp-chapter--buy {
    padding-inline: clamp(1rem, 2vw, 1.5rem);
    border-radius: 0;
}
.pdp-chapter--suitability,
.pdp-chapter--source,
.pdp-chapter--buy,
.pdp-chapter--discover { background: #fff; }

.pdp-exp__subtitle {
    margin: 0 0 0.5rem;
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    color: var(--pdp-charcoal);
}

/* Evidence / suitability */
.pdp-compat-rows {
    list-style: none;
    margin: 0.5rem 0 0;
    padding: 0;
    display: grid;
    gap: 0.45rem;
}

.pdp-compat-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.55rem;
    align-items: start;
    padding: 0.65rem 0.75rem;
    border-radius: var(--pdp-radius-md);
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--pdp-brown) 8%, transparent);
}

.pdp-compat-row[data-status="match"] { border-left: 3px solid var(--pdp-green); }
.pdp-compat-row[data-status="caution"],
.pdp-compat-row[data-status="conflict"] { border-left: 3px solid var(--pdp-orange); }
.pdp-compat-row[data-status="unknown"] { border-left: 3px solid color-mix(in srgb, var(--pdp-brown) 30%, transparent); }

.pdp-compat-row__why {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--pdp-blue);
    background: none;
    border: 0;
    cursor: pointer;
}

.pdp-allergen-matrix {
    display: grid;
    gap: 0.4rem;
    margin-top: 0.6rem;
}

.pdp-allergen-matrix__head,
.pdp-allergen-matrix__row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) auto minmax(0, 1.2fr);
    gap: 0.75rem;
    align-items: center;
}

.pdp-allergen-matrix__row {
    padding: 0.55rem 0.65rem;
    border-radius: var(--pdp-radius-sm);
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--pdp-brown) 8%, transparent);
    transition: box-shadow 0.15s;
}

.pdp-allergen-matrix__row:hover {
    box-shadow: 0 4px 12px rgba(28, 25, 23, 0.06);
}

.pdp-allergen-matrix__badge {
    display: inline-flex;
    padding: 0.15rem 0.5rem;
    border-radius: var(--pdp-radius-pill);
    font-size: 0.6875rem;
    font-weight: 700;
}

.pdp-allergen-matrix__row[data-status="present"] .pdp-allergen-matrix__badge {
    background: color-mix(in srgb, #c53030 12%, #fff);
    color: #8b1e1e;
}

.pdp-allergen-matrix__row[data-status="may_contain"] .pdp-allergen-matrix__badge,
.pdp-allergen-matrix__row[data-status="cross_contact"] .pdp-allergen-matrix__badge {
    background: color-mix(in srgb, var(--pdp-orange) 18%, #fff);
    color: var(--pdp-brown);
}

.pdp-allergen-matrix__row[data-status="no_evidence"] .pdp-allergen-matrix__badge,
.pdp-allergen-matrix__row[data-status="not_evaluated"] .pdp-allergen-matrix__badge {
    background: var(--pdp-surface);
    color: var(--pdp-brown);
}

/* Lower-PDP information architecture: four deliberate surface families. */
.pdp-chapter__head { margin-bottom: clamp(1.5rem, 2.4vw, 2rem); }

.pdp-disclosure__heading {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.pdp-disclosure__heading strong {
    color: var(--pdp-charcoal);
    font-size: 1rem;
    line-height: 1.25;
}

.pdp-disclosure__heading small {
    color: var(--pdp-brown);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.35;
}

.pdp-disclosure__body {
    padding: 0 0 1.25rem;
    overflow-x: auto;
}

.pdp-disclosure__body :is(table, .pdp-allergen-matrix) { width: 100%; }

.pdp-exp--suitability-preview { display: grid; gap: var(--pdp-card-gap); }

@media (max-width: 48rem) {

    .pdp-disclosure__heading small { font-size: 0.8125rem; }
    .pdp-disclosure__summary { align-items: flex-start; }

}

.pdp-disclosure {
    border: 1px solid rgba(107, 68, 35, 0.14);
    border-radius: 14px;
    background: #fff;
    padding: 0;
    overflow: clip;
    transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}

.pdp-disclosure__summary {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 64px;
    padding: 1rem 1.125rem;
    cursor: pointer;
    font-weight: 600;
    list-style: none;
}

.pdp-disclosure__summary:hover { background: #f6f6f6; }

.pdp-disclosure__summary > svg:first-child {
    box-sizing: content-box;
    padding: 0.5rem;
    border-radius: 999px;
    background: #f0f0f0;
    color: #181a19;
}

.pdp-disclosure[open] {
    border-color: rgba(81, 176, 53, 0.42);
    box-shadow: 0 10px 28px rgba(28, 25, 23, 0.07);
}

.pdp-disclosure > :not(summary) {
    margin-inline: 1.125rem;
    animation: pdp-disclosure-reveal 220ms ease both;
}

.pdp-disclosure__chevron { transition: transform 220ms ease; }
.pdp-disclosure[open] .pdp-disclosure__chevron { transform: rotate(180deg); }

@keyframes pdp-disclosure-reveal {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: translateY(0); }
}

.pdp-disclosure__summary::-webkit-details-marker { display: none; }

.pdp-story-feature {
    display: grid;
    gap: 1rem;
}

@media (min-width: 64rem) {
    .pdp-story-feature {
        grid-template-columns: minmax(0, 0.4fr) minmax(0, 0.6fr);
    }
}

.pdp-story-feature__quote {
    margin: 0;
    font-size: 1.5rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--pdp-charcoal);
}

.pdp-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 40px;
    padding: 0.4rem 0.9rem;
    border-radius: var(--pdp-radius-sm);
    font-weight: 700;
}

.pdp-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.5rem;
    border-radius: var(--pdp-radius-pill);
    font-size: 0.6875rem;
    font-weight: 700;
}

.pdp-status-badge--trust {
    background: color-mix(in srgb, var(--pdp-green) 12%, #fff);
    color: #181a19;
}

.pdp-chapter,
.pdp-compat-row {
    transition: box-shadow 0.18s var(--pdp-ease);
}

@media (prefers-reduced-motion: reduce) {
    .pdp-product-context-bar {
        transition: none;
    }
}

@media (max-width: 64rem) {
    .pdp-hero__grid--media {
        grid-template-columns: minmax(0, 1fr);
    }

}

.pdp-exp__icon {
    width: 2rem;
    height: 2rem;
    padding: 0.35rem;
    border-radius: 10px;
    background: color-mix(in srgb, var(--pdp-brown) 10%, #fff);
    color: var(--pdp-brown);
    flex-shrink: 0;
}

.pdp-tooltip,
[data-pdp-tooltip] {
    position: absolute;
    z-index: 40;
    max-width: 22rem;
    padding: 0.75rem 0.85rem;
    border-radius: var(--pdp-radius-md);
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--pdp-brown) 12%, transparent);
    box-shadow: 0 12px 28px rgba(28, 25, 23, 0.12);
    font-size: 0.8125rem;
    line-height: 1.45;
    color: var(--pdp-charcoal);
}

.pdp-tooltip:not(.is-open),
[data-pdp-tooltip]:not(.is-open) {
    display: none;
}

.pdp-compat-row {
    position: relative;
}

.pdp-journey .product-trust-strip--compact,
.single-product-page .product-trust-strip.product-trust-strip--compact {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
    padding: 0.25rem 0 0.1rem;
    margin: 0 0 0.5rem;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    min-height: 0;
    width: max-content;
    max-width: 100%;
}

.pdp-diet-status {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
}

.pdp-diet-status__icon {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--pdp-leaf) 16%, #fff);
    color: var(--pdp-leaf);
}

.pdp-diet-status--cert .pdp-diet-status__icon {
    background: color-mix(in srgb, var(--pdp-blue) 14%, #fff);
    color: var(--pdp-blue);
}

.pdp-diet-status strong,
.pdp-diet-status span {
    display: block;
    line-height: 1.25;
}

.pdp-diet-status strong {
    font-size: 0.9375rem;
    color: var(--pdp-charcoal);
}

.pdp-diet-status span {
    font-size: 0.75rem;
    color: var(--pdp-brown);
}

.pdp-suitability-status {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
    border-radius: var(--pdp-radius-md);
    background: color-mix(in srgb, var(--pdp-orange) 10%, #fff);
    border: 1px solid color-mix(in srgb, var(--pdp-orange) 22%, transparent);
}

.pdp-suitability-status__icon {
    width: 28px;
    height: 28px;
    color: var(--pdp-orange);
}

.pdp-suitability-status__eyebrow,
.pdp-finding-row__title {
    margin: 0;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pdp-brown);
}

.pdp-suitability-status__title,
.pdp-finding-row__title {
    text-transform: none;
    letter-spacing: 0;
    font-size: 1.05rem;
    color: var(--pdp-charcoal);
}

.pdp-suitability-status__copy,
.pdp-finding-row__detail {
    margin: 0.25rem 0 0;
    font-size: 0.9375rem;
    color: var(--pdp-brown);
}

.pdp-finding-list {
    display: grid;
    gap: 0.55rem;
}

.pdp-finding-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.7rem;
    align-items: center;
    padding: 0.7rem 0.8rem;
    border-radius: var(--pdp-radius-md);
    background: #fff;
    border: 1px solid color-mix(in srgb, var(--pdp-brown) 10%, transparent);
}

.pdp-finding-row__icon {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--pdp-leaf) 12%, #fff);
    color: var(--pdp-leaf);
}

.pdp-story-feature__media {
    position: relative;
    min-height: 18rem;
    border-radius: var(--pdp-radius-lg);
    overflow: hidden;
    background:
        radial-gradient(circle at 22% 28%, color-mix(in srgb, var(--pdp-leaf) 18%, #fff) 0 28%, transparent 32%),
        radial-gradient(circle at 82% 76%, color-mix(in srgb, var(--pdp-orange) 16%, #fff) 0 24%, transparent 30%),
        linear-gradient(160deg, #e3e3e3 0%, #f0f0f0 100%);
}

.pdp-story-feature__wash {
    position: absolute;
    inset: 8% 18% auto 8%;
    width: 54%;
    opacity: 0.22;
    object-fit: contain;
}

.pdp-story-feature__product {
    width: 58%;
    height: auto;
    max-height: 14rem;
    object-fit: contain;
    position: absolute;
    left: 10%;
    top: 50%;
    transform: translateY(-50%);
}

.pdp-story-feature__motif {
    width: 42%;
    max-width: 10rem;
    position: absolute;
    right: 7%;
    bottom: 10%;
    opacity: 0.92;
}

.pdp-story-feature__copy {
    max-width: 62ch;
}

.pdp-story-feature__headline {
    margin: 0.35rem 0 0;
    font-size: clamp(1.6rem, 2.4vw, 2.1rem);
    line-height: 1.15;
}

.pdp-story-feature__lede {
    font-size: 1.125rem;
    color: var(--pdp-brown);
}

.pdp-story-feature__quote {
    margin: 1rem 0 0;
    padding-left: 0.85rem;
    border-left: 3px solid var(--pdp-coral);
    font-size: 1.2rem;
    line-height: 1.35;
    font-weight: 700;
}

.pdp-journey .pdp-discover-products .associated-product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
}

.pdp-journey .pdp-discover-products .product-card,
.pdp-journey .pdp-discover-products .product-card-content {
    overflow: visible;
    height: auto;
    display: flex;
    flex-direction: column;
}

.pdp-journey .pdp-discover-products .product-card .product-title {
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    white-space: normal;
    font-size: clamp(1.05rem, 1.5vw, 1.25rem);
    line-height: 1.3;
}

.pdp-journey .pdp-discover-products .product-card-media {
    position: relative;
}

.pdp-journey .pdp-discover-products .product-card .product-image {
    min-height: 0;
    max-height: 230px;
    aspect-ratio: 1;
}

.pdp-journey .pdp-discover-products .product-card .product-badges {
    top: 0.55rem;
    right: auto !important;
    left: 0.55rem;
    max-width: calc(100% - 3.8rem) !important;
}

.pdp-journey .pdp-discover-products .product-card .product-badge {
    max-width: 8.5rem;
}

.pdp-journey .pdp-discover-products .product-card-offer-intelligence,
.pdp-journey .pdp-discover-products .product-card-nutrition {
    display: none;
}

.pdp-journey .pdp-discover-products .product-card-description {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
    font-size: 0.875rem;
}

.pdp-journey .pdp-discover-products .product-card {
    border-radius: var(--pdp-radius-lg);
    box-shadow: 0 8px 24px rgba(28, 25, 23, 0.07);
}

.pdp-journey :is(.pdp-exp__icon, .pdp-story-section__mark, .pdp-disclosure__summary > svg) {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
}

.pdp-journey .pdp-discover-products .product-card-commerce__toggle {
    display: flex;
}

.pdp-journey .pdp-discover-products .product-card-commerce__panel {
    display: none !important;
}

.pdp-allergen-matrix__head {
    padding: 0.45rem 0.65rem;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--pdp-brown);
}

.pdp-compat-row {
    min-height: 3.25rem;
    align-items: center;
}

.pdp-compat-row__icon {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--pdp-leaf) 12%, #fff);
}

.pdp-compat-row[data-status="caution"] .pdp-compat-row__icon,
.pdp-compat-row[data-status="conflict"] .pdp-compat-row__icon {
    background: color-mix(in srgb, var(--pdp-orange) 14%, #fff);
    color: var(--pdp-orange);
}

.pdp-disclosure__summary {
    list-style: none;
}

.pdp-disclosure__chevron { margin-left: auto; }

.pdp-chapter,
.pdp-exp,
.pdp-finding-row,
.pdp-story-feature__copy {
    font-size: 0.98rem;
}

@media (max-width: 64rem) {
    .pdp-journey .pdp-discover-products .associated-product-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 48rem) {
    :root {
        --pdp-context-height: 50px;
        --pdp-nav-height: 44px;
    }

    .pdp-chapter { padding-block: 2.25rem; }

    .pdp-product-context-bar__brand,
    .pdp-product-context-bar__badge,
    .pdp-product-context-bar__price {
        display: none;
    }

    .pdp-product-context-bar__buy span { display: none; }

    .pdp-hero .product-title {
        font-size: clamp(1.85rem, 8vw, 2.4rem);
        max-width: none;
    }
}

/* Package 94 → UIUX-008R PDP reconstruction: the later composition passes
   that lived here (light-canvas refinement, customer redesign, owner premium
   recomposition, immersive story system, incidental-box removal) were
   deleted. Page composition is owned solely by pages/pdp-visual-authority.css;
   this file keeps the intrinsic component rules. Related product cards keep
   their natural height (the grid, not the card, decides row alignment). */
.pdp-journey .related-products .products-grid { align-items: start; }
.pdp-journey .related-products .product-card { height: auto; }

/* Gate 3 — governed Ingredient Intelligence (Inside chapter only) */
.pdp-ii-block__intro {
    margin: 0 0 1rem;
    color: var(--pdp-muted, #5c6670);
    font-size: .9375rem;
    line-height: 1.55;
}
.pdp-ii-declaration + .pdp-ii-declaration {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pdp-surface-border);
}
.pdp-ii-source__label {
    margin: 0 0 .35rem;
    font-size: .8125rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--pdp-muted, #5c6670);
}
.pdp-ii-source__text {
    margin: 0;
    padding: .85rem 1rem;
    border-left: 3px solid var(--pdp-surface-border);
    background: color-mix(in srgb, var(--pdp-surface-border) 18%, transparent);
    font-style: normal;
}
.pdp-ii-fragments {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .85rem;
}
ol.pdp-ii-fragments {
    counter-reset: pdp-ii-fragment;
}
ol.pdp-ii-fragments > .pdp-ii-fragment {
    counter-increment: pdp-ii-fragment;
}
.pdp-ii-fragment {
    padding: .85rem 1rem;
    border: 1px solid var(--pdp-surface-border);
    border-radius: .75rem;
    background: #fff;
}
.pdp-ii-fragment__main {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    align-items: baseline;
}
.pdp-ii-fragment__name {
    font-weight: 600;
}
.pdp-ii-fragment__link {
    font-size: .9375rem;
}
.pdp-ii-fragment__canonical {
    color: var(--pdp-muted, #5c6670);
    font-size: .9375rem;
}
.pdp-ii-fragment__status {
    margin: .45rem 0 0;
    font-size: .875rem;
    color: var(--pdp-muted, #5c6670);
}
.pdp-ii-fragment__status-label {
    font-weight: 600;
}
.pdp-ii-fragment--ambiguous .pdp-ii-fragment__status-label,
.pdp-ii-fragment--unresolved .pdp-ii-fragment__status-label,
.pdp-ii-fragment--rejected .pdp-ii-fragment__status-label {
    color: inherit;
}
ol.pdp-ii-fragments > .pdp-ii-fragment::before {
    content: counter(pdp-ii-fragment) ". ";
    font-weight: 600;
    margin-right: .35rem;
}

/* Gate 3 — ATHARVA traditional knowledge (Inside chapter only) */
.pdp-atharva-block__intro {
    margin: 0 0 1rem;
    color: var(--pdp-muted, #5c6670);
    font-size: .9375rem;
    line-height: 1.55;
}
.pdp-atharva-ingredient + .pdp-atharva-ingredient {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--pdp-surface-border);
}
.pdp-atharva-ingredient__name {
    margin: 0;
    font-size: 1.0625rem;
    font-weight: 650;
}
.pdp-atharva-ingredient__relation {
    margin: .25rem 0 0;
    color: var(--pdp-muted, #5c6670);
    font-size: .875rem;
}
.pdp-atharva-concepts {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: .85rem;
}
.pdp-atharva-concept {
    padding: .85rem 1rem;
    border: 1px solid var(--pdp-surface-border);
    border-radius: .75rem;
    background: #fff;
}
.pdp-atharva-concept__main {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .75rem;
    align-items: baseline;
}
.pdp-atharva-concept__name {
    font-weight: 600;
}
.pdp-atharva-concept__type {
    color: var(--pdp-muted, #5c6670);
    font-size: .875rem;
}
.pdp-atharva-concept__names {
    margin: .35rem 0 0;
    color: var(--pdp-muted, #5c6670);
    font-size: .9375rem;
}
.pdp-atharva-concept__citation {
    margin: .55rem 0 0;
    font-size: .875rem;
}
.pdp-atharva-concept__citation-label {
    display: block;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-size: .75rem;
    color: var(--pdp-muted, #5c6670);
}
.pdp-atharva-concept__citation cite {
    font-style: normal;
}

/* ==========================================================================
   GLOBAL-MARKETS-CURRENT-001 / FABLE-UX — PDP market commerce states.
   One dominant availability message (the hero "Actions & availability"
   panel), calm secondary context in Buying options, and the Gate 3 "Market
   context" line kept as context, never as a second warning. Presentation
   only: ProductMarketCommerceState decides what is said; these rules decide
   how loudly. No price, CTA, retailer or shipping copy is ever introduced.
   ========================================================================== */
.pdp-market-commerce {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: start;
    gap: 0.5rem 0.75rem;
    box-sizing: border-box;
    margin: 0;
    padding: 0.9rem 1rem;
    border: 1px solid var(--pdp-rule, #d9deda);
    border-radius: var(--pdp-radius-card, 14px);
    background: var(--surface-primary, #fff);
    color: var(--pdp-ink, #181a19);
}

.pdp-market-commerce__icon {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--pdp-quiet, #f4f5f6);
    color: var(--pdp-muted, #59615c);
}

.pdp-market-commerce__icon svg {
    width: 1.1rem;
    height: 1.1rem;
}

.pdp-market-commerce__body {
    min-width: 0;
    align-self: center;
}

.pdp-market-commerce__message {
    margin: 0;
    max-width: none;
    color: var(--pdp-ink, #181a19);
    font-size: var(--pdp-text-meta, 0.875rem);
    font-weight: 650;
    line-height: 1.45;
}

.pdp-market-commerce__action,
:where(.site-main) .pdp-market-commerce__action {
    grid-column: 2;
    justify-self: start;
    min-height: 2.5rem;
    margin: 0;
    padding: 0.5rem 1rem;
    font-size: var(--pdp-text-label, 0.8125rem);
}

/* The dominant statement in the hero panel: a white card on the quiet panel
   with the one resolving action. */
.single-product-page.pdp-journey .pdp-hero .pdp-market-commerce--hero {
    margin: 0;
}

.pdp-market-commerce--hero .pdp-market-commerce__message {
    font-size: 1rem;
}

/* Secondary context inside Buying options: quiet surface, same truth. */
.pdp-market-commerce--chapter {
    max-width: 44rem;
    border-color: transparent;
    background: var(--pdp-quiet, #f4f5f6);
}

.pdp-market-commerce--chapter .pdp-market-commerce__icon {
    background: var(--surface-primary, #fff);
}

/* State tones: calm and factual; never an error, never a promise. */
.pdp-market-commerce--state-no-market .pdp-market-commerce__icon {
    color: var(--green-700, #194b39);
    background: color-mix(in srgb, var(--green-500, #2f6f53) 10%, #fff);
}

.pdp-market-commerce--state-not-applicable .pdp-market-commerce__icon,
.pdp-market-commerce--state-unavailable .pdp-market-commerce__icon {
    color: var(--pdp-attention, #7a4b00);
    background: color-mix(in srgb, var(--pdp-attention, #7a4b00) 10%, #fff);
}

.pdp-market-commerce--state-unknown .pdp-market-commerce__icon {
    color: var(--pdp-muted, #59615c);
}

@media (max-width: 480px) {
    .pdp-market-commerce__action,
    :where(.site-main) .pdp-market-commerce__action {
        grid-column: 1 / -1;
        justify-self: stretch;
        width: 100%;
    }
}

/* ---- Gate 3 "Market context": secondary context, one line ------------------ */
.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context:not([hidden]) {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context .pdp-global-markets-status__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.15rem 0.5rem;
    padding: 0;
    border: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context .pdp-global-markets-status__label {
    color: var(--pdp-muted, #59615c);
    font-size: var(--pdp-text-label, 0.8125rem);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context .pdp-global-markets-status__label:has(+ p:not([hidden]))::after {
    content: "·";
    margin-inline-start: 0.5rem;
    color: var(--pdp-rule-strong, #b7bfb9);
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context :is(.pdp-global-markets-status__message, .pdp-global-markets-status__invitation) {
    max-width: none;
    margin: 0;
    color: var(--pdp-ink, #181a19);
    font-size: var(--pdp-text-label, 0.8125rem);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status.pdp-market-commerce-context p[hidden] {
    display: none;
}

/* A buyable market: the factual confirmation line. */
.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status--applicable.pdp-market-commerce-context .pdp-global-markets-status__message {
    color: var(--green-700, #194b39);
    font-weight: 650;
}

/* No market yet: the hero card already asks for the market; this stays a
   quiet pointer, not a second prompt. */
.single-product-page.pdp-journey .pdp-hero .pdp-market-commerce-context--quiet .pdp-global-markets-status__invitation {
    color: var(--pdp-muted, #59615c);
}

/* Not available / not confirmed / unavailable: the hero card is the one
   dominant message and Buying options carries the context, so this block
   stays in the document (hooks, live region, screen readers) but is not a
   third visible repetition. */
.single-product-page.pdp-journey .pdp-hero .pdp-market-commerce-context--echo {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
