/**
 * AANYA PDP visual authority — the single final PDP composition layer.
 *
 * UIUX-008R PDP reconstruction (owner rejection remediation) rewrote this
 * file. It replaces the stacked UIUX-007 / WEB-PRODUCT-UX-003 / UIUX-005 /
 * UIUX-007R3 / UIUX-008R-convergence passes that used to live here and
 * overrode one another. Component intrinsics stay in pages/pdp-system.css
 * (including the canonical media-gallery contract); this file owns only the
 * page composition: container, surfaces, rhythm, typography roles and the
 * responsive recomposition of the decision journey
 *   stage → at a glance → suitability → buy → inside → source & evidence →
 *   related → footer.
 *
 * Visual grammar: neutral page canvas; white contained feature surfaces
 * (stage, summary, panels, offer rows, cards); one canonical container
 * (--u8r-page-max / --u8r-gutter) for every section edge; reading measure
 * only for copy; no card-in-card, no decorative dividers, no tinted washes,
 * no scroll-reveal motion. Missing records are one muted note — never a
 * blank canvas, never a zero.
 */

.single-product-page.pdp-journey {
    --pdp-ink: var(--u8r-ink, #181a19);
    --pdp-muted: var(--u8r-muted, #59615c);
    --pdp-rule: var(--u8r-rule, #d9deda);
    --pdp-rule-strong: var(--u8r-rule-strong, #b7bfb9);
    --pdp-quiet: var(--u8r-section, #f4f5f6);
    --pdp-attention: #7a4b00;
    --pdp-radius-panel: var(--u8r-radius-panel, 18px);
    --pdp-radius-card: var(--u8r-radius-tile, 14px);
    --pdp-panel-pad: clamp(1rem, 2vw, 1.5rem);
    --pdp-gap: clamp(.875rem, 1.6vw, 1.25rem);
    --pdp-chapter-space: clamp(1.75rem, 3vw, 2.5rem);
    --pdp-text-body: 1rem;
    --pdp-text-meta: .875rem;
    --pdp-text-label: .8125rem;
    padding-bottom: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-body);
    line-height: 1.55;
}

/* ---- One container for every section edge ---------------------------- */
.single-product-page.pdp-journey :is(.pdp-shell, .pdp-journey-body) {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--u8r-page-max, 90rem);
    margin-inline: auto;
    padding-inline: var(--u8r-gutter, clamp(1rem, 3vw, 2rem));
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-journey-hero-wrap {
    padding-block: clamp(.75rem, 1.6vw, 1.25rem) clamp(1rem, 2vw, 1.5rem);
    border: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-preview-banner {
    margin: 0 0 .75rem;
    padding: .5rem .875rem;
    border: 1px solid var(--pdp-rule);
    border-radius: 10px;
    background: #fff;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-preview-banner p {
    max-width: none;
    margin: 0;
}

/* ---- Product stage: one white surface, media | identity | buy --------- */
.single-product-page.pdp-journey .pdp-hero {
    box-sizing: border-box;
    margin: 0;
    padding: var(--pdp-panel-pad);
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-panel);
    background: #fff;
    box-shadow: none;
}

/*
 * Stage grid — media | product understanding | Actions & availability, with
 * the explore cue on the bottom edge of the understanding column. Five
 * regions are direct children placed by grid areas; every stage breakpoint
 * lives here (reviewed widths only). The flexible row absorbs extra media
 * height, so nothing is stretched to match the media and the cue adds no
 * height of its own when the media is the taller column.
 *
 * Owner corrections: missing media keeps the same media column as real
 * media (no 12.5rem slot and no void beside it); the understanding column's
 * content uses its full width; on phones the media follows the product name.
 */
.single-product-page.pdp-journey .pdp-hero__grid--media {
    --pdp-stage-media: clamp(22rem, 30vw, 30rem);
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, var(--pdp-stage-media)) minmax(0, 1fr) minmax(16rem, 20rem);
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
        "media identity      actions"
        "media understanding actions"
        "media cue           actions";
    align-items: start;
    gap: 1rem clamp(1.25rem, 2.4vw, 2rem);
}

.single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__media {
    grid-area: media;
}

.single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__identity {
    grid-area: identity;
}

.single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__understanding {
    grid-area: understanding;
}

.single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__buy {
    grid-area: actions;
}

.single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-explore-cue {
    grid-area: cue;
    align-self: end;
    justify-self: stretch;
    margin-top: .5rem;
}

/* Tablet / small desktop: identity, facts and cue balance against the media;
   Actions & availability becomes one full-width strip below (offer |
   actions | market), so neither column is left with a void. */
@media (max-width: 1279px) {
    .single-product-page.pdp-journey .pdp-hero__grid--media {
        grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
        grid-template-rows: auto auto 1fr auto;
        grid-template-areas:
            "media   identity"
            "media   understanding"
            "media   cue"
            "actions actions";
    }

    .single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__buy {
        grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
        column-gap: 1.25rem;
    }

    .single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__buy > .pdp-hero__buy-title {
        grid-column: 1 / -1;
    }

}

/* Strip layout only: side by side, the stacked-panel separator above the
   actions is noise. */
@media (min-width: 900px) and (max-width: 1279px) {
    .single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__buy > .product-actions {
        padding-top: 0;
        border-top: 0;
    }
}

/* Phones and small tablets: name → media → description + facts → actions → cue. */
@media (max-width: 899px) {
    .single-product-page.pdp-journey .pdp-hero__grid--media {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        grid-template-areas:
            "identity"
            "media"
            "understanding"
            "actions"
            "cue";
        gap: 1rem;
    }

    .single-product-page.pdp-journey .pdp-hero:not(.pdp-hero--media-missing) .pdp-hero__media {
        max-width: 34rem;
    }

    .single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-explore-cue {
        align-self: start;
        margin-top: 0;
        border-radius: var(--pdp-radius-card);
    }

    .single-product-page.pdp-journey .pdp-hero__grid--media > .pdp-hero__buy {
        grid-template-columns: minmax(0, 1fr);
    }
}

.single-product-page.pdp-journey .pdp-hero__media,
.single-product-page.pdp-journey .pdp-hero__identity,
.single-product-page.pdp-journey .pdp-hero__understanding,
.single-product-page.pdp-journey .pdp-hero__buy {
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
}

/* Identity roles: brand (label), H1, fact chips, excerpt (body). */
.single-product-page.pdp-journey .product-summary {
    margin: 0;
}

.single-product-page.pdp-journey .pdp-hero .product-brand {
    margin: 0 0 .375rem;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    font-weight: 650;
    letter-spacing: .05em;
    line-height: 1.3;
    text-transform: uppercase;
}

.single-product-page.pdp-journey .pdp-hero .product-title {
    max-width: 24ch;
    margin: 0;
    color: var(--pdp-ink);
    font-size: clamp(1.75rem, 2.3vw, 2.375rem);
    font-weight: 720;
    letter-spacing: -.02em;
    line-height: 1.1;
    text-wrap: balance;
}

.single-product-page.pdp-journey .pdp-hero__facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem;
    margin-top: .875rem;
}

.single-product-page.pdp-journey .pdp-hero__facts > .product-hero-category {
    margin: 0;
}

.single-product-page.pdp-journey .pdp-hero__facts .product-trust-strip {
    display: contents;
}

.single-product-page.pdp-journey .pdp-hero__facts :is(.product-hero-category a, .pdp-hero__classification, .pdp-diet-status) {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    min-height: 1.75rem;
    margin: 0;
    padding: .125rem .6875rem;
    border: 1px solid var(--pdp-rule);
    border-radius: 999px;
    background: #fff;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-label);
    font-weight: 600;
    letter-spacing: 0;
    line-height: 1.3;
    text-decoration: none;
    text-transform: none;
}

.single-product-page.pdp-journey .pdp-hero__facts .product-hero-category a:hover,
.single-product-page.pdp-journey .pdp-hero__facts .product-hero-category a:focus-visible {
    border-color: var(--pdp-rule-strong);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.single-product-page.pdp-journey .pdp-hero__facts .pdp-diet-status > div {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .375rem;
}

.single-product-page.pdp-journey .pdp-hero__facts .pdp-diet-status strong {
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-hero__facts .pdp-diet-status span:not(.pdp-diet-status__icon, .screen-reader-text) {
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 500;
}

.single-product-page.pdp-journey .pdp-hero__facts .pdp-diet-status__icon {
    display: inline-flex;
    width: auto;
    height: auto;
    border: 0;
    background: transparent;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-hero__facts .pdp-diet-status__icon svg {
    width: .875rem;
    height: .875rem;
}

.single-product-page.pdp-journey .pdp-hero .product-merchandising-labels {
    margin-top: .75rem;
}

.single-product-page.pdp-journey .pdp-hero .product-excerpt {
    max-width: 62ch;
    margin-top: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-body);
    line-height: 1.55;
}

.single-product-page.pdp-journey .pdp-hero .product-excerpt p {
    max-width: none;
    margin: 0;
    /* The global `text-wrap: pretty` pulled words to the next line and left
       a short description ~260px wide on phones; fill the line instead. */
    text-wrap: wrap;
}

/* Product details close the understanding column: identity → facts. */
.single-product-page.pdp-journey .pdp-hero .pdp-product-details {
    margin-top: 1.125rem;
}

.single-product-page.pdp-journey .pdp-hero__understanding > .pdp-product-details:first-child {
    margin-top: 0;
}

/*
 * Actions & availability: one deliberate quiet panel — recorded offer (or a
 * compact no-retailer line) → primary action → Compare / Save / Provision
 * list → market context. Sized by its content, never stretched to the media.
 */
.single-product-page.pdp-journey .pdp-hero__buy {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    align-self: start;
    gap: .75rem;
    padding: 1rem;
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-card);
    background: var(--pdp-quiet);
}

.single-product-page.pdp-journey .pdp-hero__buy-title {
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-label);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
}

.single-product-page.pdp-journey .pdp-hero-offer__context {
    grid-column: 1;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-hero .pdp-hero-offer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .125rem 1rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-hero .pdp-hero-offer--none {
    display: block;
    max-width: none;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-hero-offer__label {
    grid-column: 1;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-hero-offer__seller {
    grid-column: 1;
    color: var(--pdp-ink);
    font-size: 1rem;
    font-weight: 700;
}

.single-product-page.pdp-journey .pdp-hero-offer__price {
    grid-row: 1 / span 2;
    grid-column: 2;
    margin: 0;
    color: var(--pdp-ink);
    font-size: 1.5rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
}

.single-product-page.pdp-journey .pdp-hero-offer__link {
    display: flex;
    grid-column: 1 / -1;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    margin-top: .625rem;
    padding-inline: 1.25rem;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
}

.single-product-page.pdp-journey .pdp-hero .product-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .5rem;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-hero .product-actions > .provision-list-control {
    grid-column: 1 / -1;
}

.single-product-page.pdp-journey .pdp-hero .product-actions :is(.btn, .wishlist-control, .provision-list-control, .wishlist-control button, .provision-list-control button) {
    display: flex;
    width: 100%;
    min-width: 0;
}

.single-product-page.pdp-journey .pdp-hero .product-actions :is(.btn, .wishlist-control button, .provision-list-control button) {
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    padding-inline: .875rem;
    border: 1px solid var(--pdp-rule-strong);
    border-radius: var(--radius-control, 6px);
    background: #fff;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 650;
    white-space: normal;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status:not([hidden]) {
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status__inner {
    display: grid;
    gap: .125rem;
    padding: 0;
    border: 0;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status :is(p, span) {
    max-width: none;
    margin: 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-hero .pdp-global-markets-status__label {
    color: var(--pdp-ink);
    font-weight: 650;
    letter-spacing: 0;
    text-transform: none;
}

.single-product-page.pdp-journey .pdp-hero-identity-sentinel {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 1px;
    height: 1px;
}

/* ---- Sticky product context + compact chapter navigation ------------- */
.single-product-page.pdp-journey .pdp-product-context-bar__inner {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--u8r-page-max, 90rem);
    margin-inline: auto;
    padding-inline: var(--u8r-gutter, clamp(1rem, 3vw, 2rem));
}

.single-product-page.pdp-journey .pdp-journey-nav {
    border-block: 1px solid var(--pdp-rule);
    background: #fff;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-journey-nav__inner {
    box-sizing: border-box;
    width: 100%;
    max-width: var(--u8r-page-max, 90rem);
    margin-inline: auto;
    padding-inline: var(--u8r-gutter, clamp(1rem, 3vw, 2rem));
}

.single-product-page.pdp-journey .pdp-journey-nav__list {
    justify-content: flex-start;
    gap: clamp(.25rem, 1.4vw, 1.25rem);
    width: auto;
    max-width: none;
    margin: 0;
    padding-block: 0;
}

.single-product-page.pdp-journey .pdp-journey-nav a {
    position: relative;
    min-height: 2.75rem;
    padding: .625rem .25rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-journey-nav a:hover {
    color: var(--pdp-ink);
}

.single-product-page.pdp-journey .pdp-journey-nav a[aria-current="true"],
.single-product-page.pdp-journey .pdp-journey-nav a.is-active {
    border: 0;
    background: transparent;
    box-shadow: inset 0 -2px 0 var(--pdp-ink);
    color: var(--pdp-ink);
}

/* ---- Chapters: one rhythm on the canvas, content in white surfaces ---- */
.single-product-page.pdp-journey .pdp-chapter {
    position: relative;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: var(--pdp-chapter-space) 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-chapter--source,
.single-product-page.pdp-journey .pdp-chapter--discover {
    border-top: 1px solid var(--pdp-rule);
}

.single-product-page.pdp-journey .pdp-chapter::before,
.single-product-page.pdp-journey .pdp-chapter::after {
    content: none;
}

.single-product-page.pdp-journey .pdp-chapter__head {
    display: block;
    max-width: 46rem;
    margin: 0 0 1rem;
}

.single-product-page.pdp-journey .pdp-chapter__head--with-more {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: .75rem 1.5rem;
    max-width: none;
}

.single-product-page.pdp-journey .pdp-chapter__intro {
    min-width: 0;
    max-width: 46rem;
}

.single-product-page.pdp-journey .pdp-chapter__more {
    flex: 0 0 auto;
    margin: 0 0 .1rem;
    white-space: nowrap;
}

.single-product-page.pdp-journey .pdp-chapter__title,
.single-product-page.pdp-journey .pdp-chapter h2.pdp-chapter__title {
    display: flex;
    align-items: center;
    gap: .625rem;
    max-width: none;
    margin: 0;
    color: var(--pdp-ink);
    font-size: clamp(1.25rem, 1.7vw, 1.5rem);
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.25;
    text-wrap: balance;
}

.single-product-page.pdp-journey .pdp-chapter__mark {
    display: grid;
    width: 2rem;
    height: 2rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--pdp-quiet);
    color: var(--pdp-ink);
}

.single-product-page.pdp-journey .pdp-chapter__mark svg {
    width: 1.05rem;
    height: 1.05rem;
}

.single-product-page.pdp-journey .pdp-chapter--suitability .pdp-chapter__mark {
    background: #f4f1fb;
    color: #584894;
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-chapter__mark {
    background: #eef6f2;
    color: #2d6e45;
}

.single-product-page.pdp-journey .pdp-chapter--inside .pdp-chapter__mark {
    background: #f0f6ee;
    color: #3f7a3a;
}

.single-product-page.pdp-journey .pdp-chapter--source .pdp-chapter__mark {
    background: #eef3f4;
    color: #2c4a52;
}

.single-product-page.pdp-journey .pdp-chapter--discover .pdp-chapter__mark {
    background: #fdf4ea;
    color: #8a5410;
}

.single-product-page.pdp-journey .pdp-chapter__lede {
    max-width: 62ch;
    margin: .375rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.5;
}

.single-product-page.pdp-journey .pdp-chapter--discover {
    padding-bottom: clamp(2.5rem, 4vw, 3.5rem);
}

.single-product-page.pdp-journey [id] {
    scroll-margin-top: calc(var(--aanya-global-sticky-bottom, 4rem) + var(--pdp-nav-height, 3rem) + 1rem);
}

/* Shared roles. */
.single-product-page.pdp-journey .pdp-subhead,
.single-product-page.pdp-journey .pdp-inside-panel__title {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0 0 .625rem;
    color: var(--pdp-ink);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
    text-transform: none;
}

.single-product-page.pdp-journey .pdp-inside-panel__mark {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--pdp-quiet);
    color: var(--pdp-ink);
}

.single-product-page.pdp-journey .pdp-inside-panel__mark svg {
    width: 1rem;
    height: 1rem;
}

.single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-inside-panel__mark {
    background: #eef4f0;
    color: #24523a;
}

.single-product-page.pdp-journey #pdp-inside-nutrition .pdp-inside-panel__mark {
    background: #f4f1ea;
    color: #6a4b22;
}

.single-product-page.pdp-journey #pdp-inside-allergens .pdp-inside-panel__mark {
    background: #f8f1ee;
    color: #7a3b32;
}

.single-product-page.pdp-journey #pdp-inside-certification .pdp-inside-panel__mark {
    background: #eef2f6;
    color: #2c4660;
}

.single-product-page.pdp-journey .pdp-text-link {
    display: inline-flex;
    min-height: 1.5rem;
    align-items: center;
    gap: .25rem;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 650;
    text-decoration: underline;
    text-decoration-color: var(--pdp-rule-strong);
    text-underline-offset: 3px;
}

.single-product-page.pdp-journey .pdp-text-link:hover,
.single-product-page.pdp-journey .pdp-text-link:focus-visible {
    text-decoration-color: currentColor;
}

/* A missing record is a muted sentence — never a blank box, never a zero. */
.single-product-page.pdp-journey .pdp-empty-state,
.single-product-page.pdp-journey .pdp-empty-state--missing {
    max-width: 62ch;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.5;
}

.single-product-page.pdp-journey .pdp-inside-note {
    max-width: 62ch;
    margin: .5rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-fact-list {
    display: grid;
    gap: .375rem;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-fact-list > div {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .75rem;
}

.single-product-page.pdp-journey .pdp-fact-list dt {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-fact-list dd {
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 600;
}

/* White contained surface shared by summary, panels and grouped data. */
.single-product-page.pdp-journey :is(.pdp-suitability-layout__recorded, .pdp-suitability-layout__personal, .pdp-inside, .pdp-source-grid, .pdp-buy-empty) {
    box-sizing: border-box;
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-panel);
    background: #fff;
    box-shadow: none;
}

/* ---- Suitability: recorded | personal -------------------------------- */
.single-product-page.pdp-journey .pdp-suitability-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
    align-items: start;
    gap: var(--pdp-gap);
}

.single-product-page.pdp-journey :is(.pdp-suitability-layout__recorded, .pdp-suitability-layout__personal) {
    min-width: 0;
    padding: var(--pdp-panel-pad);
    background: #fff;
}

/* Preview: the labelled sample comparison sits beside the personal intro. */
.single-product-page.pdp-journey .pdp-suitability-layout--stacked {
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 1024px) {
    .single-product-page.pdp-journey .pdp-suitability-layout--stacked .pdp-suitability-layout__personal {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
        grid-auto-rows: min-content;
        align-items: start;
        column-gap: clamp(1.25rem, 3vw, 2.5rem);
    }

    .single-product-page.pdp-journey .pdp-suitability-layout--stacked .pdp-suitability-layout__personal > :not(.pdp-exp) {
        grid-column: 1;
    }

    .single-product-page.pdp-journey .pdp-suitability-layout--stacked .pdp-suitability-layout__personal > .pdp-exp {
        grid-column: 2;
        grid-row: 1 / span 4;
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
}

.single-product-page.pdp-journey .pdp-suitability-layout__personal > p {
    max-width: 62ch;
    margin: 0 0 .5rem;
    font-size: var(--pdp-text-meta);
    line-height: 1.5;
}

.single-product-page.pdp-journey .pdp-suitability-block {
    display: grid;
    gap: .5rem;
}

.single-product-page.pdp-journey .pdp-suitability-block .pdp-suitability-status {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    align-items: start;
    gap: .75rem;
    margin: 0;
    padding: 0 0 .75rem;
    border: 0;
    border-bottom: 1px solid var(--pdp-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-suitability-status__icon {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-suitability-status__eyebrow {
    margin: 0;
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: none;
}

.single-product-page.pdp-journey .pdp-suitability-status__title {
    margin: .125rem 0 0;
    color: var(--pdp-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.single-product-page.pdp-journey .pdp-suitability-status__copy {
    max-width: 62ch;
    margin: .25rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-suitability-block .pdp-finding-list {
    display: grid;
    gap: 0;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-suitability-block .pdp-finding-row {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    align-items: start;
    gap: .75rem;
    margin: 0;
    padding: .625rem 0;
    border: 0;
    border-bottom: 1px solid var(--pdp-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-suitability-block .pdp-finding-row:last-child {
    border-bottom: 0;
}

.single-product-page.pdp-journey .pdp-finding-row__icon {
    display: grid;
    width: 1.5rem;
    height: 1.5rem;
    place-items: center;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-finding-row[data-severity="precautionary_warning"] .pdp-finding-row__icon,
.single-product-page.pdp-journey .pdp-finding-row[data-severity="critical_safety"] .pdp-finding-row__icon,
.single-product-page.pdp-journey .pdp-finding-row[data-severity="cross_contact"] .pdp-finding-row__icon {
    color: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-finding-row__title {
    margin: 0;
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 650;
    line-height: 1.35;
}

.single-product-page.pdp-journey .pdp-finding-row__detail {
    max-width: 62ch;
    margin: .125rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-status-badge {
    align-self: start;
    padding: .125rem .5rem;
    border: 1px solid var(--pdp-rule-strong);
    border-radius: 999px;
    background: #fff;
    color: var(--pdp-ink);
    font-size: .6875rem;
    font-weight: 650;
    letter-spacing: .02em;
}

.single-product-page.pdp-journey .pdp-suitability-layout__recorded > .pdp-fact-list {
    margin-top: .75rem;
}

/* Local preview: the labelled personal-comparison sample sits inside the
   personal panel without a second frame. */
.single-product-page.pdp-journey .pdp-suitability-layout__personal .pdp-exp--suitability-preview {
    margin: .875rem 0 0;
    padding: .875rem 0 0;
    border: 0;
    border-top: 1px solid var(--pdp-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-exp--suitability-preview .pdp-exp__head {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 1fr);
    gap: .5rem;
    margin: 0 0 .5rem;
}

.single-product-page.pdp-journey .pdp-exp--suitability-preview .pdp-exp__icon {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-exp--suitability-preview .pdp-exp__subtitle {
    margin: 0;
    font-size: .9375rem;
    font-weight: 700;
}

.single-product-page.pdp-journey .pdp-exp--suitability-preview .pdp-exp__lede {
    margin: .125rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-suit-preview__profile {
    margin: .5rem 0;
    font-size: var(--pdp-text-meta);
}

.single-product-page.pdp-journey .pdp-compat-rows {
    display: grid;
    gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-compat-row {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 1fr) auto;
    align-items: center;
    gap: .625rem;
    padding: .5rem 0;
    border: 0;
    border-bottom: 1px solid var(--pdp-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-compat-row:last-child {
    border-bottom: 0;
}

.single-product-page.pdp-journey .pdp-compat-row__icon {
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-compat-row__body {
    display: flex;
    flex-wrap: wrap;
    gap: .125rem .5rem;
    font-size: var(--pdp-text-meta);
}

.single-product-page.pdp-journey .pdp-compat-row__status {
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-compat-row__why {
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0 .5rem;
    border: 0;
    background: transparent;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-label);
    font-weight: 650;
    text-decoration: underline;
    cursor: pointer;
}

/* ---- Buying options: one row per recorded offer ---------------------- */
.single-product-page.pdp-journey .pdp-chapter--buy :is(.product-commerce-channels, .pdp-retail-offer-intelligence) {
    margin: 0 0 .75rem;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-story-section__head {
    display: grid;
    grid-template-columns: 1.5rem minmax(0, 1fr);
    gap: .5rem;
    margin: 0 0 .625rem;
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-story-section__mark {
    width: 1.25rem;
    height: 1.25rem;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-story-section__title {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-story-section__lede {
    margin: .125rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-offers-list {
    display: grid;
    gap: .625rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-chapter--buy .pdp-offer-row {
    display: grid;
    grid-template-columns: minmax(10rem, 1.1fr) minmax(8rem, .8fr) minmax(0, 1.7fr) minmax(10rem, auto);
    grid-template-areas: "retailer price context action";
    align-items: center;
    gap: .75rem 1.5rem;
    margin: 0;
    padding: 1rem 1.25rem;
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-card);
    background: #fff;
    box-shadow: none;
    text-align: start;
}

.single-product-page.pdp-journey .pdp-offer-row__retailer { grid-area: retailer; min-width: 0; }
.single-product-page.pdp-journey .pdp-offer-row__price { grid-area: price; min-width: 0; }
.single-product-page.pdp-journey .pdp-offer-row__context { grid-area: context; min-width: 0; }
.single-product-page.pdp-journey .pdp-offer-row__action { grid-area: action; min-width: 0; justify-self: end; text-align: end; }

.single-product-page.pdp-journey .pdp-offer-row :is(p, dl) {
    max-width: none;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-card__retailer {
    color: var(--pdp-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-card__price {
    color: var(--pdp-ink);
    font-size: 1.25rem;
    font-weight: 750;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.single-product-page.pdp-journey .pdp-offer-row :is(.pdp-offer-row__availability, .pdp-retail-offer-intelligence__availability, .pdp-retail-offer-intelligence__freshness, .pdp-retail-offer-intelligence__observed, .product-commerce-channel__responsibility, .offer-intelligence__state, .offer-intelligence__empty, .offer-intelligence__notice) {
    margin-top: .25rem;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    line-height: 1.4;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__state,
.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__state strong {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pdp-ink);
    font-weight: 650;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__history {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    margin-top: .375rem;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__history > div {
    display: inline-flex;
    gap: .375rem;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__history dt {
    color: var(--pdp-muted);
    font-weight: 500;
}

.single-product-page.pdp-journey .pdp-offer-row .offer-intelligence__history dd {
    margin: 0;
    color: var(--pdp-ink);
    font-weight: 650;
}

.single-product-page.pdp-journey .pdp-offer-row__action :is(.button, a.button-primary, button) {
    display: inline-flex;
    width: auto;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    padding-inline: 1.25rem;
}

.single-product-page.pdp-journey .pdp-offer-row__action .offer-disclosure {
    max-width: 18rem;
    margin: .375rem 0 0 auto;
    color: var(--pdp-muted);
    font-size: .75rem;
    line-height: 1.4;
}

.single-product-page.pdp-journey .pdp-retail-offer-intelligence__disclosure {
    margin: 0 0 .625rem;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-buy-empty {
    max-width: none;
    margin: 0;
    padding: 1rem var(--pdp-panel-pad);
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.5;
}

.single-product-page.pdp-journey .pdp-buy-planned {
    max-width: none;
    margin: .25rem 0 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-buy-planned a {
    color: var(--pdp-ink);
    font-weight: 650;
}

/* ---- Inside: one grouped data surface -------------------------------- */
.single-product-page.pdp-journey .pdp-inside {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.single-product-page.pdp-journey .pdp-inside-governed {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--pdp-gap);
    padding: var(--pdp-panel-pad);
    border-bottom: 1px solid var(--pdp-rule);
}

/*
 * One Inside grid (owner correction). Ingredients spans the full width (the
 * product -> ingredients diagram); the other panels are arranged by which of
 * them are tall for this product, set server-side as data-layout:
 *   values-chain  nutrition values | allergens + certification chain
 *   values-plain  nutrition values | allergens + certification + specs
 *   note-chain    nutrition note + allergens | certification chain
 *   note-plain    nutrition | allergens | certification (all short)
 * Specifications close the grid at full width unless placed in a column.
 */
.single-product-page.pdp-journey .pdp-inside-panels {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
    grid-template-rows: auto auto 1fr auto;
    grid-template-areas:
        "ingredients ingredients"
        "nutrition   allergens"
        "nutrition   certification"
        "specs       specs";
    align-items: stretch;
    gap: 0;
}

.single-product-page.pdp-journey .pdp-inside-panels[data-layout="values-plain"] {
    grid-template-rows: auto auto auto 1fr;
    grid-template-areas:
        "ingredients ingredients"
        "nutrition   allergens"
        "nutrition   certification"
        "nutrition   specs";
}

.single-product-page.pdp-journey .pdp-inside-panels[data-layout="note-chain"] {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
        "ingredients ingredients"
        "nutrition   certification"
        "allergens   certification"
        "specs       specs";
}

.single-product-page.pdp-journey .pdp-inside-panels[data-layout="note-plain"] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto auto;
    grid-template-areas:
        "ingredients ingredients   ingredients"
        "nutrition   allergens     certification"
        "specs       specs         specs";
}

.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-ingredients { grid-area: ingredients; }
.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-nutrition { grid-area: nutrition; }
.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-allergens { grid-area: allergens; }
.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-certification { grid-area: certification; }
.single-product-page.pdp-journey .pdp-inside-panels > #product-details { grid-area: specs; }

.single-product-page.pdp-journey .pdp-inside-panel {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .625rem;
    min-width: 0;
    margin: 0;
    padding: var(--pdp-panel-pad);
    border: 0;
    border-top: 1px solid var(--pdp-rule);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-ingredients {
    border-top: 0;
    background: transparent;
}

/* Column rules on the panels that sit beside another column. */
.single-product-page.pdp-journey .pdp-inside-panels > #pdp-inside-certification,
.single-product-page.pdp-journey .pdp-inside-panels:not([data-layout="note-chain"]) > #pdp-inside-allergens,
.single-product-page.pdp-journey .pdp-inside-panels[data-layout="values-plain"] > #product-details {
    border-left: 1px solid var(--pdp-rule);
}

.single-product-page.pdp-journey .pdp-inside-panel > * {
    max-width: 100%;
}

/* The explainer link follows its own content (no pinned bottom gap). */
.single-product-page.pdp-journey .pdp-inside-panel > .pdp-text-link {
    margin-top: 0;
}

.single-product-page.pdp-journey .pdp-inside-panel .pdp-inside-block,
.single-product-page.pdp-journey .pdp-inside-panel .product-nutrition {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

/*
 * ---- Inside compositions (UIUX-008R amendment 4) ----------------------
 * Ingredients: a Product -> ingredients tree. Nutrition: value bars on one
 * compatible scale. Allergens: icon-led declarations whose kinds differ in
 * icon, shape AND text. Certification: an honest chain that stops at
 * "certificate not inspected". No colour-only meaning anywhere.
 */
.single-product-page.pdp-journey .pdp-ingredient-flow {
    display: grid;
    gap: .5rem;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__product {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    gap: .5rem;
    max-width: 100%;
    margin: 0;
    padding: .375rem .75rem .375rem .5rem;
    border: 1px solid var(--pdp-rule-strong);
    border-radius: 999px;
    background: var(--pdp-quiet);
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 700;
    line-height: 1.3;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__product svg {
    width: 1.125rem;
    height: 1.125rem;
    flex: 0 0 auto;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__nodes {
    display: grid;
    gap: .375rem;
    margin: 0 0 0 1.125rem;
    padding: .25rem 0 .25rem 1.125rem;
    border-left: 2px solid var(--pdp-rule-strong);
    list-style: none;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__nodes > li {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .5rem;
    margin: 0;
    padding: 0;
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__nodes > li::before {
    position: absolute;
    top: .875rem;
    left: -1.125rem;
    width: .875rem;
    height: 2px;
    background: var(--pdp-rule-strong);
    content: "";
}

.single-product-page.pdp-journey .pdp-ingredient-flow__icon {
    display: inline-flex;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pdp-quiet);
    color: var(--brand-green, #2f6f53);
}

.single-product-page.pdp-journey .pdp-ingredient-flow__icon svg {
    width: 1rem;
    height: 1rem;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__nodes a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--pdp-rule-strong);
    text-underline-offset: 3px;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__nodes small {
    flex-basis: 100%;
    padding-left: 2.25rem;
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 500;
}

.single-product-page.pdp-journey .pdp-ingredient-flow__caption {
    margin: 0;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-cert-list {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* A recorded certification label reads as a label, distinct from an
   ingredient or attribute chip: quiet fill, stronger outline, award icon. */
.single-product-page.pdp-journey .pdp-cert-list li,
.single-product-page.pdp-journey .pdp-hero__facts .product-trust-strip .pdp-diet-status--cert {
    border-color: var(--pdp-rule-strong);
    background: var(--pdp-quiet);
}

.single-product-page.pdp-journey .pdp-cert-list li {
    display: inline-flex;
    min-height: 1.75rem;
    align-items: center;
    gap: .375rem;
    margin: 0;
    padding: .125rem .6875rem .125rem .5rem;
    border: 1px solid var(--pdp-rule-strong);
    border-radius: 999px;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-cert-list li svg {
    width: .9375rem;
    height: .9375rem;
    color: var(--accent-blue, #356c80);
}

.single-product-page.pdp-journey .pdp-cert-list a {
    color: inherit;
    text-underline-offset: 3px;
}

/* The chain reads top to bottom on a quiet rail (the panel is narrow at
   every width, so there is no horizontal variant to wrap awkwardly). */
.single-product-page.pdp-journey .pdp-cert-chain {
    display: grid;
    gap: .75rem;
    margin: 0;
    padding: 0 0 0 1rem;
    border-left: 2px solid var(--pdp-rule);
    list-style: none;
}

.single-product-page.pdp-journey .pdp-cert-chain__step {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .375rem;
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 650;
}

.single-product-page.pdp-journey .pdp-cert-chain__step > span[aria-hidden] svg {
    width: 1rem;
    height: 1rem;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-cert-chain__step--labels {
    display: grid;
    gap: .375rem;
}

.single-product-page.pdp-journey .pdp-cert-chain__label {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    font-weight: 500;
}

.single-product-page.pdp-journey .pdp-cert-chain__step--open {
    justify-self: start;
    padding: .25rem .625rem;
    border: 1px dashed var(--pdp-rule-strong);
    border-radius: 8px;
    color: var(--pdp-muted);
    font-weight: 500;
}

.single-product-page.pdp-journey .pdp-allergen-statements {
    display: grid;
    gap: .5rem;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-allergen-declarations li {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    column-gap: .625rem;
    align-items: start;
    max-width: none;
    margin: 0;
    padding: 0;
}

.single-product-page.pdp-journey .pdp-allergen-declarations li > :not(.pdp-allergen-declarations__icon) {
    grid-column: 2;
}

.single-product-page.pdp-journey .pdp-allergen-declarations__icon {
    display: inline-flex;
    grid-row: 1 / span 3;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--pdp-rule-strong);
    border-radius: 50%;
    background: #fff;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-allergen-declarations__icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

/* Declared allergen: solid attention ring. Precautionary: dashed ring.
   Free-from / other statements: neutral. Each also carries its own text. */
.single-product-page.pdp-journey .pdp-allergen-declarations li[data-kind="contains"] .pdp-allergen-declarations__icon {
    border: 2px solid var(--pdp-attention);
    background: #fff;
    color: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-allergen-declarations li[data-kind="precaution"] .pdp-allergen-declarations__icon {
    border: 2px dashed var(--pdp-attention);
    color: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-allergen-declarations__kind {
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 650;
    letter-spacing: .01em;
}

.single-product-page.pdp-journey .pdp-allergen-declarations li[data-kind="contains"] .pdp-allergen-declarations__kind,
.single-product-page.pdp-journey .pdp-allergen-declarations li[data-kind="precaution"] .pdp-allergen-declarations__kind {
    color: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-allergen-statements strong {
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 650;
}

.single-product-page.pdp-journey .pdp-allergen-statements small {
    color: var(--pdp-muted);
    font-size: .75rem;
}

.single-product-page.pdp-journey .pdp-allergen-declarations__none {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    align-items: center;
    column-gap: .625rem;
}

.single-product-page.pdp-journey .pdp-allergen-declarations__none > span[aria-hidden] {
    display: inline-flex;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--pdp-rule-strong);
    border-radius: 50%;
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-allergen-declarations__none svg {
    width: 1.125rem;
    height: 1.125rem;
}

.single-product-page.pdp-journey .product-nutrition__serving,
.single-product-page.pdp-journey .product-nutrition__notice,
.single-product-page.pdp-journey .product-nutrition__evidence,
.single-product-page.pdp-journey .product-nutrition__basis {
    margin: 0 0 .375rem;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .product-nutrition__bars {
    margin: 0;
}

.single-product-page.pdp-journey .product-nutrition__facts {
    display: grid;
    gap: 0;
    margin: 0 0 .5rem;
}

.single-product-page.pdp-journey .product-nutrition__facts > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .375rem 0;
    border-bottom: 1px solid var(--pdp-rule);
    font-size: var(--pdp-text-meta);
}

.single-product-page.pdp-journey .product-nutrition__facts dt {
    color: var(--pdp-ink);
    font-weight: 500;
}

.single-product-page.pdp-journey .product-nutrition__facts dd {
    margin: 0;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

/* Bars: label | bar | value — the number is always printed beside the bar. */
.single-product-page.pdp-journey .product-nutrition__facts--bars > div {
    display: grid;
    grid-template-columns: minmax(6.5rem, 40%) minmax(0, 1fr);
    align-items: center;
}

.single-product-page.pdp-journey .product-nutrition__facts--bars dd {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4.25rem;
    align-items: center;
    gap: .625rem;
}

.single-product-page.pdp-journey .product-nutrition__facts--bars > div[data-scale="none"] dd {
    grid-template-columns: minmax(0, 1fr);
    text-align: end;
}

.single-product-page.pdp-journey .product-nutrition__track {
    position: relative;
    display: block;
    height: .5rem;
    overflow: hidden;
    border-radius: 999px;
    background: var(--pdp-quiet);
    box-shadow: inset 0 0 0 1px var(--pdp-rule);
}

.single-product-page.pdp-journey .product-nutrition__fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--share, 0%);
    min-width: 2px;
    border-radius: inherit;
    background: var(--accent-blue, #356c80);
}

.single-product-page.pdp-journey .product-nutrition__value {
    text-align: end;
}

.single-product-page.pdp-journey .pdp-spec-table {
    display: grid;
    width: 100%;
    gap: 0 2rem;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-spec-table > div {
    display: grid;
    grid-template-columns: minmax(7rem, 38%) minmax(0, 1fr);
    gap: .75rem;
    padding: .4375rem 0;
    border-bottom: 1px solid var(--pdp-rule);
}

.single-product-page.pdp-journey .pdp-spec-table dt {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-spec-table dd {
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    font-weight: 600;
}

/* ---- Source & evidence: one surface, three columns ------------------- */
.single-product-page.pdp-journey .pdp-source-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 0;
    overflow: hidden;
}

.single-product-page.pdp-journey .pdp-source-block {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    gap: .625rem;
    min-width: 0;
    margin: 0;
    padding: var(--pdp-panel-pad);
    border-left: 1px solid var(--pdp-rule);
}

.single-product-page.pdp-journey .pdp-source-block--evidence {
    border-left: 0;
    background: #fff;
}

.single-product-page.pdp-journey .pdp-source-block--origin,
.single-product-page.pdp-journey .pdp-source-block--about {
    background: #fff;
}

.single-product-page.pdp-journey .pdp-source-block > .pdp-subhead {
    margin: 0;
}

.single-product-page.pdp-journey .pdp-source-copy {
    max-width: 62ch;
    color: var(--pdp-ink);
    font-size: .9375rem;
    line-height: 1.6;
}

.single-product-page.pdp-journey .pdp-source-copy p {
    max-width: none;
    margin: 0 0 .75rem;
}

.single-product-page.pdp-journey .pdp-source-copy p:last-child {
    margin-bottom: 0;
}

.single-product-page.pdp-journey .pdp-brand-card {
    display: grid;
    gap: .125rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.single-product-page.pdp-journey .pdp-brand-card__eyebrow {
    margin: 0;
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-brand-card__name {
    margin: 0;
    color: var(--pdp-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}

.single-product-page.pdp-journey .pdp-brand-card__copy {
    margin: 0 0 .25rem;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-meta);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-evidence-coverage {
    display: grid;
    gap: .5rem;
}

.single-product-page.pdp-journey .pdp-evidence-list {
    display: grid;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-evidence-list > div {
    display: grid;
    grid-template-columns: .55rem minmax(0, 1fr);
    gap: .1rem .625rem;
    padding: .4rem 0;
    border-bottom: 0;
}

.single-product-page.pdp-journey .pdp-evidence-list > div::before {
    content: "";
    grid-row: 1 / span 2;
    width: .45rem;
    height: .45rem;
    margin-top: .35rem;
    border: 1.5px solid var(--pdp-rule-strong);
    border-radius: 50%;
    background: transparent;
}

.single-product-page.pdp-journey .pdp-evidence-list > [data-tone="recorded"]::before {
    border-color: var(--pdp-ink);
    background: var(--pdp-ink);
}

.single-product-page.pdp-journey .pdp-evidence-list > [data-tone="attention"]::before {
    border-color: var(--pdp-attention);
    background: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-evidence-list dt {
    color: var(--pdp-muted);
    font-size: .75rem;
    font-weight: 650;
}

.single-product-page.pdp-journey .pdp-evidence-list dd {
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    line-height: 1.4;
}

.single-product-page.pdp-journey .pdp-evidence-list > div:first-child {
    padding-top: 0;
}

.single-product-page.pdp-journey .pdp-evidence-list dd {
    margin: 0;
    color: var(--pdp-ink);
    font-size: var(--pdp-text-meta);
    line-height: 1.45;
}

.single-product-page.pdp-journey .pdp-evidence-list > [data-tone="missing"] dd {
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-evidence-list > [data-tone="attention"] dd {
    color: var(--pdp-attention);
}

/* ---- Related: canonical product cards, then Related on AANYA --------- */
.single-product-page.pdp-journey .pdp-discover {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .875rem;
}

.single-product-page.pdp-journey .pdp-discover-products {
    min-width: 0;
}

.single-product-page.pdp-journey .pdp-discover-products .related-products {
    margin: 0;
    padding: 0;
}

.single-product-page.pdp-journey .pdp-discover-products .associated-product-grid {
    --associated-card-width: none;
    --pdp-rec-columns: 5;
    --pdp-rec-gap: var(--space-md, 1rem);
    display: flex !important;
    flex-wrap: wrap;
    justify-content: center;
    align-items: stretch;
    gap: var(--pdp-rec-gap) !important;
    width: 100%;
    margin-inline: 0 !important;
}

.single-product-page.pdp-journey .pdp-discover-products .associated-product-grid > * {
    flex: 0 0 calc((100% - (var(--pdp-rec-columns) - 1) * var(--pdp-rec-gap)) / var(--pdp-rec-columns));
    width: calc((100% - (var(--pdp-rec-columns) - 1) * var(--pdp-rec-gap)) / var(--pdp-rec-columns));
    max-width: calc((100% - (var(--pdp-rec-columns) - 1) * var(--pdp-rec-gap)) / var(--pdp-rec-columns));
    min-width: 0;
}

.single-product-page.pdp-journey .related-products .product-card {
    height: auto;
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-card);
    box-shadow: none;
}

.single-product-page.pdp-journey .related-products .product-card:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--pdp-rule-strong);
}

/* PDP recommendations: five-column width stays put. The frame is about
   12% taller than 3:2, still well under the old 230px square, and a
   max-height stops a two-column row from growing past that. */
.single-product-page.pdp-journey .pdp-discover-products .product-card .product-image {
    width: 100%;
    aspect-ratio: 3 / 2.24;
    min-height: 0;
    max-height: 13.5rem;
}

.single-product-page.pdp-journey .pdp-discover-products .product-image__placeholder {
    display: grid;
    place-content: center;
    justify-items: center;
    width: 100%;
    height: 100%;
    min-height: 0;
    padding: 1.5rem;
    gap: .4rem;
}

.single-product-page.pdp-journey .pdp-discover-products .product-card .product-title {
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2 !important;
    overflow: hidden !important;
    min-height: 2.6em !important;
    max-height: 2.6em !important;
    height: auto !important;
    white-space: normal;
}

.single-product-page.pdp-journey .pdp-related-aanya {
    margin-top: var(--pdp-chapter-space);
}

.single-product-page.pdp-journey .pdp-related-aanya__title {
    display: flex;
    align-items: center;
    gap: .625rem;
    margin: 0 0 1rem;
    color: var(--pdp-ink);
    font-size: clamp(1.25rem, 1.7vw, 1.5rem);
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.25;
}

.single-product-page.pdp-journey .pdp-related-aanya__title .pdp-chapter__mark {
    background: #eef3f4;
    color: #2c4a52;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination] .related-destination-card__icon {
    background: var(--pdp-quiet);
    color: var(--pdp-ink);
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="brand"] .related-destination-card__icon {
    background: #eef4f0;
    color: #24523a;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="category"] .related-destination-card__icon,
.single-product-page.pdp-journey .pdp-related-aanya [data-destination="goal"] .related-destination-card__icon {
    background: #f4f1ea;
    color: #6a4b22;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="ingredients"] .related-destination-card__icon {
    background: #eef4f0;
    color: #24523a;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="nutrition"] .related-destination-card__icon {
    background: #f7f3ea;
    color: #6a4b22;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="allergen"] .related-destination-card__icon {
    background: #f8f1ee;
    color: #7a3b32;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="certification"] .related-destination-card__icon {
    background: #eef2f6;
    color: #2c4660;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="suitability"] .related-destination-card__icon {
    background: #f3f0f6;
    color: #4c3d66;
}

.single-product-page.pdp-journey .pdp-related-aanya [data-destination="compare"] .related-destination-card__icon {
    background: #eef3f4;
    color: #2c4a52;
}

/* ---- Suitability status matrix (UIUX-008R amendment 4) --------------- */
.single-product-page.pdp-journey .pdp-suitability-matrix {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    align-content: start;
    column-gap: .625rem;
    row-gap: .0625rem;
    min-width: 0;
    margin: 0;
    padding: .75rem;
    border: 1px solid var(--pdp-rule);
    border-radius: 12px;
    background: #fff;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell > :not(.pdp-suitability-matrix__icon) {
    grid-column: 2;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__icon {
    display: inline-flex;
    grid-row: 1 / span 3;
    width: 2.25rem;
    height: 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: #fff;
    color: var(--pdp-ink);
    box-shadow: inset 0 0 0 1px var(--pdp-rule);
}

.single-product-page.pdp-journey .pdp-suitability-matrix__icon svg {
    width: 1.125rem;
    height: 1.125rem;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="recorded"] .pdp-suitability-matrix__icon,
.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-key="diet"] .pdp-suitability-matrix__icon {
    background: #f0f6ee;
    color: #3f7a3a;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="attention"] .pdp-suitability-matrix__icon {
    background: #fdf4ea;
    color: #8a5410;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="missing"] {
    border-style: dashed;
    background: #fff;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="missing"] .pdp-suitability-matrix__icon {
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-suitability-matrix__subject {
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__state {
    color: var(--pdp-ink);
    font-size: var(--pdp-text-label);
    font-weight: 600;
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="attention"] .pdp-suitability-matrix__state {
    color: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-suitability-matrix__cell[data-tone="missing"] .pdp-suitability-matrix__state {
    color: var(--pdp-muted);
}

.single-product-page.pdp-journey .pdp-suitability-matrix__note {
    color: var(--pdp-muted);
    font-size: .75rem;
    line-height: 1.4;
}

/* ---- Buy: retailer price markers (like-for-like offers only) ----------- */
.single-product-page.pdp-journey .pdp-offer-comparison {
    display: grid;
    gap: .75rem;
    margin: 0 0 var(--pdp-gap);
    padding: var(--pdp-panel-pad);
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-card);
    background: #fff;
}

.single-product-page.pdp-journey .pdp-offer-comparison__caption {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-offer-comparison__rows {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-offer-comparison__rows > li {
    display: grid;
    grid-template-columns: minmax(8rem, 16rem) minmax(0, 1fr) 6rem;
    align-items: center;
    gap: 1rem;
    margin: 0;
    font-size: var(--pdp-text-meta);
}

.single-product-page.pdp-journey .pdp-offer-comparison__track {
    position: relative;
    height: 1rem;
    margin: 0 .5rem;
}

.single-product-page.pdp-journey .pdp-offer-comparison__track::before {
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: 2px;
    background: var(--pdp-rule);
    content: "";
}

.single-product-page.pdp-journey .pdp-offer-comparison__marker {
    position: absolute;
    top: 50%;
    left: var(--position, 0%);
    width: .875rem;
    height: .875rem;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--pdp-ink);
    box-shadow: 0 0 0 1px var(--pdp-ink);
    transform: translate(-50%, -50%);
}

.single-product-page.pdp-journey .pdp-offer-comparison__price {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    text-align: end;
}

@media (max-width: 575.98px) {
    .single-product-page.pdp-journey .pdp-offer-comparison__rows > li {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .25rem .75rem;
    }

    .single-product-page.pdp-journey .pdp-offer-comparison__track {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

/* One recorded retailer: one strong offer panel. */
.single-product-page.pdp-journey .pdp-chapter--buy .pdp-offers-list > .pdp-offer-row:only-child .offer-card__price {
    font-size: 1.5rem;
}

/* ---- Source & evidence timeline ---------------------------------------- */
.single-product-page.pdp-journey .pdp-source-timeline {
    margin: 0 0 var(--pdp-gap);
    padding: var(--pdp-panel-pad);
    border: 1px solid var(--pdp-rule);
    border-radius: var(--pdp-radius-panel);
    background: #fff;
}

.single-product-page.pdp-journey .pdp-source-timeline__list {
    position: relative;
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-source-timeline__list::before {
    position: absolute;
    top: .4375rem;
    right: 0;
    left: .4375rem;
    height: 2px;
    background: var(--pdp-rule);
    content: "";
}

.single-product-page.pdp-journey .pdp-source-timeline__event {
    position: relative;
    display: grid;
    align-content: start;
    gap: .125rem;
    min-width: 0;
    margin: 0;
    padding-top: 1.5rem;
}

.single-product-page.pdp-journey .pdp-source-timeline__dot {
    position: absolute;
    top: 0;
    left: 0;
    width: 1rem;
    height: 1rem;
    border: 2px solid var(--pdp-ink);
    border-radius: 50%;
    background: #fff;
}

.single-product-page.pdp-journey .pdp-source-timeline__event[data-tone="attention"] .pdp-source-timeline__dot {
    border-color: var(--pdp-attention);
    background: var(--pdp-attention);
}

.single-product-page.pdp-journey .pdp-source-timeline__date {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.single-product-page.pdp-journey .pdp-source-timeline__label {
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 700;
}

.single-product-page.pdp-journey .pdp-source-timeline__detail {
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

/* ---- Where it comes from: recorded origin / manufacturer --------------- */
.single-product-page.pdp-journey .pdp-provenance {
    display: grid;
    gap: .5rem;
    margin: .25rem 0;
    padding: 0;
    list-style: none;
}

.single-product-page.pdp-journey .pdp-provenance li {
    display: grid;
    grid-template-columns: 2rem minmax(0, 1fr);
    column-gap: .625rem;
    align-items: center;
    margin: 0;
}

.single-product-page.pdp-journey .pdp-provenance__icon {
    display: inline-flex;
    grid-row: 1 / span 2;
    width: 2rem;
    height: 2rem;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--pdp-quiet);
    color: var(--accent-blue, #356c80);
}

.single-product-page.pdp-journey .pdp-provenance__icon svg {
    width: 1rem;
    height: 1rem;
}

.single-product-page.pdp-journey .pdp-provenance__label {
    grid-column: 2;
    color: var(--pdp-muted);
    font-size: var(--pdp-text-label);
}

.single-product-page.pdp-journey .pdp-provenance__value {
    grid-column: 2;
    color: var(--pdp-ink);
    font-size: .9375rem;
    font-weight: 700;
}

/* Related on AANYA: one compact horizontal row. Cards keep a readable
   minimum and the row scrolls instead of wrapping into a tall grid. */
.single-product-page.pdp-journey .pdp-related-aanya__list {
    display: grid;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    grid-auto-flow: column;
    grid-auto-columns: minmax(10rem, 1fr);
    grid-template-columns: none;
    align-items: stretch;
    gap: .5rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline proximity;
    padding-bottom: .25rem;
}

.single-product-page.pdp-journey .pdp-related-aanya__list > li {
    scroll-snap-align: start;
}

.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card {
    grid-template-columns: 2rem minmax(0, 1fr) auto;
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
        "icon . meta"
        "title title title"
        "description description description";
    align-items: start;
    min-height: 0;
    padding: .75rem .7rem .8rem;
    transition: border-color .16s ease, background-color .16s ease;
}

.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card:hover,
.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card:focus-visible {
    border-color: var(--pdp-rule-strong);
    background: #fff;
    transform: none;
}

.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card:hover .related-destination-card__icon,
.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card:focus-visible .related-destination-card__icon {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 28%, transparent);
}

.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card__title {
    margin-top: .45rem;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
    line-height: 1.25;
}

.single-product-page.pdp-journey .pdp-related-aanya .related-destination-card__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
    .single-product-page.pdp-journey .pdp-related-aanya .related-destination-card {
        transition: none;
    }
}

/* ---- Responsive recomposition (reviewed breakpoints only) ------------ */
@media (max-width: 1199px) {

    .single-product-page.pdp-journey .pdp-discover-products .associated-product-grid {
        --pdp-rec-columns: 3;
    }

    .single-product-page.pdp-journey .pdp-source-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .single-product-page.pdp-journey .pdp-source-block--about {
        grid-column: 1 / -1;
        border-top: 1px solid var(--pdp-rule);
        border-left: 0;
    }

    .single-product-page.pdp-journey .pdp-chapter--buy .pdp-offer-row {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
        grid-template-areas:
            "retailer price action"
            "context context context";
    }
}

@media (max-width: 1023px) {
    .single-product-page.pdp-journey .pdp-inside-panels,
    .single-product-page.pdp-journey .pdp-inside-panels[data-layout] {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        grid-template-areas:
            "ingredients"
            "nutrition"
            "allergens"
            "certification"
            "specs";
    }

    .single-product-page.pdp-journey .pdp-inside-panels[data-layout] > .pdp-inside-panel,
    .single-product-page.pdp-journey .pdp-inside-panels[data-layout] > :is(#pdp-inside-allergens, #pdp-inside-certification, #product-details) {
        border-left: 0;
    }

    .single-product-page.pdp-journey .pdp-suitability-layout {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 899px) {
    .single-product-page.pdp-journey .pdp-source-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .single-product-page.pdp-journey .pdp-source-block {
        border-left: 0;
    }

    .single-product-page.pdp-journey .pdp-source-block + .pdp-source-block {
        border-top: 1px solid var(--pdp-rule);
    }

    .single-product-page.pdp-journey .pdp-discover-products .associated-product-grid {
        --pdp-rec-columns: 2;
    }
}

@media (max-width: 767px) {

    .single-product-page.pdp-journey .pdp-chapter__head--with-more {
        flex-direction: column;
        align-items: flex-start;
    }

    .single-product-page.pdp-journey .pdp-chapter__more {
        margin: 0;
    }

    .single-product-page.pdp-journey .pdp-chapter--buy .pdp-offer-row {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "retailer price"
            "context context"
            "action action";
        padding: .875rem 1rem;
    }

    .single-product-page.pdp-journey .pdp-offer-row__price {
        text-align: end;
    }

    .single-product-page.pdp-journey .pdp-offer-row__action {
        justify-self: stretch;
        text-align: start;
    }

    .single-product-page.pdp-journey .pdp-offer-row__action :is(.button, a.button-primary, button) {
        width: 100%;
    }

    .single-product-page.pdp-journey .pdp-offer-row__action .offer-disclosure {
        max-width: none;
        margin-left: 0;
    }

    /* Related products: the UIUX-005 touch-scroll rail. */
    .single-product-page.pdp-journey .pdp-discover-products .associated-product-grid {
        display: grid !important;
        grid-template-columns: none !important;
        grid-auto-columns: min(78vw, 17rem);
        grid-auto-flow: column;
        justify-content: start;
        gap: .75rem !important;
        width: 100%;
        padding: .125rem .125rem .75rem !important;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline proximity;
    }

    .single-product-page.pdp-journey .pdp-discover-products .associated-product-grid > * {
        flex: none;
        width: auto;
        max-width: none;
        min-width: 0;
        scroll-snap-align: start;
    }

    .single-product-page.pdp-journey .related-products .product-card {
        --product-card-action-size: 2.875rem;
    }
}

@media (max-width: 899px) {
    .single-product-page.pdp-journey .pdp-text-link {
        min-height: 2.75rem;
    }
}

@media (max-width: 767px) {
    /* Timelines go vertical; no horizontal scrolling. */
    .single-product-page.pdp-journey .pdp-source-timeline__list {
        grid-auto-flow: row;
        gap: .875rem;
        padding-left: 1.75rem;
    }

    .single-product-page.pdp-journey .pdp-source-timeline__list::before {
        top: .5rem;
        bottom: .5rem;
        left: .4375rem;
        width: 2px;
        height: auto;
    }

    .single-product-page.pdp-journey .pdp-source-timeline__event {
        padding-top: 0;
    }

    .single-product-page.pdp-journey .pdp-source-timeline__dot {
        top: .125rem;
        left: -1.75rem;
    }
}

@media (max-width: 575.98px) {
    .single-product-page.pdp-journey .pdp-evidence-list > div,
    .single-product-page.pdp-journey .pdp-spec-table > div {
        grid-template-columns: minmax(0, 1fr);
        gap: .125rem;
    }

    .single-product-page.pdp-journey .pdp-suitability-block .pdp-finding-row {
        grid-template-columns: 2rem minmax(0, 1fr);
    }

    .single-product-page.pdp-journey .pdp-suitability-block .pdp-status-badge {
        grid-column: 2;
        justify-self: start;
    }
}

@media (min-width: 1024px) {
    .single-product-page.pdp-journey #product-details .pdp-spec-table {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /*
     * Ingredients diagram, desktop: product -> a row of ingredient tiles.
     * Real links in a real list (the accessible equivalent); no order,
     * roles or amounts are drawn because none are recorded.
     */
    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow {
        grid-template-columns: max-content minmax(0, 1fr);
        align-items: center;
        column-gap: 3rem;
        row-gap: .75rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__product {
        grid-column: 1;
        padding: .625rem 1rem .625rem .75rem;
        font-size: .9375rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__nodes {
        position: relative;
        display: flex;
        flex-wrap: wrap;
        gap: .75rem;
        grid-column: 2;
        margin: 0;
        padding: 0;
        border-left: 0;
    }

    /* Connector from the product to the ingredient row. */
    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__nodes::before {
        position: absolute;
        top: 1.6875rem;
        left: -3rem;
        width: 2.5rem;
        height: 2px;
        background: var(--pdp-rule-strong);
        content: "";
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__nodes > li {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0 .625rem;
        min-height: 3.375rem;
        padding: .4375rem 1rem .4375rem .4375rem;
        border: 1px solid var(--pdp-rule);
        border-radius: 999px;
        background: #fff;
        font-size: 1rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__nodes > li::before {
        display: none;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__icon {
        width: 2.5rem;
        height: 2.5rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__icon svg {
        width: 1.25rem;
        height: 1.25rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__nodes small {
        flex-basis: 100%;
        margin-top: -.375rem;
        padding-left: 3.125rem;
    }

    .single-product-page.pdp-journey .pdp-inside-panel--ingredients .pdp-ingredient-flow__caption {
        grid-column: 1 / -1;
    }
}

/* Equal related cards: the buying action sits on the shared bottom line. */
.single-product-page.pdp-journey .related-products .product-card .product-card-content {
    flex: 1 1 auto;
}
