.shop-page {
    --shop-ink: #514858;
    --shop-muted: #756b7b;
    --shop-line: rgba(255, 255, 255, 0.82);
    --shop-panel: rgba(255, 255, 255, 0.76);
    --shop-panel-strong: rgba(255, 255, 255, 0.92);
    --shop-pink: #ff65a8;
    --shop-blue: #55aee9;
    --shop-green: #62b596;
    --shop-gold: #cf9f42;
}

.shop-shell {
    padding-bottom: 20px;
}

.shop-nav {
    position: sticky;
    top: 78px;
    z-index: 50;
    border-bottom: 1px solid rgba(255, 255, 255, 0.76);
    background: rgba(255, 250, 253, 0.78);
    backdrop-filter: blur(16px) saturate(138%);
    -webkit-backdrop-filter: blur(16px) saturate(138%);
}

.shop-nav-inner {
    min-height: 58px;
    display: flex;
    align-items: center;
    gap: 10px;
    overflow-x: auto;
    scrollbar-width: none;
}

.shop-nav-inner::-webkit-scrollbar {
    display: none;
}

.shop-nav a,
.shop-pill,
.shop-mini-link {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    color: var(--shop-muted);
    font-size: 13px;
    font-weight: 900;
}

.shop-nav a.active,
.shop-mini-link.active,
.shop-nav a:hover,
.shop-mini-link:hover {
    color: #fff;
    background: linear-gradient(135deg, var(--shop-pink), #ff98c8 45%, var(--shop-blue));
    box-shadow: 0 14px 30px rgba(255, 112, 176, 0.15);
}

.shop-hero {
    padding-top: 58px;
}

.shop-hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
    align-items: stretch;
}

.shop-hero-card,
.shop-panel,
.shop-metric,
.product-card,
.category-card,
.module-card,
.cart-row,
.checkout-block,
.virtual-model-studio,
.virtual-model-empty,
.shop-status-banner,
.shop-preview-card,
.shop-rights-note,
.virtual-model-archive-card {
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.58));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.shop-metric,
.category-card,
.module-card,
.shop-preview-card,
.after-sale-card,
.virtual-rights-card,
.admin-step {
    text-align: center;
}

.shop-status-banner,
.shop-rights-note,
.shop-after-sale-note {
    text-align: center;
    justify-content: center;
}

.shop-hero-card {
    min-height: 430px;
    padding: 32px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.shop-kicker {
    width: max-content;
    max-width: 100%;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--shop-pink);
    font-size: 12px;
    font-weight: 1000;
}

.shop-hero h1,
.shop-page-title h1 {
    margin: 16px 0 12px;
    color: var(--shop-pink);
    font-size: 46px;
    line-height: 1.08;
    font-weight: 1000;
    text-shadow: 0 16px 34px rgba(255, 119, 184, 0.14);
}

.shop-lead {
    max-width: 720px;
    margin: 0 auto;
    color: var(--shop-muted);
    font-size: 15px;
    line-height: 1.9;
}

.shop-action-row,
.shop-tags,
.category-tabs,
.product-actions,
.cart-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.shop-action-row {
    margin-top: 24px;
}

.shop-btn {
    min-height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 18px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    font-size: 14px;
    font-weight: 1000;
    cursor: pointer;
    transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.shop-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(255, 125, 183, 0.16);
}

.shop-btn.primary {
    color: #fff;
    background: linear-gradient(135deg, var(--shop-pink), #ff98c8 44%, var(--shop-blue));
}

.shop-btn.secondary {
    color: var(--shop-pink);
    background: rgba(255, 255, 255, 0.76);
}

.shop-btn.disabled {
    color: #9a8f9c;
    background: rgba(255, 255, 255, 0.58);
    cursor: not-allowed;
    transform: none;
}

.shop-tags {
    margin-top: 18px;
}

.shop-tags span {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    color: #746878;
    font-size: 12px;
    font-weight: 900;
}

.shop-visual {
    min-height: 430px;
    padding: 22px;
    display: grid;
    gap: 14px;
}

.shop-visual-main {
    min-height: 230px;
    padding: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    align-items: stretch;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    background:
        linear-gradient(135deg, rgba(255, 239, 247, 0.9), rgba(238, 248, 255, 0.88)),
        linear-gradient(90deg, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0));
}

.shop-look-card {
    min-height: 190px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.52)),
        repeating-linear-gradient(90deg, rgba(255, 105, 172, 0.08) 0 1px, transparent 1px 20px);
    text-align: center;
}

.shop-look-card strong {
    color: #5c5161;
    font-size: 18px;
}

.shop-look-card span {
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.7;
}

.shop-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.shop-metric {
    min-height: 126px;
    padding: 18px;
}

.shop-metric b {
    display: block;
    color: var(--shop-pink);
    font-size: 30px;
    line-height: 1;
}

.shop-metric span {
    display: block;
    margin-top: 10px;
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.65;
}

.shop-status-banner,
.virtual-model-empty {
    margin-top: 16px;
    padding: 22px;
    display: grid;
    gap: 10px;
}

.shop-status-banner strong,
.virtual-model-empty strong {
    color: #5d5262;
    font-size: 20px;
    line-height: 1.3;
}

.shop-status-banner p,
.virtual-model-empty p {
    max-width: 960px;
    margin: 0 auto;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.86;
}

.shop-section {
    padding-top: 72px;
}

.shop-section-head,
.shop-page-title {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: center;
    justify-items: center;
    max-width: 900px;
    margin: 0 auto 24px;
    text-align: center;
}

.shop-section-head h2 {
    margin: 10px 0 0;
    color: var(--shop-pink);
    font-size: 34px;
    line-height: 1.16;
}

.shop-section-head p,
.shop-page-title p {
    max-width: 820px;
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.86;
}

.category-grid,
.module-grid,
.after-sale-grid,
.product-grid {
    display: grid;
    gap: 16px;
}

.category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.module-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.after-sale-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.shop-preview-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.category-card,
.module-card,
.after-sale-card,
.product-card,
.shop-preview-card {
    min-height: 210px;
    padding: 20px;
    display: grid;
    align-content: start;
    gap: 12px;
}

.category-card strong,
.module-card strong,
.after-sale-card strong,
.shop-preview-card strong,
.product-info h3 {
    color: #5d5262;
    font-size: 20px;
    line-height: 1.28;
}

.category-card p,
.module-card p,
.after-sale-card p,
.shop-preview-card p,
.product-info p,
.cart-row p,
.checkout-block p {
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.8;
}

.after-sale-card {
    min-height: 170px;
}

.shop-after-sale-note {
    margin-top: 16px;
    padding: 22px;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.62));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.shop-after-sale-note strong {
    display: block;
    margin-bottom: 8px;
    color: #5d5262;
    font-size: 18px;
}

.shop-after-sale-note p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.8;
}

.product-card {
    display: grid;
    gap: 16px;
}

.product-media,
.product-detail-media {
    position: relative;
    min-height: 230px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 241, 248, 0.9), rgba(237, 248, 255, 0.88)),
        repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.38) 0 1px, transparent 1px 24px);
}

.product-media::before,
.product-detail-media::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 52%;
    width: 42%;
    height: 68%;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 8px 8px 18px 18px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(255, 141, 195, 0.28));
    box-shadow: 0 20px 48px rgba(255, 133, 188, 0.16);
}

.product-media::after,
.product-detail-media::after {
    content: attr(data-label);
    position: absolute;
    left: 16px;
    bottom: 16px;
    max-width: calc(100% - 32px);
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.76);
    color: #6d6172;
    font-size: 12px;
    font-weight: 900;
}

.product-media.tone-blue::before,
.product-detail-media.tone-blue::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(92, 181, 234, 0.3));
}

.product-media.tone-violet::before,
.product-detail-media.tone-violet::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(194, 165, 255, 0.32));
}

.product-media.tone-mint::before,
.product-detail-media.tone-mint::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(107, 196, 158, 0.28));
}

.product-media.tone-peach::before,
.product-detail-media.tone-peach::before {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(244, 178, 112, 0.28));
}

.product-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    margin: 12px 0;
}

.product-price b {
    color: var(--shop-pink);
    font-size: 24px;
}

.product-price del {
    color: #9a8f9c;
    font-size: 13px;
}

.product-price small {
    color: var(--shop-muted);
    font-size: 12px;
    line-height: 1.6;
}

.product-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.product-meta span {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: #756a78;
    font-size: 12px;
    font-weight: 800;
}

