/* ── Tribe City Shop — transparent glass UI (no shadows) ── */
.shop-page {
    --shop-glass: rgba(255, 255, 255, 0.035);
    --shop-glass-hi: rgba(255, 255, 255, 0.055);
    --shop-glass-border: rgba(255, 255, 255, 0.09);
    --shop-glass-border-hi: rgba(126, 184, 234, 0.28);
    --shop-line: rgba(255, 255, 255, 0.06);
    --shop-radius: 2px;
    --shop-blur: 18px;
}

.shop-page .pub-nav.scrolled .pub-nav-shell,
.shop-page .pub-nav-shell {
    background: rgba(5, 7, 13, 0.52);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    border-bottom: 1px solid var(--shop-line);
    box-shadow: none;
}

.shop-page .pub-footer {
    background: rgba(4, 6, 10, 0.45);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    border-top: 1px solid var(--shop-line);
}

.shop-page .pub-container {
    width: min(1180px, calc(100% - 2.5rem));
}

.shop-page .shop-main {
    position: relative;
    z-index: 1;
    padding: 6.5rem 0 4.5rem;
    min-height: calc(100vh - 100px);
}

.shop-alert {
    margin-bottom: 1.25rem;
    padding: 0.85rem 1rem;
    border-radius: var(--shop-radius);
    border: 1px solid var(--shop-glass-border-hi);
    background: var(--shop-glass);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    color: var(--pub-accent-soft);
}

.shop-alert.is-error {
    border-color: rgba(248, 113, 113, 0.35);
    background: rgba(248, 113, 113, 0.06);
    color: #fecaca;
}

.shop-alert.is-success {
    border-color: rgba(74, 222, 128, 0.35);
    background: rgba(74, 222, 128, 0.06);
    color: #bbf7d0;
}

/* ── Store home (catalog) ── */
.shop-store {
    width: 100%;
}

.shop-hero-banner {
    margin-bottom: 1.5rem;
    border: 1px solid var(--shop-glass-border);
    background:
        linear-gradient(135deg, rgba(0, 43, 102, 0.35) 0%, rgba(5, 8, 14, 0.55) 45%, rgba(5, 8, 14, 0.72) 100%);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    overflow: hidden;
}

.shop-hero-banner-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    padding: 1.75rem 1.5rem;
    min-height: 120px;
}

.shop-hero-banner-logo {
    width: 72px;
    height: 72px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--shop-glass-border);
    background: rgba(255, 255, 255, 0.04);
    overflow: hidden;
}

.shop-hero-logo {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.shop-hero-logo-fallback {
    font-family: var(--pub-font-en);
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--pub-accent-soft);
}

.shop-hero-banner-copy {
    text-align: center;
}

.shop-hero-banner-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.82rem;
    color: var(--pub-muted-hi);
}

.shop-hero-banner-title {
    margin: 0;
    font-size: clamp(1.35rem, 3vw, 1.85rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    font-family: var(--pub-font-en);
}

.shop-hero-banner-title span {
    color: var(--pub-accent-soft);
}

.shop-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-bottom: 1.35rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--shop-line);
}

.shop-cat-tab {
    padding: 0.45rem 0.95rem;
    border: 1px solid var(--shop-glass-border);
    background: transparent;
    color: var(--pub-muted-hi);
    font: inherit;
    font-size: 0.84rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
    white-space: nowrap;
}

.shop-cat-tab:hover {
    color: var(--pub-text);
    border-color: var(--shop-glass-border-hi);
    background: var(--shop-glass);
}

.shop-cat-tab.is-active {
    color: var(--pub-text);
    border-color: var(--shop-glass-border-hi);
    background: rgba(0, 43, 102, 0.35);
}

.shop-store-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.15rem;
}

.shop-store-section-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
}

.shop-store-toolbar-end {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.shop-store-count {
    font-size: 0.82rem;
    color: var(--pub-muted);
    font-variant-numeric: lining-nums;
}

.shop-sort-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    position: relative;
}

.shop-sort-label {
    font-size: 0.78rem;
    color: var(--pub-muted);
}

.shop-sort-dropdown {
    position: relative;
}

.shop-sort-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    min-width: 9.5rem;
    padding: 0.48rem 0.75rem;
    border: 1px solid var(--shop-glass-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.04);
    color: var(--pub-text);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.shop-sort-trigger:hover,
