/* ── Shop Page Shortcode — scoped under .shop-page-shortcode ── */

.shop-page-shortcode {
    --sp-background:  oklch(0.985 0.005 90);
    --sp-foreground:  oklch(0.18  0.02  270);
    --sp-card:        oklch(1     0     0);
    --sp-primary:     oklch(0.22  0.04  265);
    --sp-primary-fg:  oklch(0.99  0     0);
    --sp-secondary:   oklch(0.96  0.01  90);
    --sp-muted:       oklch(0.95  0.008 90);
    --sp-muted-fg:    oklch(0.5   0.02  265);
    --sp-accent:      oklch(0.72  0.18  50);
    --sp-accent-fg:   oklch(0.99  0     0);
    --sp-border:      oklch(0.9   0.01  90);
    --sp-font-display: "Fraunces", Georgia, serif;
    --sp-font-sans:    "Inter", system-ui, sans-serif;

    background-color: #f7f8fb;
    color: var(--sp-foreground);
    font-family: var(--sp-font-sans);
    -webkit-font-smoothing: antialiased;
    min-height: 100vh;
    box-sizing: border-box;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.shop-page-shortcode *,
.shop-page-shortcode *::before,
.shop-page-shortcode *::after {
    box-sizing: border-box;
}

/* ── HERO ── */
.shop-page-shortcode .sp-hero-section {
    margin-left: auto;
    margin-right: auto;
    max-width: 1400px;
    padding: 0 1.5rem 0;
}

.shop-page-shortcode .sp-hero-inner {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid var(--sp-border);
    background: linear-gradient(135deg,
        oklch(0.22 0.04 265) 0%,
        oklch(0.22 0.04 265) 50%,
        oklch(0.32 0.08 265) 100%);
    padding: 2rem;
    color: var(--sp-primary-fg);
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-hero-inner {
        padding: 3.5rem;
    }
}

.shop-page-shortcode .sp-hero-bg-img {
    pointer-events: none;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    height: 100%;
    width: 60%;
    object-fit: cover;
    object-position: right;
    opacity: 0.6;
    display: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 55%);
    mask-image: linear-gradient(to right, transparent 0%, black 55%);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-hero-bg-img {
        display: block;
    }
}

.shop-page-shortcode .sp-glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(64px);
    pointer-events: none;
}

.shop-page-shortcode .sp-glow--tr {
    right: -5rem;
    top: -5rem;
    width: 18rem;
    height: 18rem;
    background-color: color-mix(in oklch, var(--sp-accent) 30%, transparent);
}

.shop-page-shortcode .sp-glow--bl {
    left: -2.5rem;
    bottom: -6rem;
    width: 20rem;
    height: 20rem;
    background-color: color-mix(in oklch, var(--sp-accent) 20%, transparent);
}

.shop-page-shortcode .sp-hero-content {
    position: relative;
    max-width: 48rem;
}

.shop-page-shortcode .sp-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 9999px;
    border: 1px solid color-mix(in oklch, var(--sp-accent) 40%, transparent);
    background-color: color-mix(in oklch, var(--sp-accent) 15%, transparent);
    padding: 0.25rem 0.75rem;
    font-size: 13px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-sparkles-icon {
    flex-shrink: 0;
}

.shop-page-shortcode .sp-hero-h1 {
    margin: 1.25rem 0 0;
    font-family: var(--sp-font-display);
    font-size: 21px !important;
    line-height: 1.05;
    letter-spacing: -0.02em;
    color: var(--sp-primary-fg);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-hero-h1 {
        font-size: 36px !important;
    }
}

.shop-page-shortcode .sp-hero-p {
    margin: 1.25rem 0 0;
    font-size: 15px !important;
    color: color-mix(in oklch, var(--sp-primary-fg) 80%, transparent);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-hero-p {
        font-size: 17px !important;
    }
}

/* ── TRUST STRIP ── */
.shop-page-shortcode .sp-trust-section {
    margin-left: auto;
    margin-right: auto;
    max-width: 1400px;
    padding: 1.5rem 1.5rem 0;
}

.shop-page-shortcode .sp-trust-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    border-radius: 18px;
    border: 1px solid var(--sp-border);
    background-color: var(--sp-card);
    padding: 1rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-trust-grid {
        grid-template-columns: repeat(4, 1fr);
        padding: 1.25rem;
    }
}

.shop-page-shortcode .sp-trust-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    border-radius: 12px;
    padding: 0.375rem 0.5rem;
}