.product-brief,
.product-detail-list {
    display: grid;
    gap: 8px;
    margin: 12px 0 0;
}

.product-brief div,
.product-detail-list div {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.58);
}

.product-brief dt,
.product-detail-list dt {
    color: var(--shop-pink);
    font-size: 12px;
    font-weight: 1000;
}

.product-brief dd,
.product-detail-list dd {
    min-width: 0;
    margin: 0;
    color: #6f6375;
    font-size: 12px;
    line-height: 1.65;
}

.product-warning {
    margin: 10px 0 0;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, 0.86);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
    color: var(--shop-muted);
    font-size: 12px;
    line-height: 1.75;
}

.image-type-chip {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 3;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: #6d6172;
    font-size: 12px;
    font-weight: 900;
}

.size-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: var(--shadow-soft);
}

.size-table {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
}

.size-table th,
.size-table td {
    padding: 14px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.82);
    color: #6f6375;
    font-size: 13px;
    text-align: center;
    white-space: nowrap;
}

.size-table th {
    color: var(--shop-pink);
    font-weight: 1000;
}

.virtual-model-studio {
    padding: 18px;
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
}

.virtual-model-selector {
    display: grid;
    gap: 12px;
    align-content: start;
}

.virtual-model-choice {
    width: 100%;
    min-height: 104px;
    padding: 16px;
    display: grid;
    gap: 8px;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.68);
    color: #5f5365;
    cursor: pointer;
    transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.virtual-model-choice:hover,
.virtual-model-choice.is-active {
    transform: translateY(-2px);
    background: linear-gradient(135deg, rgba(255, 241, 248, 0.96), rgba(236, 248, 255, 0.92));
    box-shadow: 0 18px 34px rgba(255, 125, 183, 0.15);
}

.virtual-model-choice span {
    color: var(--shop-pink);
    font-size: 18px;
    font-weight: 1000;
}

.virtual-model-choice small {
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.6;
}

.virtual-model-stage {
    min-height: 520px;
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 243, 249, 0.9), rgba(237, 249, 255, 0.9)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.34) 0 1px, transparent 1px 22px);
}

.virtual-model-panel {
    min-height: 484px;
    display: none;
    grid-template-columns: 0.82fr 1.18fr;
    gap: 18px;
    align-items: stretch;
}

.virtual-model-panel.is-active {
    display: grid;
}

.palette-pink {
    --model-accent: #ff70ad;
    --model-soft: rgba(255, 210, 232, 0.82);
    --model-deep: rgba(255, 105, 170, 0.42);
}

.palette-blue {
    --model-accent: #4ba9de;
    --model-soft: rgba(209, 239, 255, 0.86);
    --model-deep: rgba(83, 173, 227, 0.44);
}

.palette-violet {
    --model-accent: #9f78e5;
    --model-soft: rgba(229, 218, 255, 0.88);
    --model-deep: rgba(160, 126, 230, 0.42);
}

.palette-mint {
    --model-accent: #45a982;
    --model-soft: rgba(215, 246, 233, 0.88);
    --model-deep: rgba(94, 181, 145, 0.42);
}

.palette-peach {
    --model-accent: #e78c65;
    --model-soft: rgba(255, 226, 210, 0.9);
    --model-deep: rgba(232, 139, 96, 0.42);
}

.virtual-model-figure {
    position: relative;
    min-height: 484px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.42)),
        linear-gradient(135deg, var(--model-soft), rgba(255, 255, 255, 0.62));
}

.virtual-model-figure::before,
.virtual-model-figure::after {
    content: "";
    position: absolute;
    left: 16%;
    right: 16%;
    height: 1px;
    background: rgba(255, 255, 255, 0.9);
}

.virtual-model-figure::before {
    top: 24%;
}

.virtual-model-figure::after {
    bottom: 19%;
}

.virtual-model-head,
.virtual-model-body,
.virtual-model-skirt,
.virtual-model-legs {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}

.virtual-model-head {
    top: 42px;
    width: 82px;
    height: 82px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 50% 36%, rgba(255, 255, 255, 0.96), rgba(255, 238, 246, 0.86) 56%, var(--model-deep));
    border: 1px solid rgba(255, 255, 255, 0.95);
    box-shadow: 0 14px 30px rgba(255, 126, 183, 0.16);
}

.virtual-model-body {
    top: 134px;
    width: 132px;
    height: 156px;
    border-radius: 52px 52px 18px 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.92), var(--model-soft)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.42) 0 1px, transparent 1px 18px);
    border: 1px solid rgba(255, 255, 255, 0.95);
}

.virtual-model-body::before,
.virtual-model-body::after {
    content: "";
    position: absolute;
    top: 22px;
    width: 34px;
    height: 142px;
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), var(--model-soft));
    border: 1px solid rgba(255, 255, 255, 0.82);
}

.virtual-model-body::before {
    left: -34px;
    transform: rotate(9deg);
}

.virtual-model-body::after {
    right: -34px;
    transform: rotate(-9deg);
}

.virtual-model-skirt {
    top: 262px;
    width: 174px;
    height: 116px;
    border-radius: 16px 16px 42px 42px;
    background:
        linear-gradient(180deg, var(--model-soft), var(--model-deep)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.5) 0 2px, transparent 2px 18px);
    border: 1px solid rgba(255, 255, 255, 0.92);
    clip-path: polygon(18% 0, 82% 0, 100% 100%, 0 100%);
}

.virtual-model-legs {
    top: 370px;
    width: 104px;
    height: 92px;
    background:
        linear-gradient(90deg, transparent 0 28%, rgba(255, 255, 255, 0.88) 28% 43%, transparent 43% 57%, rgba(255, 255, 255, 0.88) 57% 72%, transparent 72% 100%);
}

.virtual-model-copy {
    padding: 22px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
}

.virtual-model-copy h3,
.virtual-model-archive-card h3 {
    margin: 0;
    color: #5d5262;
    font-size: 28px;
    line-height: 1.22;
}

.virtual-model-copy p,
.virtual-model-archive-card p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.86;
}

.virtual-model-copy dl,
.virtual-model-archive-card dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.virtual-model-copy dl div,
.virtual-model-archive-card dl div {
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.56);
}

.virtual-model-copy dt,
.virtual-model-archive-card dt {
    color: var(--model-accent, var(--shop-pink));
    font-size: 12px;
    font-weight: 1000;
}

.virtual-model-copy dd,
.virtual-model-archive-card dd {
    margin: 6px 0 0;
    color: #6f6375;
    font-size: 13px;
    line-height: 1.7;
}

.shop-rights-note {
    margin-top: 16px;
    padding: 22px;
    display: flex;
    justify-content: center;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    text-align: center;
}

.shop-rights-note strong {
    display: block;
    margin: 10px 0 8px;
    color: #5d5262;
    font-size: 20px;
}

.shop-rights-note p {
    max-width: 820px;
    margin: 0 auto;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.8;
}

.rights-page-note {
    margin-top: 0;
}

.virtual-model-archive {
    display: grid;
    gap: 16px;
}

.virtual-model-archive-card {
    padding: 18px;
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 20px;
    align-items: stretch;
}

.virtual-model-figure.compact {
    min-height: 300px;
}

.virtual-model-figure.compact .virtual-model-head {
    top: 28px;
    width: 62px;
    height: 62px;
}

.virtual-model-figure.compact .virtual-model-body {
    top: 98px;
    width: 104px;
    height: 112px;
}

.virtual-model-figure.compact .virtual-model-skirt {
    top: 190px;
    width: 136px;
    height: 76px;
}

.virtual-model-figure.compact .virtual-model-legs {
    top: 258px;
    width: 86px;
    height: 60px;
}

.virtual-model-media,
.virtual-model-feature-media,
.virtual-model-card-media {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 242, 248, 0.92), rgba(236, 249, 255, 0.88)),
        radial-gradient(circle at 18% 18%, rgba(255, 255, 255, 0.82), transparent 34%);
}

.virtual-model-media::before,
.virtual-model-media::after {
    display: none;
}

.virtual-model-media img,
.virtual-model-feature-media img,
.virtual-model-card-media img,
.virtual-model-gallery img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.virtual-model-media {
    min-height: 484px;
}

.virtual-model-media img,
.virtual-model-media .virtual-model-placeholder {
    position: absolute;
    inset: 0;
}