.shop-sort-dropdown.is-open .shop-sort-trigger {
    border-color: var(--shop-glass-border-hi);
    background: rgba(255, 255, 255, 0.06);
}

.shop-sort-trigger:focus-visible {
    outline: none;
    border-color: rgba(0, 43, 102, 0.65);
}

.shop-sort-chevron {
    width: 1rem;
    height: 1rem;
    flex-shrink: 0;
    color: var(--pub-muted-hi);
    transition: transform 0.2s;
}

.shop-sort-dropdown.is-open .shop-sort-chevron {
    transform: rotate(180deg);
}

.shop-sort-menu {
    position: absolute;
    top: calc(100% + 0.35rem);
    left: 0;
    right: 0;
    z-index: 40;
    margin: 0;
    padding: 0.35rem;
    list-style: none;
    border: 1px solid var(--shop-glass-border-hi);
    border-radius: 10px;
    background: rgba(8, 12, 20, 0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.shop-sort-option {
    padding: 0.55rem 0.7rem;
    border-radius: 7px;
    color: var(--pub-muted-hi);
    font-size: 0.82rem;
    font-weight: 500;
    cursor: pointer;
    transition: color 0.12s, background 0.12s;
    user-select: none;
}

.shop-sort-option:hover {
    color: var(--pub-text);
    background: rgba(255, 255, 255, 0.06);
}

.shop-sort-option.is-active {
    color: #fff;
    background: rgba(0, 43, 102, 0.55);
}

.shop-loading,
.shop-empty {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--pub-muted-hi);
    border: 1px solid var(--shop-line);
    background: var(--shop-glass);
}

.shop-empty-reset {
    margin-top: 1rem;
    width: auto;
    min-width: 8rem;
}

.shop-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.shop-card {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--shop-glass-border);
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    overflow: hidden;
    text-align: start;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.shop-card:hover {
    border-color: var(--shop-glass-border-hi);
    background: rgba(255, 255, 255, 0.05);
}

.shop-card--soldout {
    opacity: 0.58;
}

.shop-card-media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: rgba(255, 255, 255, 0.02);
    border-bottom: 1px solid var(--shop-line);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.shop-card-media[data-open-product] {
    cursor: pointer;
}

.shop-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.shop-card:hover .shop-card-media img {
    transform: scale(1.03);
}

.shop-card-media--empty {
    color: var(--pub-muted);
    font-size: 0.82rem;
}

.shop-card-badge,
.shop-card-sale {
    position: absolute;
    top: 0.55rem;
    z-index: 2;
    padding: 0.2rem 0.45rem;
    font-size: 0.65rem;
    font-weight: 700;
    font-family: var(--pub-font-en);
    border: 1px solid var(--shop-glass-border);
    background: rgba(5, 7, 13, 0.78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.shop-card-badge {
    inset-inline-start: 0.55rem;
    color: #fecaca;
    border-color: rgba(248, 113, 113, 0.35);
}

.shop-card-sale {
    inset-inline-end: 0.55rem;
    color: var(--pub-accent-soft);
    border-color: var(--shop-glass-border-hi);
}

.shop-card-body {
    padding: 0.85rem 0.95rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    flex: 1;
}

.shop-card-body h3 {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-card-price {
    font-size: 0.95rem;
}

.shop-card-cart-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    margin-top: auto;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--shop-glass-border-hi);
    background: transparent;
    color: var(--pub-text);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.shop-card-cart-btn:hover:not(:disabled) {
    border-color: var(--pub-accent-soft);
    background: rgba(0, 43, 102, 0.25);
    color: var(--pub-accent-soft);
}

.shop-card-cart-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.shop-card-cart-btn svg {
    width: 15px;
    height: 15px;
    flex: none;
}

.shop-price {
    display: inline-flex;
    align-items: baseline;
    gap: 0.4rem;
    font-size: 1rem;
    font-weight: 600;
    color: var(--pub-text);
    font-variant-numeric: lining-nums;
    font-family: var(--pub-font-en);
}

.shop-price strong {
    font-weight: 700;
    color: var(--pub-accent-soft);
}

.shop-price-old {
    font-size: 0.88em;
    font-weight: 400;
    color: var(--pub-muted);
    text-decoration: line-through;
}

.shop-price-lg {
    font-size: 1.5rem;
    font-weight: 700;
}

@media (max-width: 1100px) {
    .shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
    .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
    .shop-grid { grid-template-columns: 1fr; }
    .shop-hero-banner-inner {
        flex-direction: column;
        padding: 1.35rem 1rem;
    }
}

/* ── Product detail ── */
.shop-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    font-size: 0.82rem;
    color: var(--pub-muted);
}

.shop-breadcrumb a {
    color: var(--pub-accent-soft);
    text-decoration: none;
}

.shop-breadcrumb a:hover {
    text-decoration: underline;
}

.shop-product-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 1px;
    background: var(--shop-line);
    border: 1px solid var(--shop-line);
}

.shop-gallery,
.shop-product-info {
    background: rgba(5, 8, 14, 0.62);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
}

.shop-gallery {
    padding: 1.25rem;
}

.shop-gallery-main {
    position: relative;
    border: 1px solid var(--shop-glass-border);
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
}

.shop-gallery-stage {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
}

.shop-gallery-stage img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.shop-gallery-stage--empty {
    color: var(--pub-muted);
    font-size: 0.88rem;
}

.shop-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border: 1px solid var(--shop-glass-border);
    border-radius: 0;
    background: rgba(5, 7, 13, 0.75);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--pub-text);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    z-index: 2;
    transition: border-color 0.15s, background 0.15s;
}