.shop-page-shortcode .sp-trust-icon-wrap {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 9999px;
    background-color: color-mix(in oklch, var(--sp-accent) 15%, transparent);
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-trust-label {
    margin: 0;
    font-size: 16px !important;
    font-weight: 600;
    color: var(--sp-foreground);
}

.shop-page-shortcode .sp-trust-sub {
    margin: 0;
    font-size: 13px !important;
    color: var(--sp-muted-fg);
}

/* ── PRODUCTS ── */
.shop-page-shortcode .sp-products-section {
    margin-left: auto;
    margin-right: auto;
    max-width: 1400px;
    padding: 3rem 1.5rem;
}

.shop-page-shortcode .sp-products-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 2rem;
}

.shop-page-shortcode .sp-section-eyebrow {
    margin: 0;
    font-size: 13px !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-section-h2 {
    margin: 0.25rem 0 0;
    font-family: var(--sp-font-display);
    font-size: 34px !important;
    letter-spacing: -0.02em;
    color: var(--sp-foreground);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-section-h2 {
        font-size: 41px !important;
    }
}

.shop-page-shortcode .sp-product-count {
    display: none;
    margin: 0;
    font-size: 16px !important;
    color: var(--sp-muted-fg);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-product-count {
        display: block;
    }
}

.shop-page-shortcode .sp-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 1024px) {
    .shop-page-shortcode .sp-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ── PRODUCT CARD ── */
.shop-page-shortcode .sp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 20px;
    border: 1px solid var(--sp-border);
    background-color: var(--sp-card);
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    transition: transform 300ms ease, box-shadow 300ms ease;
}

.shop-page-shortcode .sp-card:hover {
    transform: translateY(-0.25rem);
    box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
}

.shop-page-shortcode .sp-card-badge {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 10;
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    background-color: var(--sp-foreground);
    padding: 0.25rem 0.75rem;
    font-size: 11px !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--sp-background);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
}

/* Card image area */
.shop-page-shortcode .sp-card-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: var(--sp-muted);
    display: block;
}

.shop-page-shortcode .sp-card-img-link {
    position: absolute;
    inset: 0;
    display: block;
}

.shop-page-shortcode .sp-card-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 500ms ease;
}

.shop-page-shortcode .sp-card:hover .sp-card-img {
    transform: scale(1.1) rotate(-2deg);
}

/* Thumbnails */
.shop-page-shortcode .sp-card-thumbs {
    position: absolute;
    bottom: 0.75rem;
    right: 0.75rem;
    z-index: 10;
    display: flex;
    gap: 0.375rem;
}

.shop-page-shortcode .sp-thumb {
    width: 3rem;
    height: 3rem;
    overflow: hidden;
    border-radius: 0.375rem;
    border: 1px solid var(--sp-border);
    background-color: var(--sp-card);
    padding: 0;
    cursor: pointer;
    transition: transform 150ms ease, border-color 150ms ease;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

.shop-page-shortcode .sp-thumb:hover {
    transform: scale(1.1);
    border-color: var(--sp-accent);
}

.shop-page-shortcode .sp-thumb--active {
    border-color: var(--sp-accent);
    box-shadow: 0 0 0 2px var(--sp-accent);
}

.shop-page-shortcode .sp-thumb-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Card body */
.shop-page-shortcode .sp-card-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 1.5rem;
}

.shop-page-shortcode .sp-stars-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.shop-page-shortcode .sp-stars {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.shop-page-shortcode .sp-star {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1rem;
    height: 1rem;
}

.shop-page-shortcode .sp-star svg {
    width: 1rem;
    height: 1rem;
}

.shop-page-shortcode .sp-star--filled svg {
    fill: var(--sp-accent);
    stroke: var(--sp-accent);
}

.shop-page-shortcode .sp-star--empty svg {
    fill: none;
    stroke: color-mix(in oklch, var(--sp-muted-fg) 30%, transparent);
}

.shop-page-shortcode .sp-trustpilot-link {
    font-size: 13px !important;
    font-weight: 500;
    color: var(--sp-muted-fg);
    text-decoration: underline;
    text-underline-offset: 4px;
    transition: color 150ms ease;
}

.shop-page-shortcode .sp-trustpilot-link:hover {
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-card-title {
    display: block;
    margin-top: 0.75rem;
    font-family: var(--sp-font-display);
    font-size: 23px !important;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--sp-foreground);
    text-decoration: none;
    transition: color 150ms ease;
}

.shop-page-shortcode .sp-card-title:hover {
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-card-tagline {
    margin: 0.5rem 0 0;
    font-size: 14px !important;
    line-height: 1.625;
    color: var(--sp-muted-fg);
}

.shop-page-shortcode .sp-card-bullets {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.shop-page-shortcode .sp-bullet {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 14px !important;
    color: var(--sp-foreground);
}

.shop-page-shortcode .sp-check-icon {
    flex-shrink: 0;
    width: 1rem;
    height: 1rem;
    color: var(--sp-accent);
}

.shop-page-shortcode .sp-card-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--sp-border);
}

.shop-page-shortcode .sp-card-price {
    margin: 0;
    font-family: var(--sp-font-display);
    font-size: 28px !important;
    font-weight: 700;
    color: var(--sp-foreground);
    letter-spacing: -0.02em;
}

.shop-page-shortcode .sp-compare-at {
    margin: 0;
    font-size: 13px !important;
    color: var(--sp-muted-fg);
    text-decoration: line-through;
}

.shop-page-shortcode .sp-shop-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    background-color: var(--sp-foreground);
    padding: 0.625rem 1.25rem;
    font-size: 16px !important;
    font-weight: 700;
    color: var(--sp-background);
    text-decoration: none;
    transition: transform 150ms ease, background-color 150ms ease, color 150ms ease;
    white-space: nowrap;
}