.virtual-model-placeholder {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    padding: 22px;
    color: #5d5262;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.86)),
        radial-gradient(circle at 52% 28%, rgba(255, 255, 255, 0.96) 0 54px, transparent 55px),
        radial-gradient(circle at 50% 56%, var(--model-soft, rgba(255, 215, 232, 0.84)) 0 112px, transparent 114px),
        linear-gradient(135deg, var(--model-soft, rgba(255, 224, 238, 0.86)), rgba(238, 249, 255, 0.86));
}

.virtual-model-placeholder b {
    font-size: 30px;
    line-height: 1.05;
}

.virtual-model-placeholder span {
    width: max-content;
    max-width: 100%;
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    padding: 0 10px;
    border-radius: 999px;
    color: var(--model-accent, var(--shop-pink));
    background: rgba(255, 255, 255, 0.78);
    font-size: 12px;
    font-weight: 1000;
}

.virtual-model-rights-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(360px, 1.08fr);
    gap: 18px;
    align-items: stretch;
}

.virtual-model-hero-copy,
.virtual-model-feature {
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.58));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.virtual-model-hero-copy {
    min-height: 520px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.virtual-model-hero-copy h1 {
    margin: 16px 0 14px;
    color: var(--shop-pink);
    font-size: 46px;
    line-height: 1.08;
}

.virtual-model-hero-copy p,
.virtual-model-feature-copy p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 15px;
    line-height: 1.9;
}

.virtual-model-hero-stats {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.virtual-model-hero-stats div {
    min-height: 92px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.58);
}

.virtual-model-hero-stats b {
    display: block;
    color: var(--shop-pink);
    font-size: 26px;
    line-height: 1.05;
}

.virtual-model-hero-stats span {
    display: block;
    margin-top: 8px;
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 900;
}

.virtual-model-feature {
    min-height: 520px;
    padding: 16px;
    display: grid;
    grid-template-columns: minmax(260px, 0.92fr) minmax(0, 1.08fr);
    gap: 16px;
}

.virtual-model-feature-media {
    min-height: 488px;
}

.virtual-model-feature-copy {
    padding: 18px 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
}

.virtual-model-feature-copy h2 {
    margin: 0;
    color: #5d5262;
    font-size: 30px;
    line-height: 1.2;
}

.virtual-model-upload-panel {
    min-height: 520px;
    padding: 18px;
    display: grid;
    grid-template-rows: minmax(300px, 1fr) auto;
    gap: 14px;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.9), rgba(255, 247, 252, 0.64));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.virtual-model-upload-frame {
    min-height: 330px;
    padding: 28px;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 10px;
    border: 1px dashed rgba(255, 101, 168, 0.36);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.86)),
        radial-gradient(circle at 50% 34%, rgba(255, 101, 168, 0.16) 0 74px, transparent 76px),
        linear-gradient(135deg, rgba(255, 242, 248, 0.92), rgba(237, 249, 255, 0.9));
}

.virtual-model-upload-frame span {
    width: 112px;
    height: 148px;
    margin: 0 auto auto;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 999px 999px 28px 28px;
    background:
        radial-gradient(circle at 50% 28%, rgba(255, 255, 255, 0.94) 0 38px, transparent 39px),
        linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(255, 205, 229, 0.54));
    box-shadow: 0 22px 44px rgba(255, 101, 168, 0.14);
}

.virtual-model-upload-frame strong {
    color: #5d5262;
    font-size: 24px;
    line-height: 1.25;
}

.virtual-model-upload-frame p {
    max-width: 520px;
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.8;
}

.virtual-model-upload-list,
.virtual-empty-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.virtual-model-upload-list div,
.virtual-empty-steps span {
    min-height: 72px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.64);
}

.virtual-model-upload-list b {
    display: block;
    color: var(--shop-pink);
    font-size: 18px;
}

.virtual-model-upload-list span,
.virtual-empty-steps span {
    color: #6f6375;
    font-size: 13px;
    font-weight: 1000;
}

.virtual-model-empty.polished {
    min-height: 260px;
    grid-template-columns: minmax(0, 1fr) 360px;
    align-items: center;
}

.virtual-empty-steps span {
    min-height: 88px;
    display: flex;
    align-items: flex-end;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.54)),
        linear-gradient(135deg, rgba(255, 233, 244, 0.82), rgba(235, 248, 255, 0.82));
}

.virtual-model-archive-card.virtual-model-file {
    overflow: hidden;
    padding: 0;
    grid-template-columns: minmax(260px, 0.72fr) minmax(0, 1.28fr);
}

.virtual-model-card-media {
    min-height: 420px;
    border-width: 0 1px 0 0;
    border-radius: 8px 0 0 8px;
}

.virtual-model-card-body {
    min-width: 0;
    padding: 24px;
    display: grid;
    gap: 14px;
    align-content: center;
}

.virtual-model-gallery {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.virtual-model-gallery img {
    aspect-ratio: 1;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    background: rgba(255, 255, 255, 0.6);
}

.virtual-model-page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, 0.92fr);
    gap: 22px;
    align-items: stretch;
}

.virtual-model-page-copy {
    min-height: 430px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 247, 252, 0.68)),
        linear-gradient(135deg, rgba(255, 235, 246, 0.62), rgba(236, 249, 255, 0.56));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.94);
}

.virtual-model-page-copy h1 {
    max-width: 760px;
    margin: 16px 0 14px;
    color: var(--shop-pink);
    font-size: 44px;
    line-height: 1.1;
}

.virtual-model-page-copy p {
    max-width: 760px;
    margin: 0;
    color: var(--shop-muted);
    font-size: 15px;
    line-height: 1.9;
}

.virtual-model-summary-row {
    width: min(100%, 520px);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 24px;
}

.virtual-model-summary-row div {
    min-height: 82px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
}

.virtual-model-summary-row b {
    display: block;
    color: var(--shop-pink);
    font-size: 24px;
    line-height: 1;
}

.virtual-model-summary-row span {
    display: block;
    margin-top: 8px;
    color: var(--shop-muted);
    font-size: 12px;
    font-weight: 1000;
}

.virtual-model-page-aside {
    min-height: 430px;
    padding: 14px;
    display: grid;
    grid-template-rows: minmax(270px, 1fr) auto;
    gap: 12px;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.6));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.virtual-model-page-media {
    position: relative;
    min-height: 300px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.26), rgba(255, 255, 255, 0.78)),
        linear-gradient(135deg, var(--model-soft, rgba(255, 224, 238, 0.86)), rgba(238, 249, 255, 0.86));
}

.virtual-model-page-media img,
.virtual-model-card-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.virtual-model-page-media .virtual-model-placeholder,
.virtual-model-card-media .virtual-model-placeholder {
    position: absolute;
    inset: 0;
}

.virtual-model-placeholder.compact {
    justify-content: flex-end;
    padding: 20px;
}

.virtual-model-placeholder.compact b {
    font-size: 24px;
}

.virtual-model-page-feature {
    display: grid;
    gap: 9px;
    padding: 8px 4px 2px;
}

.virtual-model-page-feature h2 {
    margin: 0;
    color: #5d5262;
    font-size: 24px;
    line-height: 1.2;
}

.virtual-model-page-feature p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.7;
}

.virtual-rights-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.virtual-rights-card {
    min-height: 154px;
    padding: 18px;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.virtual-rights-card strong {
    display: block;
    color: #5d5262;
    font-size: 17px;
    line-height: 1.3;
}

.virtual-rights-card p {
    margin: 10px 0 0;
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.75;
}

.virtual-model-archive {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.virtual-model-archive-card.virtual-model-file.clean {
    display: grid;
    grid-template-columns: 1fr;
    min-width: 0;
}

.virtual-model-archive-card.virtual-model-file.clean .virtual-model-card-media {
    min-height: 320px;
    border-width: 0 0 1px;
    border-radius: 8px 8px 0 0;
}

.virtual-model-archive-card.virtual-model-file.clean .virtual-model-card-body {
    padding: 22px;
    align-content: start;
}

.virtual-model-archive-card.virtual-model-file.clean dl {
    grid-template-columns: 1fr;
}

.virtual-model-rights-copy {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.82);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.58);
}

.virtual-model-rights-copy b {
    color: var(--shop-pink);
    font-size: 13px;
}

.virtual-model-rights-copy p {
    margin: 0;
    font-size: 13px;
    line-height: 1.75;
}

.virtual-model-page-hero {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
    gap: 18px;
}

.virtual-model-page-copy {
    min-height: 500px;
    padding: 40px;
    justify-content: space-between;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(255, 250, 253, 0.72)),
        linear-gradient(135deg, rgba(255, 230, 243, 0.74), rgba(235, 248, 255, 0.72));
}