.shop-gallery-nav:hover {
    border-color: var(--shop-glass-border-hi);
    background: rgba(8, 14, 24, 0.85);
}

.shop-gallery-prev { inset-inline-start: 0.5rem; }
.shop-gallery-next { inset-inline-end: 0.5rem; }
.shop-gallery-nav.hidden { display: none; }

.shop-gallery-thumbs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.75rem;
}

.shop-gallery-thumb {
    width: 64px;
    height: 64px;
    padding: 0;
    border: 1px solid var(--shop-glass-border);
    border-radius: 0;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
    cursor: pointer;
    flex-shrink: 0;
    transition: border-color 0.15s;
}

.shop-gallery-thumb.is-active {
    border-color: var(--shop-glass-border-hi);
}

.shop-gallery-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.shop-product-info {
    padding: 1.75rem 1.65rem;
    display: flex;
    flex-direction: column;
}

.shop-product-title {
    font-size: clamp(1.35rem, 2.8vw, 1.75rem);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.02em;
    margin-bottom: 0.5rem;
}

.shop-product-price {
    font-size: 1.45rem;
    margin-bottom: 1.25rem;
    font-variant-numeric: lining-nums;
    font-family: var(--pub-font-en);
}

.shop-product-desc {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
    color: var(--pub-muted-hi);
    font-size: 0.9rem;
    line-height: 1.75;
    flex: 1;
}

.shop-product-desc li {
    position: relative;
    padding-inline-start: 0.85rem;
    margin-bottom: 0.4rem;
    border-inline-start: 1px solid var(--shop-glass-border-hi);
}

.shop-purchase-box {
    border: 1px solid var(--shop-glass-border);
    background: var(--shop-glass);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    padding: 1.25rem 1.2rem 1.35rem;
    margin-top: auto;
}

.shop-purchase-box::before {
    content: '';
    display: block;
    height: 1px;
    margin: -1.25rem -1.2rem 1.15rem;
    background: linear-gradient(90deg, transparent, var(--shop-glass-border-hi), transparent);
}

.shop-purchase-price {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 0.35rem;
    font-variant-numeric: lining-nums;
    font-family: var(--pub-font-en);
}

.shop-stock-line {
    margin: 0 0 1rem;
    font-size: 0.78rem;
    color: #86efac;
    font-variant-numeric: lining-nums;
    letter-spacing: 0.02em;
}

