﻿.mns-product-detail-page {
    --pd-container-max: 1280px;
    --pd-design-width: 1280;
    --pd-page-gutter: var(--mns-page-gutter);
    --pd-section-gap: clamp(58px, 6.6vw, 96px);
    --pd-card-min-height: 260px;
    --pd-card-min-height-mobile: 180px;
    --pd-media-aspect: 4 / 3;
    --pd-media-object-fit: cover;
    --pd-card-background: #ffffff;
    --pd-card-border: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
    --pd-card-shadow: 0 12px 32px rgba(20, 24, 22, 0.06);
    --pd-title-weight: 600;

    --pd-bg: var(--background);
    --pd-surface: var(--surface);
    --pd-text: var(--ink);
    --pd-muted: var(--muted);
    --pd-border: var(--line);
    --pd-accent: var(--accent);
    --pd-muted-surface: var(--mns-muted-surface);

    --pd-font-heading: var(--font-heading);
    --pd-font-body: var(--font-body);

    --pd-fs-eyebrow: clamp(12px, calc(100cqw * 14 / 1280), 14px);
    --pd-fs-page-title: clamp(44px, calc(100cqw * 88 / 1280), 88px);
    --pd-fs-section-title: 40px;
    --pd-fs-subtitle: clamp(16px, calc(100cqw * 20 / 1280), 20px);
    --pd-fs-body: clamp(15px, calc(100cqw * 17 / 1280), 17px);
    --pd-fs-card-title: clamp(18px, calc(100cqw * 20 / 1280), 24px);
    --pd-fs-card-body: clamp(14px, calc(100cqw * 16 / 1280), 16px);
    --pd-fs-caption: clamp(12px, calc(100cqw * 13 / 1280), 13px);
    --pd-fs-button: clamp(13px, calc(100cqw * 14 / 1280), 14px);
    /* 涓?card-title 鍚屼竴妗ｏ紝閬垮厤 bento hero 鍙犲瓧瀛楀彿婕傜Щ */
    --pd-fs-bento-hero-title: var(--pd-fs-card-title);

    --pd-lh-tight: 1.05;
    --pd-lh-title: 1.08;
    --pd-lh-subtitle: 1.65;
    --pd-lh-body: 1.8;
    --pd-lh-card: 1.55;

    --pd-section-y: var(--pd-section-gap);
    /* Title 鈫?content/cards: PC 40 / SP 20 (see --mns-title-content-gap). */
    --pd-header-gap: var(--mns-title-content-gap, 40px);
    --pd-grid-gap: min(22px, calc(100vw * 22 / 1280));
    --pd-grid-gap-max: 22px;
    --pd-card-padding: clamp(20px, calc(100vw * 28 / 1280), 28px);

    /* Bento / visual-card child spacing 鈥?match Next FeatureBentoShared */
    --pd-visual-card-gap: min(22px, calc(100vw * 22 / 1280));
    --pd-visual-card-child-gap: calc(var(--pd-visual-card-gap) * 0.6);
    --pd-visual-card-mobile-gap: clamp(12px, 4vw, 16px);
    --pd-visual-card-mobile-child-gap: clamp(8px, 2.1vw, 16px);
    --pd-visual-card-bg: var(--pd-card-background);
    --pd-visual-card-border: var(--pd-card-border);
    --pd-visual-card-shadow: var(--pd-card-shadow);
    --pd-visual-card-title-weight: 500;
    --pd-visual-card-hero-title-weight: 500;
    --pd-feature-card-desktop-height: calc(100cqw * 550 / 1280);
    --pd-feature-card-summary-height: calc(100cqw * 116 / 1280);

    --pd-overlay-x: clamp(20px, calc(100cqw * 32 / 1280), 32px);
    --pd-overlay-y: clamp(20px, calc(100cqw * 32 / 1280), 32px);
    /* Bento tone=accent: product overlayAccentHex / colorHex, else brand accent */
    --pd-overlay-accent: var(--pd-accent);

    /* textLayer max-width tokens (data-width / data-width-pc); default = full */
    --pd-text-width-xs: 32%;
    --pd-text-width-sm: 46%;
    --pd-text-width-md: 62%;
    --pd-text-width-lg: 78%;
    --pd-text-width-full: calc(100% - var(--pd-overlay-x) * 2);

    --pd-radius-button: var(--radius);
    --pd-radius-card: calc(var(--radius) + 14px);
    --pd-radius-media: calc(var(--radius) + 18px);
}

.mns-product-detail-page .mns-pd-variant-switcher,
.mns-product-detail .mns-pd-variant-switcher {
    display: grid;
    gap: 10px;
    width: 100%;
    margin: 0;
}

.mns-pd-main-visual-info .mns-pd-variant-switcher {
    margin: 0;
}