.virtual-model-page-copy h1 {
    max-width: 720px;
    font-size: 42px;
}

.virtual-model-summary-row {
    width: min(100%, 620px);
}

.virtual-model-summary-row div {
    display: grid;
    align-content: center;
}

.virtual-model-page-aside {
    min-height: 500px;
    padding: 16px;
    grid-template-rows: minmax(330px, 1fr) auto;
}

.virtual-model-page-media {
    min-height: 350px;
}

.virtual-model-page-media img,
.virtual-model-card-media img {
    object-position: top center;
}

.virtual-model-page-feature {
    padding: 12px 6px 4px;
}

.virtual-rights-grid {
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 14px;
}

.virtual-rights-card {
    min-height: 132px;
    display: grid;
    align-content: start;
}

.virtual-model-archive {
    grid-template-columns: 1fr;
    gap: 18px;
}

.virtual-model-archive-card.virtual-model-file.clean {
    grid-template-columns: minmax(280px, 0.42fr) minmax(0, 0.58fr);
}

.virtual-model-archive-card.virtual-model-file.clean .virtual-model-card-media {
    min-height: 440px;
    border-width: 0 1px 0 0;
    border-radius: 8px 0 0 8px;
}

.virtual-model-archive-card.virtual-model-file.clean .virtual-model-card-body {
    min-height: 440px;
    padding: 28px;
}

.virtual-model-archive-card.virtual-model-file.clean dl {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.virtual-model-gallery img {
    aspect-ratio: 4 / 3;
}

.rongtu-hero-grid,
.rongtu-two-column,
.rongtu-detail-grid {
    display: grid;
    gap: 16px;
    align-items: stretch;
}

.rongtu-hero-grid {
    grid-template-columns: 0.95fr 1.05fr;
}

.rongtu-two-column,
.rongtu-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rongtu-hero-copy,
.rongtu-portrait-card,
.rongtu-info-card,
.rongtu-panel,
.rongtu-feature,
.rongtu-view-card,
.rongtu-expression-card,
.rongtu-copyright {
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.58));
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.rongtu-hero-copy {
    min-height: 560px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.rongtu-hero-copy h1 {
    margin: 18px 0 12px;
    color: var(--shop-pink);
    font-size: 58px;
    line-height: 1.04;
    font-weight: 1000;
}

.rongtu-hero-copy p,
.rongtu-panel p,
.rongtu-view-card p,
.rongtu-expression-card p,
.rongtu-copyright p,
.rongtu-portrait-caption p {
    margin: 0;
    color: var(--shop-muted);
    font-size: 14px;
    line-height: 1.86;
}

.rongtu-portrait-card {
    min-height: 560px;
    padding: 24px;
    display: grid;
    grid-template-rows: minmax(420px, 1fr) auto;
    gap: 16px;
}

.rongtu-model-media {
    min-height: 460px;
}

.rongtu-portrait {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 8px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 246, 250, 0.48)),
        radial-gradient(circle at 50% 18%, rgba(255, 203, 226, 0.72), transparent 31%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.42) 0 1px, transparent 1px 26px);
}

.rongtu-portrait > span {
    position: absolute;
    display: block;
}