.shop-stock-line.is-low { color: #fcd34d; }
.shop-stock-line.is-out { color: #fca5a5; }

.shop-soldout {
    padding: 1rem;
    border: 1px solid rgba(248, 113, 113, 0.3);
    background: rgba(248, 113, 113, 0.05);
    text-align: center;
    margin-bottom: 0.75rem;
}

.shop-soldout strong {
    display: block;
    color: #fecaca;
    margin-bottom: 0.25rem;
    font-size: 0.92rem;
}

.shop-soldout p {
    margin: 0;
    color: var(--pub-muted);
    font-size: 0.84rem;
}

/* ── Checkout form ── */
.shop-checkout-form .shop-field {
    margin-bottom: 0.85rem;
}

.shop-field label {
    display: block;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--pub-muted-hi);
    margin-bottom: 0.4rem;
    letter-spacing: 0.02em;
}

.shop-field input {
    width: 100%;
    padding: 0.7rem 0.8rem;
    border-radius: 0;
    border: 1px solid var(--shop-glass-border);
    background: rgba(255, 255, 255, 0.025);
    color: var(--pub-text);
    font: inherit;
    transition: border-color 0.15s, background 0.15s;
}

.shop-field input:focus {
    outline: none;
    border-color: var(--shop-glass-border-hi);
    background: rgba(255, 255, 255, 0.04);
}

.shop-coupon-row {
    display: flex;
    gap: 0.45rem;
    align-items: stretch;
}

.shop-coupon-row input {
    flex: 1;
    min-width: 0;
    font-family: var(--pub-font-en);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.shop-coupon-row .pub-btn {
    flex: none;
    white-space: nowrap;
    border-radius: 0;
}

.shop-coupon-msg {
    margin-top: 0.4rem;
    font-size: 0.78rem;
    color: var(--pub-muted-hi);
}

.shop-coupon-msg.is-ok { color: #86efac; }
.shop-coupon-msg.is-error { color: #fca5a5; }

.shop-required {
    color: #fca5a5;
    font-weight: 600;
}

.shop-field-hint {
    margin: 0.35rem 0 0;
    color: var(--pub-muted-hi);
    font-size: 0.78rem;
    line-height: 1.45;
}

.shop-field-error {
    margin: 0.4rem 0 0;
    padding: 0.55rem 0.65rem;
    border: 1px solid rgba(248, 113, 113, 0.35);
    background: rgba(248, 113, 113, 0.06);
    color: #fecaca;
    font-size: 0.8rem;
    line-height: 1.4;
}

.shop-field input.is-invalid {
    border-color: rgba(248, 113, 113, 0.5);
}

.paypal-button-container {
    min-height: 45px;
    margin-top: 0.25rem;
}

.shop-pay-btn {
    width: 100%;
    margin-top: 0.5rem;
    border-radius: 0;
}

.shop-free-btn {
    width: 100%;
    margin-top: 0.5rem;
    border-radius: 0;
}

.shop-free-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.shop-pay-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.shop-paypal-note {
    color: var(--pub-muted);
    font-size: 0.8rem;
    margin-top: 0.65rem;
    text-align: center;
}

.shop-paypal-note.is-warn {
    color: #fecaca;
}

/* ── Receipt ── */
.shop-receipt-shell {
    display: flex;
    justify-content: center;
    padding: 0.5rem 0 2rem;
}

.shop-receipt-card {
    width: min(100%, 520px);
    border: 1px solid var(--shop-glass-border);
    background: rgba(5, 8, 14, 0.72);
    backdrop-filter: blur(var(--shop-blur));
    -webkit-backdrop-filter: blur(var(--shop-blur));
    overflow: hidden;
}

.shop-receipt-hero {
    text-align: center;
    padding: 2rem 1.5rem 1.25rem;
    border-bottom: 1px solid var(--shop-line);
}

.shop-receipt-check {
    width: 64px;
    height: 64px;
    margin: 0 auto 1rem;
    display: grid;
    place-items: center;
    background: transparent;
    border: none;
    border-radius: 0;
}

.shop-receipt-check svg {
    display: block;
    overflow: visible;
}

.shop-receipt-check-circle {
    stroke: #22c55e;
    stroke-width: 2;
    stroke-dasharray: 151;
    stroke-dashoffset: 151;
    animation: shopReceiptCircle 0.6s ease forwards 0.15s;
}

.shop-receipt-check-mark {
    stroke: #86efac;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 48;
    stroke-dashoffset: 48;
    animation: shopReceiptMark 0.45s ease forwards 0.55s;
}

@keyframes shopReceiptCircle {
    to { stroke-dashoffset: 0; }
}

@keyframes shopReceiptMark {
    to { stroke-dashoffset: 0; }
}

.shop-receipt-kicker {
    margin: 0 0 0.35rem;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #86efac;
    font-weight: 600;
}

.shop-receipt-title {
    margin: 0;
    font-size: clamp(1.25rem, 3vw, 1.55rem);
    font-weight: 700;
}

.shop-receipt-invoice {
    padding: 1.25rem 1.35rem 1.35rem;
}

.shop-receipt-invoice-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.shop-receipt-label {
    display: block;
    font-size: 0.72rem;
    color: var(--pub-muted);
    margin-bottom: 0.2rem;
}

.shop-receipt-invoice-no {
    font-size: 1rem;
    letter-spacing: 0.04em;
    font-family: var(--pub-font-en);
}

.shop-receipt-status {
    padding: 0.25rem 0.55rem;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #bbf7d0;
    background: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.28);
}

.shop-receipt-rows {
    margin: 0;
    border: 1px solid var(--shop-line);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.015);
}

.shop-receipt-row {
    display: grid;
    grid-template-columns: minmax(6.5rem, 38%) 1fr;
    gap: 0.65rem;
    padding: 0.7rem 0.9rem;
    border-bottom: 1px solid var(--shop-line);
}

.shop-receipt-row:last-child {
    border-bottom: none;
}

.shop-receipt-row dt {
    margin: 0;
    color: var(--pub-muted);
    font-size: 0.8rem;
}

.shop-receipt-row dd {
    margin: 0;
    font-weight: 600;
    word-break: break-word;
}

.shop-receipt-row dd span {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.86rem;
}

.shop-receipt-note {
    margin-top: 1rem;
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--shop-glass-border);
    background: var(--shop-glass);
}

.shop-receipt-note strong {
    display: block;
    margin-bottom: 0.25rem;
    color: var(--pub-accent-soft);
    font-size: 0.88rem;
}

.shop-receipt-note p {
    margin: 0;
    color: var(--pub-muted-hi);
    font-size: 0.84rem;
    line-height: 1.5;
}

.shop-receipt-redeem {
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(74, 222, 128, 0.25);
    border-radius: 10px;
    background: rgba(74, 222, 128, 0.06);
}

.shop-receipt-redeem strong {
    display: block;
    margin-bottom: 0.35rem;
    color: #bbf7d0;
}

.shop-receipt-redeem-code {
    margin: 0.25rem 0 0.65rem;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--pub-text);
}