.shop-page-shortcode .sp-shop-btn:hover {
    transform: scale(1.04);
    background-color: var(--sp-accent);
    color: var(--sp-accent-fg);
}

/* ── SOCIAL PROOF ── */
.shop-page-shortcode .sp-social-section {
    margin-left: auto;
    margin-right: auto;
    max-width: 1400px;
    padding: 0 1.5rem 3rem;
}

.shop-page-shortcode .sp-social-inner {
    border-radius: 22px;
    border: 1px solid var(--sp-border);
    background-color: var(--sp-card);
    padding: 2rem;
    box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-social-inner {
        padding: 2.5rem;
    }
}

.shop-page-shortcode .sp-social-header {
    text-align: center;
}

.shop-page-shortcode .sp-reviews-grid {
    margin-top: 2rem;
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-reviews-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

.shop-page-shortcode .sp-review-card {
    margin: 0;
    border-radius: 16px;
    background-color: var(--sp-secondary);
    padding: 1.25rem;
}

.shop-page-shortcode .sp-review-quote {
    margin: 0.75rem 0 0;
    font-size: 16px !important;
    line-height: 1.625;
    color: var(--sp-foreground);
    font-style: normal;
}

.shop-page-shortcode .sp-review-name {
    display: block;
    margin-top: 0.75rem;
    font-size: 13px !important;
    font-weight: 600;
    color: var(--sp-muted-fg);
}

/* ── FINAL CTA ── */
.shop-page-shortcode .sp-cta-section {
    margin-left: auto;
    margin-right: auto;
    max-width: 1400px;
    padding: 0 1.5rem 0;
}

.shop-page-shortcode .sp-cta-inner {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    background-color: var(--sp-accent);
    padding: 2.5rem;
    text-align: center;
    color: var(--sp-accent-fg);
    margin-bottom: 5px;
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-cta-inner {
        padding: 3.5rem;
    }
}

.shop-page-shortcode .sp-cta-glow {
    position: absolute;
    inset: 0;
    opacity: 0.2;
    background-image:
        radial-gradient(circle at 30% 20%, white 0%, transparent 40%),
        radial-gradient(circle at 70% 80%, white 0%, transparent 40%);
    pointer-events: none;
}

.shop-page-shortcode .sp-cta-content {
    position: relative;
}

.shop-page-shortcode .sp-cta-h2 {
    margin: 0;
    font-family: var(--sp-font-display);
    font-size: 34px !important;
    letter-spacing: -0.02em;
    color: var(--sp-accent-fg);
}

@media (min-width: 768px) {
    .shop-page-shortcode .sp-cta-h2 {
        font-size: 41px !important;
    }
}

.shop-page-shortcode .sp-cta-p {
    margin: 0.75rem auto 0;
    max-width: 36rem;
    font-size: 18px !important;
    opacity: 0.9;
    color: var(--sp-accent-fg);
}

.shop-page-shortcode .sp-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 1.5rem;
    border-radius: 9999px;
    background-color: var(--sp-foreground);
    padding: 0.75rem 2rem;
    font-size: 18px !important;
    font-weight: 700;
    color: var(--sp-background);
    text-decoration: none;
    transition: transform 150ms ease;
}

.shop-page-shortcode .sp-cta-btn:hover {
    transform: scale(1.03);
}

/* ── Responsive tweaks ── */
@media (max-width: 430px) {
    .shop-page-shortcode .sp-hero-inner {
        border-radius: 16px;
    }
    .shop-page-shortcode .sp-card-thumbs {
        gap: 0.25rem;
    }
    .shop-page-shortcode .sp-thumb {
        width: 2.5rem;
        height: 2.5rem;
    }
    .shop-page-shortcode .sp-trust-grid {
        grid-template-columns: 1fr;
    }
}