.rongtu-ear {
    top: 34px;
    width: 58px;
    height: 126px;
    border: 1px solid rgba(255, 255, 255, 0.95);
    border-radius: 999px 999px 42px 42px;
    background: linear-gradient(180deg, #fff, #ffe2ef 58%, #ffc4dd);
    transform-origin: bottom center;
    box-shadow: 0 18px 38px rgba(255, 132, 188, 0.12);
}

.rongtu-ear.left {
    left: calc(50% - 102px);
    transform: rotate(-14deg);
}

.rongtu-ear.right {
    right: calc(50% - 102px);
    transform: rotate(14deg);
}

.rongtu-twin {
    top: 126px;
    width: 94px;
    height: 260px;
    border-radius: 52px 52px 64px 64px;
    background: linear-gradient(180deg, #241a1a, #3d2a28 52%, rgba(61, 42, 40, 0.78));
    box-shadow: inset 14px 0 22px rgba(255, 255, 255, 0.08);
}

.rongtu-twin.left {
    left: calc(50% - 146px);
    transform: rotate(7deg);
}

.rongtu-twin.right {
    right: calc(50% - 146px);
    transform: rotate(-7deg);
}

.rongtu-face {
    left: 50%;
    top: 84px;
    width: 176px;
    height: 204px;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, 0.94);
    border-radius: 48% 48% 46% 46%;
    background:
        radial-gradient(circle at 34% 66%, rgba(255, 196, 217, 0.45), transparent 18%),
        radial-gradient(circle at 66% 66%, rgba(255, 196, 217, 0.45), transparent 18%),
        linear-gradient(180deg, #fff4f8, #ffe6ef);
    box-shadow: 0 20px 46px rgba(255, 139, 191, 0.13);
}

.rongtu-bang {
    left: 50%;
    top: 70px;
    width: 190px;
    height: 78px;
    transform: translateX(-50%);
    border-radius: 90px 90px 22px 22px;
    background:
        linear-gradient(100deg, transparent 0 7%, rgba(255, 255, 255, 0.1) 7% 12%, transparent 12% 100%),
        linear-gradient(180deg, #211818, #382827);
    clip-path: polygon(0 0, 100% 0, 93% 76%, 80% 42%, 70% 86%, 58% 44%, 50% 92%, 41% 44%, 30% 86%, 20% 42%, 8% 78%);
}

.rongtu-eye {
    top: 158px;
    width: 36px;
    height: 46px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 38% 30%, #fff 0 4px, transparent 5px),
        radial-gradient(circle at 55% 62%, #6a3e34 0 10px, #2d1b18 11px 19px, transparent 20px);
    border: 1px solid rgba(79, 48, 44, 0.16);
}

.rongtu-eye.left {
    left: calc(50% - 54px);
}

.rongtu-eye.right {
    right: calc(50% - 54px);
}

.rongtu-mouth {
    left: 50%;
    top: 232px;
    width: 42px;
    height: 16px;
    transform: translateX(-50%);
    border-bottom: 3px solid rgba(213, 104, 143, 0.72);
    border-radius: 0 0 999px 999px;
}

.rongtu-body {
    left: 50%;
    top: 282px;
    width: 170px;
    height: 142px;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, 0.94);
    border-radius: 46px 46px 18px 18px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(255, 236, 244, 0.94)),
        repeating-linear-gradient(90deg, rgba(255, 180, 212, 0.14) 0 2px, transparent 2px 18px);
}

.rongtu-bow {
    left: 50%;
    top: 292px;
    width: 78px;
    height: 34px;
    transform: translateX(-50%);
}

.rongtu-bow::before,
.rongtu-bow::after,
.rongtu-pendant::before {
    content: "";
    position: absolute;
}

.rongtu-bow::before,
.rongtu-bow::after {
    top: 4px;
    width: 34px;
    height: 24px;
    border-radius: 18px 8px 18px 8px;
    background: #ffc0dc;
}

.rongtu-bow::before {
    left: 0;
    transform: rotate(18deg);
}

.rongtu-bow::after {
    right: 0;
    transform: rotate(-18deg);
}

.rongtu-skirt {
    left: 50%;
    top: 398px;
    width: 216px;
    height: 86px;
    transform: translateX(-50%);
    border: 1px solid rgba(255, 255, 255, 0.94);
    background:
        linear-gradient(180deg, #ffd2e6, #ffabc9),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.48) 0 2px, transparent 2px 19px);
    clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%);
}

.rongtu-pendant {
    left: 50%;
    top: 326px;
    width: 22px;
    height: 30px;
    transform: translateX(-50%);
    border-radius: 50% 50% 46% 46%;
    background: #fff;
    border: 1px solid rgba(255, 177, 211, 0.88);
}

.rongtu-pendant::before {
    left: 4px;
    top: -9px;
    width: 12px;
    height: 10px;
    border-radius: 999px;
    border-top: 2px solid rgba(255, 177, 211, 0.9);
}

.rongtu-portrait-caption {
    padding: 18px;
    border: 1px solid rgba(255, 255, 255, 0.86);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
}

.rongtu-portrait-caption strong,
.rongtu-info-card strong,
.rongtu-panel h2,
.rongtu-panel h3,
.rongtu-copyright h2 {
    color: #5d5262;
}

.rongtu-profile-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.rongtu-info-card {
    min-height: 142px;
    padding: 18px;
    display: grid;
    align-content: start;
    gap: 12px;
}

.rongtu-info-card span {
    color: var(--shop-pink);
    font-size: 12px;
    font-weight: 1000;
}

.rongtu-info-card strong {
    font-size: 17px;
    line-height: 1.55;
}

.rongtu-panel,
.rongtu-copyright {
    padding: 24px;
}

.rongtu-panel h2,
.rongtu-copyright h2 {
    margin: 12px 0 14px;
    font-size: 28px;
    line-height: 1.22;
}

.rongtu-panel h3 {
    margin: 0 0 14px;
    font-size: 22px;
    line-height: 1.3;
}

.rongtu-feature-grid,
.rongtu-view-grid,
.rongtu-expression-grid {
    display: grid;
    gap: 14px;
}

.rongtu-feature-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rongtu-feature-grid.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rongtu-feature {
    min-height: 70px;
    padding: 14px;
    display: flex;
    align-items: center;
    color: #6f6375;
    font-size: 13px;
    font-weight: 900;
    line-height: 1.6;
}

.rongtu-view-grid,
.rongtu-expression-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.rongtu-view-card,
.rongtu-expression-card {
    min-height: 260px;
    padding: 18px;
    display: grid;
    gap: 12px;
}

.rongtu-view-card strong,
.rongtu-expression-card strong {
    color: #5d5262;
    font-size: 18px;
}

.rongtu-mini-figure,
.rongtu-expression-face {
    position: relative;
    min-height: 130px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background: linear-gradient(135deg, rgba(255, 242, 248, 0.9), rgba(255, 255, 255, 0.78));
}

.rongtu-mini-figure span {
    position: absolute;
    left: 50%;
    top: 22px;
    width: 62px;
    height: 88px;
    transform: translateX(-50%);
    border-radius: 34px 34px 18px 18px;
    background: linear-gradient(180deg, #2b1e1e 0 25%, #ffe8f0 25% 58%, #ffc3dc 58% 100%);
    box-shadow: -52px 18px 0 -18px #342424, 52px 18px 0 -18px #342424;
}

.rongtu-view-card.three-quarter .rongtu-mini-figure span {
    transform: translateX(-45%) skewX(-7deg);
}

.rongtu-view-card.side .rongtu-mini-figure span {
    width: 44px;
    transform: translateX(-50%) skewX(-13deg);
    box-shadow: 46px 18px 0 -18px #342424;
}

.rongtu-view-card.back .rongtu-mini-figure span {
    background: linear-gradient(180deg, #2b1e1e 0 48%, #fff3f7 48% 62%, #ffc3dc 62% 100%);
}

.rongtu-definition-list {
    display: grid;
    gap: 10px;
    margin: 0;
}

.rongtu-definition-list div {
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.58);
}

.rongtu-definition-list dt {
    color: var(--shop-pink);
    font-size: 12px;
    font-weight: 1000;
}

.rongtu-definition-list dd {
    margin: 6px 0 0;
    color: #6f6375;
    font-size: 13px;
    line-height: 1.74;
}

.rongtu-shading-sample {
    min-height: 180px;
    margin-top: 16px;
    border: 1px solid rgba(255, 255, 255, 0.88);
    border-radius: 8px;
    background:
        radial-gradient(circle at 36% 28%, rgba(255, 255, 255, 0.98), transparent 14%),
        radial-gradient(circle at 52% 44%, rgba(255, 213, 229, 0.9), transparent 31%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(255, 188, 215, 0.44));
}

.rongtu-color-list {
    display: grid;
    gap: 10px;
}

.rongtu-color-list div {
    min-height: 56px;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 36px 80px 1fr;
    gap: 10px;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.86);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.6);
}

.rongtu-color-list i {
    width: 30px;
    height: 30px;
    border: 1px solid rgba(255, 255, 255, 0.95);
    border-radius: 50%;
    background: var(--swatch);
    box-shadow: 0 10px 20px rgba(255, 128, 184, 0.12);
}

.rongtu-color-list span {
    color: var(--shop-pink);
    font-size: 12px;
    font-weight: 1000;
}

.rongtu-color-list strong {
    color: #5d5262;
    font-size: 14px;
}

.rongtu-expression-face::before,
.rongtu-expression-face::after,
.rongtu-expression-face span::before,
.rongtu-expression-face span::after {
    content: "";
    position: absolute;
}

.rongtu-expression-face::before {
    left: 50%;
    top: 22px;
    width: 74px;
    height: 84px;
    transform: translateX(-50%);
    border-radius: 48%;
    background: linear-gradient(180deg, #fff5f8, #ffe6ef);
    border: 1px solid rgba(255, 255, 255, 0.94);
}

.rongtu-expression-face::after {
    left: 50%;
    top: 54px;
    width: 96px;
    height: 42px;
    transform: translateX(-50%);
    border-radius: 42px 42px 10px 10px;
    background: linear-gradient(180deg, #2b1e1e, #3d2a28);
    clip-path: polygon(0 0, 100% 0, 92% 80%, 76% 42%, 62% 86%, 50% 42%, 38% 86%, 24% 42%, 8% 80%);
}

.rongtu-expression-face span::before,
.rongtu-expression-face span::after {
    top: 68px;
    width: 12px;
    height: 16px;
    border-radius: 50%;
    background: #3f281f;
    z-index: 1;
}

.rongtu-expression-face span::before {
    left: calc(50% - 24px);
}

.rongtu-expression-face span::after {
    right: calc(50% - 24px);
}

.rongtu-expression-card.wink .rongtu-expression-face span::after {
    height: 4px;
    top: 74px;
    border-radius: 999px;
}

.rongtu-expression-card.happy .rongtu-expression-face span::before,
.rongtu-expression-card.happy .rongtu-expression-face span::after {
    height: 9px;
    border-radius: 999px 999px 0 0;
}

.rongtu-expression-face span {
    position: absolute;
    left: 50%;
    top: 92px;
    width: 30px;
    height: 12px;
    transform: translateX(-50%);
    border-bottom: 3px solid rgba(213, 104, 143, 0.78);
    border-radius: 0 0 999px 999px;
    z-index: 1;
}

.rongtu-expression-card.innocent .rongtu-expression-face span {
    width: 18px;
    height: 8px;
}

.rongtu-expression-card.happy .rongtu-expression-face span {
    width: 38px;
    height: 16px;
}

.rongtu-copyright {
    border-color: rgba(255, 182, 214, 0.86);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 242, 248, 0.78)),
        repeating-linear-gradient(90deg, rgba(255, 133, 188, 0.08) 0 1px, transparent 1px 20px);
}

.product-detail {
    display: grid;
    grid-template-columns: 0.96fr 1.04fr;
    gap: 18px;
    align-items: start;
}

.product-detail-media {
    min-height: 520px;
}

.product-detail-card {
    padding: 26px;
}

.product-options {
    display: grid;
    gap: 14px;
    margin: 22px 0;
}

.product-options label,
.cart-qty label,
.checkout-form label {
    display: grid;
    gap: 8px;
    color: #5f5365;
    font-size: 13px;
    font-weight: 900;
}

.product-options select,
.product-options input,
.cart-qty input,
.checkout-form input,
.checkout-form select,
.checkout-form textarea {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid rgba(255, 255, 255, 0.92);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.78);
    color: #5f5365;
    font: inherit;
}

.shop-buy-policy,
.shop-notice {
    margin-bottom: 16px;
    padding: 18px;
    border: 1px solid var(--shop-line);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.76);
    box-shadow: var(--shadow-soft), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.shop-buy-policy strong {
    display: block;
    margin-bottom: 8px;
    color: #5d5262;
    font-size: 18px;
}

.shop-buy-policy p,
.shop-notice {
    margin: 0;
    color: var(--shop-muted);
    line-height: 1.8;
}

.shop-notice.success {
    color: #3b7a62;
    background: rgba(241, 255, 248, 0.82);
}

.shop-notice.danger {
    color: #9a3b69;
    background: rgba(255, 244, 250, 0.84);
}

.external-link-grid,
.member-auth-grid,
.member-dashboard,
.member-form-grid {
    display: grid;
    gap: 14px;
}

.external-link-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.member-auth-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.member-dashboard {
    grid-template-columns: 320px 1fr;
    align-items: start;
}

.member-card {
    padding: 22px;
    position: sticky;
    top: 154px;
}

.member-card h2,
.checkout-form h2,
.shop-panel h2 {
    margin: 10px 0 12px;
    color: #5d5262;
    font-size: 24px;
}