.shop-receipt-redeem-help {
    margin: 0 0 0.75rem;
    color: var(--pub-muted-hi);
    font-size: 0.84rem;
    line-height: 1.55;
}

.shop-receipt-vehicle {
    margin-top: 1rem;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(0, 43, 102, 0.45);
    border-radius: 10px;
    background: rgba(0, 43, 102, 0.12);
}

.pub-btn--sm {
    padding: 0.35rem 0.75rem;
    font-size: 0.82rem;
}

.shop-receipt-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0 1.35rem 1.35rem;
}

.shop-receipt-actions .pub-btn {
    border-radius: 0;
}

.shop-receipt-actions .pub-btn--lg {
    flex: 1 1 100%;
}

.shop-page .pub-btn--ghost {
    border-radius: 0;
    background: transparent;
    border: 1px solid var(--shop-glass-border);
}

.shop-page .pub-btn--ghost:hover {
    border-color: var(--shop-glass-border-hi);
    background: var(--shop-glass);
}

@media print {
    .pub-nav,
    .pub-footer,
    #shop-head,
    #shop-catalog,
    #shop-product,
    #shop-alert,
    .shop-receipt-actions {
        display: none !important;
    }

    .shop-page .shop-main {
        padding: 0;
        min-height: auto;
    }

    .shop-receipt-card {
        border: 1px solid #ccc;
        background: #fff;
        color: #111;
    }
}

@media (max-width: 900px) {
    .shop-product-layout {
        grid-template-columns: 1fr;
    }

    .shop-gallery {
        border-bottom: 1px solid var(--shop-line);
    }
}

@media (max-width: 768px) {
    .shop-page .pub-links { display: none; }
    .shop-page .shop-main { padding-top: 5.5rem; }
    .shop-gallery-thumb { width: 56px; height: 56px; }
    .shop-store-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    .shop-store-toolbar-end {
        justify-content: space-between;
    }
}