.mns-product-detail-page .mns-pd-variant-switcher>span {
    font-size: var(--pd-fs-caption);
    font-weight: 600;
    color: var(--pd-muted, #6f7370);
}

.mns-product-detail-page .mns-pd-variant-switcher>div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mns-product-detail-page .mns-pd-variant-switcher button,
.mns-product-detail-page .mns-pd-variant-switcher__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 8px 14px;
    border: var(--pd-card-border, 1px solid color-mix(in srgb, var(--pd-border, #E8E8E8) 72%, transparent));
    border-radius: 4px;
    background: var(--pd-card-background, #fff);
    color: var(--pd-text, #2E2F2F);
    font: inherit;
    font-size: var(--pd-fs-caption, 13px);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.mns-product-detail-page .mns-pd-variant-switcher button[aria-pressed="true"],
.mns-product-detail-page .mns-pd-variant-switcher__btn[aria-pressed="true"],
.mns-product-detail-page .mns-pd-variant-switcher__btn[aria-checked="true"],
.mns-product-detail-page .mns-pd-variant-switcher__btn[aria-current="true"] {
    border-color: var(--pd-accent);
    color: var(--pd-text, #2E2F2F);
}

.mns-product-detail-page .mns-pd-variant-switcher i {
    width: 16px;
    height: 16px;
    border: 1px solid var(--pd-border);
    border-radius: 50%;
    box-sizing: border-box;
}

/* Sticky purchase bar collapses before footer/prefooter 鈥?no page bottom reserve. */

/* When sticky product nav is on, conceal site header (more room for grouped tabs). */
html.mns-product-sticky-nav-on .mns-header,
.mns-header.is-concealed-by-product-sticky {
    transform: translateY(-100%);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: transform .22s ease, opacity .18s ease, visibility .18s ease;
}

.mns-header {
    transition: transform .22s ease, opacity .18s ease, visibility .18s ease;
}

/* Anchor offset when sticky product nav is up (mirrors manual sticky nav). */
.mns-product-detail-page .mns-pd-section[id] {
    scroll-margin-top: calc(
        var(--mns-admin-bar-height, 0px)
        + var(--mns-pd-sticky-nav-height, 48px)
        + 10px
    );
}

.mns-pd-sticky-chrome {
    pointer-events: none;
}

.mns-pd-sticky-nav,
.mns-pd-sticky-purchase {
    position: fixed;
    z-index: 92;
    right: 0;
    left: 0;
    opacity: 0;
    transition:
        opacity .2s ease,
        transform .25s ease,
        visibility .2s ease;
}

/* Sit under admin bar only 鈥?site header is hidden while sticky is visible.
   Tab strip UX mirrors .mns-manual-sticky-nav (active center / no scrollbar). */
.mns-pd-sticky-nav {
    top: var(--mns-admin-bar-height, 0px);
    transform: translateY(-100%);
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid var(--pd-border, #E8E8E8);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 6px 24px color-mix(in srgb, var(--pd-text, #2E2F2F) 8%, transparent);
    backdrop-filter: blur(12px);
    visibility: hidden;
    pointer-events: none;
}

.mns-pd-sticky-purchase {
    bottom: 0;
    transform: translateY(100%);
    border: 0;
    background: rgba(255, 255, 255, .97);
    box-shadow: none;
    backdrop-filter: blur(14px);
}

.mns-pd-sticky-chrome[data-visible="true"] .mns-pd-sticky-nav,
.mns-pd-sticky-chrome[data-visible="true"] .mns-pd-sticky-purchase,
.mns-pd-sticky-chrome.is-visible .mns-pd-sticky-nav,
.mns-pd-sticky-chrome.is-visible .mns-pd-sticky-purchase {
    pointer-events: auto;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Horizontal scroller — same left edge as header / breadcrumb */
.mns-pd-sticky-nav>div,
.mns-pd-sticky-nav__links {
    display: flex;
    align-items: stretch;
    box-sizing: border-box;
    width: min(
        100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
        var(--mns-container, 1280px)
    );
    max-width: none;
    margin: 0 auto;
    padding: 0;
    gap: 0;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.mns-pd-sticky-nav__links::-webkit-scrollbar,
.mns-pd-sticky-nav>div::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.mns-pd-sticky-nav a {
    flex: 0 0 auto;
    padding: 0.875rem 1rem 0.75rem;
    border: 0;
    border-bottom: 3px solid transparent;
    color: var(--pd-muted, #878887);
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.01em;
    white-space: nowrap;
    text-decoration: none;
}

.mns-pd-sticky-nav a:hover,
.mns-pd-sticky-nav a:focus-visible {
    color: var(--pd-text, #2E2F2F);
}

/* Active = manual sticky: ink + underline (not just accent text color) */
.mns-pd-sticky-nav a.is-active,
.mns-pd-sticky-nav a[aria-current],
.mns-pd-sticky-nav a[aria-current="true"] {
    color: var(--pd-text, #2E2F2F);
    font-weight: 700;
    border-bottom-color: var(--pd-accent, #9EA7A2);
}

.mns-pd-sticky-purchase__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    box-sizing: border-box;
    width: min(
        100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
        var(--mns-container, 1280px)
    );
    max-width: none;
    min-height: 64px;
    margin: 0 auto;
    padding: 8px 0;
}

.mns-pd-sticky-purchase__inner>div {
    display: flex;
    flex-direction: column;
}

.mns-pd-sticky-purchase__inner strong {
    color: #000;
    font-weight: 500;
}

.mns-pd-sticky-purchase__inner strong .mns-price {
    color: inherit;
    font-weight: inherit;
}

.mns-pd-sticky-purchase__inner strong.is-title {
    max-width: min(52vw, 420px);
    overflow: hidden;
    color: #000;
    font-size: clamp(14px, 1.6vw, 18px);
    font-weight: 600;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mns-pd-sticky-purchase-control {
    flex: 0 1 240px;
    width: min(240px, 36vw);
    max-width: 100%;
}

.mns-pd-sticky-global-purchase {
    width: 100%;
}

@media (max-width: 768px) {
    .mns-pd-sticky-nav>div,
    .mns-pd-sticky-nav__links {
        padding: 0 0.5rem;
    }

    .mns-pd-sticky-nav a {
        padding: 0.8125rem 0.75rem 0.6875rem;
        font-size: 0.8125rem;
    }

    /* Keep purchase bar clear of iOS home indicator 鈥?mobile only. */
    .mns-pd-sticky-purchase {
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    .mns-pd-sticky-purchase__inner {
        min-height: 58px;
        gap: 12px;
        padding: 7px 10px;
    }

    .mns-pd-sticky-purchase__inner strong {
        font-size: inherit;
    }

    .mns-pd-sticky-purchase-control {
        flex-basis: 150px;
        width: min(150px, 44vw);
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page {
        --pd-card-min-height: var(--pd-card-min-height-mobile);
    }
}


.mns-product-detail-page .mns-pd-container {
    box-sizing: border-box;
    container-type: inline-size;
    /* Align with header / breadcrumb rail (page-gutter, not pad-inside 1280). */
    width: min(
        100% - (var(--mns-page-gutter, var(--mns-gutter, clamp(24px, 5vw, 72px))) * 2),
        var(--pd-container-max, 1280px)
    );
    max-width: none;
    margin-inline: auto;
    padding-inline: 0;
    /* Resolve cqw against this container (Next product-detail module width). */
    --pd-header-gap: var(--mns-title-content-gap, 40px);
    --pd-grid-gap: calc(100cqw * 22 / 1280);
    --pd-grid-gap-max: 22px;
    --pd-card-padding: clamp(20px, calc(100cqw * 28 / 1280), 28px);
    --pd-visual-card-gap: calc(100cqw * 22 / 1280);
    --pd-visual-card-child-gap: calc(var(--pd-visual-card-gap) * 0.6);
    --pd-visual-card-mobile-gap: clamp(12px, 4cqw, 16px);
    --pd-visual-card-mobile-child-gap: calc(var(--pd-visual-card-mobile-gap) * 0.6);
}

.mns-product-detail-page .mns-pd-page-title {
    font-family: var(--pd-font-heading);
    font-size: var(--pd-fs-page-title);
    line-height: var(--pd-lh-tight);
    font-weight: 500;
}

.mns-product-detail-page .mns-pd-section-title {
    font-family: var(--pd-font-heading);
    font-size: var(--pd-fs-section-title);
    line-height: var(--pd-lh-title);
    font-weight: 500;
}

/* All detail-module H2 titles share the same size token */
.mns-product-detail-page .mns-pd-package-title,
.mns-product-detail-page .mns-pd-related-heading,
.mns-product-detail-page .mns-pd-reviews-heading {
    font-size: var(--pd-fs-section-title);
}

@media (max-width: 768px) {
    .mns-product-detail-page {
        --pd-fs-page-title: var(--mns-fs-h1, 1.75rem);
        --pd-fs-section-title: var(--mns-fs-h2, 1.25rem);
        --pd-fs-subtitle: var(--mns-fs-lead, 1rem);
        --pd-fs-card-title: var(--mns-fs-h3, 1.0625rem);
    }
}

.mns-product-detail-page .mns-pd-eyebrow {
    font-size: var(--pd-fs-eyebrow);
    line-height: var(--pd-lh-tight);
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-subtitle {
    font-size: var(--pd-fs-subtitle);
    line-height: var(--pd-lh-subtitle);
}

.mns-product-detail-page .mns-pd-body {
    font-size: var(--pd-fs-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-card-title {
    font-family: var(--pd-font-body);
    font-size: var(--pd-fs-card-title);
    line-height: var(--pd-lh-card);
    font-weight: var(--pd-visual-card-title-weight);
}

.mns-product-detail-page .mns-pd-caption {
    font-size: var(--pd-fs-caption);
    line-height: 1.5;
}

.mns-product-detail-page .mns-pd-button {
    font-size: var(--pd-fs-button);
    line-height: 1;
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-bento-hero-title {
    font-family: var(--pd-font-body);
    font-size: var(--pd-fs-bento-hero-title);
    /* 涓?.mns-pd-card-title 瀵归綈锛堝瓧鍙?琛岄珮/瀛楅噸锛?*/
    line-height: var(--pd-lh-card);
    font-weight: var(--pd-visual-card-title-weight);
}

.mns-product-detail-page .mns-pd-text-overlay :where(h1, h2, h3, h4, h5, h6, p) {
    margin: 0;
}

.mns-product-detail-page .mns-pd-visual-card {
    background: var(--pd-visual-card-bg);
    border: var(--pd-visual-card-border);
    box-shadow: var(--pd-visual-card-shadow);
}

.mns-product-detail-page .mns-pd-visual-card-fallback {
    background: var(--pd-visual-card-bg);
}

.mns-product-detail-page .mns-pd-visual-cards {
    --pd-overlay-x: clamp(20px, calc(100cqw * 24 / 1280), 24px);
    --pd-overlay-y: clamp(20px, calc(100cqw * 24 / 1280), 24px);
}

/* Visual card modules share one maintenance hook.
   鏍囬涓嶅己鍒?balance / strict 鎹㈣锛圕JK 鏄撹鎷嗗緱鎬紓锛夛紱鑷劧鎹㈣鍗冲彲銆?*/
.mns-product-detail-page .mns-pd-visual-cards .mns-pd-card-title,
.mns-product-detail-page .mns-pd-visual-cards .mns-pd-bento-hero-title {
    text-wrap: wrap;
    line-break: auto;
    overflow-wrap: normal;
}

/*
 * textLayer overlay 鈥?pure CSS tokens (no Tailwind utilities, no inline placement vars).
 * Markup:
 *   .mns-pd-text-overlay
 *     [data-placement][data-placement-pc]
 *     [data-width][data-width-pc][data-align][data-align-pc]
 *     [data-size][data-size-pc][data-tone][data-legibility]
 *   .mns-pd-text-overlay__title--pc / --sp
 */
.mns-product-detail-page .mns-pd-text-overlay {
    box-sizing: border-box;
    display: grid;
    gap: 0;
    line-height: 1.15;
    /*
     * 榛樿锛歮ax-width 鍏ㄥ涓婇檺锛寃idth 闅忓唴瀹癸紙fit-content锛夛紝
     * 杩欐牱 left/right/center 閿氱偣鎵嶅彲瑙侊紱闀挎枃浠嶅彲鎾戝埌鍏ㄥ銆?     */
    width: fit-content;
    max-width: var(--pd-text-width-full);
    text-align: left;
    color: var(--pd-text);
    /* 鍙犲瓧鍙偣閫夊鍒讹紙鍕?pointer-events:none / user-select:none锛?*/
    pointer-events: auto;
    user-select: text;
    /* inset reset; placement tokens set concrete edges */
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    transform: none;
}

.mns-product-detail-page .mns-pd-text-overlay :where(h1, h2, h3, h4, h5, h6, p) {
    margin: 0;
    padding: 0;
}

.mns-product-detail-page .mns-pd-text-overlay__title,
.mns-product-detail-page .mns-pd-text-overlay .mns-pd-card-title,
.mns-product-detail-page .mns-pd-text-overlay .mns-pd-bento-hero-title,
.mns-product-detail-page .mns-pd-bento-card .mns-pd-card-title,
.mns-product-detail-page .mns-pd-bento-card .mns-pd-bento-hero-title {
    line-height: 1.18;
    letter-spacing: -0.02em;
    white-space: pre-line;
    font-size: var(--pd-fs-card-title);
    font-weight: var(--pd-visual-card-title-weight, 500);
}

/* size token 鈫?hero title (same weight scale as legacy mns-pd-bento-hero-title) */
.mns-product-detail-page .mns-pd-text-overlay[data-size="hero"] .mns-pd-text-overlay__title--sp,
.mns-product-detail-page .mns-pd-text-overlay[data-size-pc="hero"] .mns-pd-text-overlay__title--pc {
    font-size: var(--pd-fs-bento-hero-title, var(--pd-fs-card-title));
    line-height: var(--pd-lh-card, 1.55);
}

.mns-product-detail-page .mns-pd-text-overlay__caption,
.mns-product-detail-page .mns-pd-text-overlay .mns-pd-caption {
    margin: 0 0 4px;
    line-height: 1.25;
    color: var(--pd-accent);
}

/* PC / SP title swap */
.mns-product-detail-page .mns-pd-text-overlay__title--pc { display: none; }
.mns-product-detail-page .mns-pd-text-overlay__title--sp { display: block; }

/*
 * placement SP锛氫粎 鈮?023px 鐢熸晥銆? * 鍕垮湪鏃?media 涓嬪啓 transform/left:50%鈥斺€斿惁鍒欎笌 data-placement-pc 鍙犵敤鏃? * 锛堝 SP=bottomCenter + PC=bottomLeft锛塖P 鐨?translateX(-50%) 鐗瑰紓鎬ф洿楂橈紝
 * 鐩栬繃 PC reset 鐨?transform:none锛屾枃瀛楀乏绉诲崐瀹藉苟琚?overflow 瑁佸垏锛堣创杈癸級銆? */
@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="topLeft"] {
        top: var(--pd-overlay-y);
        left: var(--pd-overlay-x);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="topCenter"] {
        top: var(--pd-overlay-y);
        left: 50%;
        transform: translateX(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="topRight"] {
        top: var(--pd-overlay-y);
        right: var(--pd-overlay-x);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="middleLeft"] {
        top: 50%;
        left: var(--pd-overlay-x);
        transform: translateY(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="center"] {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="middleRight"] {
        top: 50%;
        right: var(--pd-overlay-x);
        transform: translateY(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="bottomLeft"] {
        bottom: var(--pd-overlay-y);
        left: var(--pd-overlay-x);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="bottomCenter"] {
        bottom: var(--pd-overlay-y);
        left: 50%;
        transform: translateX(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement="bottomRight"] {
        bottom: var(--pd-overlay-y);
        right: var(--pd-overlay-x);
    }
}

/* 鈥斺€?width (SP)锛氬潎涓?max-width 涓婇檺 + fit-content锛屼繚璇佷節瀹牸宸﹀彸鍙尯鍒?鈥斺€?*/
.mns-product-detail-page .mns-pd-text-overlay[data-width="xs"] {
    width: fit-content;
    max-width: var(--pd-text-width-xs);
}
.mns-product-detail-page .mns-pd-text-overlay[data-width="sm"] {
    width: fit-content;
    max-width: var(--pd-text-width-sm);
}
.mns-product-detail-page .mns-pd-text-overlay[data-width="md"] {
    width: fit-content;
    max-width: var(--pd-text-width-md);
}
.mns-product-detail-page .mns-pd-text-overlay[data-width="lg"] {
    width: fit-content;
    max-width: var(--pd-text-width-lg);
}
.mns-product-detail-page .mns-pd-text-overlay[data-width="full"] {
    width: fit-content;
    max-width: var(--pd-text-width-full);
}

/* 鈥斺€?align (SP) 鈥斺€?*/
.mns-product-detail-page .mns-pd-text-overlay[data-align="left"] { text-align: left; }
.mns-product-detail-page .mns-pd-text-overlay[data-align="center"] { text-align: center; }
.mns-product-detail-page .mns-pd-text-overlay[data-align="right"] { text-align: right; }

/* 鈥斺€?tone 鈥斺€?*/
.mns-product-detail-page .mns-pd-text-overlay[data-tone="default"] { color: var(--pd-text); }
.mns-product-detail-page .mns-pd-text-overlay[data-tone="accent"] { color: var(--pd-overlay-accent, var(--pd-accent)); }
.mns-product-detail-page .mns-pd-text-overlay[data-tone="muted"] { color: var(--pd-muted); }
.mns-product-detail-page .mns-pd-text-overlay[data-tone="inverse"] { color: #ffffff; }

.mns-product-detail-page .mns-pd-text-overlay[data-tone="inverse"] .mns-pd-text-overlay__caption,
.mns-product-detail-page .mns-pd-text-overlay[data-tone="inverse"] .mns-pd-caption {
    color: rgba(255, 255, 255, 0.88);
}
.mns-product-detail-page .mns-pd-text-overlay[data-tone="accent"] .mns-pd-text-overlay__caption,
.mns-product-detail-page .mns-pd-text-overlay[data-tone="accent"] .mns-pd-caption {
    color: color-mix(in srgb, var(--pd-overlay-accent, var(--pd-accent)) 88%, white);
}
.mns-product-detail-page .mns-pd-text-overlay[data-custom-color] .mns-pd-text-overlay__caption,
.mns-product-detail-page .mns-pd-text-overlay[data-custom-color] .mns-pd-caption {
    color: inherit;
    opacity: 0.9;
}

/* 鈥斺€?legibility 鈥斺€?*/
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="localScrim"],
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="chip"] {
    isolation: isolate;
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="localScrim"]::before,
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="chip"]::before {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
    border-radius: 4px;
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="shadow"][data-tone="default"],
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="shadow"][data-tone="accent"],
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="shadow"][data-tone="muted"],
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="shadow"][data-custom-color]:not([data-tone="inverse"]) {
    text-shadow:
        1px 1px 0 rgba(255, 255, 255, 0.72),
        2px 2px 3px rgba(255, 255, 255, 0.38);
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="shadow"][data-tone="inverse"] {
    -webkit-text-stroke: 2px rgba(0, 0, 0, 0.5);
    paint-order: stroke fill;
    text-shadow:
        0 2px 3px rgba(0, 0, 0, 0.8),
        0 5px 16px rgba(0, 0, 0, 0.5);
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="localScrim"] {
    padding: 0.15em 0.1em;
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="localScrim"]::before {
    inset: -0.45em -0.6em;
    background: radial-gradient(
        ellipse at center,
        rgba(255, 255, 255, 0.78) 0%,
        rgba(255, 255, 255, 0.32) 52%,
        rgba(255, 255, 255, 0) 78%
    );
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="localScrim"][data-tone="inverse"]::before {
    background: radial-gradient(
        ellipse at center,
        rgba(12, 12, 12, 0.58) 0%,
        rgba(12, 12, 12, 0.24) 52%,
        rgba(12, 12, 12, 0) 78%
    );
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="chip"] {
    padding: 0.45em 0.65em;
    border-radius: 4px;
    background: color-mix(in srgb, #f4f4f2 88%, transparent);
    box-shadow: 0 1px 0 rgba(46, 47, 47, 0.04);
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="chip"][data-tone="inverse"] {
    background: color-mix(in srgb, #2e2f2f 58%, transparent);
    box-shadow: none;
}
.mns-product-detail-page .mns-pd-text-overlay[data-legibility="chip"]::before {
    display: none;
}

@media (min-width: 1024px) {
    /* reset SP placement edges before PC tokens */
    .mns-product-detail-page .mns-pd-text-overlay {
        top: auto;
        right: auto;
        bottom: auto;
        left: auto;
        transform: none;
    }

    /* 瑙掔偣 placement 鏄惧紡 transform:none锛岄槻姝笌 SP transform 鍙犵敤 */
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="topLeft"] {
        top: var(--pd-overlay-y);
        left: var(--pd-overlay-x);
        transform: none;
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="topCenter"] {
        top: var(--pd-overlay-y);
        left: 50%;
        transform: translateX(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="topRight"] {
        top: var(--pd-overlay-y);
        right: var(--pd-overlay-x);
        transform: none;
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="middleLeft"] {
        top: 50%;
        left: var(--pd-overlay-x);
        transform: translateY(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="center"] {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="middleRight"] {
        top: 50%;
        right: var(--pd-overlay-x);
        transform: translateY(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="bottomLeft"] {
        bottom: var(--pd-overlay-y);
        left: var(--pd-overlay-x);
        transform: none;
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="bottomCenter"] {
        bottom: var(--pd-overlay-y);
        left: 50%;
        transform: translateX(-50%);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-placement-pc="bottomRight"] {
        bottom: var(--pd-overlay-y);
        right: var(--pd-overlay-x);
        transform: none;
    }

    .mns-product-detail-page .mns-pd-text-overlay[data-width-pc="xs"] {
        width: fit-content;
        max-width: var(--pd-text-width-xs);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width-pc="sm"] {
        width: fit-content;
        max-width: var(--pd-text-width-sm);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width-pc="md"] {
        width: fit-content;
        max-width: var(--pd-text-width-md);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width-pc="lg"] {
        width: fit-content;
        max-width: var(--pd-text-width-lg);
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width-pc="full"] {
        width: fit-content;
        max-width: var(--pd-text-width-full);
    }

    .mns-product-detail-page .mns-pd-text-overlay[data-align-pc="left"] { text-align: left; }
    .mns-product-detail-page .mns-pd-text-overlay[data-align-pc="center"] { text-align: center; }
    .mns-product-detail-page .mns-pd-text-overlay[data-align-pc="right"] { text-align: right; }

    .mns-product-detail-page .mns-pd-text-overlay__title--pc { display: block; }
    .mns-product-detail-page .mns-pd-text-overlay__title--sp { display: none; }
}

@media (max-width: 1023px) {
    .mns-product-detail-page {
        --pd-overlay-x: clamp(8px, 2.4vw, 12px);
        --pd-overlay-y: clamp(6px, 2vw, 10px);
    }

    /*
     * SP 鍙犲瓧锛歠it-content + max-width 涓婇檺锛屽乏鍙抽敋鐐瑰彲鍖哄垎銆?     */
    .mns-product-detail-page .mns-pd-text-overlay {
        width: fit-content;
        max-width: var(--pd-text-width-full);
        box-sizing: border-box;
    }

    .mns-product-detail-page .mns-pd-text-overlay[data-width="xs"] {
        width: fit-content;
        max-width: min(var(--pd-text-width-xs), var(--pd-text-width-full));
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width="sm"] {
        width: fit-content;
        max-width: min(var(--pd-text-width-sm), var(--pd-text-width-full));
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width="md"] {
        width: fit-content;
        max-width: min(var(--pd-text-width-md), var(--pd-text-width-full));
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width="lg"] {
        width: fit-content;
        max-width: min(var(--pd-text-width-lg), var(--pd-text-width-full));
    }
    .mns-product-detail-page .mns-pd-text-overlay[data-width="full"] {
        width: fit-content;
        max-width: var(--pd-text-width-full);
    }

    .mns-product-detail-page .mns-pd-visual-cards {
        --pd-overlay-x: clamp(14px, 4vw, 16px);
        --pd-overlay-y: clamp(14px, 4vw, 16px);
    }

    .mns-product-detail-page .mns-pd-visual-cards .mns-pd-card-title,
    .mns-product-detail-page .mns-pd-visual-cards .mns-pd-bento-hero-title,
    .mns-product-detail-page .mns-pd-text-overlay .mns-pd-text-overlay__title,
    .mns-product-detail-page .mns-pd-text-overlay .mns-pd-card-title,
    .mns-product-detail-page .mns-pd-text-overlay .mns-pd-bento-hero-title {
        font-size: 14px;
        line-height: 1.18;
    }

    .mns-product-detail-page .mns-pd-visual-cards .mns-pd-caption,
    .mns-product-detail-page .mns-pd-text-overlay .mns-pd-text-overlay__caption,
    .mns-product-detail-page .mns-pd-text-overlay .mns-pd-caption {
        font-size: 10px;
        line-height: 1.25;
    }
}

/* Additional product detail modules: bento08-10 and specTable callout01.
   Visual-first direction: images carry the main message, text stays short and supportive. */
.mns-product-detail-page .mns-pd-feature-explain,
.mns-product-detail-page .mns-pd-two-column-story,
.mns-product-detail-page .mns-pd-metrics-split,
.mns-product-detail-page .mns-pd-spec-callout {
    display: grid;
    gap: var(--pd-header-gap);
}

.mns-product-detail-page .mns-pd-bento08-panel {
    display: grid;
    /* 0.68fr hero @1280 鈫?870; height from aspect-ratio 870/480 鈫?480 */
    grid-template-columns: minmax(0, 0.32fr) minmax(0, 0.68fr);
    align-items: stretch;
    min-height: 0;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    background: color-mix(in srgb, var(--pd-accent) 10%, white);
}

.mns-product-detail-page .mns-pd-bento08-copy {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: clamp(18px, calc(100cqw * 28 / 1280), 28px);
    padding: clamp(24px, calc(100cqw * 44 / 1280), 44px);
    min-height: 0;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-bento08-copy-main {
    display: grid;
    gap: clamp(22px, calc(100cqw * 34 / 1280), 34px);
}

.mns-product-detail-page .mns-pd-bento08-text-block {
    display: grid;
    gap: 8px;
    max-width: 96%;
}

.mns-product-detail-page .mns-pd-bento08-text-block .mns-pd-card-title {
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-bento08-text-block .mns-pd-bento08-body,
.mns-product-detail-page .mns-pd-bento08-text-block .mns-pd-card-body {
    margin: 0;
    color: var(--pd-muted, #6f7370);
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body, 1.8);
}

.mns-product-detail-page .mns-pd-bento08-mini-list {
    display: grid;
    gap: clamp(10px, calc(100cqw * 14 / 1280), 14px);
}

.mns-product-detail-page .mns-pd-bento08-mini-card {
    aspect-ratio: 420 / 124;
    background: rgba(255, 255, 255, 0.76);
}

.mns-product-detail-page .mns-pd-bento08-hero {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    /* Keep in sync: bento-slot-specs.css --bento08-0 + admin monons_admin_bento_slot_pixels */
    aspect-ratio: 870 / 480;
    overflow: hidden;
}

.mns-product-detail-page .mns-pd-bento08-hero>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/*
 * bento09: two story cards 鈥?media row + title row must top-align across columns.
 * Avoid stretching free space between media and title (was desyncing title tops).
 * Titles: no text-wrap:balance / line-break:strict (CJK 鎹㈣璇″紓).
 */
.mns-product-detail-page .mns-pd-bento09-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    /* Next ProductDetailTokens: calc(100cqw * 34 / 1280) 鈥?keep, but cap via container cqw */
    column-gap: calc(100cqw * 34 / 1280);
    row-gap: var(--pd-visual-card-gap);
    align-items: start;
}

.mns-product-detail-page .mns-pd-bento09-story {
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    align-self: start;
    gap: var(--pd-visual-card-gap);
    min-width: 0;
}

/* Subgrid: both cards share media/title tracks 鈫?宸﹀彸鏍囬椤剁榻愬钩 */
@supports (grid-template-rows: subgrid) {
    .mns-product-detail-page .mns-pd-bento09-grid {
        grid-template-rows: auto auto;
    }

    .mns-product-detail-page .mns-pd-bento09-story {
        grid-template-rows: subgrid;
        grid-row: span 2;
        /* parent row-gap owns media鈫抰itle spacing */
        gap: 0;
    }
}

.mns-product-detail-page .mns-pd-bento09-media {
    /* @1280: (1280-34)/2 = 623; keep ~612:420 ratio 鈫?623脳428; admin 2脳 = 1246脳856 */
    aspect-ratio: 623 / 428;
    width: 100%;
    min-width: 0;
    background: var(--pd-visual-card-bg);
}

.mns-product-detail-page .mns-pd-bento09-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
    max-width: none;
    width: 100%;
    align-content: start;
}

.mns-product-detail-page .mns-pd-bento09-copy .mns-pd-card-title {
    margin: 0;
    font-weight: 600;
    /* Override .mns-pd-visual-cards balance/strict 鈥?natural CJK wrap */
    text-wrap: wrap;
    line-break: auto;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: manual;
}

.mns-product-detail-page .mns-pd-bento09-copy .mns-pd-card-body,
.mns-product-detail-page .mns-pd-bento09-body {
    margin: 0;
    color: var(--pd-muted);
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-card);
    text-wrap: wrap;
    line-break: auto;
    overflow-wrap: anywhere;
}

.mns-product-detail-page .mns-pd-bento10-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.54fr) minmax(0, 0.46fr);
    align-items: center;
    /* Next ProductDetailTokens: calc(100cqw * 42 / 1280) */
    gap: calc(100cqw * 42 / 1280);
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-bento10-visual {
    position: relative;
    z-index: 0;
    display: grid;
    place-items: center;
    min-width: 0;
    max-width: 100%;
    min-height: clamp(220px, calc(100cqw * 380 / 1280), 380px);
    overflow: hidden;
    /* keep big number / product art inside visual */
    isolation: isolate;
}

.mns-product-detail-page .mns-pd-bento10-big-number {
    position: absolute;
    inset: 50% auto auto 50%;
    z-index: 0;
    transform: translate(-50%, -52%);
    max-width: 100%;
    overflow: hidden;
    color: color-mix(in srgb, var(--pd-accent) 22%, transparent);
    font-size: clamp(100px, calc(100cqw * 240 / 1280), 260px);
    font-weight: 700;
    line-height: 0.8;
    pointer-events: none;
    user-select: none;
}

.mns-product-detail-page .mns-pd-bento10-product {
    position: relative;
    z-index: 1;
    max-width: min(90%, 100%);
    max-height: min(320px, calc(100cqw * 320 / 1280));
    width: auto;
    height: auto;
    object-fit: contain;
}

.mns-product-detail-page .mns-pd-bento10-fallback {
    position: relative;
    z-index: 1;
    width: 76%;
    aspect-ratio: 1 / 0.78;
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-accent) 10%, white);
}

.mns-product-detail-page .mns-pd-bento10-content {
    position: relative;
    z-index: 1;
    display: grid;
    align-content: start;
    gap: 10px;
    min-width: 0;
    max-width: 100%;
    /* solid surface so title never reads through the visual */
    background: color-mix(in srgb, var(--pd-bg, #fff) 96%, white);
}

.mns-product-detail-page .mns-pd-bento10-content :where(h1, h2, h3, h4, h5, h6, p) {
    margin: 0;
}

.mns-product-detail-page .mns-pd-bento10-content .mns-pd-section-title {
    max-width: none;
    margin: 0;
    font-size: var(--pd-fs-section-title);
    line-height: var(--pd-lh-title);
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-bento10-content .mns-pd-subtitle {
    margin: 0;
    font-size: clamp(13px, calc(100cqw * 15 / 1280), 15px);
    line-height: 1.45;
}

.mns-product-detail-page .mns-pd-bento10-metrics {
    display: grid;
    gap: 6px;
    margin: 0;
}

.mns-product-detail-page .mns-pd-bento10-metric {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--pd-accent) 7%, white);
    border-radius: var(--pd-radius-card, 4px);
}

.mns-product-detail-page .mns-pd-bento10-metric :where(h1, h2, h3, h4, h5, h6, p) {
    margin: 0 !important;
}

.mns-product-detail-page .mns-pd-bento10-metric .mns-pd-caption {
    margin: 0;
    line-height: 1.3;
}

.mns-product-detail-page .mns-pd-bento10-metric-value {
    margin: 0;
    color: var(--pd-accent);
    font-size: clamp(20px, calc(100cqw * 28 / 1280), 28px);
    line-height: 1.15;
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-bento10-body,
.mns-product-detail-page .mns-pd-bento10-body :where(p) {
    margin: 0;
    line-height: 1.5;
}

.mns-product-detail-page .mns-pd-metrics-split {
    gap: 12px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-callout-panel {
    position: relative;
    display: block;
    min-height: 0;
    /* Do not clip free-pos labels near the art edge */
    overflow: visible;
    background: transparent;
    /* Art is full-bleed; no panel padding (coords track the image) */
    padding: 0;
}

/*
 * Full-width stage: image fills the module container; Left/Top % = image box.
 */
.mns-product-detail-page .mns-pd-callout-visual {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
}

.mns-product-detail-page .mns-pd-callout-stage {
    position: relative;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0;
    line-height: 0;
    font-size: 0;
    overflow: visible;
}

.mns-product-detail-page .mns-pd-callout-stage > .mns-pd-callout-stage-img,
.mns-product-detail-page .mns-pd-callout-stage > .mns-pd-image,
.mns-product-detail-page .mns-pd-callout-stage > img {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    max-height: none;
    /* Uniform scale of design canvas 鈥?keep % coords true */
    object-fit: contain !important;
    object-position: center center;
    transform: none !important;
    vertical-align: top;
}

.mns-product-detail-page .mns-pd-callout-visual-fallback,
.mns-product-detail-page .mns-pd-callout-stage > .mns-pd-callout-visual-fallback {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    max-height: none;
    background: color-mix(in srgb, var(--pd-muted, #9aa09a) 12%, #fff);
}

.mns-product-detail-page .mns-pd-callout-label {
    position: absolute;
    z-index: 2;
    max-width: 42%;
    /* Design Left/Top = top-left of the label box (field: 鐢诲竷宸︿晶/椤堕儴鍍忕礌) */
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    line-height: normal;
    font-size: medium;
}

/*
 * Free-pos anchors (j191 #spectable-4 瀹炴祴):
 * Left/Top = 鐢诲竷涓婄殑閽堢偣 = 鏂囧瓧妗嗗乏涓婅锛堜笌璁捐绋垮潗鏍囦竴鑷达級銆? * 涓嶈 translateY(-50%)锛氫細鎶婃暣琛屼笂绉诲崐涓瓧楂橈紝鐪嬭捣鏉ユ暣浣撳亸涓娿€? * 涓嶈 translateX(-50%/-100%)锛氫細鏁翠綋鍋忓乏銆? */
.mns-product-detail-page .mns-pd-callout-label.is-xy {
    transform: none;
    max-width: 46%;
    text-align: left;
    white-space: nowrap;
}

.mns-product-detail-page .mns-pd-callout-label h3 {
    margin: 0;
    padding: 0;
    font-size: clamp(14px, calc(100cqw * 20 / 1280), 20px);
    line-height: 1.35;
    font-weight: 500;
}

.mns-product-detail-page .mns-pd-callout-body {
    margin: 4px 0 0;
    font-size: clamp(12px, calc(100cqw * 14 / 1280), 14px);
    line-height: 1.4;
    color: var(--pd-muted, #5c635c);
}

/* Legacy slot fallback when Left/Top not set (relative to product visual). */
.mns-product-detail-page .mns-pd-callout-slot--left-top {
    left: 8%;
    top: 22%;
}

.mns-product-detail-page .mns-pd-callout-slot--left-bottom {
    left: 10%;
    top: 68%;
}

.mns-product-detail-page .mns-pd-callout-slot--right-top {
    right: 6%;
    left: auto;
    top: 18%;
    text-align: right;
}

.mns-product-detail-page .mns-pd-callout-slot--right-middle {
    right: 4%;
    left: auto;
    top: 46%;
    text-align: right;
}

.mns-product-detail-page .mns-pd-callout-slot--right-bottom {
    right: 8%;
    left: auto;
    top: 72%;
    text-align: right;
}

.mns-product-detail-page .mns-pd-callout-mobile {
    display: none;
}

.mns-product-detail-page .mns-pd-callout-mobile-list {
    display: grid;
    gap: var(--pd-visual-card-mobile-child-gap, 10px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.mns-product-detail-page .mns-pd-callout-mobile-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    margin: 0;
    padding: 12px 14px;
}

.mns-product-detail-page .mns-pd-callout-mobile-num {
    display: inline-grid;
    place-items: center;
    min-width: 1.6em;
    height: 1.6em;
    border-radius: 4px;
    background: var(--pd-accent, #2E2F2F);
    color: #fff;
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
}

.mns-product-detail-page .mns-pd-callout-mobile-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-callout-mobile-visual {
    width: 100%;
    margin-bottom: 12px;
    overflow: hidden;
    border-radius: 4px;
    background: #fff;
}

.mns-product-detail-page .mns-pd-callout-mobile-visual img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-bento08-panel {
        grid-template-columns: minmax(0, 1fr);
        min-height: 0;
        width: 100%;
        max-width: 100%;
    }

    .mns-product-detail-page .mns-pd-bento08-copy {
        padding: 16px;
        order: 2;
        max-width: 100%;
        box-sizing: border-box;
    }

    .mns-product-detail-page .mns-pd-bento08-copy-main {
        gap: 14px;
    }

    .mns-product-detail-page .mns-pd-bento08-text-block {
        max-width: 100%;
    }

    .mns-product-detail-page .mns-pd-bento08-hero {
        min-height: 0;
        width: 100%;
        max-width: 100%;
        aspect-ratio: 16 / 10;
        order: 1;
    }

    .mns-product-detail-page .mns-pd-bento09-grid {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        column-gap: 0;
        row-gap: var(--pd-visual-card-mobile-gap);
        gap: var(--pd-visual-card-mobile-gap);
    }

    /* 鍗曞垪鏃跺叧闂?subgrid锛岄伩鍏?span 2 鎸よ繘鍚屼竴瀵?tracks */
    .mns-product-detail-page .mns-pd-bento09-story {
        grid-template-rows: auto auto;
        grid-row: auto;
        gap: var(--pd-visual-card-mobile-child-gap, var(--pd-visual-card-mobile-gap));
    }

    .mns-product-detail-page .mns-pd-bento09-media {
        aspect-ratio: 16 / 10;
    }

    .mns-product-detail-page .mns-pd-bento09-copy {
        max-width: none;
    }

    .mns-product-detail-page .mns-pd-bento10-grid {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .mns-product-detail-page .mns-pd-bento10-visual {
        order: 1;
        width: 100%;
        min-height: 0;
        aspect-ratio: 16 / 11;
        overflow: hidden;
    }

    .mns-product-detail-page .mns-pd-bento10-big-number {
        font-size: clamp(72px, 28vw, 120px);
    }

    .mns-product-detail-page .mns-pd-bento10-product {
        max-width: 78%;
        max-height: 70%;
    }

    .mns-product-detail-page .mns-pd-bento10-content {
        order: 2;
        gap: 8px;
        padding-top: 2px;
        background: var(--pd-bg, #fff);
    }

    .mns-product-detail-page .mns-pd-bento10-content .mns-pd-section-title {
        max-width: none;
        font-size: var(--pd-fs-section-title);
        line-height: 1.25;
    }

    .mns-product-detail-page .mns-pd-bento10-content .mns-pd-subtitle {
        font-size: 13px;
        line-height: 1.4;
    }

    .mns-product-detail-page .mns-pd-bento10-metrics {
        gap: 6px;
    }

    .mns-product-detail-page .mns-pd-bento10-metric {
        gap: 2px;
        padding: 10px 12px;
    }

    .mns-product-detail-page .mns-pd-bento10-metric-value {
        font-size: 22px;
        line-height: 1.15;
    }

    .mns-product-detail-page .mns-pd-metrics-split {
        gap: 10px;
    }

    /* section shell padding should not leave title under sticky header art */
    .mns-product-detail-page .mns-feature-cards--bento10 {
        overflow-x: clip;
    }

    .mns-product-detail-page .mns-pd-callout-panel--desktop {
        display: none;
    }

    .mns-product-detail-page .mns-pd-callout-mobile {
        display: grid;
        gap: 12px;
    }
}


/* Product comparison module: Apple-like aligned pair comparison */
.mns-product-detail-page .mns-pd-comparison-compare01 {
    --pd-compare-gap: clamp(12px, calc(100cqw * 24 / 1280), 24px);
    --pd-compare-max-width: min(1280px, 100%);
    display: grid;
    gap: clamp(26px, calc(100cqw * 42 / 1280), 42px);
}

.mns-product-detail-page .mns-pd-pair-grid {
    width: 100%;
    max-width: var(--pd-compare-max-width);
    margin-inline: auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: var(--pd-compare-gap);
}

.mns-product-detail-page .mns-pd-pair-column {
    width: 100%;
    min-width: 0;
    display: grid;
    grid-template-rows: auto auto;
    align-content: start;
    gap: clamp(14px, calc(100cqw * 20 / 1280), 20px);
}

.mns-product-detail-page .mns-pd-pair-select-label,
.mns-product-detail-page .mns-pd-pair-select,
.mns-product-detail-page .mns-pd-pair-product,
.mns-product-detail-page .mns-pd-pair-spec-list {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

.mns-product-detail-page .mns-pd-pair-select-label {
    position: relative;
    z-index: 3;
    display: block;
}

.mns-product-detail-page .mns-pd-pair-select {
    min-height: 58px;
    appearance: none;
    border: 1px solid color-mix(in srgb, var(--pd-border) 70%, transparent);
    border-radius: calc(var(--pd-radius-button) + 6px);
    background:
        linear-gradient(45deg, transparent 50%, var(--pd-accent) 50%) calc(100% - 24px) 50% / 7px 7px no-repeat,
        linear-gradient(135deg, var(--pd-accent) 50%, transparent 50%) calc(100% - 19px) 50% / 7px 7px no-repeat,
        transparent;
    color: var(--pd-text);
    cursor: pointer;
    font-size: clamp(16px, calc(100cqw * 20 / 1280), 20px);
    font-weight: 600;
    line-height: 1.2;
    padding: 0 48px 0 18px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-align: left;
}

.mns-product-detail-page .mns-pd-pair-select:focus-visible {
    border-color: color-mix(in srgb, var(--pd-accent) 64%, white);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--pd-accent) 18%, transparent);
    outline: none;
}

.mns-product-detail-page .mns-pd-pair-select-menu {
    position: absolute;
    z-index: 20;
    top: calc(100% + 4px);
    left: 0;
    display: grid;
    width: 100%;
    min-width: 0;
    max-height: min(280px, 50svh);
    overflow-y: auto;
    border: 1px solid color-mix(in srgb, var(--pd-border) 70%, transparent);
    border-radius: var(--pd-radius-button);
    background: var(--pd-bg, #fff);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .14);
}

.mns-product-detail-page .mns-pd-pair-select-menu button {
    width: 100%;
    min-width: 0;
    border: 0;
    border-radius: 0;
    padding: 12px 16px;
    background: transparent;
    color: var(--pd-text);
    font: inherit;
    text-align: left;
    overflow-wrap: anywhere;
}

.mns-product-detail-page .mns-pd-pair-select-menu button:hover,
.mns-product-detail-page .mns-pd-pair-select-menu button:focus-visible,
.mns-product-detail-page .mns-pd-pair-select-menu button[aria-selected="true"] {
    background: color-mix(in srgb, var(--pd-accent) 10%, var(--pd-bg, #fff));
    outline: none;
}

.mns-product-detail-page .mns-pd-pair-product {
    display: grid;
    justify-items: center;
    align-content: start;
    gap: clamp(16px, calc(100cqw * 22 / 1280), 22px);
    min-height: clamp(340px, calc(100cqw * 448 / 1280), 448px);
    padding: clamp(24px, calc(100cqw * 38 / 1280), 38px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 56%, transparent);
    border-radius: var(--pd-radius-card);
    background:
        radial-gradient(70% 60% at 50% 20%,
            color-mix(in srgb, var(--pd-accent) 10%, transparent) 0%,
            transparent 70%),
        color-mix(in srgb, var(--pd-bg) 92%, white);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.04);
    text-align: center;
    overflow: hidden;
}

.mns-product-detail-page .mns-pd-pair-product-media {
    width: min(430px, 94%);
    max-width: 100%;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: transparent;
}

.mns-product-detail-page .mns-pd-pair-product-copy {
    position: relative;
    z-index: 2;
    width: 100%;
    min-width: 0;
    display: grid;
    justify-items: center;
    gap: 10px;
    overflow: visible;
}

.mns-product-detail-page .mns-pd-pair-badge {
    display: none;
}

.mns-product-detail-page .mns-pd-pair-product-title {
    display: -webkit-box;
    max-width: 100%;
    min-height: calc(1.16em * 2);
    margin: 0;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-size: clamp(22px, calc(100cqw * 30 / 1280), 30px);
    line-height: 1.16;
    font-weight: 600;
    letter-spacing: -0.02em;
    overflow-wrap: anywhere;
}

.mns-product-detail-page .mns-pd-pair-price {
    margin: 0;
    min-height: 1.4em;
    color: #000;
    line-height: 1.4;
    font-weight: 500;
}

.mns-product-detail-page .mns-pd-pair-price.is-empty,
.mns-product-detail-page .mns-pd-pair-spec-label.is-empty,
.mns-product-detail-page .mns-pd-pair-spec-value.is-empty {
    color: color-mix(in srgb, var(--pd-muted, #878887) 72%, transparent);
    font-weight: 500;
}

.mns-product-detail-page .mns-pd-pair-price .mns-price {
    color: inherit;
    font-weight: inherit;
}

.mns-product-detail-page .mns-pd-pair-purchase {
    position: relative;
    z-index: 5;
    width: min(100%, 360px);
    margin-top: clamp(2px, calc(100cqw * 6 / 1280), 8px);
    overflow: visible;
}

.mns-product-detail-page .mns-pd-pair-purchase+.mns-pd-pair-button {
    margin-top: clamp(2px, calc(100cqw * 4 / 1280), 6px);
}

.mns-product-detail-page .mns-pd-pair-button {
    display: inline-flex;
    width: min(100%, 360px);
    min-height: clamp(46px, calc(100cqw * 52 / 1280), 56px);
    align-items: center;
    justify-content: center;
    padding: 0 clamp(20px, calc(100cqw * 28 / 1280), 32px);
    border: 1px solid color-mix(in srgb, var(--pd-text) 16%, transparent);
    border-radius: var(--radius-lg, var(--radius, 4px));
    background: color-mix(in srgb, var(--pd-bg) 94%, white);
    color: var(--pd-text);
    font-size: clamp(14px, calc(100cqw * 16 / 1280), 17px);
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.04em;
    text-decoration: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        0 12px 30px rgba(20, 24, 22, 0.08);
    transition:
        background-color 180ms ease,
        border-color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.mns-product-detail-page .mns-pd-pair-button:hover {
    border-color: color-mix(in srgb, var(--pd-text) 34%, transparent);
    background: #ffffff;
    color: var(--pd-text);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.92),
        0 16px 38px rgba(20, 24, 22, 0.12);

}

.mns-product-detail-page .mns-pd-pair-button:active {
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.86),
        0 8px 22px rgba(20, 24, 22, 0.09);
    transform: translateY(0);
}

.mns-product-detail-page .mns-pd-pair-button:focus-visible {
    border-color: color-mix(in srgb, var(--pd-accent) 52%, white);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--pd-accent) 16%, transparent);
    outline: none;
}

.mns-product-detail-page .mns-pd-pair-spec-list {
    display: grid;
    width: 100%;
    max-width: var(--pd-compare-max-width);
    margin-inline: auto;
    align-content: start;
    overflow: visible;
}

.mns-product-detail-page .mns-pd-pair-spec-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--pd-compare-gap);
    border-top: 1px solid color-mix(in srgb, var(--pd-border) 86%, transparent);
}

.mns-product-detail-page .mns-pd-pair-spec-item {
    display: grid;
    justify-items: center;
    align-content: center;
    min-width: 0;
    max-width: 100%;
    padding: clamp(18px, calc(100cqw * 26 / 1280), 26px) clamp(12px, calc(100cqw * 24 / 1280), 24px);
    overflow: hidden;
}

.mns-product-detail-page .mns-pd-pair-spec-item--empty {
    min-height: 100%;
}

.mns-product-detail-page .mns-pd-pair-spec-label,
.mns-product-detail-page .mns-pd-pair-spec-value {
    width: 100%;
    max-width: 100%;
    margin: 0;
    min-width: 0;
    text-align: center;
}

.mns-product-detail-page .mns-pd-pair-spec-label {
    color: var(--pd-muted);
    font-size: clamp(12px, calc(100cqw * 14 / 1280), 14px);
    line-height: 1.45;
}

.mns-product-detail-page .mns-pd-pair-spec-value {
    margin-top: 8px;
    color: var(--pd-text);
    font-size: clamp(15px, calc(100cqw * 17 / 1280), 17px);
    line-height: 1.7;
    font-weight: 600;
    word-break: normal;
    overflow-wrap: anywhere;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-comparison-compare01 {
        --pd-compare-gap: clamp(10px, 3.2vw, 14px);
        gap: 24px;
    }

    .mns-product-detail-page .mns-pd-pair-column {
        gap: 12px;
    }

    .mns-product-detail-page .mns-pd-pair-select {
        min-height: 46px;
        border-radius: 10px;
        background:
            linear-gradient(45deg, transparent 50%, var(--pd-accent) 50%) calc(100% - 18px) 50% / 6px 6px no-repeat,
            linear-gradient(135deg, var(--pd-accent) 50%, transparent 50%) calc(100% - 14px) 50% / 6px 6px no-repeat,
            transparent;
        font-size: clamp(12px, 3.5vw, 14px);
        padding: 0 32px 0 12px;
    }

    .mns-product-detail-page .mns-pd-pair-product {
        min-height: 0;
        padding: clamp(14px, 4.5vw, 18px) clamp(10px, 3.6vw, 14px) clamp(16px, 5vw, 20px);
        border-radius: calc(var(--pd-radius-card) - 8px);
        box-shadow: none;
    }

    .mns-product-detail-page .mns-pd-pair-product-media {
        width: min(220px, 92%);
    }

    .mns-product-detail-page .mns-pd-pair-product-copy {
        gap: 7px;
    }


    .mns-product-detail-page .mns-pd-pair-product-title {
        font-size: clamp(15px, 4.2vw, 17px);
        min-height: calc(1.16em * 2);
    }

    .mns-product-detail-page .mns-pd-pair-price {
        font-size: inherit;
    }

    .mns-product-detail-page .mns-pd-pair-button {
        width: 100%;
        min-height: 42px;
        padding-inline: 12px;
        font-size: 13px;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.86),
            0 8px 20px rgba(20, 24, 22, 0.08);
    }

    .mns-product-detail-page .mns-pd-pair-purchase {
        width: 100%;
        margin-top: 0;
    }


    .mns-product-detail-page .mns-pd-pair-spec-row {
        gap: var(--pd-compare-gap);
    }

    .mns-product-detail-page .mns-pd-pair-spec-item {
        padding-block: 18px;
    }

    .mns-product-detail-page .mns-pd-pair-spec-label {
        font-size: 12px;
    }

    .mns-product-detail-page .mns-pd-pair-spec-value {
        margin-top: 6px;
        font-size: clamp(13px, 3.7vw, 14px);
        line-height: 1.6;
    }
}



/* compare01 force override: transparent dropdown and content-only product area */
.mns-product-detail-page .mns-pd-comparison-compare01 .mns-pd-pair-select {
    background-color: transparent !important;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--pd-accent) 50%),
        linear-gradient(135deg, var(--pd-accent) 50%, transparent 50%) !important;
    background-position:
        calc(100% - 24px) 50%,
        calc(100% - 19px) 50% !important;
    background-size: 7px 7px, 7px 7px !important;
    background-repeat: no-repeat !important;
    box-shadow: none !important;
}

.mns-product-detail-page .mns-pd-comparison-compare01 .mns-pd-pair-product {
    min-height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.mns-product-detail-page .mns-pd-comparison-compare01 .mns-pd-pair-product-media {
    margin-inline: auto !important;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-comparison-compare01 .mns-pd-pair-select {
        background-position:
            calc(100% - 18px) 50%,
            calc(100% - 14px) 50% !important;
        background-size: 6px 6px, 6px 6px !important;
    }
}

/* Proof module: award and trust signals */
.mns-product-detail-page

/* proof:award01 */
.mns-product-detail-page .mns-pd-proof-award01 {
    display: grid;
    gap: var(--pd-header-gap);
}

.mns-product-detail-page .mns-pd-proof-award-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.52fr) minmax(0, 0.48fr);
    gap: clamp(18px, calc(100cqw * 30 / 1280), 30px);
    align-items: stretch;
}

.mns-product-detail-page .mns-pd-proof-award-main,
.mns-product-detail-page .mns-pd-proof-card {
    border: 1px solid color-mix(in srgb, var(--pd-border) 56%, transparent);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.035);
}

.mns-product-detail-page .mns-pd-proof-award-main {
    display: grid;
    align-content: space-between;
    gap: clamp(28px, calc(100cqw * 44 / 1280), 44px);
    min-height: clamp(390px, calc(100cqw * 520 / 1280), 520px);
    padding: clamp(28px, calc(100cqw * 48 / 1280), 48px);
    overflow: hidden;
    background:
        radial-gradient(72% 62% at 82% 12%,
            color-mix(in srgb, var(--pd-accent) 15%, transparent) 0%,
            transparent 72%),
        linear-gradient(145deg,
            color-mix(in srgb, var(--pd-bg) 96%, white) 0%,
            color-mix(in srgb, var(--pd-muted-surface) 38%, white) 100%);
}

.mns-product-detail-page .mns-pd-proof-main-top {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    align-items: flex-start;
}

.mns-product-detail-page .mns-pd-proof-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-proof-eyebrow-dot {
    width: 6px;
    height: 6px;
    border-radius: 999px;
    background: currentColor;
}

.mns-product-detail-page .mns-pd-proof-award-visual {
    flex: 0 0 auto;
    width: min(180px, 34%);
    aspect-ratio: 1;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background:
        radial-gradient(68% 68% at 50% 28%,
            color-mix(in srgb, var(--pd-accent) 16%, white) 0%,
            color-mix(in srgb, var(--pd-bg) 88%, white) 70%);
    color: var(--pd-accent);
    font-size: clamp(34px, calc(100cqw * 56 / 1280), 56px);
    font-weight: 700;
    letter-spacing: -0.04em;
}

.mns-product-detail-page .mns-pd-proof-award-copy {
    display: grid;
    gap: clamp(14px, calc(100cqw * 18 / 1280), 18px);
    max-width: 610px;
}

.mns-product-detail-page .mns-pd-proof-award-title {
    margin: 0;
    max-width: 600px;
    font-size: clamp(30px, calc(100cqw * 48 / 1280), 48px);
    line-height: 1.14;
    font-weight: 600;
    letter-spacing: -0.045em;
}

.mns-product-detail-page .mns-pd-proof-award-body {
    margin: 0;
    max-width: 560px;
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-proof-link,
.mns-product-detail-page .mns-pd-proof-card-link,
.mns-product-detail-page .mns-pd-proof-section-link {
    color: var(--pd-text);
    font-size: var(--pd-fs-caption);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.mns-product-detail-page .mns-pd-proof-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(12px, calc(100cqw * 18 / 1280), 18px);
}

.mns-product-detail-page .mns-pd-proof-card {
    display: grid;
    align-content: start;
    gap: 12px;
    min-height: clamp(172px, calc(100cqw * 236 / 1280), 236px);
    padding: clamp(20px, calc(100cqw * 28 / 1280), 28px);
    background: color-mix(in srgb, var(--pd-bg) 90%, white);
}

.mns-product-detail-page .mns-pd-proof-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.mns-product-detail-page .mns-pd-proof-card-mark {
    order: 2;
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-accent) 10%, white);
    color: var(--pd-accent);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}

.mns-product-detail-page .mns-pd-proof-card-title {
    margin: 0;
    font-size: clamp(18px, calc(100cqw * 23 / 1280), 23px);
    line-height: 1.34;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-proof-card-body {
    margin: 0;
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-proof-kind-support .mns-pd-proof-card-mark,
.mns-product-detail-page .mns-pd-proof-kind-document .mns-pd-proof-card-mark {
    background: color-mix(in srgb, var(--pd-accent) 7%, white);
}

.mns-product-detail-page .mns-pd-proof-kind-warranty .mns-pd-proof-card-mark,
.mns-product-detail-page .mns-pd-proof-kind-channel .mns-pd-proof-card-mark,
.mns-product-detail-page .mns-pd-proof-kind-spec .mns-pd-proof-card-mark {
    background: color-mix(in srgb, var(--pd-muted) 10%, white);
    color: var(--pd-muted);
}

.mns-product-detail-page .mns-pd-proof-section-cta {
    display: flex;
    justify-content: center;
}

.mns-product-detail-page .mns-pd-proof-section-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-bg) 90%, white);
    text-decoration: none;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-proof-award-layout {
        grid-template-columns: 1fr;
        gap: var(--pd-visual-card-mobile-gap);
    }

    .mns-product-detail-page .mns-pd-proof-award-main {
        min-height: 0;
        padding: 24px 20px;
    }

    .mns-product-detail-page .mns-pd-proof-main-top {
        align-items: center;
    }

    .mns-product-detail-page .mns-pd-proof-award-visual {
        width: min(120px, 32%);
    }

    .mns-product-detail-page .mns-pd-proof-award-title {
        font-size: 30px;
    }

    .mns-product-detail-page .mns-pd-proof-grid {
        grid-template-columns: 1fr;
        gap: var(--pd-visual-card-mobile-child-gap);
    }

    .mns-product-detail-page .mns-pd-proof-card {
        min-height: 0;
        padding: 20px;
    }
}


/* buyingGuide:fit01 */
.mns-product-detail-page .mns-pd-buying-guide-fit01 {
    display: grid;
    gap: var(--pd-header-gap);
}

.mns-product-detail-page .mns-pd-fit-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.58fr) minmax(0, 0.42fr);
    gap: clamp(18px, calc(100cqw * 28 / 1280), 28px);
    align-items: stretch;
}

.mns-product-detail-page .mns-pd-fit-main,
.mns-product-detail-page .mns-pd-fit-panel,
.mns-product-detail-page .mns-pd-fit-scenes {
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.035);
}

.mns-product-detail-page .mns-pd-fit-main {
    display: grid;
    align-content: start;
    gap: clamp(24px, calc(100cqw * 34 / 1280), 34px);
    min-height: clamp(420px, calc(100cqw * 560 / 1280), 560px);
    padding: clamp(26px, calc(100cqw * 44 / 1280), 44px);
    background:
        radial-gradient(70% 65% at 84% 10%,
            color-mix(in srgb, var(--pd-accent) 14%, transparent) 0%,
            transparent 70%),
        color-mix(in srgb, var(--pd-bg) 90%, white);
}

.mns-product-detail-page .mns-pd-fit-main-head {
    display: grid;
    gap: 12px;
    max-width: 620px;
}

.mns-product-detail-page .mns-pd-fit-main-label,
.mns-product-detail-page .mns-pd-fit-panel-label {
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-fit-main-title {
    margin: 0;
    max-width: 620px;
    font-size: clamp(30px, calc(100cqw * 48 / 1280), 48px);
    line-height: 1.16;
    font-weight: 600;
    letter-spacing: -0.04em;
}

.mns-product-detail-page .mns-pd-fit-main-body {
    margin: 0;
    max-width: 560px;
    color: var(--pd-muted);
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-fit-side {
    display: grid;
    gap: clamp(14px, calc(100cqw * 18 / 1280), 18px);
}

.mns-product-detail-page .mns-pd-fit-panel,
.mns-product-detail-page .mns-pd-fit-scenes {
    display: grid;
    gap: 18px;
    padding: clamp(22px, calc(100cqw * 30 / 1280), 30px);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
}

.mns-product-detail-page .mns-pd-fit-list {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mns-product-detail-page .mns-pd-fit-list--main {
    gap: 14px;
}

.mns-product-detail-page .mns-pd-fit-list-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: clamp(14px, calc(100cqw * 18 / 1280), 18px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 52%, transparent);
    border-radius: calc(var(--pd-radius-card) * 0.62);
    background: color-mix(in srgb, var(--pd-bg) 82%, white);
}

.mns-product-detail-page .mns-pd-fit-list--main .mns-pd-fit-list-item {
    padding: clamp(16px, calc(100cqw * 20 / 1280), 20px);
    background: color-mix(in srgb, var(--pd-bg) 76%, white);
}

.mns-product-detail-page .mns-pd-fit-list-mark {
    display: inline-grid;
    width: 26px;
    height: 26px;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-accent) 12%, white);
    color: var(--pd-accent);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
}

.mns-product-detail-page .mns-pd-fit-item--not-fit .mns-pd-fit-list-mark {
    background: color-mix(in srgb, var(--pd-muted) 12%, white);
    color: var(--pd-muted);
}

.mns-product-detail-page .mns-pd-fit-item--check .mns-pd-fit-list-mark,
.mns-product-detail-page .mns-pd-fit-item--scene .mns-pd-fit-list-mark {
    background: color-mix(in srgb, var(--pd-accent) 8%, white);
}

.mns-product-detail-page .mns-pd-fit-list-copy {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-fit-list-title {
    color: var(--pd-text);
    font-size: clamp(16px, calc(100cqw * 18 / 1280), 18px);
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.mns-product-detail-page .mns-pd-fit-list-body {
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
    line-height: 1.65;
}

.mns-product-detail-page .mns-pd-fit-scene-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(10px, calc(100cqw * 14 / 1280), 14px);
}

.mns-product-detail-page .mns-pd-fit-scene {
    display: grid;
    gap: 6px;
    min-height: 124px;
    padding: clamp(16px, calc(100cqw * 20 / 1280), 20px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 52%, transparent);
    border-radius: calc(var(--pd-radius-card) * 0.62);
    background: color-mix(in srgb, var(--pd-bg) 84%, white);
}

.mns-product-detail-page .mns-pd-fit-scene-title,
.mns-product-detail-page .mns-pd-fit-scene-body {
    margin: 0;
}

.mns-product-detail-page .mns-pd-fit-scene-title {
    font-size: clamp(16px, calc(100cqw * 18 / 1280), 18px);
    line-height: 1.4;
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-fit-scene-body {
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
    line-height: 1.65;
}

.mns-product-detail-page .mns-pd-fit-cta {
    display: flex;
    justify-content: center;
}

.mns-product-detail-page .mns-pd-fit-cta-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 22px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-text) 88%, black);
    color: var(--pd-bg);
    font-size: var(--pd-fs-caption);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-fit-layout {
        grid-template-columns: 1fr;
        gap: var(--pd-visual-card-mobile-gap);
    }

    .mns-product-detail-page .mns-pd-fit-main,
    .mns-product-detail-page .mns-pd-fit-panel,
    .mns-product-detail-page .mns-pd-fit-scenes {
        padding: 20px;
    }

    .mns-product-detail-page .mns-pd-fit-main {
        min-height: 0;
    }

    .mns-product-detail-page .mns-pd-fit-main-title {
        font-size: 30px;
    }

    .mns-product-detail-page .mns-pd-fit-scene-grid {
        grid-template-columns: 1fr;
    }

    .mns-product-detail-page .mns-pd-fit-scene {
        min-height: 0;
    }
}


/* steps:howTo01 */
.mns-product-detail-page .mns-pd-steps-howto01 {
    display: grid;
    gap: var(--pd-header-gap);
}

.mns-product-detail-page .mns-pd-howto-layout {
    --pd-howto-gap: clamp(14px, calc(100cqw * 22 / 1280), 22px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--pd-howto-gap);
    align-items: stretch;
}

.mns-product-detail-page .mns-pd-howto-step-card {
    position: relative;
    display: grid;
    align-content: start;
    gap: clamp(16px, calc(100cqw * 22 / 1280), 22px);
    min-height: clamp(320px, calc(100cqw * 430 / 1280), 430px);
    padding: clamp(20px, calc(100cqw * 28 / 1280), 28px);
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--pd-border) 56%, transparent);
    background:
        radial-gradient(76% 62% at 78% 8%,
            color-mix(in srgb, var(--pd-accent) 10%, transparent) 0%,
            transparent 70%),
        color-mix(in srgb, var(--pd-bg) 90%, white);
    box-shadow: 0 16px 42px rgba(0, 0, 0, 0.035);
}

.mns-product-detail-page .mns-pd-howto-step-card::after {
    content: "";
    position: absolute;
    top: clamp(31px, calc(100cqw * 39 / 1280), 39px);
    right: calc(var(--pd-howto-gap) * -0.64);
    width: var(--pd-howto-gap);
    height: 1px;
    background: color-mix(in srgb, var(--pd-border) 70%, transparent);
}

.mns-product-detail-page .mns-pd-howto-step-card:last-child::after {
    display: none;
}

.mns-product-detail-page .mns-pd-howto-step-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.mns-product-detail-page .mns-pd-howto-step-number {
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-howto-step-dot {
    display: inline-grid;
    width: 10px;
    height: 16px;
    border-radius: 999px;
    background:
        radial-gradient(circle at 50% 50%,
            var(--pd-accent) 0 3px,
            color-mix(in srgb, var(--pd-accent) 10%, white) 4px 100%);
}

.mns-product-detail-page .mns-pd-howto-step-media {
    position: relative;
    display: block;
    width: 100%;
    /* Design ratio ~1.32 (鈮?248脳188 CSS 1脳 @1280 four-col); export 2脳 鈫?496脳376 */
    aspect-ratio: 1.32 / 1;
    border-radius: calc(var(--pd-radius-card) * 0.62);
    background: color-mix(in srgb, var(--pd-muted-surface) 52%, white);
    overflow: hidden;
}

/* Fill frame without letterbox 鈥?wrong crop was height:auto + place-items center */
.mns-product-detail-page .mns-pd-howto-step-media .mns-pd-image,
.mns-product-detail-page .mns-pd-howto-step-media img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: center center;
}

.mns-product-detail-page .mns-pd-howto-step-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-howto-step-title {
    margin: 0;
    font-size: clamp(18px, calc(100cqw * 22 / 1280), 22px);
    line-height: 1.36;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-howto-step-body {
    margin: 0;
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-howto-step-link {
    width: fit-content;
    color: var(--pd-text);
    font-size: var(--pd-fs-caption);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.mns-product-detail-page .mns-pd-howto-cta {
    display: flex;
    justify-content: center;
}

.mns-product-detail-page .mns-pd-howto-cta-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-text) 88%, black);
    color: var(--pd-bg);
    font-size: var(--pd-fs-caption);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 1180px) {
    .mns-product-detail-page .mns-pd-howto-layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mns-product-detail-page .mns-pd-howto-step-card::after {
        display: none;
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-howto-layout {
        grid-template-columns: 1fr;
        gap: var(--pd-visual-card-mobile-child-gap);
    }

    .mns-product-detail-page .mns-pd-howto-step-card {
        min-height: 0;
        padding: 16px 18px;
        gap: 12px;
    }

    /*
     * SP 鍗曞垪鏃?media 鑻?100% 瀹戒細杩囧ぇ锛垀鍏ㄥ睆瀹?脳 1.32 楂橈級銆?     * 鏀剁獎灞呬腑锛屼繚鐣欒璁℃瘮渚嬨€?     */
    .mns-product-detail-page .mns-pd-howto-step-media {
        width: min(200px, 56vw);
        max-width: 100%;
        margin-inline: auto;
    }

    .mns-product-detail-page .mns-pd-howto-step-title {
        font-size: 16px;
    }

    .mns-product-detail-page .mns-pd-howto-step-body {
        font-size: 13px;
        line-height: 1.55;
    }
}


/* cta:purchase01 鈥?浠呮敼鑳屾櫙鑹?*/
.mns-product-detail-page .mns-pd-cta-purchase01 {
    display: grid;
    gap: var(--pd-header-gap);
    background: #f7f7f6;
}

.mns-product-detail-page .mns-pd-purchase-panel {
    display: grid;
    grid-template-columns: minmax(0, 0.48fr) minmax(0, 0.52fr);
    gap: clamp(22px, calc(100cqw * 42 / 1280), 42px);
    align-items: center;
    min-height: clamp(430px, calc(100cqw * 560 / 1280), 560px);
    padding: clamp(26px, calc(100cqw * 52 / 1280), 52px);
    overflow: visible;
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    background:
        radial-gradient(74% 72% at 20% 24%,
            color-mix(in srgb, var(--pd-accent) 12%, transparent) 0%,
            transparent 72%),
        linear-gradient(135deg,
            color-mix(in srgb, var(--pd-bg) 96%, white) 0%,
            color-mix(in srgb, var(--pd-muted-surface) 42%, white) 100%);
    box-shadow: 0 20px 54px rgba(0, 0, 0, 0.04);
}

.mns-product-detail-page .mns-pd-purchase-visual {
    --mns-media-object-fit: contain;
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 0;
    /* 鍥哄畾姝ｆ柟褰㈡锛涗骇鍝佸浘鍦ㄥ唴绛夋瘮缂╂斁锛坈ontain锛夛紝涓嶅己鍒惰鍒?*/
    aspect-ratio: 1 / 1;
    border-radius: calc(var(--pd-radius-card) * 0.78);
    background:
        radial-gradient(62% 62% at 50% 30%,
            color-mix(in srgb, var(--pd-accent) 10%, white) 0%,
            color-mix(in srgb, var(--pd-bg) 88%, white) 74%);
    overflow: hidden;
    padding: clamp(12px, calc(100cqw * 20 / 1280), 20px);
    box-sizing: border-box;
}

/* 绛夋瘮缂╂斁瀹屾暣鏄剧ず浜у搧鍥撅紙闈?cover 閾烘弧瑁佸垏锛?*/
.mns-product-detail-page .mns-pd-purchase-visual .mns-pd-image,
.mns-product-detail-page .mns-pd-purchase-visual img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    object-position: center center;
    transform: none !important;
}

.mns-product-detail-page .mns-pd-purchase-visual-placeholder {
    color: var(--pd-accent);
    font-size: clamp(24px, calc(100cqw * 42 / 1280), 42px);
    font-weight: 700;
    letter-spacing: -0.04em;
}

.mns-product-detail-page .mns-pd-purchase-copy {
    position: relative;
    z-index: 2;
    display: grid;
    gap: clamp(14px, calc(100cqw * 18 / 1280), 18px);
    min-width: 0;
}

.mns-product-detail-page .mns-pd-purchase-eyebrow {
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-purchase-title {
    margin: 0;
    max-width: 680px;
    font-size: clamp(32px, calc(100cqw * 56 / 1280), 56px);
    line-height: 1.12;
    font-weight: 600;
    letter-spacing: -0.05em;
}

.mns-product-detail-page .mns-pd-purchase-body {
    margin: 0;
    max-width: 620px;
    font-size: var(--pd-fs-card-body);
    line-height: var(--pd-lh-body);
}

.mns-product-detail-page .mns-pd-purchase-price {
    margin: 0;
    color: #000;
    line-height: 1.1;
    font-weight: 500;
    letter-spacing: -0.035em;
}

.mns-product-detail-page .mns-pd-purchase-price .mns-price {
    color: inherit;
    font-weight: inherit;
}

.mns-product-detail-page .mns-pd-purchase-store-panel {
    max-width: 548px;
    margin-top: clamp(4px, calc(100cqw * 8 / 1280), 8px);
}

.mns-product-detail-page .mns-pd-purchase-links {
    display: grid;
    gap: 10px;
    margin-top: clamp(4px, calc(100cqw * 8 / 1280), 8px);
}

.mns-product-detail-page .mns-pd-purchase-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    min-height: 58px;
    padding: 10px 16px 10px 18px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    border-radius: 999px;
    background: color-mix(in srgb, var(--pd-bg) 86%, white);
    color: var(--pd-text);
    text-decoration: none;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease;
}

.mns-product-detail-page .mns-pd-purchase-link:hover {

    border-color: color-mix(in srgb, var(--pd-accent) 34%, var(--pd-border));
}

.mns-product-detail-page .mns-pd-purchase-link--primary {
    background: color-mix(in srgb, var(--pd-text) 90%, black);
    color: var(--pd-bg);
    border-color: color-mix(in srgb, var(--pd-text) 90%, black);
}

.mns-product-detail-page .mns-pd-purchase-link-copy {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-purchase-link-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    opacity: 0.72;
}

.mns-product-detail-page .mns-pd-purchase-link-title {
    font-size: clamp(14px, calc(100cqw * 16 / 1280), 16px);
    font-weight: 600;
    line-height: 1.2;
}

.mns-product-detail-page .mns-pd-purchase-link-arrow {
    display: inline-grid;
    width: 34px;
    height: 34px;
    place-items: center;
    border-radius: 999px;
    background: color-mix(in srgb, currentColor 8%, transparent);
    font-size: 16px;
    line-height: 1;
}

.mns-product-detail-page .mns-pd-purchase-support-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, calc(100cqw * 18 / 1280), 18px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.mns-product-detail-page .mns-pd-purchase-support-item {
    display: grid;
    align-content: start;
    gap: 7px;
    min-height: 132px;
    padding: clamp(18px, calc(100cqw * 24 / 1280), 24px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 56%, transparent);
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
}

.mns-product-detail-page .mns-pd-purchase-support-label {
    color: var(--pd-accent);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-purchase-support-title {
    color: var(--pd-text);
    font-size: clamp(16px, calc(100cqw * 18 / 1280), 18px);
    line-height: 1.35;
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-purchase-support-body {
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
    line-height: 1.65;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-purchase-panel {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 22px 20px;
    }

    .mns-product-detail-page .mns-pd-purchase-visual {
        aspect-ratio: 1 / 1;
    }

    .mns-product-detail-page .mns-pd-purchase-title {
        font-size: 32px;
    }

    .mns-product-detail-page .mns-pd-purchase-support-list {
        grid-template-columns: 1fr;
        gap: var(--pd-visual-card-mobile-child-gap);
    }

    .mns-product-detail-page .mns-pd-purchase-support-item {
        min-height: 0;
        padding: 18px;
    }
}


/* support:aftercare01 */
.mns-product-detail-page .mns-pd-support-aftercare01 {
    display: grid;
    gap: var(--pd-header-gap);
}

/* 浠?action 鍗＄墖缃戞牸锛堝凡绉婚櫎 aftercare-main锛?*/
.mns-product-detail-page .mns-pd-aftercare-layout {
    display: grid;
    gap: clamp(16px, calc(100cqw * 22 / 1280), 24px);
    align-items: stretch;
}

.mns-product-detail-page .mns-pd-aftercare-note {
    display: grid;
    gap: 6px;
    padding: 16px 18px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 54%, transparent);
    border-radius: var(--pd-radius-button);
    background: color-mix(in srgb, var(--pd-bg) 76%, white);
}

.mns-product-detail-page .mns-pd-aftercare-note span {
    color: var(--pd-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.mns-product-detail-page .mns-pd-aftercare-note strong {
    color: var(--pd-text);
    font-size: var(--pd-fs-card-body);
    font-weight: 600;
    line-height: 1.4;
}

.mns-product-detail-page .mns-pd-aftercare-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(12px, calc(100cqw * 16 / 1280), 18px);
    width: 100%;
}

.mns-product-detail-page .mns-pd-aftercare-action {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: clamp(12px, calc(100cqw * 16 / 1280), 18px);
    align-items: start;
    min-height: clamp(168px, calc(100cqw * 210 / 1280), 210px);
    padding: clamp(20px, calc(100cqw * 26 / 1280), 28px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 56%, transparent);
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
    color: var(--pd-text);
    text-decoration: none;
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}

.mns-product-detail-page a.mns-pd-aftercare-action:hover {

    border-color: color-mix(in srgb, var(--pd-accent) 30%, var(--pd-border));
    background: color-mix(in srgb, var(--pd-muted-surface) 56%, white);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.06);
}

.mns-product-detail-page .mns-pd-aftercare-action-mark {
    display: inline-grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: var(--pd-radius-button);
    background: color-mix(in srgb, var(--pd-accent) 12%, white);
    color: var(--pd-accent);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-aftercare-action-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-aftercare-action-label {
    color: var(--pd-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-aftercare-action-title {
    color: var(--pd-text);
    font-size: clamp(18px, calc(100cqw * 22 / 1280), 22px);
    line-height: 1.28;
    font-weight: 600;
    letter-spacing: -0.025em;
}

.mns-product-detail-page .mns-pd-aftercare-action-body {
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
    line-height: 1.65;
}

.mns-product-detail-page .mns-pd-aftercare-action-arrow {
    display: inline-grid;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: var(--pd-radius-button);
    background: color-mix(in srgb, var(--pd-muted-surface) 72%, white);
    color: var(--pd-accent);
    font-size: 14px;
}

.mns-product-detail-page .mns-pd-aftercare-cta {
    display: flex;
    justify-content: center;
}

.mns-product-detail-page .mns-pd-aftercare-cta-link {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    justify-content: center;
    padding: 0 22px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 64%, transparent);
    border-radius: var(--pd-radius-button);
    background: color-mix(in srgb, var(--pd-bg) 86%, white);
    color: var(--pd-text);
    font-size: var(--pd-fs-button);
    font-weight: 600;
    text-decoration: none;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-aftercare-actions {
        grid-template-columns: 1fr;
    }

    .mns-product-detail-page .mns-pd-aftercare-action {
        min-height: 0;
        padding: 18px;
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-aftercare-action {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .mns-product-detail-page .mns-pd-aftercare-action-arrow {
        display: none;
    }
}


/* relatedProducts:lineup01 */
.mns-product-detail-page .mns-pd-related-lineup01 {
    display: grid;
    gap: clamp(22px, calc(100cqw * 34 / 1280), 36px);
}

.mns-product-detail-page .mns-pd-related-header {
    display: flex;
    gap: clamp(18px, calc(100cqw * 32 / 1280), 34px);
    align-items: end;
    justify-content: space-between;
    padding-bottom: clamp(16px, calc(100cqw * 24 / 1280), 24px);
    border-bottom: 1px solid color-mix(in srgb, var(--pd-border) 68%, transparent);
}

.mns-product-detail-page .mns-pd-related-header-copy {
    display: grid;
    gap: 10px;
    max-width: 760px;
}

.mns-product-detail-page .mns-pd-related-eyebrow {
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-related-heading {
    margin: 0;
    color: var(--pd-text);
    font-family: var(--pd-font-heading);
    font-size: var(--pd-fs-section-title);
    line-height: 1.12;
    font-weight: 500;
    letter-spacing: -0.035em;
}

.mns-product-detail-page .mns-pd-related-description {
    margin: 0;
    max-width: 680px;
    color: var(--pd-muted);
    font-size: var(--pd-fs-body);
    line-height: var(--pd-lh-subtitle);
}

.mns-product-detail-page .mns-pd-related-header-button {
    display: inline-flex;
    min-height: 48px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 clamp(22px, 2.4vw, 34px);
    border: 1px solid color-mix(in srgb, var(--pd-text) 18%, transparent);
    border-radius: var(--pd-radius-button);
    background: color-mix(in srgb, var(--pd-bg) 78%, white);
    color: var(--pd-text);
    font-size: var(--pd-fs-button);
    font-weight: 600;
    text-decoration: none;
    transition:
        border-color 180ms ease,
        background-color 180ms ease,
        color 180ms ease;
}

.mns-product-detail-page .mns-pd-related-header-button:hover {
    border-color: var(--pd-text);
    background: var(--pd-text);
    color: var(--pd-bg);
}

/* Reuse the same card system as Home / NewProductsSection.
   The related-products module only controls layout and spacing here. */
.mns-product-detail-page .mns-pd-related-grid.mns-new-products-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(12px, calc(100cqw * 18 / 1280), 20px);
    border: 0;
}

.mns-product-detail-page .mns-pd-related-lineup01 .mns-new-product-card,
.mns-product-detail-page .mns-pd-related-lineup01 .mns-new-products-card {
    min-height: clamp(248px, 21vw, 292px);
    border: 1px solid color-mix(in srgb, var(--pd-text) 10%, transparent);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--pd-text) 3%, transparent);
    transition:
        transform 180ms ease,
        border-color 180ms ease,
        background-color 180ms ease,
        box-shadow 180ms ease;
}

.mns-product-detail-page .mns-pd-related-lineup01 .mns-new-product-card:hover,
.mns-product-detail-page .mns-pd-related-lineup01 .mns-new-products-card:hover {

    border-color: color-mix(in srgb, var(--pd-accent) 38%, var(--pd-border));
    background: #ffffff;
    box-shadow: 0 22px 50px rgba(21, 23, 22, 0.08);
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-related-grid.mns-new-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-related-lineup01 {
        gap: 18px;
    }

    .mns-product-detail-page .mns-pd-related-header {
        display: grid;
        gap: 14px;
        align-items: start;
        padding-bottom: 0;
        border-bottom: 0;
    }

    .mns-product-detail-page .mns-pd-related-heading {
        font-size: var(--pd-fs-section-title);
    }

    .mns-product-detail-page .mns-pd-related-header-button {
        min-height: 42px;
        width: fit-content;
        padding-inline: 14px;
        font-size: 0.78rem;
    }

    .mns-product-detail-page .mns-pd-related-grid.mns-new-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .mns-product-detail-page .mns-pd-related-lineup01 .mns-new-product-card,
    .mns-product-detail-page .mns-pd-related-lineup01 .mns-new-products-card {
        min-height: 0;
    }
}


/* packageList:contents01 */
.mns-product-detail-page .mns-pd-package-contents01 {
    display: grid;
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    gap: clamp(24px, calc(100cqw * 52 / 1280), 64px);
    align-items: center;
    min-height: clamp(430px, calc(100cqw * 540 / 1280), 560px);
    overflow: hidden;
    padding: clamp(28px, calc(100cqw * 64 / 1280), 76px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 50%, transparent);
    background:
        radial-gradient(64% 72% at 72% 45%,
            color-mix(in srgb, var(--pd-accent) 8%, white) 0%,
            transparent 72%),
        linear-gradient(180deg,
            color-mix(in srgb, var(--pd-muted-surface) 42%, white) 0%,
            color-mix(in srgb, var(--pd-bg) 94%, white) 100%);
}

.mns-product-detail-page .mns-pd-package-copy {
    display: grid;
    align-content: center;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-package-eyebrow {
    margin: 0 0 clamp(12px, calc(100cqw * 16 / 1280), 18px);
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-package-title {
    margin: 0;
    color: var(--pd-text);
    font-family: var(--pd-font-heading);
    font-size: var(--pd-fs-section-title);
    line-height: 1.1;
    font-weight: 600;
    letter-spacing: -0.05em;
}

.mns-product-detail-page .mns-pd-package-description {
    margin: clamp(14px, calc(100cqw * 18 / 1280), 20px) 0 0;
    max-width: 540px;
    color: var(--pd-muted);
    font-size: var(--pd-fs-body);
    line-height: var(--pd-lh-subtitle);
}

/* Item list inside copy column 鈥?single column (not 2-col; avoids left-column crowding) */
.mns-product-detail-page .mns-pd-package-contents01 .mns-pd-package-copy>ul.mns-pd-package-list,
.mns-product-detail-page .mns-pd-package-contents01 .mns-pd-package-copy>ul.mns-pd-package-items {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 10px;
    margin: clamp(26px, calc(100cqw * 38 / 1280), 44px) 0 0;
    padding: 0;
    color: var(--pd-muted);
    font-size: clamp(16px, calc(100cqw * 20 / 1280), 22px);
    line-height: 1.42;
    list-style: none;
}

.mns-product-detail-page .mns-pd-package-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-package-dot {
    color: color-mix(in srgb, var(--pd-muted) 68%, transparent);
}

.mns-product-detail-page .mns-pd-package-item-text {
    display: inline-grid;
    gap: 3px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-package-item-text small {
    color: color-mix(in srgb, var(--pd-muted) 76%, transparent);
    font-size: 0.68em;
    line-height: 1.35;
}

.mns-product-detail-page .mns-pd-package-visual {
    display: grid;
    place-items: center;
    min-width: 0;
    width: 100%;
    /* Design ratio 1.55; CSS 1脳 鈮?666脳430 @1280 right col; admin export 2脳 鈫?1332脳860 */
    aspect-ratio: 1.55;
}

.mns-product-detail-page .mns-pd-package-placeholder {
    color: var(--pd-accent);
    font-size: clamp(30px, calc(100cqw * 56 / 1280), 64px);
    font-weight: 700;
    letter-spacing: -0.05em;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-package-contents01 {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 22px 20px;
    }

    .mns-product-detail-page .mns-pd-package-title {
        font-size: var(--pd-fs-section-title);
    }

    .mns-product-detail-page .mns-pd-package-contents01 .mns-pd-package-copy>ul.mns-pd-package-list,
    .mns-product-detail-page .mns-pd-package-contents01 .mns-pd-package-copy>ul.mns-pd-package-items {
        margin-top: 22px;
        font-size: 16px;
    }
}


/* reviews:review01 */
.mns-product-detail-page .mns-pd-reviews-review01 {
    display: grid;
    gap: clamp(16px, calc(100cqw * 24 / 1280), 28px);
}

.mns-product-detail-page .mns-pd-reviews-header {
    display: flex;
    gap: clamp(14px, calc(100cqw * 24 / 1280), 28px);
    align-items: end;
    justify-content: space-between;
    padding-bottom: clamp(12px, calc(100cqw * 18 / 1280), 18px);
    border-bottom: 1px solid color-mix(in srgb, var(--pd-border) 68%, transparent);
}

.mns-product-detail-page .mns-pd-reviews-copy {
    display: grid;
    gap: 8px;
    max-width: 760px;
}

.mns-product-detail-page .mns-pd-reviews-eyebrow {
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-reviews-heading {
    margin: 0;
    color: var(--pd-text);
    font-family: var(--pd-font-heading);
    font-size: var(--pd-fs-section-title);
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: -0.03em;
}

.mns-product-detail-page .mns-pd-reviews-description {
    margin: 0;
    max-width: 640px;
    color: var(--pd-muted);
    font-size: var(--pd-fs-body);
    line-height: 1.65;
}

.mns-product-detail-page .mns-pd-reviews-summary {
    display: grid;
    min-width: clamp(140px, calc(100cqw * 176 / 1280), 190px);
    gap: 6px;
    padding: 18px 20px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 64%, transparent);
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
    text-align: right;
}

.mns-product-detail-page .mns-pd-reviews-summary span {
    color: var(--pd-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-reviews-summary strong {
    color: var(--pd-text);
    font-size: clamp(26px, calc(100cqw * 36 / 1280), 38px);
    line-height: 1;
    font-weight: 600;
    letter-spacing: -0.04em;
}

/* Default viewport 鈮?one row of 3 compact cards; extra reviews scroll. */
.mns-product-detail-page .mns-pd-review-scroll {
    max-height: clamp(220px, calc(100cqw * 260 / 1280), 280px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-right: 2px;
    scrollbar-width: thin;
}

.mns-product-detail-page .mns-pd-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(10px, calc(100cqw * 14 / 1280), 16px);
}

.mns-product-detail-page .mns-pd-review-card {
    display: grid;
    align-content: start;
    gap: 8px;
    min-height: 0;
    padding: clamp(14px, calc(100cqw * 18 / 1280), 18px);
    border: 1px solid color-mix(in srgb, var(--pd-border) 58%, transparent);
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-bg) 88%, white);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--pd-text) 3%, transparent);
}

.mns-product-detail-page .mns-pd-review-card-head {
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
}

.mns-product-detail-page .mns-pd-review-stars {
    color: var(--pd-accent);
    font-size: clamp(14px, calc(100cqw * 16 / 1280), 16px);
    letter-spacing: 0.08em;
}

.mns-product-detail-page .mns-pd-review-index {
    color: color-mix(in srgb, var(--pd-muted) 54%, transparent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
}

.mns-product-detail-page .mns-pd-review-title {
    margin: 0;
    color: var(--pd-text);
    font-size: clamp(15px, calc(100cqw * 18 / 1280), 18px);
    line-height: 1.35;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-review-body {
    margin: 0;
    color: var(--pd-muted);
    font-size: 0.9rem;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}

.mns-product-detail-page .mns-pd-review-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: auto;
}

.mns-product-detail-page .mns-pd-review-meta span {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 0 9px;
    border: 1px solid color-mix(in srgb, var(--pd-border) 62%, transparent);
    border-radius: var(--pd-radius-button);
    color: var(--pd-muted);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

@media (max-width: 1023px) {
    .mns-product-detail-page .mns-pd-reviews-header {
        display: grid;
        align-items: start;
    }

    .mns-product-detail-page .mns-pd-reviews-summary {
        width: fit-content;
        text-align: left;
    }

    .mns-product-detail-page .mns-pd-review-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    /* 鈮?2 cards visible, then scroll (still denser than before). */
    .mns-product-detail-page .mns-pd-review-scroll {
        max-height: clamp(360px, 58vw, 420px);
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-reviews-review01 {
        gap: 14px;
    }

    .mns-product-detail-page .mns-pd-reviews-header {
        padding-bottom: 0;
        border-bottom: 0;
    }

    .mns-product-detail-page .mns-pd-reviews-heading {
        font-size: var(--pd-fs-section-title);
    }

    .mns-product-detail-page .mns-pd-review-grid {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* Default show ~3 compact cards, scroll for the rest. */
    .mns-product-detail-page .mns-pd-review-scroll {
        max-height: 22.5rem;
    }

    .mns-product-detail-page .mns-pd-review-card {
        padding: 14px 14px;
    }

    .mns-product-detail-page .mns-pd-review-body {
        -webkit-line-clamp: 3;
    }
}

/* mainVisual:hero01 */
.mns-product-detail-page .mns-pd-main-visual-hero01 {
    display: grid;
    grid-template-columns: minmax(0, 0.54fr) minmax(0, 0.46fr);
    gap: clamp(24px, calc(100cqw * 44 / 1280), 56px);
    align-items: start;
}

.mns-product-detail-page .mns-pd-main-visual-gallery {
    position: relative;
    display: grid;
    gap: 16px;
    min-width: 0;
}


.mns-product-detail-page .mns-pd-main-visual-gallery-button,
.pswp .mns-pd-main-visual-gallery-button {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: inline-grid;
    width: 44px;
    height: 44px;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--radius);
    background: rgba(62, 66, 70, 0.28);
    color: #ffffff;
    cursor: pointer;
    outline: none;
    backdrop-filter: blur(16px);
    box-shadow: 0 10px 24px rgba(20, 24, 22, 0.12);
    transition:
        transform 180ms ease,
        background-color 180ms ease,
        color 180ms ease;
}

.mns-product-detail-page .mns-pd-main-visual-gallery-button svg,
.pswp .mns-pd-main-visual-gallery-button svg {
    display: block;
    width: 10px;
    height: 16px;
    overflow: visible;
    flex: 0 0 auto;
}

.mns-product-detail-page .mns-pd-main-visual-gallery-button:hover,
.mns-product-detail-page .mns-pd-main-visual-gallery-button:focus-visible,
.pswp .mns-pd-main-visual-gallery-button:hover,
.pswp .mns-pd-main-visual-gallery-button:focus-visible {
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
}

.mns-product-detail-page .mns-pd-main-visual-gallery-button--prev {
    left: clamp(12px, calc(100cqw * 22 / 1280), 24px);
}

.mns-product-detail-page .mns-pd-main-visual-gallery-button--next {
    right: clamp(12px, calc(100cqw * 22 / 1280), 24px);
}

@media (hover: none) and (pointer: coarse) {
    .mns-product-detail-page .mns-pd-main-visual-gallery-button,
    .pswp .mns-pd-main-visual-gallery-button {
        display: none;
    }
}

.mns-product-detail-page .mns-pd-main-visual-stage {
    position: relative;
    display: grid;
    place-items: center;
    width: 100%;
    min-height: 0;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--pd-bg) 94%, white);
}

.mns-product-detail-page .mns-pd-main-visual-embla {
    width: 100%;
    height: 100%;
    overflow: hidden;
    perspective: 1200px;
}

.mns-product-detail-page .mns-pd-main-visual-embla-container {
    display: flex;
    width: 100%;
    height: 100%;
    touch-action: pan-y pinch-zoom;
    will-change: transform;
    transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.mns-product-detail-page .mns-pd-main-visual-embla-container.is-snapping {
    /* brief ease when jump-switching groups */
    transition-duration: 0.4s;
}

.mns-product-detail-page .mns-pd-main-visual-slide {
    display: grid;
    flex: 0 0 100%;
    min-width: 0;
    min-height: 0;
    height: 100%;
    place-items: stretch;
    overflow: hidden;
    transform-origin: center center;
    background: color-mix(in srgb, var(--pd-bg) 94%, white);
    isolation: isolate;
}

/* Soft-variant overflow: keep DOM index for Splide, never paint parent leftovers. */
.mns-product-detail-page .mns-pd-main-visual-slide[data-mv-pad] {
    pointer-events: none;
}

.mns-product-detail-page .mns-pd-main-visual-slide[data-mv-pad] img,
.mns-product-detail-page .mns-pd-main-visual-slide[data-mv-pad] .mns-pd-main-visual-media {
    opacity: 0;
    visibility: hidden;
}

.mns-product-detail-page .mns-gallery-3d__slide[data-mv-pad] {
    display: none !important;
}

.mns-product-detail-page .mns-pd-main-visual-slide > .mns-pd-main-visual-media,
.mns-product-detail-page .mns-pd-main-visual-slide > img,
.mns-product-detail-page .mns-pd-main-visual-slide > .mns-pd-main-visual-zoom {
    place-self: center;
    max-width: 100%;
    max-height: 100%;
}

.mns-product-detail-page .mns-pd-main-visual-slide > .mns-pd-main-visual-zoom {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

.mns-product-detail-page .mns-pd-main-visual-slide > .mns-pd-main-visual-zoom .mns-pd-main-visual-media,
.mns-product-detail-page .mns-pd-main-visual-slide > .mns-pd-main-visual-zoom img {
    max-width: 100%;
    max-height: 100%;
}

/* Inactive slides stay visible during horizontal slide (no fade hide). */
.mns-product-detail-page .mns-pd-main-visual-slide[aria-hidden="true"],
.mns-product-detail-page .mns-pd-main-visual-slide[aria-hidden="false"] {
    opacity: 1;
    filter: none;
}

@media (prefers-reduced-motion: reduce) {
    .mns-product-detail-page .mns-pd-main-visual-embla-container {
        transition: none;
    }

    .mns-product-detail-page .mns-pd-main-visual-slide {
        transition: none;
    }
}

.mns-product-detail-page .mns-pd-main-visual-slide> :where(img, div, a) {
    min-width: 0;
}

.mns-product-detail-page .mns-pd-main-visual-view-switch {
    position: absolute;
    top: clamp(14px, calc(100cqw * 22 / 1280), 24px);
    left: clamp(14px, calc(100cqw * 22 / 1280), 24px);
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--radius);
    background: rgba(62, 66, 70, 0.28);
    backdrop-filter: blur(16px);
    box-shadow: 0 10px 24px rgba(20, 24, 22, 0.12);
}

.mns-product-detail-page .mns-pd-main-visual-view-switch-button {
    min-width: 58px;
    height: 28px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: #ffffff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.01em;
    transition:
        background-color 180ms ease,
        color 180ms ease,
        box-shadow 180ms ease,
        transform 180ms ease;
}

.mns-product-detail-page .mns-pd-main-visual-view-switch-button:hover {
    background: transparent;
    color: rgba(255, 255, 255, 0.92);
}

.mns-product-detail-page .mns-pd-main-visual-view-switch-button.is-active {
    background: #ffffff;
    color: var(--pd-text);
    box-shadow: 0 4px 12px rgba(20, 24, 22, 0.12);
}

/* Pin stage to the square slide 鈥?avoid % height collapsing to auto and
 * letting the poster inflate past the frame (then get cropped by overflow). */
.mns-product-detail-page .mns-pd-main-visual-review-stage,
.mns-product-detail-page .mns-pd-main-visual-video-stage {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: color-mix(in srgb, var(--pd-bg) 94%, white);
}

.mns-product-detail-page .mns-pd-main-visual-review-stage img,
.mns-product-detail-page .mns-pd-main-visual-video-stage img,
.mns-product-detail-page .mns-pd-main-visual-review-stage img.mns-media-contain,
.mns-product-detail-page .mns-pd-main-visual-video-stage img.mns-media-contain {
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain !important;
    object-position: center center;
    transform: none !important;
    background: color-mix(in srgb, var(--pd-bg) 94%, white);
}

.mns-product-detail-page .mns-pd-main-visual-review-overlay,
.mns-product-detail-page .mns-pd-main-visual-video-overlay {
    position: absolute;
    inset: 0;
    display: grid;
    align-content: space-between;
    padding: clamp(18px, calc(100cqw * 28 / 1280), 30px);
    background:
        linear-gradient(180deg, rgba(12, 12, 12, 0.18) 0%, rgba(12, 12, 12, 0.08) 32%, rgba(12, 12, 12, 0.56) 100%);
}

/* Product video: badge + play only 鈥?keep play centered without bottom caption. */
.mns-product-detail-page .mns-pd-main-visual-video-overlay {
    align-content: start;
    justify-items: stretch;
}

.mns-product-detail-page .mns-pd-main-visual-video-overlay .mns-pd-main-visual-review-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    justify-self: auto;
    align-self: auto;
}

.mns-product-detail-page .mns-pd-main-visual-review-badge {
    justify-self: start;
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--pd-text);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.mns-product-detail-page .mns-pd-main-visual-review-play {
    justify-self: center;
    align-self: center;
    display: inline-grid;
    width: clamp(72px, calc(100cqw * 92 / 1280), 96px);
    height: clamp(72px, calc(100cqw * 92 / 1280), 96px);
    place-items: center;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    color: var(--pd-text);
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 20px 40px rgba(20, 24, 22, 0.22);
}

.mns-product-detail-page .mns-pd-main-visual-review-play span {
    margin-left: 4px;
    font-size: clamp(28px, calc(100cqw * 34 / 1280), 36px);
    line-height: 1;
}

.mns-product-detail-page .mns-pd-main-visual-review-stage.is-playing .mns-pd-main-visual-review-overlay,
.mns-product-detail-page .mns-pd-main-visual-video-stage.is-playing .mns-pd-main-visual-video-overlay {
    opacity: 0;
    pointer-events: none;
}

.mns-inline-video-mount {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: grid;
    place-items: center;
    overflow: hidden;
    background: #0c0c0c;
}

.mns-inline-video-mount[hidden] {
    display: none !important;
}

.mns-inline-video-mount video,
.mns-inline-video-mount iframe {
    display: block;
    border: 0;
    background: #0c0c0c;
    /* Fallback until JS knows ratio: letterbox inside the square stage (no crop). */
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
}

/*
 * Known aspect (JS sets exact width/height): box is contained in the stage.
 * Required for iframe embeds 鈥?object-fit does not apply to iframe content.
 */
.mns-inline-video-mount video.has-aspect,
.mns-inline-video-mount iframe.has-aspect {
    aspect-ratio: var(--mns-inline-video-ratio, 16 / 9);
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center center;
}

.mns-inline-video-close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: inline-grid;
    width: 36px;
    height: 36px;
    place-items: center;
    border: 0;
    border-radius: 4px;
    background: rgba(12, 12, 12, 0.72);
    color: #fff;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

/* Keep Gutenberg / WP embeds inside their content column */
.mns-main .wp-block-embed,
.mns-main .wp-block-video,
.article-cpt .wp-block-embed,
.article-cpt .wp-block-video {
    max-width: 100%;
}

.mns-main .wp-block-embed iframe,
.mns-main .wp-block-video video,
.article-cpt .wp-block-embed iframe,
.article-cpt .wp-block-video video {
    max-width: 100%;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

.mns-product-detail-page .mns-pd-main-visual-review-caption {
    display: grid;
    gap: 8px;
    align-self: end;
    max-width: 72%;
    color: #ffffff;
}

.mns-product-detail-page .mns-pd-main-visual-review-caption strong {
    font-size: clamp(20px, calc(100cqw * 28 / 1280), 30px);
    line-height: 1.2;
    font-weight: 700;
}

.mns-product-detail-page .mns-pd-main-visual-review-caption small {
    font-size: var(--pd-fs-card-body);
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.86);
}

.mns-product-detail-page .mns-pd-main-visual-preview-stage {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    max-height: 100%;
    min-height: 0;
    padding: clamp(40px, calc(100cqw * 52 / 1280), 64px) clamp(12px, calc(100cqw * 18 / 1280), 20px) clamp(56px, calc(100cqw * 84 / 1280), 96px);
    border: 0;
    background: transparent;
    color: var(--pd-text);
    text-align: left;
}

.mns-product-detail-page .mns-pd-main-visual-preview-scroll {
    box-sizing: border-box;
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
    padding: clamp(10px, calc(100cqw * 14 / 1280), 14px);
    border: 0;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--pd-muted-surface) 82%, white);
    box-shadow: none;
    scrollbar-width: thin;
}

/* MV specs / reviews teasers: no nested y-scroll capture; click → page section. */
.mns-product-detail-page .mns-pd-main-visual-specs-jump,
.mns-product-detail-page .mns-pd-main-visual-reviews-jump {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    min-height: 0;
    max-height: 100%;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    border-radius: var(--radius, 4px);
}

.mns-product-detail-page a.mns-pd-main-visual-specs-jump:hover .mns-pd-main-visual-preview-scroll--specs-teaser,
.mns-product-detail-page a.mns-pd-main-visual-specs-jump:focus-visible .mns-pd-main-visual-preview-scroll--specs-teaser,
.mns-product-detail-page a.mns-pd-main-visual-reviews-jump:hover .mns-pd-main-visual-preview-scroll--reviews-teaser,
.mns-product-detail-page a.mns-pd-main-visual-reviews-jump:focus-visible .mns-pd-main-visual-preview-scroll--reviews-teaser {
    background: color-mix(in srgb, var(--pd-muted-surface) 70%, white);
}

.mns-product-detail-page a.mns-pd-main-visual-specs-jump:focus-visible,
.mns-product-detail-page a.mns-pd-main-visual-reviews-jump:focus-visible {
    outline: 2px solid var(--pd-accent, #9EA7A2);
    outline-offset: 2px;
}

.mns-product-detail-page .mns-pd-main-visual-specs-jump--static,
.mns-product-detail-page .mns-pd-main-visual-reviews-jump--static {
    cursor: default;
}

.mns-product-detail-page .mns-pd-main-visual-preview-scroll--specs-teaser,
.mns-product-detail-page .mns-pd-main-visual-preview-scroll--reviews-teaser {
    display: flex;
    flex-direction: column;
    justify-content: safe center;
    overflow-y: hidden;
    overscroll-behavior: auto;
    touch-action: manipulation;
    scrollbar-width: none;
}

.mns-product-detail-page .mns-pd-main-visual-preview-scroll--specs-teaser::-webkit-scrollbar,
.mns-product-detail-page .mns-pd-main-visual-preview-scroll--reviews-teaser::-webkit-scrollbar {
    display: none;
}

/* Specs teaser: title + CTA stay put; table shrinks first when stage is short. */
.mns-product-detail-page .mns-pd-main-visual-preview-scroll--specs-teaser > h3,
.mns-product-detail-page .mns-pd-main-visual-preview-scroll--specs-teaser > .mns-pd-main-visual-specs-jump-cta {
    flex-shrink: 0;
}

/*
 * Specs teaser table: fill the remaining square-stage area (1:1 MV stage),
 * clip at that fixed container box — never size/fade from real row content.
 * Bottom fade is always on (mask % of the list box).
 */
.mns-product-detail-page .mns-pd-main-visual-preview-scroll--specs-teaser .mns-pd-main-visual-spec-list {
    flex: 1 1 0;
    min-height: 0;
    max-height: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(
        to bottom,
        #000 0%,
        #000 52%,
        rgba(0, 0, 0, 0.55) 78%,
        transparent 100%
    );
    mask-image: linear-gradient(
        to bottom,
        #000 0%,
        #000 52%,
        rgba(0, 0, 0, 0.55) 78%,
        transparent 100%
    );
}

.mns-product-detail-page .mns-pd-main-visual-specs-jump-cta,
.mns-product-detail-page .mns-pd-main-visual-reviews-jump-cta {
    display: inline-flex;
    align-self: center;
    margin-top: 12px;
    padding: 8px 14px;
    border: 1px solid color-mix(in srgb, var(--pd-text, #2E2F2F) 22%, transparent);
    border-radius: 4px;
    background: #fff;
    color: var(--pd-text, #2E2F2F);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.3;
    white-space: nowrap;
}

.mns-product-detail-page a.mns-pd-main-visual-specs-jump:hover .mns-pd-main-visual-specs-jump-cta,
.mns-product-detail-page a.mns-pd-main-visual-reviews-jump:hover .mns-pd-main-visual-reviews-jump-cta {
    border-color: var(--pd-text, #2E2F2F);
    background: var(--pd-text, #2E2F2F);
    color: #fff;
}

.mns-product-detail-page .mns-pd-main-visual-preview-eyebrow {
    margin: 0 0 6px;
    color: var(--pd-muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.mns-product-detail-page .mns-pd-main-visual-preview-scroll h3 {
    margin: 0 0 8px;
    font-size: clamp(14px, calc(100cqw * 16 / 1280), 16px);
    line-height: 1.3;
    text-align: center;
    font-weight: 600;
}

/* MV specs: same merge / left-align / tight dt鈫攄d as product table; always single column */
.mns-product-detail-page .mns-pd-main-visual-spec-list {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 0;
    gap: 0;
    margin: 0;
    width: 100%;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--pd-text, #2E2F2F) 22%, transparent);
    border-radius: var(--radius, 4px);
    background: #fff;
}

/* Beat generic .mns-pd-spec-dl dual-column (鈮?00px) if cascade order changes */
@media (min-width: 900px) {
    .mns-product-detail-page .mns-pd-main-visual-spec-list.mns-pd-spec-dl,
    .mns-product-detail-page .mns-pd-main-visual-spec-list {
        grid-template-columns: 1fr;
        column-gap: 0;
    }

    .mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-row:last-child,
    .mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group:last-child {
        border-bottom: 0;
    }
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-row,
.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group {
    display: grid;
    grid-template-columns: minmax(4.5em, 7.5em) minmax(0, 1fr);
    gap: 6px 10px;
    align-items: center;
    justify-items: stretch;
    padding: 8px 10px;
    border-bottom: 1px solid color-mix(in srgb, var(--pd-border, #E8E8E8) 70%, transparent);
    background: #fff;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-row:last-child,
.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group:last-child {
    border-bottom: 0;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list dt,
.mns-product-detail-page .mns-pd-main-visual-spec-list dd {
    margin: 0;
    width: 100%;
    min-width: 0;
    display: block;
    padding: 0;
    font-size: clamp(11px, calc(100cqw * 12.5 / 1280), 12.5px);
    line-height: 1.4;
    text-align: left;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list dt {
    color: var(--pd-text);
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list dd {
    color: var(--pd-muted);
    font-weight: 400;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group {
    align-items: start;
    padding-block: 8px;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group > dt {
    display: block;
    padding-top: 0.1em;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group__values {
    display: grid;
    gap: 0.2em;
}

.mns-product-detail-page .mns-pd-main-visual-spec-list .mns-pd-spec-group__values dd {
    border: 0;
    padding: 0;
    line-height: 1.45;
}

.mns-product-detail-page .mns-pd-main-visual-review-preview {
    cursor: pointer;
}

.mns-product-detail-page .mns-pd-main-visual-review-preview-list {
    display: grid;
    gap: 12px;
}

.mns-product-detail-page .mns-pd-main-visual-review-preview-list article {
    padding: 14px 16px;
    border-radius: var(--radius);
    background: #ffffff;
    box-shadow: 0 10px 24px rgba(20, 24, 22, 0.08);
}

.mns-product-detail-page .mns-pd-main-visual-review-preview-list article>span {
    display: inline-flex;
    min-height: 24px;
    align-items: center;
    padding: 0 10px;
    border-radius: var(--radius);
    background: color-mix(in srgb, var(--pd-muted-surface) 80%, white);
    color: var(--pd-muted);
    font-size: 11px;
    font-weight: 700;
}

.mns-product-detail-page .mns-pd-main-visual-review-preview-list strong {
    display: block;
    margin-top: 10px;
    font-size: 16px;
    line-height: 1.5;
}

.mns-product-detail-page .mns-pd-main-visual-review-preview-list p {
    margin: 8px 0 0;
    color: var(--pd-muted);
    font-size: 14px;
    line-height: 1.7;
}

.mns-product-detail-page .mns-pd-main-visual-quick-links {
    position: absolute;
    right: clamp(14px, calc(100cqw * 20 / 1280), 20px);
    bottom: clamp(14px, calc(100cqw * 20 / 1280), 20px);
    z-index: 4;
    display: flex;
    width: max-content;
    max-width: calc(100% - clamp(28px, calc(100cqw * 40 / 1280), 40px));
    flex-wrap: nowrap;
    gap: 2px;
    padding: 3px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--radius);
    background: rgba(62, 66, 70, 0.28);
    box-shadow: 0 10px 24px rgba(20, 24, 22, 0.12);
    backdrop-filter: blur(16px);
}

.mns-product-detail-page .mns-pd-main-visual-quick-links::-webkit-scrollbar {
    display: none;
}

.mns-product-detail-page .mns-pd-main-visual-quick-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    height: 28px;
    padding: 0 9px;
    border: 0;
    border-radius: var(--radius);
    background: transparent;
    color: #ffffff;
    text-align: left;
    white-space: nowrap;
    scroll-snap-align: start;
    cursor: pointer;
    transition:
        transform 180ms ease,
        box-shadow 180ms ease,
        background-color 180ms ease,
        color 180ms ease;
}

.mns-product-detail-page .mns-pd-main-visual-quick-link:hover {

    background: rgba(255, 255, 255, 0.12);
}

.mns-product-detail-page .mns-pd-main-visual-quick-link.is-active {
    background: rgba(255, 255, 255, 0.22);
    box-shadow: 0 6px 14px rgba(20, 24, 22, 0.12);
}

.mns-product-detail-page .mns-pd-main-visual-quick-link-text {
    display: inline-flex;
    gap: 4px;
    align-items: baseline;
    min-width: 0;
    white-space: nowrap;
}

.mns-product-detail-page .mns-pd-main-visual-quick-link-text.is-label-only {
    align-items: center;
    justify-content: center;
}

.mns-product-detail-page .mns-pd-main-visual-quick-link-text small {
    color: rgba(255, 255, 255, 0.86);
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.mns-product-detail-page .mns-pd-main-visual-quick-link-text strong {
    color: #ffffff;
    font-size: 12px;
    line-height: 1;
    font-weight: 800;
    white-space: nowrap;
}

/*
 * 3D gallery thumbs 鈥?Monons polish
 * - Global site radius: 4px (var(--radius))
 * - Hard edge occlusion (solid plates / hairlines), no soft Shokz bars
 */
.mns-product-detail-page .mns-gallery-3d {
    --mns-g3d-radius: var(--radius, 4px);
    --mns-g3d-line: var(--mns-line, #E8E8E8);
    /* Active ring: brand 鐗规畩鑹?鈥?avoid near-black primary which reads too heavy on thumbs */
    --mns-g3d-ink: var(--mns-accent, #9EA7A2);
    --mns-g3d-soft: var(--mns-soft, #F4F4F2);
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    justify-content: center;
    align-items: center;
    width: 100%;
    margin-top: 16px;
    padding-inline: 12px;
    order: 2;
}

.mns-product-detail-page .mns-gallery-3d *,
.mns-product-detail-page .mns-gallery-3d *::before,
.mns-product-detail-page .mns-gallery-3d *::after {
    box-sizing: border-box;
}

.mns-product-detail-page .mns-gallery-3d__switch {
    position: relative;
    z-index: 10;
    width: 86px;
    max-width: 86px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.mns-product-detail-page .mns-gallery-3d__switch:focus-visible {
    outline: 2px solid var(--mns-g3d-ink);
    outline-offset: 2px;
    border-radius: var(--mns-g3d-radius);
}

/* Active: hard 2px ring, no glow */
.mns-product-detail-page .mns-gallery-3d__switch::before {
    position: absolute;
    z-index: 4;
    inset: 0;
    display: block;
    border: 0 solid transparent;
    border-radius: var(--mns-g3d-radius);
    content: "";
    pointer-events: none;
    transition: border-color 0.18s ease;
}

.mns-product-detail-page .mns-gallery-3d__switch.is-active::before {
    border: 2px solid var(--mns-g3d-ink);
    box-shadow: none;
}

/*
 * Product occlusion: hard stepped plates behind the face
 * (replaces soft SVG depth bars)
 */
.mns-product-detail-page .mns-gallery-3d__product {
    margin-right: 18px;
}

.mns-product-detail-page .mns-gallery-3d__product::after {
    position: absolute;
    z-index: 0;
    top: 50%;
    left: 100%;
    width: 14px;
    height: 70%;
    margin-left: 3px;
    content: "";
    background:
        linear-gradient(var(--mns-g3d-line), var(--mns-g3d-line)) 0 0 / 4px 100% no-repeat,
        linear-gradient(#d4d4d0, #d4d4d0) 7px 10% / 4px 80% no-repeat,
        linear-gradient(#c6c6c2, #c6c6c2) 14px 18% / 3px 64% no-repeat;
    transform: translateY(-50%);
    pointer-events: none;
    border-radius: 0;
}

/* Scene: hard solid hairline divider */
.mns-product-detail-page .mns-gallery-3d__scene {
    margin-left: 4px;
}

.mns-product-detail-page .mns-gallery-3d__scene::after {
    position: absolute;
    top: 50%;
    left: -14px;
    width: 1px;
    height: 64%;
    content: "";
    background-color: var(--mns-g3d-line);
    transform: translateY(-50%);
    pointer-events: none;
}

.mns-product-detail-page .mns-gallery-3d__viewport {
    position: relative;
    z-index: 1;
    display: block;
    width: 86px;
    height: 86px;
    padding: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid var(--mns-g3d-line);
    border-radius: var(--mns-g3d-radius);
    background: var(--mns-g3d-soft);
    perspective: 480px;
    transform-style: preserve-3d;
    box-shadow: none;
}

.mns-product-detail-page .mns-gallery-3d__slide {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border-radius: var(--mns-g3d-radius);
    opacity: 0;
    transform: rotateY(72deg) scale(0.94);
    transform-origin: center center;
    backface-visibility: hidden;
    transition:
        opacity 0.32s ease,
        transform 0.36s cubic-bezier(0.22, 1, 0.36, 1);
    pointer-events: none;
}

.mns-product-detail-page .mns-gallery-3d__slide.is-active {
    z-index: 3;
    opacity: 1;
    transform: rotateY(0deg) scale(1);
    pointer-events: auto;
}

.mns-product-detail-page .mns-gallery-3d__slide.is-turn-out-next {
    z-index: 2;
    opacity: 0;
    transform: rotateY(-72deg) scale(0.94);
}

.mns-product-detail-page .mns-gallery-3d__slide.is-turn-out-prev {
    z-index: 2;
    opacity: 0;
    transform: rotateY(72deg) scale(0.94);
}

.mns-product-detail-page .mns-gallery-3d__slide.is-turn-in-next {
    animation: mns-gallery-3d-in-next 0.36s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.mns-product-detail-page .mns-gallery-3d__slide.is-turn-in-prev {
    animation: mns-gallery-3d-in-prev 0.36s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes mns-gallery-3d-in-next {
    from {
        opacity: 0;
        transform: rotateY(72deg) scale(0.94);
    }

    to {
        opacity: 1;
        transform: rotateY(0deg) scale(1);
    }
}

@keyframes mns-gallery-3d-in-prev {
    from {
        opacity: 0;
        transform: rotateY(-72deg) scale(0.94);
    }

    to {
        opacity: 1;
        transform: rotateY(0deg) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {

    .mns-product-detail-page .mns-gallery-3d__slide,
    .mns-product-detail-page .mns-gallery-3d__slide.is-active {
        transition: opacity 0.12s ease;
        transform: none;
        animation: none !important;
    }
}

.mns-product-detail-page .mns-gallery-3d__slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mns-product-detail-page .mns-gallery-3d__product .mns-gallery-3d__slide img,
.mns-product-detail-page .mns-gallery-3d__video .mns-gallery-3d__slide img {
    object-fit: contain;
    background: var(--mns-g3d-soft);
}

.mns-product-detail-page .mns-gallery-3d__slide.is-video {
    background: var(--mns-g3d-soft);
}

.mns-product-detail-page .mns-gallery-3d__play {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    background: rgba(28, 47, 40, 0.38);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    pointer-events: none;
}

@media (max-width: 750px) {
    .mns-product-detail-page .mns-gallery-3d {
        gap: 16px;
        margin-top: 14px;
        justify-content: center;
        padding-inline: 8px;
    }

    .mns-product-detail-page .mns-gallery-3d__switch,
    .mns-product-detail-page .mns-gallery-3d__viewport {
        width: 56px;
        height: 56px;
        max-width: 56px;
    }

    .mns-product-detail-page .mns-gallery-3d__product {
        margin-right: 14px;
    }

    .mns-product-detail-page .mns-gallery-3d__product::after {
        width: 10px;
        height: 64%;
        margin-left: 2px;
        background:
            linear-gradient(var(--mns-g3d-line), var(--mns-g3d-line)) 0 0 / 3px 100% no-repeat,
            linear-gradient(#d4d4d0, #d4d4d0) 5px 10% / 3px 80% no-repeat;
    }

    .mns-product-detail-page .mns-gallery-3d__scene::after {
        left: -10px;
    }
}

.mns-product-detail-page .mns-pd-main-visual-info {
    display: grid;
    align-content: start;
    gap: 16px;
    min-width: 0;
    padding-top: 0;
}

.mns-product-detail-page .mns-pd-main-visual-info > * {
    margin-block: 0;
}

.mns-product-detail-page .mns-pd-main-visual-eyebrow {
    margin: 0;
    color: var(--pd-accent);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mns-product-detail-page .mns-pd-main-visual-title {
    margin: 0;
    color: var(--pd-text);
    font-family: var(--pd-font-heading);
    font-size: clamp(32px, calc(100cqw * 44 / 1280), 48px);
    line-height: 1.1;
    font-weight: 700;
    letter-spacing: -0.035em;
}

.mns-product-detail-page .mns-pd-main-visual-description {
    margin: 0;
    color: var(--pd-muted);
    font-size: var(--pd-fs-card-body);
    line-height: 1.7;
}

.mns-product-detail-page .mns-pd-main-visual-price-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: baseline;
}

.mns-product-detail-page .mns-pd-main-visual-price-row strong {
    color: #000;
    line-height: 1;
    font-weight: 500;
    letter-spacing: -0.04em;
}

.mns-product-detail-page .mns-pd-main-visual-price-row strong .mns-price {
    color: inherit;
    font-weight: inherit;
}

/* Compare / secondary amount: no strikethrough in product MV. */
.mns-product-detail-page .mns-pd-main-visual-price-compare {
    color: #000;
    font-weight: 500;
    text-decoration: none;
}

.mns-product-detail-page .mns-pd-main-visual-price-compare .mns-price {
    color: inherit;
    font-weight: inherit;
    text-decoration: none;
}

.mns-product-detail-page .mns-pd-main-visual-review-panel {
    display: grid;
    gap: 14px;
    overflow: hidden;
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-muted-surface) 64%, white);
}

.mns-product-detail-page .mns-pd-main-visual-review-head {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid color-mix(in srgb, var(--pd-border) 66%, transparent);
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
    font-weight: 700;
}

.mns-product-detail-page .mns-pd-main-visual-stars {
    color: #ff7a30;
    letter-spacing: 0.06em;
}

.mns-product-detail-page .mns-pd-main-visual-point-list {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mns-product-detail-page .mns-pd-main-visual-points {
    display: grid;
    gap: 10px;
    min-width: 0;
}

.mns-product-detail-page .mns-pd-main-visual-points-more {
    display: none;
    justify-self: center;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--pd-muted);
    cursor: pointer;
}

.mns-product-detail-page .mns-pd-main-visual-points-more::after {
    content: '';
    display: block;
    width: 18px;
    aspect-ratio: 3 / 1;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    transition: transform 180ms ease;
}

.mns-product-detail-page .mns-pd-main-visual-points.is-expanded .mns-pd-main-visual-points-more::after {
    transform: rotate(180deg);
}

.mns-product-detail-page .mns-pd-main-visual-point-list li {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 8px;
    row-gap: 2px;
    align-items: start;
    color: var(--pd-muted);
    font-size: var(--pd-fs-caption);
}

.mns-product-detail-page .mns-pd-main-visual-point-list li>span {
    color: var(--pd-accent);
}

.mns-product-detail-page .mns-pd-main-visual-point-list strong {
    color: var(--pd-text);
    font-size: var(--pd-fs-card-body);
    line-height: 1.45;
}

.mns-product-detail-page .mns-pd-main-visual-point-list small {
    grid-column: 2;
    color: var(--pd-muted);
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-main-visual-points.is-collapsible:not(.is-expanded) .mns-pd-main-visual-point-list {
        position: relative;
        max-height: var(--mns-points-collapse-h, 4.5em);
        overflow: hidden;
        -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 42%, rgba(0, 0, 0, 0.45) 72%, transparent 100%);
        mask-image: linear-gradient(to bottom, #000 0%, #000 42%, rgba(0, 0, 0, 0.45) 72%, transparent 100%);
    }

    .mns-product-detail-page .mns-pd-main-visual-points.is-collapsible .mns-pd-main-visual-points-more {
        display: inline-flex;
    }

    .mns-product-detail-page .mns-pd-main-visual-points.is-expanded .mns-pd-main-visual-point-list {
        max-height: none;
        -webkit-mask-image: none;
        mask-image: none;
    }
}

.mns-product-detail-page .mns-pd-main-visual-color-block {
    display: grid;
    gap: 12px;
}

.mns-product-detail-page .mns-pd-main-visual-color-block p {
    margin: 0;
    color: var(--pd-muted);
    font-size: var(--pd-fs-card-body);
    font-weight: 600;
}

.mns-product-detail-page .mns-pd-main-visual-color-block strong {
    color: var(--pd-text);
}

.mns-product-detail-page .mns-pd-main-visual-colors {
    display: flex;
    gap: 12px;
}

.mns-product-detail-page .mns-pd-main-visual-color {
    --pd-main-visual-color: #111111;
    display: inline-block;
    width: 34px;
    height: 34px;
    border: 2px solid #ffffff;
    border-radius: 999px;
    background: var(--pd-main-visual-color);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--pd-border) 86%, transparent);
}

.mns-product-detail-page .mns-pd-main-visual-color.is-active {
    box-shadow:
        0 0 0 2px #ff6b33,
        0 0 0 5px color-mix(in srgb, #ff6b33 16%, transparent);
}

.mns-product-detail-page .mns-pd-main-visual-purchase-control {
    display: grid;
    gap: 10px;
    width: min(100%, 360px);
    max-width: 100%;
}

.mns-product-detail-page .mns-pd-main-visual-purchase {
    width: 100%;
    max-width: none;
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-main-visual-purchase-control,
    .mns-product-detail-page .mns-pd-main-visual-info .mns-purchase-panel,
    .mns-product-detail-page .mns-pd-main-visual-info .mns-pd-main-visual-purchase {
        width: 100%;
        max-width: none;
    }
}

.mns-product-detail-page .mns-pd-main-visual-price-note {
    margin: 0;
    color: color-mix(in srgb, var(--pd-text) 62%, transparent);
    font-size: 12px;
    line-height: 1.45;
    letter-spacing: 0.01em;
}

.mns-product-detail-page .mns-pd-main-visual-reasons {
    display: grid;
    gap: 14px;
}

.mns-product-detail-page .mns-pd-main-visual-reasons h2 {
    margin: 0;
    color: var(--pd-text);
    font-size: clamp(18px, calc(100cqw * 22 / 1280), 24px);
    line-height: 1.35;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.mns-product-detail-page .mns-pd-main-visual-reasons ul {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border-radius: var(--pd-radius-card);
    background: color-mix(in srgb, var(--pd-border) 52%, transparent);
    list-style: none;
}

.mns-product-detail-page .mns-pd-main-visual-reasons li {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 4px;
    align-items: start;
    padding: 14px 16px;
    background: color-mix(in srgb, var(--pd-muted-surface) 62%, white);
}

.mns-product-detail-page .mns-pd-main-visual-reasons li span {
    color: var(--pd-accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.mns-product-detail-page .mns-pd-main-visual-reasons li strong {
    color: var(--pd-text);
    font-size: var(--pd-fs-card-body);
    line-height: 1.45;
}

.mns-product-detail-page .mns-pd-main-visual-reasons li small {
    grid-column: 2;
    color: var(--pd-muted);
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-main-visual-hero01 {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .mns-product-detail-page .mns-pd-main-visual-stage {
        min-height: 0;
        aspect-ratio: 1 / 1;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-links {
        right: 16px;
        bottom: 16px;
        width: max-content;
        max-width: calc(100% - 32px);
    }

    .mns-product-detail-page .mns-pd-main-visual-title {
        font-size: var(--mns-fs-h1, 1.75rem);
    }

    .mns-product-detail-page .mns-pd-main-visual-review-caption {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .mns-product-detail-page .mns-pd-main-visual-stage {
        aspect-ratio: 1 / 1;
        min-height: 0;
        padding-bottom: 0;
    }

    .mns-product-detail-page .mns-pd-main-visual-view-switch {
        top: 10px;
        left: 10px;
        padding: 3px;
    }

    .mns-product-detail-page .mns-pd-main-visual-view-switch-button {
        min-width: 52px;
        height: 26px;
        padding: 0 8px;
        font-size: 11px;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-links {
        right: 10px;
        bottom: 10px;
        width: max-content;
        max-width: calc(100% - 20px);
        gap: 2px;
        padding: 3px;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-link {
        height: 26px;
        padding: 0 7px;
        gap: 4px;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-link-icon {
        width: 16px;
        height: 16px;
        font-size: 8px;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-link-text {
        gap: 4px;
    }

    .mns-product-detail-page .mns-pd-main-visual-quick-link-text small,
    .mns-product-detail-page .mns-pd-main-visual-quick-link-text strong {
        font-size: 10px;
    }

    .mns-product-detail-page .mns-pd-main-visual-review-overlay {
        padding: 16px;
    }

    .mns-product-detail-page .mns-pd-main-visual-review-play {
        width: 72px;
        height: 72px;
    }

    .mns-product-detail-page .mns-pd-main-visual-review-caption strong {
        font-size: 20px;
    }
}