.member-card p,
.shop-panel p {
    color: var(--shop-muted);
    line-height: 1.8;
}

.member-main {
    display: grid;
    gap: 16px;
}

.member-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.member-form-grid label:nth-last-child(1):nth-child(odd),
.member-form-grid label:has(textarea) {
    grid-column: 1 / -1;
}

.shop-check {
    display: flex;
    gap: 8px;
    align-items: center;
    color: var(--shop-muted);
    font-size: 13px;
    font-weight: 900;
}

.shop-check input {
    width: auto;
    min-height: auto;
}

.member-list {
    display: grid;
    gap: 10px;
}

.member-list article {
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.62);
}

.member-list strong,
.member-list span {
    display: block;
}

.member-list strong {
    color: #5d5262;
}

.member-list span {
    margin-top: 6px;
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.7;
}

.checkout-form textarea {
    min-height: 92px;
    padding-top: 12px;
    resize: vertical;
}

.checkout-form {
    display: grid;
    gap: 14px;
}

.shop-section code {
    color: #5c5161;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.95em;
}

.cart-layout,
.checkout-layout {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 16px;
    align-items: start;
}

.cart-list {
    display: grid;
    gap: 14px;
}

.cart-row {
    display: grid;
    grid-template-columns: 112px 1fr 110px;
    gap: 16px;
    align-items: center;
    padding: 16px;
}

.cart-thumb {
    min-height: 112px;
    border-radius: 8px;
    background:
        linear-gradient(135deg, rgba(255, 241, 248, 0.92), rgba(237, 248, 255, 0.9)),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.4) 0 1px, transparent 1px 18px);
    border: 1px solid rgba(255, 255, 255, 0.88);
}

.cart-summary,
.checkout-block {
    padding: 20px;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.76);
    color: var(--shop-muted);
    font-size: 14px;
}

.summary-line.total {
    border-bottom: 0;
    color: #5c5161;
    font-weight: 1000;
}

.empty-state {
    min-height: 280px;
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}

.admin-flow {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.admin-step {
    min-height: 130px;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.84);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.66);
}

.admin-step b {
    display: block;
    margin-bottom: 8px;
    color: var(--shop-pink);
    font-size: 22px;
}

.admin-step span {
    color: var(--shop-muted);
    font-size: 13px;
    line-height: 1.7;
}

[data-shop-reveal] {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.55s ease, transform 0.55s ease;
}

.shop-reveal-ready [data-shop-reveal] {
    opacity: 0;
    transform: translateY(18px);
}

.shop-reveal-ready [data-shop-reveal].is-visible,
[data-shop-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (max-width: 1100px) {
    .shop-hero-grid,
    .product-detail,
    .cart-layout,
    .checkout-layout,
    .member-auth-grid,
    .member-dashboard,
    .virtual-model-studio,
    .virtual-model-panel,
    .virtual-model-rights-hero,
    .virtual-model-feature,
    .virtual-model-page-hero,
    .virtual-model-archive-card,
    .virtual-model-empty.polished,
    .rongtu-hero-grid,
    .rongtu-two-column,
    .rongtu-detail-grid,
    .shop-section-head,
    .shop-page-title {
        grid-template-columns: 1fr;
    }

    .member-card {
        position: static;
    }

    .module-grid,
    .after-sale-grid,
    .shop-preview-grid,
    .rongtu-profile-grid,
    .rongtu-feature-grid,
    .rongtu-view-grid,
    .rongtu-expression-grid,
    .shop-metrics,
    .admin-flow,
    .virtual-rights-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .virtual-model-selector {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .virtual-model-card-media {
        border-width: 0 0 1px;
        border-radius: 8px 8px 0 0;
    }

    .virtual-model-archive-card.virtual-model-file.clean {
        grid-template-columns: 1fr;
    }

    .virtual-model-archive-card.virtual-model-file.clean .virtual-model-card-media {
        min-height: 360px;
        border-width: 0 0 1px;
        border-radius: 8px 8px 0 0;
    }

    .virtual-model-archive-card.virtual-model-file.clean dl {
        grid-template-columns: 1fr;
    }
}

.product-media.has-image,
.product-detail-media.has-image {
    background: #f8f5f2;
}

.product-media.has-image::before,
.product-detail-media.has-image::before {
    opacity: 0.08;
    pointer-events: none;
}

.product-detail-media.has-gallery::after {
    display: none;
}

.product-media.has-image > img,
.product-detail-media.has-image > img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-detail-media.has-image > img {
    min-height: 520px;
}

.product-detail-gallery {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.product-detail-gallery span {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.72);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 12px 28px rgba(36, 20, 32, 0.12);
}

.product-detail-gallery img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 820px) {
    .shop-nav {
        top: 70px;
    }

    .shop-hero h1,
    .shop-page-title h1,
    .virtual-model-hero-copy h1,
    .virtual-model-page-copy h1,
    .rongtu-hero-copy h1 {
        font-size: 34px;
    }

    .category-grid,
    .after-sale-grid,
    .product-grid,
    .external-link-grid,
    .member-form-grid,
    .shop-visual-main,
    .shop-preview-grid,
    .virtual-rights-grid,
    .rongtu-profile-grid,
    .rongtu-feature-grid,
    .rongtu-feature-grid.compact,
    .rongtu-view-grid,
    .rongtu-expression-grid,
    .virtual-model-selector {
        grid-template-columns: 1fr;
    }

    .shop-hero-card,
    .product-detail-card,
    .virtual-model-page-copy,
    .rongtu-hero-copy,
    .rongtu-panel,
    .rongtu-copyright {
        padding: 22px;
    }

    .rongtu-hero-copy,
    .rongtu-portrait-card {
        min-height: auto;
    }

    .rongtu-portrait-card {
        grid-template-rows: auto auto;
    }

    .rongtu-portrait {
        min-height: 390px;
    }

    .rongtu-color-list div {
        grid-template-columns: 36px 1fr;
    }

    .rongtu-color-list strong {
        grid-column: 2;
    }

    .virtual-model-stage {
        min-height: auto;
    }

    .virtual-model-figure {
        min-height: 410px;
    }

    .virtual-model-panel {
        min-height: auto;
    }

    .virtual-model-hero-copy,
    .virtual-model-page-copy,
    .virtual-model-page-aside,
    .virtual-model-feature {
        min-height: auto;
    }

    .virtual-model-upload-panel {
        min-height: auto;
    }

    .virtual-model-feature-media,
    .virtual-model-page-media,
    .virtual-model-card-media {
        min-height: 360px;
        border-width: 0 0 1px;
        border-radius: 8px 8px 0 0;
    }

    .virtual-model-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shop-rights-note {
        align-items: stretch;
        flex-direction: column;
    }

    .cart-row {
        grid-template-columns: 86px 1fr;
    }

    .cart-qty {
        grid-column: 1 / -1;
    }
}

@media (max-width: 560px) {
    .shop-hero {
        padding-top: 38px;
    }

    .shop-visual,
    .shop-hero-card,
    .virtual-model-hero-copy {
        min-height: auto;
    }

    .module-grid,
    .shop-metrics,
    .admin-flow,
    .virtual-model-hero-stats,
    .virtual-model-summary-row,
    .virtual-model-upload-list,
    .virtual-empty-steps {
        grid-template-columns: 1fr;
    }

    .shop-btn,
    .shop-action-row a,
    .shop-action-row button,
    .shop-action-row span.shop-btn {
        width: 100%;
    }
}

/* Public shop refinement. Keeps shop behavior intact and improves reading density. */
.shop-page {
    --shop-ink: #403746;
    --shop-muted: #62596a;
    --shop-line: rgba(255, 173, 213, 0.32);
    --shop-panel: rgba(255, 255, 255, 0.86);
    --shop-panel-strong: rgba(255, 255, 255, 0.96);
    --shop-pink: #df4f91;
    --shop-blue: #55aee9;
}

.shop-shell {
    padding-bottom: 34px;
}

.shop-nav {
    border-bottom-color: rgba(255, 173, 213, 0.22);
    background: rgba(255, 250, 253, 0.88);
}

.shop-nav a,
.shop-pill,
.shop-mini-link {
    border-color: rgba(255, 173, 213, 0.34);
    background: rgba(255, 255, 255, 0.84);
    color: #62596a;
}

.shop-hero {
    padding-top: 68px;
}

.shop-hero-grid {
    grid-template-columns: minmax(0, 1.04fr) minmax(360px, 0.96fr);
    gap: 20px;
}

.shop-hero-card,
.shop-panel,
.shop-metric,
.product-card,
.category-card,
.module-card,
.cart-row,
.checkout-block,
.virtual-model-studio,
.virtual-model-empty,
.shop-status-banner,
.shop-preview-card,
.shop-rights-note,
.virtual-model-archive-card {
    border-color: var(--shop-line);
    background: linear-gradient(180deg, var(--shop-panel-strong), rgba(255, 255, 255, 0.78));
    box-shadow: 0 18px 44px rgba(83, 65, 94, 0.09), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.shop-hero-card {
    align-items: flex-start;
    min-height: 440px;
    padding: 38px;
    text-align: left;
}

.shop-kicker {
    border-color: rgba(255, 173, 213, 0.34);
    color: var(--shop-pink);
    background: rgba(255, 255, 255, 0.84);
}

.shop-hero h1,
.shop-page-title h1 {
    color: #493e50;
    text-shadow: none;
}

.shop-lead {
    margin-left: 0;
    color: var(--shop-muted);
}

.shop-action-row,
.shop-tags,
.category-tabs,
.product-actions,
.cart-actions {
    justify-content: flex-start;
}

.shop-btn.primary {
    background: linear-gradient(135deg, #f15f9f, #ff8fc3 44%, #74c8f6);
}

.shop-btn.secondary {
    color: var(--shop-pink);
    background: rgba(255, 255, 255, 0.88);
}

.shop-tags span,
.product-meta span {
    border: 1px solid rgba(255, 173, 213, 0.28);
    background: rgba(255, 255, 255, 0.82);
    color: #685f70;
}

.shop-visual {
    min-height: 440px;
}

.shop-visual-main {
    grid-template-columns: 1fr;
    min-height: 260px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.76), rgba(255, 255, 255, 0.46)),
        url("/背景.png"),
        linear-gradient(135deg, rgba(255, 239, 247, 0.92), rgba(238, 248, 255, 0.9));
    background-size: cover;
    background-position: center;
}

.shop-look-card {
    min-height: 0;
    align-items: flex-start;
    justify-content: flex-start;
    text-align: left;
    background: rgba(255, 255, 255, 0.82);
}

.shop-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.shop-metric {
    min-height: 108px;
    text-align: left;
}

.shop-section {
    padding-top: 84px;
}

.shop-section-head,
.shop-page-title {
    max-width: 980px;
    justify-items: start;
    margin-left: 0;
    text-align: left;
}

.shop-section-head h2 {
    color: #493e50;
}

.shop-section-head p,
.shop-page-title p {
    color: var(--shop-muted);
}

.category-card,
.module-card,
.after-sale-card,
.product-card,
.shop-preview-card {
    min-height: 188px;
    padding: 22px;
    text-align: left;
}

.category-card strong,
.module-card strong,
.after-sale-card strong,
.shop-preview-card strong,
.product-info h3 {
    color: #493e50;
}

.category-card p,
.module-card p,
.after-sale-card p,
.shop-preview-card p,
.product-info p,
.cart-row p,
.checkout-block p {
    color: var(--shop-muted);
}

.product-card {
    overflow: hidden;
}

.product-media,
.product-detail-media {
    border-color: rgba(255, 173, 213, 0.28);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.44)),
        url("/背景.png"),
        linear-gradient(135deg, rgba(255, 241, 248, 0.94), rgba(237, 248, 255, 0.9));
    background-size: cover;
    background-position: center;
}

.product-media::after,
.product-detail-media::after,
.image-type-chip {
    color: #5d5362;
    background: rgba(255, 255, 255, 0.86);
}

.product-price b {
    color: var(--shop-pink);
}

.product-brief div,
.product-detail-list div,
.virtual-model-copy dl div,
.virtual-model-archive-card dl div,
.admin-step,
.summary-line,
.shop-buy-policy,
.shop-notice {
    border-color: rgba(255, 173, 213, 0.28);
    background: rgba(255, 255, 255, 0.78);
}

.product-detail {
    gap: 22px;
}

.product-detail-card,
.cart-summary,
.checkout-block,
.member-card,
.shop-panel {
    padding: 24px;
}

.shop-buy-policy strong,
.member-card h2,
.checkout-form h2,
.shop-panel h2,
.virtual-model-copy h3,
.virtual-model-archive-card h3,
.virtual-model-page-copy h1,
.virtual-model-page-feature h2 {
    color: #493e50;
}

.virtual-model-studio,
.virtual-model-stage,
.virtual-model-page-copy,
.virtual-model-page-aside,
.virtual-rights-card,
.virtual-model-rights-copy {
    border-color: var(--shop-line);
}

.virtual-model-choice,
.virtual-model-empty.polished,
.virtual-empty-steps span,
.virtual-model-summary-row div,
.virtual-rights-card {
    border-color: rgba(255, 173, 213, 0.28);
    background: rgba(255, 255, 255, 0.82);
}

.virtual-model-choice:hover,
.virtual-model-choice.is-active {
    background: linear-gradient(135deg, rgba(255, 246, 252, 0.98), rgba(236, 248, 255, 0.94));
}

.shop-rights-note {
    justify-content: space-between;
    text-align: left;
}

.shop-rights-note p {
    margin-left: 0;
}

.cart-layout,
.checkout-layout {
    gap: 20px;
}

.cart-row {
    border-color: rgba(255, 173, 213, 0.28);
}

.empty-state {
    align-items: flex-start;
    text-align: left;
}

.admin-flow {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.admin-step {
    text-align: left;
}

@media (max-width: 1100px) {
    .shop-hero-grid,
    .product-detail,
    .cart-layout,
    .checkout-layout,
    .member-auth-grid,
    .member-dashboard,
    .virtual-model-studio,
    .virtual-model-panel,
    .virtual-model-page-hero {
        grid-template-columns: 1fr;
    }

    .shop-metrics,
    .admin-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .shop-hero {
        padding-top: 42px;
    }

    .shop-hero-card,
    .product-detail-card,
    .virtual-model-page-copy,
    .cart-summary,
    .checkout-block,
    .member-card,
    .shop-panel {
        padding: 22px;
    }

    .shop-visual,
    .shop-hero-card {
        min-height: auto;
    }

    .shop-metrics,
    .admin-flow,
    .module-grid,
    .after-sale-grid,
    .product-grid,
    .shop-preview-grid,
    .category-grid {
        grid-template-columns: 1fr;
    }

    .shop-rights-note {
        text-align: left;
    }
}

@media (max-width: 560px) {
    .shop-section {
        padding-top: 58px;
    }

    .shop-hero h1,
    .shop-page-title h1,
    .virtual-model-page-copy h1 {
        font-size: 32px;
        line-height: 1.16;
    }

    .cart-row {
        grid-template-columns: 1fr;
    }

    .cart-thumb {
        min-height: 160px;
    }

    .product-brief div,
.product-detail-list div {
    grid-template-columns: 1fr;
}
}

.shop-form-note {
    margin: 4px 0 0;
    font-size: 13px;
    line-height: 1.8;
    color: #68738f;
}

/* Public shop premium refresh. Keeps the existing PHP flow and only updates presentation. */
.shop-page {
    --shop-ink: var(--ink);
    --shop-muted: var(--muted);
    --shop-line: var(--line);
    --shop-panel: #fff;
    --shop-panel-strong: #fff;
    --shop-pink: var(--accent-strong);
    --shop-blue: var(--blue);
    --shop-green: var(--green);
    --shop-gold: var(--gold);
    background: linear-gradient(180deg, #fbfaf7 0%, #f7f5f2 58%, #eef4f5 100%);
}

.shop-shell {
    padding-bottom: 8px;
}

.shop-nav {
    top: 77px;
    border-bottom: 1px solid var(--line);
    background: rgba(251, 250, 247, 0.9);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}

.shop-nav-inner {
    min-height: 56px;
    gap: 8px;
}

.shop-nav a,
.shop-pill,
.shop-mini-link {
    min-height: 36px;
    border-color: var(--line);
    background: #fff;
    color: var(--muted-strong);
    font-size: 13px;
    font-weight: 900;
}

.shop-nav a.active,
.shop-mini-link.active,
.shop-nav a:hover,
.shop-mini-link:hover {
    color: #fff;
    background: var(--accent-strong);
    box-shadow: var(--shadow-soft);
}

.shop-hero {
    padding-top: 54px;
}

.shop-hero-grid {
    grid-template-columns: 1fr;
    gap: 18px;
    justify-items: center;
}

.shop-hero-card,
.shop-panel,
.shop-metric,
.product-card,
.category-card,
.module-card,
.cart-row,
.checkout-block,
.virtual-model-studio,
.virtual-model-empty,
.shop-status-banner,
.shop-preview-card,
.shop-rights-note,
.virtual-model-archive-card,
.after-sale-card,
.virtual-rights-card,
.admin-step,
.shop-buy-policy,
.checkout-form,
.member-card,
.shop-notice {
    border-color: var(--line);
    border-radius: var(--radius);
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.shop-hero-card {
    min-height: 430px;
    align-items: center;
    padding: 34px;
    text-align: center;
    width: min(920px, 100%);
}

.shop-kicker {
    min-height: 30px;
    border-color: var(--line);
    background: #fff;
    color: var(--accent-strong);
    font-size: 12px;
}

.shop-hero h1,
.shop-page-title h1,
.virtual-model-page-copy h1,
.product-detail-card h1,
.rongtu-hero-copy h1 {
    margin: 14px 0 12px;
    color: var(--ink);
    font-size: clamp(34px, 4.2vw, 54px);
    line-height: 1.1;
    text-shadow: none;
}

.shop-lead,
.shop-page-title p,
.shop-section-head p,
.virtual-model-page-copy p {
    color: var(--muted);
    font-size: 15px;
    line-height: 1.9;
}

.shop-hero-card .shop-lead,
.shop-page-title p {
    margin-left: auto;
    margin-right: auto;
}

.shop-action-row,
.shop-tags,
.category-tabs,
.product-actions,
.cart-actions {
    justify-content: center;
}

.shop-btn {
    min-height: 44px;
    border-color: var(--line);
    border-radius: 999px;
    font-weight: 900;
}

.shop-btn.primary {
    color: #fff;
    background: linear-gradient(135deg, var(--accent-strong), var(--accent));
}

.shop-btn.secondary {
    color: var(--accent-strong);
    background: #fff;
}

.shop-btn.disabled {
    color: #8a828d;
    background: var(--paper-soft);
}

.shop-tags span,
.product-meta span {
    border: 1px solid var(--line);
    background: #fff;
    color: var(--muted-strong);
}

.shop-visual {
    min-height: 430px;
    width: min(920px, 100%);
    background: #fff;
}

.shop-visual-main {
    min-height: 238px;
    border-color: var(--line);
    background: var(--bg-soft);
}

.shop-look-card {
    border-color: var(--line);
    background: #fff;
    text-align: center;
}

.shop-look-card strong,
.shop-status-banner strong,
.virtual-model-empty strong,
.category-card strong,
.module-card strong,
.after-sale-card strong,
.shop-preview-card strong,
.product-info h3,
.virtual-rights-card strong {
    color: var(--ink);
}

.shop-metric b,
.shop-section-head h2,
.product-price b {
    color: var(--accent-strong);
    text-shadow: none;
}

.shop-status-banner,
.shop-rights-note,
.shop-after-sale-note {
    text-align: center;
    justify-content: center;
    justify-items: center;
}

.shop-section {
    padding-top: 78px;
}

.shop-section-head,
.shop-page-title {
    grid-template-columns: 1fr;
    justify-items: center;
    max-width: 860px;
    margin: 0 auto 28px;
    text-align: center;
}

.shop-section-head h2 {
    color: var(--ink);
    font-size: clamp(28px, 3vw, 40px);
}

.shop-page-title {
    align-items: end;
}

.category-grid,
.module-grid,
.after-sale-grid,
.product-grid,
.shop-preview-grid,
.virtual-rights-grid {
    gap: 18px;
}

.category-card,
.module-card,
.after-sale-card,
.product-card,
.shop-preview-card,
.virtual-rights-card {
    padding: 22px;
    text-align: center;
    justify-items: center;
}

.product-card {
    min-height: auto;
    text-align: center;
}

.product-media,
.product-detail-media,
.cart-thumb,
.virtual-model-figure,
.virtual-model-page-media,
.virtual-model-card-media,
.rongtu-hero-visual {
    border-color: var(--line);
    border-radius: var(--radius);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.42)),
        url("/背景.png");
    background-size: cover;
    background-position: center;
}

.product-media::before,
.product-detail-media::before {
    display: none;
}

.product-media::after,
.product-detail-media::after,
.image-type-chip {
    border-color: var(--line);
    background: rgba(255, 255, 255, 0.9);
    color: var(--muted-strong);
}

.product-media.has-image,
.product-detail-media.has-image {
    background: var(--paper-soft);
}

.product-media.has-image img,
.product-detail-media.has-image > img,
.virtual-model-media img,
.virtual-model-page-media img,
.virtual-model-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-brief div,
.product-detail-list div,
.summary-line,
.member-list article,
.shop-buy-policy {
    border-color: var(--line);
    background: var(--bg-soft);
}

.product-brief dt,
.product-detail-list dt {
    color: var(--accent-strong);
}

.product-detail,
.cart-layout,
.checkout-layout,
.member-auth-grid,
.member-dashboard,
.virtual-model-page-hero {
    gap: 20px;
}

.product-options,
.checkout-form,
.member-main {
    display: grid;
    gap: 14px;
}

.checkout-form label,
.product-options label,
.member-form-grid label {
    display: grid;
    gap: 7px;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
}

.checkout-form input,
.checkout-form textarea,
.checkout-form select,
.product-options input,
.product-options textarea,
.product-options select,
.member-form-grid input,
.member-form-grid textarea,
.member-form-grid select {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    color: var(--text);
    font-size: 14px;
}

.checkout-form textarea,
.member-form-grid textarea {
    min-height: 110px;
    resize: vertical;
}

.size-table-wrap {
    border-color: var(--line);
    background: #fff;
}

.size-table th,
.size-table td {
    border-color: var(--line);
    color: var(--muted-strong);
}

.size-table th {
    color: var(--accent-strong);
}

.virtual-model-studio {
    grid-template-columns: 300px minmax(0, 1fr);
}

.virtual-model-choice {
    border-color: var(--line);
    background: var(--bg-soft);
}

.virtual-model-choice:hover,
.virtual-model-choice.is-active {
    background: #fff;
    box-shadow: var(--shadow-soft);
}

.virtual-model-choice span {
    color: var(--accent-strong);
}

.virtual-model-stage {
    border-color: var(--line);
    background: var(--bg-soft);
}

.virtual-model-copy,
.virtual-model-page-copy,
.product-detail-card,
.cart-summary,
.checkout-block,
.member-card {
    text-align: center;
}

.virtual-model-summary-row div {
    border-color: var(--line);
    background: #fff;
}

.shop-guide .dyc-guide-result {
    background: #f6fafc;
}

.empty-state {
    align-items: center;
    text-align: center;
}

.shop-notice.success {
    border-color: rgba(75, 123, 104, 0.26);
    background: #f1f8f4;
    color: #2f654f;
}

.shop-notice.danger {
    border-color: rgba(169, 46, 94, 0.26);
    background: #fff3f6;
    color: var(--accent-strong);
}

@media (max-width: 1100px) {
    .shop-hero-grid,
    .shop-section-head,
    .shop-page-title,
    .product-detail,
    .cart-layout,
    .checkout-layout,
    .member-auth-grid,
    .member-dashboard,
    .virtual-model-studio,
    .virtual-model-panel,
    .virtual-model-page-hero {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .shop-nav {
        top: 67px;
    }

    .shop-hero {
        padding-top: 38px;
    }

    .shop-hero-card,
    .product-detail-card,
    .virtual-model-page-copy,
    .cart-summary,
    .checkout-block,
    .member-card,
    .shop-panel,
    .shop-status-banner {
        padding: 22px;
    }

    .shop-visual,
    .shop-hero-card {
        min-height: auto;
    }

    .shop-metrics,
    .admin-flow,
    .module-grid,
    .after-sale-grid,
    .product-grid,
    .shop-preview-grid,
    .category-grid,
    .virtual-rights-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .shop-nav-inner {
        width: calc(100vw - 24px);
    }

    .shop-section {
        padding-top: 62px;
    }

    .shop-hero h1,
    .shop-page-title h1,
    .virtual-model-page-copy h1 {
        font-size: 32px;
        line-height: 1.16;
    }

    .cart-row {
        grid-template-columns: 1fr;
    }

    .cart-thumb {
        min-height: 160px;
    }

    .product-brief div,
    .product-detail-list div {
        grid-template-columns: 1fr;
    }
}
