/* ═══════════════════════════════════════════════════════
   Joe Photos — Frontend Styles
   Wildlife Photography Shop
═══════════════════════════════════════════════════════ */

:root {
    /* ── Brand palette — Joe Photography logo ── */
    --jp-primary:    #F07840;
    --jp-secondary:  #D96828;
    --jp-fg:         #111111;
    --jp-site-bg:    #ffffff;
    --jp-contrast:   #111111;

    /* ── Dark gallery / shop page surface ── */
    --jp-bg:         #111111;
    --jp-bg2:        #1a1a1a;
    --jp-surface:    #1e1e1e;
    --jp-surface2:   #252525;
    --jp-card-bg:    #181818;

    /* ── Accent ── */
    --jp-green:      #F07840;
    --jp-green-lt:   #F5905A;
    --jp-green-glow: rgba(240,120,64,.25);
    --jp-gold:       #D96828;
    --jp-gold-lt:    #E07830;

    /* ── Text / chrome ── */
    --jp-text:       #f0f0f0;
    --jp-text-muted: #999999;
    --jp-border:     rgba(255,255,255,.10);

    /* ── Utility ── */
    --jp-radius:     10px;
    --jp-radius-lg:  16px;
    --jp-shadow:     0 4px 24px rgba(0,0,0,.55);
    --jp-shadow-lg:  0 12px 48px rgba(0,0,0,.7);
    --jp-transition: .25s cubic-bezier(.4,0,.2,1);
}

/* ── Reset shop page colours ── */
.jp-shop-wrap,
.jp-shop-wrap * { box-sizing: border-box; }

body.woocommerce-shop,
body.tax-wl_species,
body.tax-wl_location,
body.tax-wl_habitat {
    background: var(--jp-bg);
    color: var(--jp-text);
}

body.woocommerce-shop .site-main,
body.tax-wl_species .site-main,
body.tax-wl_location .site-main,
body.tax-wl_habitat .site-main {
    max-width: 100%;
    padding: 0;
    margin: 0;
}

body.woocommerce-shop .jps-header__brand,
body.tax-wl_species .jps-header__brand,
body.tax-wl_location .jps-header__brand,
body.tax-wl_habitat .jps-header__brand {
    display: none;
}

/* ══════════════════════════════════
   HERO
══════════════════════════════════ */
.jp-shop-hero {
    position: relative;
    min-height: 520px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #111111 0%, #1a0d06 50%, #0d0d0d 100%);
}
.jp-hero-bg {
    position: absolute; inset: 0;
    background:
        url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 400"><defs><radialGradient id="g" cx="50%25" cy="50%25" r="60%25"><stop offset="0%25" stop-color="%23F07840" stop-opacity="0.12"/><stop offset="100%25" stop-color="%23000" stop-opacity="0"/></radialGradient></defs><rect fill="url(%23g)" width="800" height="400"/></svg>')
        center/cover no-repeat;
    opacity: .7;
}
/* Animated light streaks */
.jp-hero-bg::after {
    content:'';
    position: absolute; inset: 0;
    background: repeating-linear-gradient(
        110deg,
        transparent 0, transparent 200px,
        rgba(255,255,255,.03) 200px, rgba(255,255,255,.03) 201px
    );
}
.jp-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 60px 24px 80px;
    max-width: 760px;
}
.jp-hero-eyebrow {
    font-size: 12px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--jp-gold);
    margin: 0 0 16px;
    font-weight: 600;
}
.jp-hero-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    color: #fff;
    margin: 0 0 16px;
    text-shadow: 0 2px 24px rgba(0,0,0,.6);
}
.jp-hero-sub {
    font-size: 1.05rem;
    color: var(--jp-text-muted);
    max-width: 540px;
    margin: 0 auto 28px;
    line-height: 1.7;
}
.jp-hero-stats {
    display: flex;
    gap: 28px;
    justify-content: center;
    flex-wrap: wrap;
}
.jp-hero-stats span {
    font-size: 13px;
    color: var(--jp-text-muted);
    border: 1px solid var(--jp-border);
    padding: 6px 16px;
    border-radius: 24px;
    background: rgba(255,255,255,.04);
}
.jp-hero-scroll-hint {
    position: absolute;
    bottom: 20px; left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--jp-text-muted);
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    animation: wl-bob 2s ease-in-out infinite;
}
@keyframes wl-bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* ══════════════════════════════════
   FILTER BAR
══════════════════════════════════ */
.jp-filter-bar {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(0,0,0,.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--jp-border);
    padding: 0;
}
.jp-filter-inner {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 28px;
    flex-wrap: wrap;
    max-width: 1600px;
    margin: 0 auto;
}
.jp-filter-group {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius);
    padding: 6px 12px;
    transition: border-color var(--jp-transition);
}
.jp-filter-group:focus-within { border-color: var(--jp-green); }
.jp-filter-icon { font-size: 14px; }
.jp-filter-select {
    background: transparent;
    border: none;
    color: var(--jp-text);
    font-size: 13px;
    cursor: pointer;
    outline: none;
    padding-right: 4px;
}
.jp-filter-select option { background: #1a1a1a; color: #f0f0f0; }
.jp-filter-sort .jp-filter-select { color: var(--jp-text-muted); }
.jp-filter-clear {
    background: transparent;
    border: 1px solid rgba(200,60,60,.4);
    color: #e07070;
    border-radius: 6px;
    padding: 6px 12px;
    font-size: 12px;
    cursor: pointer;
    transition: all var(--jp-transition);
}
.jp-filter-clear:hover { background: rgba(200,60,60,.15); }
.jp-bar-scrolled { box-shadow: 0 4px 20px rgba(0,0,0,.4); }
.jp-grid-fading { opacity: .4; transition: opacity .15s; }

.jp-results-count {
    padding: 6px 28px;
    font-size: 12px;
    color: var(--jp-text-muted);
    border-top: 1px solid var(--jp-border);
    text-align: center;
}

/* ══════════════════════════════════
   PRODUCT GRID
══════════════════════════════════ */
.jp-shop-body {
    max-width: 1600px;
    margin: 0 auto;
    padding: 40px 28px 60px;
}
.jp-product-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
@media (max-width: 1200px) { .jp-product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 900px)  { .jp-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .jp-product-grid { grid-template-columns: 1fr; } }

/* ══════════════════════════════════
   PRODUCT CARD
══════════════════════════════════ */
.jp-product-card {
    background: var(--jp-card-bg);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--jp-transition), box-shadow var(--jp-transition), border-color var(--jp-transition);
    position: relative;
}
.jp-product-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--jp-shadow-lg);
    border-color: rgba(255,255,255,.18);
}

/* Image area */
.jp-card-img-wrap {
    position: relative;
    overflow: hidden;
    aspect-ratio: 3/2;
    background: #111111;
}
.jp-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s cubic-bezier(.4,0,.2,1), filter .3s;
    filter: brightness(.95) saturate(1.1);
}
.jp-product-card:hover .jp-card-img {
    transform: scale(1.06);
    filter: brightness(1.05) saturate(1.2);
}

/* Badges top-left */
.jp-card-badges {
    position: absolute;
    top: 10px; left: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    z-index: 3;
}
.jp-badge {
    font-size: 10px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    letter-spacing: .5px;
    text-transform: uppercase;
}
.jp-badge-dl    { background: var(--jp-primary); color: #fff; }
.jp-badge-print { background: var(--jp-secondary); color: #fff; }
.jp-badge-lic   { background: rgba(80,140,200,.85); color: #fff; }

/* Wishlist top-right */
.jp-card-wishlist {
    position: absolute;
    top: 10px; right: 10px;
    z-index: 4;
    background: rgba(0,0,0,.5);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 50%;
    width: 34px; height: 34px;
    font-size: 16px;
    color: #fff;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background var(--jp-transition), color var(--jp-transition);
    backdrop-filter: blur(4px);
}
.jp-card-wishlist:hover,
.jp-card-wishlist.wl-wishlisted { background: rgba(220,50,50,.7); color: #fff; border-color: transparent; }

/* Hover overlay */
.jp-card-hover-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.1) 60%, transparent 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 20px;
    opacity: 0;
    transition: opacity var(--jp-transition);
    z-index: 2;
}
.jp-product-card:hover .jp-card-hover-overlay { opacity: 1; }
.jp-hover-meta { margin-bottom: 12px; display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.jp-hover-detail {
    font-size: 11px;
    color: rgba(255,255,255,.8);
    background: rgba(0,0,0,.4);
    padding: 3px 8px;
    border-radius: 4px;
    backdrop-filter: blur(4px);
}
.jp-hover-btn {
    display: inline-block;
    background: var(--jp-green);
    color: #fff;
    padding: 10px 24px;
    border-radius: var(--jp-radius);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: .5px;
    transition: background var(--jp-transition);
    text-transform: uppercase;
}
.jp-hover-btn:hover { background: var(--jp-green-lt); color: #fff; }

/* Card body */
.jp-card-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.jp-card-taxonomy {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.jp-card-species {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--jp-green-lt);
    text-decoration: none;
    background: rgba(255,255,255,.09);
    padding: 2px 8px;
    border-radius: 3px;
}
.jp-card-species:hover { background: rgba(255,255,255,.14); }
.jp-card-location {
    font-size: 11px;
    color: var(--jp-text-muted);
    text-decoration: none;
}
.jp-card-location:hover { color: var(--jp-text); }
.jp-card-title {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}
.jp-card-title a { color: var(--jp-text); text-decoration: none; }
.jp-card-title a:hover { color: var(--jp-green-lt); }
.jp-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 8px;
    border-top: 1px solid var(--jp-border);
}
.jp-card-price {
    font-size: 15px;
    font-weight: 700;
    color: var(--jp-gold);
}
.jp-card-price .woocommerce-Price-currencySymbol { font-size: 12px; }
.jp-card-cta {
    font-size: 12px;
    color: var(--jp-green-lt);
    text-decoration: none;
    font-weight: 600;
}
.jp-card-cta:hover { color: #fff; }

/* ══════════════════════════════════
   LOAD MORE
══════════════════════════════════ */
.jp-load-more-wrap { text-align: center; margin-top: 40px; }
.jp-load-more-btn {
    background: transparent;
    border: 2px solid var(--jp-green);
    color: var(--jp-green-lt);
    padding: 14px 40px;
    border-radius: var(--jp-radius);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    letter-spacing: .5px;
    text-transform: uppercase;
    transition: all var(--jp-transition);
}
.jp-load-more-btn:hover {
    background: var(--jp-green);
    color: #fff;
    box-shadow: 0 0 24px var(--jp-green-glow);
}
.jp-grid-loading { text-align: center; padding: 60px 0; }
.jp-spinner-wrap { display: inline-flex; flex-direction: column; align-items: center; gap: 12px; color: var(--jp-text-muted); font-size: 13px; }
.jp-spinner {
    width: 40px; height: 40px;
    border: 3px solid rgba(255,255,255,.12);
    border-top-color: var(--jp-green);
    border-radius: 50%;
    animation: wl-spin .8s linear infinite;
}
@keyframes wl-spin { to { transform: rotate(360deg); } }
.jp-no-results { grid-column: 1 / -1; text-align: center; color: var(--jp-text-muted); padding: 80px 0; font-size: 16px; }

/* ══════════════════════════════════
   SPECIES GRID
══════════════════════════════════ */
.jp-taxonomy-section {
    background: var(--jp-bg2);
    border-top: 1px solid var(--jp-border);
    padding: 60px 0;
}
.jp-taxonomy-inner { max-width: 1600px; margin: 0 auto; padding: 0 28px; }
.jp-section-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--jp-text);
    margin: 0 0 28px;
    text-align: center;
}
.jp-taxonomy-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px;
}
.jp-tax-card {
    position: relative;
    border-radius: var(--jp-radius);
    overflow: hidden;
    aspect-ratio: 1;
    display: block;
    text-decoration: none;
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    transition: transform var(--jp-transition), box-shadow var(--jp-transition);
}
.jp-tax-card:hover { transform: translateY(-3px); box-shadow: var(--jp-shadow); }
.jp-tax-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.jp-tax-card:hover .jp-tax-img { transform: scale(1.08); }
.jp-tax-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 48px; }
.jp-tax-overlay {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.85));
    padding: 24px 12px 10px;
    display: flex; flex-direction: column; gap: 2px;
}
.jp-tax-name { font-size: 14px; font-weight: 700; color: #fff; display: block; }
.jp-tax-count { font-size: 11px; color: rgba(255,255,255,.65); }

/* ══════════════════════════════════
   LOCATION CHIPS
══════════════════════════════════ */
.jp-location-section { background: var(--jp-bg); }
.jp-location-list { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.jp-location-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 18px;
    border: 1px solid var(--jp-border);
    border-radius: 24px;
    color: var(--jp-text-muted);
    text-decoration: none;
    font-size: 13px;
    background: var(--jp-surface);
    transition: all var(--jp-transition);
}
.jp-location-chip span { background: var(--jp-surface2); padding: 1px 7px; border-radius: 10px; font-size: 11px; color: var(--jp-green-lt); }
.jp-location-chip:hover { border-color: var(--jp-green); color: var(--jp-text); background: var(--jp-surface2); }

/* ══════════════════════════════════
   PRINT OPTIONS — Product page
══════════════════════════════════ */
.jp-print-options {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    padding: 20px 22px;
    margin: 18px 0;
}
.jp-print-section { margin-bottom: 18px; }
.jp-print-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--jp-text-muted);
    margin: 0 0 10px;
}

/* Size buttons */
.jp-size-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.jp-size-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 72px;
    padding: 10px 14px;
    border: 1.5px solid var(--jp-border);
    border-radius: var(--jp-radius);
    background: var(--jp-card-bg);
    color: var(--jp-text);
    cursor: pointer;
    transition: all var(--jp-transition);
    font-family: inherit;
}
.jp-size-btn:hover { border-color: var(--jp-green); background: rgba(255,255,255,.07); }
.jp-size-btn.active {
    border-color: var(--jp-green);
    background: rgba(255,255,255,.10);
    box-shadow: 0 0 12px var(--jp-green-glow);
    color: var(--jp-green-lt);
}
.jp-size-name { font-size: 16px; font-weight: 800; letter-spacing: .5px; line-height: 1; }
.jp-size-dims { font-size: 10px; color: var(--jp-text-muted); margin-top: 3px; white-space: nowrap; }
.jp-size-btn.active .jp-size-dims { color: var(--jp-green); }

/* Material buttons */
.jp-material-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.jp-material-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border: 1.5px solid var(--jp-border);
    border-radius: var(--jp-radius);
    background: var(--jp-card-bg);
    color: var(--jp-text);
    cursor: pointer;
    font-size: 13px;
    font-family: inherit;
    transition: all var(--jp-transition);
}
.jp-material-btn:hover { border-color: var(--jp-gold); background: rgba(255,255,255,.06); }
.jp-material-btn.active {
    border-color: var(--jp-gold);
    background: rgba(255,255,255,.09);
    color: var(--jp-gold-lt);
}
.jp-mat-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.jp-mat-icon svg { display: block; transition: stroke .2s; }
.jp-mat-name { font-weight: 600; }

/* Price row */
.jp-print-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    border-top: 1px solid var(--jp-border);
    margin-top: 4px;
}
.jp-print-price-label { font-size: 13px; color: var(--jp-text-muted); font-weight: 600; }
.jp-print-price-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--jp-gold);
    transition: color .2s;
}

/* ══════════════════════════════════
   SHARED COMPONENTS (Gallery, Wishlist, etc.)
══════════════════════════════════ */

/* Shortcode gallery */
.wildlens-gallery-wrap { width: 100%; }
.wildlens-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 20px; }
.wildlens-cols-2 { grid-template-columns: repeat(2, 1fr); }
.wildlens-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px)  { .wildlens-gallery-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .wildlens-gallery-grid, .wildlens-cols-2, .wildlens-cols-4 { grid-template-columns: 1fr; } }

.wildlens-gallery-item {
    position: relative; overflow: hidden;
    border-radius: var(--jp-radius);
    box-shadow: var(--jp-shadow);
    background: #000;
    transition: transform .2s;
}
.wildlens-gallery-item:hover { transform: translateY(-3px); }
.wildlens-gallery-img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.wildlens-gallery-overlay {
    position: absolute; bottom: 0; left: 0; right: 0;
    background: linear-gradient(transparent, rgba(0,0,0,.75));
    padding: 12px 14px; color: #fff; pointer-events: none;
}
.wildlens-gallery-title  { display: block; font-weight: 700; font-size: 13px; }
.wildlens-gallery-actions { display: flex; justify-content: space-between; align-items: center; padding: 8px 10px; background: var(--jp-card-bg); border-top: 1px solid var(--jp-border); }
.wildlens-filter-bar { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.wildlens-filter { padding: 8px 14px; border: 1px solid var(--jp-border); border-radius: var(--jp-radius); font-size: 14px; background: var(--jp-surface); color: var(--jp-text); cursor: pointer; }

/* Buttons */
.wildlens-btn { display: inline-block; padding: 7px 14px; border-radius: var(--jp-radius); font-size: 12px; font-weight: 600; text-decoration: none; cursor: pointer; border: none; transition: background .2s; }
.wildlens-btn-primary { background: var(--jp-green); color: #fff !important; text-transform: capitalize; }
.wildlens-btn-primary:hover { background: var(--jp-green-lt); color: #fff !important; }
.wildlens-wishlist-btn { background: transparent; border: 1px solid var(--jp-border); border-radius: 50%; width: 32px; height: 32px; font-size: 18px; cursor: pointer; line-height: 1; padding: 0; transition: color .2s, border-color .2s; color: var(--jp-text-muted); }
.wildlens-wishlist-btn:hover { color: #e00; border-color: #e00; }

/* EXIF Table */
.wildlens-exif-table { width: 100%; border-collapse: collapse; margin: 16px 0; }
.wildlens-exif-table th { width: 180px; padding: 8px 12px; background: var(--jp-surface); font-weight: 600; text-align: left; color: var(--jp-text-muted); }
.wildlens-exif-table td { padding: 8px 12px; border-bottom: 1px solid var(--jp-border); color: var(--jp-text); }

/* Related Products */
.wildlens-related-products { margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--jp-border); }
.wildlens-related-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 16px; }
@media (max-width: 768px) { .wildlens-related-grid { grid-template-columns: repeat(2, 1fr); } }
.wildlens-related-item { text-align: center; }
.wildlens-related-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--jp-radius); }
.wildlens-related-item span { display: block; font-size: 12px; margin-top: 6px; color: var(--jp-text-muted); }

/* License Selector */
.wildlens-license-selector { border: 1px solid var(--jp-border); border-radius: var(--jp-radius); padding: 16px; margin: 16px 0; background: var(--jp-surface); }
.wildlens-license-selector h4 { color: var(--jp-text-muted); font-size: 12px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 10px; }
.wildlens-license-selector select { width: 100%; padding: 8px; border: 1px solid var(--jp-border); border-radius: 4px; background: var(--jp-card-bg); color: var(--jp-text); }
.wildlens-license-desc { font-size: 13px; color: var(--jp-text-muted); margin: 8px 0 0; background: rgba(255,255,255,.06); border-left: 3px solid var(--jp-green); padding: 8px 12px; border-radius: 0 4px 4px 0; }

/* Email Gate */
.wildlens-email-gate { background: rgba(0,0,0,.85); position: relative; margin: 24px 0; border-radius: var(--jp-radius); padding: 32px; text-align: center; color: #fff; backdrop-filter: blur(8px); border: 1px solid var(--jp-border); }
.wildlens-email-gate h3 { color: #fff; }
.wildlens-email-gate input { padding: 10px 14px; border-radius: 4px; border: none; width: 260px; margin-right: 8px; font-size: 14px; }
.wildlens-gate-note { font-size: 11px; opacity: .7; margin-top: 8px; }

/* Wishlist Grid */
.wildlens-wishlist-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 600px) { .wildlens-wishlist-grid { grid-template-columns: 1fr; } }
.wildlens-wishlist-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--jp-radius); }

/* Bulk Form */
.wildlens-bulk-form { max-width: 640px; }
.wildlens-form-row { margin-bottom: 16px; }
.wildlens-form-row label { display: block; font-weight: 600; margin-bottom: 4px; color: var(--jp-text-muted); }
.wildlens-input { width: 100%; padding: 10px 14px; border: 1px solid var(--jp-border); border-radius: var(--jp-radius); font-size: 14px; background: var(--jp-surface); color: var(--jp-text); }
.wildlens-form-feedback { padding: 12px 16px; border-radius: var(--jp-radius); }

/* Archive Intro */
.wildlens-archive-intro { background: rgba(255,255,255,.06); border-left: 4px solid var(--jp-green); padding: 16px 20px; margin-bottom: 24px; border-radius: 0 var(--jp-radius) var(--jp-radius) 0; }
.wildlens-cross-links { margin: 12px 0; font-size: 14px; }
.wildlens-cross-links a { color: var(--jp-green-lt); text-decoration: none; }
.wildlens-internal-link a { color: var(--jp-green-lt); font-size: 14px; }

/* Protected images */
.wl-protected-img { -webkit-user-drag: none; user-drag: none; -webkit-user-select: none; user-select: none; pointer-events: none; }
.wildlens-lightbox-link { display: block; pointer-events: auto; }

/* Gallery loading / spinner */
.wildlens-gallery-loading { text-align: center; padding: 20px; }
.wildlens-spinner { display: inline-block; width: 32px; height: 32px; border: 3px solid rgba(255,255,255,.12); border-top-color: var(--jp-green); border-radius: 50%; animation: wl-spin 0.8s linear infinite; }
.wildlens-no-results { text-align: center; color: var(--jp-text-muted); padding: 40px; }

/* ═══════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE — MODERN BRIGHT DESIGN
═══════════════════════════════════════════════════════ */

/* Design tokens scoped to single product — Joe Photography brand */
.wsp-page {
    --wsp-bg:         #f5f5f5;
    --wsp-surface:    #ffffff;
    --wsp-surface2:   #f0f0f0;
    --wsp-green:      #F07840;
    --wsp-green-lt:   #F5905A;
    --wsp-green-glow: rgba(240,120,64,.15);
    --wsp-gold:       #D96828;
    --wsp-gold-lt:    #E07830;
    --wsp-text:       #111111;
    --wsp-muted:      #444444;
    --wsp-border:     rgba(0,0,0,.09);
    --wsp-radius:     10px;
    --wsp-radius-lg:  16px;
    --wsp-shadow:     0 2px 16px rgba(0,0,0,.08);
    --wsp-shadow-lg:  0 8px 40px rgba(0,0,0,.12);
    --wsp-t:          .22s cubic-bezier(.4,0,.2,1);
}

body.single-product,
body.single-product .site-main,
body.single-product #main {
    background: var(--wsp-bg, #f5f5f5);
    color: var(--wp--preset--color--foreground, #111111);
    max-width: 100%;
    padding: 0;
    margin: 0;
}

/* ── Page shell ── */
.wsp-page { background: var(--wsp-bg); color: var(--wsp-text); font-family: inherit; }

/* ── Sticky bar ── */
.wsp-sticky {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    background: rgba(255,255,255,.97);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--wsp-border);
    box-shadow: 0 2px 20px rgba(0,0,0,.1);
    transform: translateY(-100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
}
.wsp-sticky.visible { transform: translateY(0); }
.wsp-sticky-inner {
    max-width: 1400px; margin: 0 auto; padding: 10px 28px;
    display: flex; align-items: center; gap: 16px;
}
.wsp-sticky-back { font-size: 13px; color: var(--wsp-muted); text-decoration: none; white-space: nowrap; }
.wsp-sticky-back:hover { color: var(--wsp-green); }
.wsp-sticky-title { flex: 1; font-size: 14px; font-weight: 700; color: var(--wsp-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wsp-sticky-divider { width: 1px; height: 20px; background: var(--wsp-border); }
.wsp-sticky-price { font-size: 16px; font-weight: 900; color: var(--wsp-gold); white-space: nowrap; }
.wsp-sticky-btn {
    padding: 9px 22px; background: var(--wsp-green); color: #fff; border-radius: 8px;
    font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap;
    transition: background var(--wsp-t), box-shadow var(--wsp-t);
}
.wsp-sticky-btn:hover { background: var(--wsp-green-lt); box-shadow: 0 4px 16px var(--wsp-green-glow); color: #fff; }

/* ── Breadcrumb ── */
.wsp-bc { background: var(--wsp-surface); border-bottom: 1px solid var(--wsp-border); }
.wsp-bc-inner {
    max-width: 1400px; margin: 0 auto; padding: 10px 28px;
    display: flex; align-items: center; gap: 8px;
    font-size: 12px; color: var(--wsp-muted); flex-wrap: wrap;
}
.wsp-bc-inner a { color: var(--wsp-muted); text-decoration: none; }
.wsp-bc-inner a:hover { color: var(--wsp-green); }
.wsp-bc-inner span:last-child { color: var(--wsp-text); font-weight: 600; }

/* ── Authenticity banner ── */
.wsp-auth-banner {
    background: linear-gradient(90deg, #f0f0f0 0%, #f5f5f5 50%, #f0f0f0 100%);
    border-bottom: 1px solid rgba(0,0,0,.10);
}
.wsp-auth-inner {
    max-width: 1400px; margin: 0 auto; padding: 10px 28px;
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 8px 20px;
}
.wsp-auth-item {
    display: inline-flex; align-items: center; gap: 6px;
    font-size: 12px; font-weight: 600; color: var(--wsp-green); letter-spacing: .2px;
}
.wsp-auth-sep { color: rgba(0,0,0,.18); font-size: 16px; }
.wsp-auth-noai { color: #b05000; }
.wsp-auth-noai svg { color: #b05000; }

/* ── Hero grid ── */
.wsp-hero {
    display: grid;
    grid-template-columns: 1fr 460px;
    gap: 48px;
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 28px 56px;
    align-items: start;
}
@media (max-width: 1100px) { .wsp-hero { grid-template-columns: 1fr; gap: 32px; } }

/* Image column */
.wsp-img-col { display: flex; flex-direction: column; gap: 14px; position: sticky; top: 72px; }
@media (max-width: 1100px) { .wsp-img-col { position: static; } }

.wsp-img-frame {
    position: relative;
    border-radius: var(--wsp-radius-lg);
    overflow: hidden;
    background: #f0f0f0;
    border: 1px solid var(--wsp-border);
    box-shadow: var(--wsp-shadow-lg);
    aspect-ratio: 4/3;
    cursor: zoom-in;
}
.wsp-main-img {
    width: 100%; height: 100%; object-fit: cover; display: block;
    transition: transform .5s cubic-bezier(.4,0,.2,1);
}
.wsp-img-frame:hover .wsp-main-img { transform: scale(1.025); }
.wsp-img-zoom-hint {
    position: absolute; bottom: 14px; right: 14px;
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(0,0,0,.12);
    border-radius: 8px;
    padding: 7px 12px;
    font-size: 12px; font-weight: 600; color: var(--wsp-text);
    display: flex; align-items: center; gap: 6px;
    opacity: 0; transition: opacity var(--wsp-t);
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.wsp-img-frame:hover .wsp-img-zoom-hint { opacity: 1; }
.wsp-img-badge {
    position: absolute; top: 12px; left: 12px;
    background: rgba(0,0,0,.55); backdrop-filter: blur(4px);
    color: #fff; font-size: 10px; font-weight: 700;
    padding: 4px 10px; border-radius: 5px;
    display: flex; align-items: center; gap: 5px; letter-spacing: .3px;
}

/* EXIF row */
.wsp-exif-row { display: flex; flex-wrap: wrap; gap: 6px; }
.wsp-exif-chip {
    display: inline-flex; align-items: center; gap: 5px;
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: 6px; padding: 5px 10px;
    font-size: 11px; font-weight: 600; color: var(--wsp-muted);
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.wsp-ec-cam { color: var(--wsp-green); border-color: rgba(0,0,0,.12); background: rgba(0,0,0,.04); }

/* Provenance strip */
.wsp-provenance {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px;
}
.wsp-prov-item {
    display: flex; align-items: flex-start; gap: 10px;
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius); padding: 12px 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.wsp-prov-item svg { color: var(--wsp-green); flex-shrink: 0; margin-top: 2px; }
.wsp-prov-item strong { display: block; font-size: 12px; font-weight: 700; color: var(--wsp-text); }
.wsp-prov-item span { font-size: 11px; color: var(--wsp-muted); line-height: 1.4; }
.wsp-prov-noai svg { color: #b05000; }
.wsp-prov-noai strong { color: #8b3e00; }

/* Info column */
.wsp-info-col { display: flex; flex-direction: column; gap: 20px; }

/* Tags */
.wsp-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.wsp-tag {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 5px 12px; border-radius: 20px;
    font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
    text-decoration: none; transition: all var(--wsp-t);
}
.wsp-tag-sp  { background: rgba(0,0,0,.08); color: var(--wsp-green); border: 1px solid rgba(0,0,0,.12); }
.wsp-tag-sp:hover { background: rgba(0,0,0,.12); }
.wsp-tag-loc { background: rgba(0,0,0,.07); color: var(--wsp-gold); border: 1px solid rgba(0,0,0,.12); }
.wsp-tag-loc:hover { background: rgba(0,0,0,.12); }
.wsp-tag-wild { background: #f0f0f0; color: var(--wsp-green); border: 1px solid #dddddd; cursor: default; }

/* Title */
.wsp-title {
    font-size: clamp(1.6rem, 3.2vw, 2.4rem);
    font-weight: 900;
    line-height: 1.15;
    color: #111;
    margin: 0;
    letter-spacing: -.02em;
}

/* Byline */
.wsp-byline {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 16px;
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius); box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.wsp-byline-avatar { font-size: 24px; line-height: 1; }
.wsp-byline-name { display: block; font-size: 13px; font-weight: 700; color: var(--wsp-text); text-decoration: none; }
.wsp-byline-name:hover { color: var(--wsp-green); text-decoration: underline; }
.wsp-byline-sub  { display: block; font-size: 11px; color: var(--wsp-muted); }
.wsp-byline-date { margin-left: auto; font-size: 12px; color: var(--wsp-muted); white-space: nowrap; }

/* Excerpt */
.wsp-excerpt { font-size: 15px; line-height: 1.7; color: #333; margin: 0; }

/* ── Format tabs ── */
.wsp-tabs-wrap {
    background: var(--wsp-surface);
    border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius-lg);
    box-shadow: var(--wsp-shadow);
    overflow: hidden;
}
.wsp-tabs {
    display: flex;
    background: var(--wsp-surface2);
    border-bottom: 1px solid var(--wsp-border);
}
.wsp-tab {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px;
    padding: 14px 8px;
    background: transparent; border: none; border-bottom: 3px solid transparent;
    margin-bottom: -1px;
    font-size: 13px; font-weight: 700; color: var(--wsp-muted);
    cursor: pointer; transition: all var(--wsp-t); font-family: inherit;
}
.wsp-tab:hover { color: var(--wsp-green); background: rgba(0,0,0,.04); }
.wsp-tab-active { color: var(--wsp-green); border-bottom-color: var(--wsp-green); background: var(--wsp-surface); }

.wsp-panel { display: none; padding: 20px; }
.wsp-panel-active { display: block; }
.wsp-panel-intro { font-size: 13px; color: var(--wsp-muted); margin: 0 0 16px; line-height: 1.6; }

/* Digital download rows */
.wsp-dl-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.wsp-dl-row {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 14px 16px; border-radius: var(--wsp-radius);
    border: 2px solid var(--wsp-border);
    background: #fafafa; cursor: pointer;
    transition: all var(--wsp-t);
}
.wsp-dl-row:hover { border-color: rgba(0,0,0,.20); background: rgba(0,0,0,.03); }
.wsp-dl-row:has(input:checked) { border-color: var(--wsp-green); background: rgba(0,0,0,.05); box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
.wsp-dl-row input[type="radio"] { accent-color: var(--wsp-green); margin-top: 3px; flex-shrink: 0; }
.wsp-dl-info { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.wsp-dl-info strong { font-size: 14px; color: var(--wsp-text); }
.wsp-dl-info span { font-size: 11px; color: var(--wsp-muted); }
.wsp-dl-uses { font-style: italic; color: rgba(77,104,64,.7) !important; }
.wsp-dl-price { font-size: 18px; font-weight: 900; color: var(--wsp-gold); white-space: nowrap; }
.wsp-dl-row-hero { border-color: rgba(0,0,0,.16); background: rgba(0,0,0,.03); }
.wsp-dl-row-hero:hover { border-color: var(--wsp-gold-lt); }
.wsp-dl-row-hero:has(input:checked) { border-color: var(--wsp-gold); box-shadow: 0 0 0 3px rgba(0,0,0,.08); }
.wsp-dl-name-row { display: flex; align-items: center; gap: 8px; }
.wsp-pill { font-size: 10px; font-weight: 800; padding: 2px 8px; border-radius: 10px; letter-spacing: .3px; }
.wsp-pill-gold { background: var(--wsp-gold); color: #fff; text-transform: uppercase; }

/* Panel meta */
.wsp-panel-meta {
    display: flex; flex-wrap: wrap; gap: 6px 14px;
    padding-top: 12px; border-top: 1px solid var(--wsp-border);
}
.wsp-panel-meta span { font-size: 11px; color: var(--wsp-muted); }
.wsp-panel-meta span::before { content: '✓ '; color: var(--wsp-green); font-weight: 700; }

/* License cards */
.wsp-lic-grid {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px; margin-bottom: 14px;
}
.wsp-lic-card {
    border: 2px solid var(--wsp-border); border-radius: var(--wsp-radius);
    padding: 16px 14px; background: #fafafa;
    display: flex; flex-direction: column; gap: 8px;
    position: relative; cursor: pointer; transition: all var(--wsp-t);
    text-align: center;
}
.wsp-lic-card:hover { border-color: rgba(0,0,0,.22); transform: translateY(-2px); box-shadow: var(--wsp-shadow); }
.wsp-lic-card.selected { border-color: var(--wsp-green); background: rgba(0,0,0,.05); box-shadow: 0 0 0 3px rgba(0,0,0,.09); }
.wsp-lic-featured { border-color: rgba(0,0,0,.18); background: rgba(0,0,0,.04); }
.wsp-lic-featured:hover { border-color: var(--wsp-gold-lt); }
.wsp-lic-featured.selected { border-color: var(--wsp-gold); box-shadow: 0 0 0 3px rgba(0,0,0,.09); background: rgba(0,0,0,.06); }
.wsp-lic-badge {
    position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
    background: var(--wsp-gold); color: #fff;
    font-size: 9px; font-weight: 800; padding: 3px 10px; border-radius: 10px;
    white-space: nowrap; text-transform: uppercase; letter-spacing: .5px;
}
.wsp-lic-icon { font-size: 24px; line-height: 1; }
.wsp-lic-name { font-size: 14px; font-weight: 800; color: var(--wsp-text); }
.wsp-lic-price { font-size: 20px; font-weight: 900; color: var(--wsp-gold); }
.wsp-lic-card ul { list-style: none; padding: 0; margin: 0; text-align: left; display: flex; flex-direction: column; gap: 4px; }
.wsp-lic-card ul li { font-size: 11px; color: var(--wsp-muted); }
.wsp-lic-card ul li.y { color: var(--wsp-text); }
.wsp-lic-card ul li.y::before { content: '✓ '; color: var(--wsp-green); font-weight: 700; }
.wsp-lic-card ul li.n { opacity: .6; }
.wsp-lic-card ul li.n::before { content: '✗ '; color: #c04040; }
.wsp-lic-btn {
    margin-top: auto; padding: 8px 12px;
    border: 2px solid var(--wsp-border); border-radius: 7px;
    background: transparent; color: var(--wsp-muted);
    font-size: 12px; font-weight: 700; cursor: pointer;
    transition: all var(--wsp-t); font-family: inherit;
}
.wsp-lic-btn:hover, .wsp-lic-card.selected .wsp-lic-btn { border-color: var(--wsp-green); color: var(--wsp-green); background: rgba(0,0,0,.05); }
.wsp-lic-btn-featured:hover, .wsp-lic-featured.selected .wsp-lic-btn-featured { border-color: var(--wsp-gold); color: var(--wsp-gold); background: rgba(0,0,0,.06); }

/* Print options — override dark defaults for bright page */
.wsp-page .jp-print-options {
    background: #fafafa; border-color: var(--wsp-border);
}
.wsp-page .jp-print-label { color: var(--wsp-muted); }
.wsp-page .jp-size-btn {
    background: #fff; border-color: var(--wsp-border); color: var(--wsp-text);
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.wsp-page .jp-size-btn:hover { border-color: var(--wsp-green); background: rgba(0,0,0,.05); color: var(--wsp-green); }
.wsp-page .jp-size-btn.active { border-color: var(--wsp-green); background: rgba(0,0,0,.08); color: var(--wsp-green); box-shadow: 0 0 0 3px rgba(0,0,0,.09); }
.wsp-page .jp-size-dims { color: var(--wsp-muted); }
.wsp-page .jp-material-btn { background: #fff; border-color: var(--wsp-border); color: var(--wsp-text); }
.wsp-page .jp-material-btn:hover { border-color: var(--wsp-gold); }
.wsp-page .jp-material-btn.active { border-color: var(--wsp-gold); background: rgba(0,0,0,.06); color: var(--wsp-gold); }
.wsp-page .jp-print-price-label { color: var(--wsp-muted); }
.wsp-page .jp-print-price-value { color: var(--wsp-gold); }

/* ATC */
.wsp-atc-wrap { }
/* Hide the dropdown licence selector — we use the card UI above */
.wsp-page .wildlens-license-selector { display: none; }
/* Price echo below licence cards when a tier is selected */
.wsp-atc-lic-price { display: block; font-size: 22px; font-weight: 800; color: var(--wsp-green); margin: 0 0 12px; min-height: 1em; }
.wsp-page .cart { margin: 0; }
.wsp-page .single_add_to_cart_button,
.wsp-page button.button.alt {
    width: 100%; padding: 16px 28px;
    background: var(--wsp-green) !important; color: #fff !important;
    border: none; border-radius: var(--wsp-radius);
    font-size: 16px; font-weight: 900; cursor: pointer;
    letter-spacing: .3px; font-family: inherit;
    box-shadow: 0 4px 20px rgba(0,0,0,.18);
    transition: all var(--wsp-t);
}
.wsp-page .single_add_to_cart_button:hover,
.wsp-page button.button.alt:hover {
    background: var(--wsp-green-lt) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.22); transform: translateY(-1px);
}
.wsp-page input.qty {
    padding: 14px; width: 64px;
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius); font-size: 16px; text-align: center;
    color: var(--wsp-text);
}

/* Trust */
.wsp-trust {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
}
@media (max-width: 600px) { .wsp-trust { grid-template-columns: repeat(2, 1fr); } }
.wsp-trust-item {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius); padding: 12px 8px;
    font-size: 11px; font-weight: 700; color: var(--wsp-text); text-align: center;
    box-shadow: 0 1px 4px rgba(0,0,0,.04);
}
.wsp-trust-item svg { color: var(--wsp-green); }

/* Footer row */
.wsp-footer-row { display: flex; gap: 10px; }
.wsp-wishlist-btn {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
    padding: 11px; border: 2px solid var(--wsp-border); border-radius: var(--wsp-radius);
    background: var(--wsp-surface); color: var(--wsp-muted); font-size: 13px; font-weight: 600;
    cursor: pointer; transition: all var(--wsp-t); font-family: inherit;
    width: auto; height: auto;
}
.wsp-wishlist-btn:hover { border-color: #c04040; color: #c04040; }
.wsp-share-btn {
    display: flex; align-items: center; gap: 6px; padding: 11px 18px;
    border: 2px solid var(--wsp-border); border-radius: var(--wsp-radius);
    background: var(--wsp-surface); color: var(--wsp-muted); font-size: 13px; font-weight: 600;
    text-decoration: none; transition: all var(--wsp-t);
}
.wsp-share-btn:hover { border-color: var(--wsp-green); color: var(--wsp-green); }

/* ── What You Get ── */
.wsp-wyg {
    background: var(--wsp-green);
    padding: 64px 28px;
}
.wsp-wyg-inner { max-width: 1400px; margin: 0 auto; }
.wsp-section-title {
    font-size: 1.6rem; font-weight: 900; color: #fff;
    margin: 0 0 32px; text-align: center; letter-spacing: -.02em;
}
.wsp-wyg-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
@media (max-width: 900px) { .wsp-wyg-grid { grid-template-columns: 1fr; } }
.wsp-wyg-card {
    background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--wsp-radius-lg); padding: 28px 24px;
    backdrop-filter: blur(8px);
    transition: background var(--wsp-t), transform var(--wsp-t);
}
.wsp-wyg-card:hover { background: rgba(255,255,255,.18); transform: translateY(-3px); }
.wsp-wyg-icon {
    width: 52px; height: 52px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 16px;
}
.wsp-wyg-icon-dl    { background: rgba(255,255,255,.2); }
.wsp-wyg-icon-print { background: rgba(255,200,50,.25); }
.wsp-wyg-icon-lic   { background: rgba(255,255,255,.15); }
.wsp-wyg-icon svg { color: #fff; }
.wsp-wyg-card h3 { font-size: 18px; font-weight: 800; color: #fff; margin: 0 0 10px; }
.wsp-wyg-card p { font-size: 13px; color: rgba(255,255,255,.8); line-height: 1.7; margin: 0 0 14px; }
.wsp-wyg-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 5px; }
.wsp-wyg-list li { font-size: 12px; color: rgba(255,255,255,.85); }
.wsp-wyg-list li::before { content: '✓ '; color: rgba(255,255,255,.8); font-weight: 700; }

/* ── Story & details ── */
.wsp-details { background: var(--wsp-bg); padding: 60px 28px; }
.wsp-details-inner {
    max-width: 1400px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 380px; gap: 28px; align-items: start;
}
@media (max-width: 1000px) { .wsp-details-inner { grid-template-columns: 1fr; } }
.wsp-details-main { display: flex; flex-direction: column; gap: 20px; }
.wsp-details-side  { display: flex; flex-direction: column; gap: 20px; }

.wsp-card {
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius-lg); padding: 26px 28px;
    box-shadow: var(--wsp-shadow);
}
.wsp-card-title {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 800; text-transform: uppercase;
    letter-spacing: .8px; color: var(--wsp-muted);
    margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--wsp-border);
}
.wsp-card-title svg { color: var(--wsp-green); }
.wsp-prose { font-size: 15px; line-height: 1.8; color: #222; }
.wsp-prose p { margin: 0 0 14px; }
.wsp-prose p:last-child { margin: 0; }

/* Quote card */
.wsp-card-quote { border-left: 4px solid var(--wsp-green); }
.wsp-quote-mark { color: var(--wsp-green); opacity: .3; margin-bottom: 10px; }
.wsp-quote { margin: 0; }
.wsp-quote p { font-size: 15px; line-height: 1.8; color: #222; font-style: italic; margin: 0 0 12px; }
.wsp-quote footer { font-size: 13px; color: var(--wsp-green); font-weight: 700; }

/* Photographer card */
.wsp-photographer { display: flex; gap: 20px; align-items: flex-start; }
.wsp-pg-avatar {
    font-size: 36px; line-height: 1;
    background: var(--wsp-surface2); border-radius: 50%;
    width: 70px; height: 70px; display: flex; align-items: center; justify-content: center;
    border: 2px solid var(--wsp-border); flex-shrink: 0;
}
.wsp-pg-body { display: flex; flex-direction: column; gap: 3px; }
.wsp-pg-body strong { font-size: 16px; font-weight: 800; color: var(--wsp-text); }
.wsp-pg-body > a { text-decoration: none; color: inherit; }
.wsp-pg-body > a:hover strong { color: var(--wsp-green); }
.wsp-pg-role { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--wsp-gold); font-weight: 700; }
.wsp-pg-body p { font-size: 13px; color: var(--wsp-muted); line-height: 1.7; margin: 8px 0 10px; }
.wsp-pg-links { display: flex; gap: 14px; flex-wrap: wrap; }
.wsp-pg-links a { font-size: 13px; color: var(--wsp-green); text-decoration: none; font-weight: 700; }
.wsp-pg-links a:hover { color: var(--wsp-green-lt); text-decoration: underline; }

/* EXIF table */
.wsp-exif-dl { display: flex; flex-direction: column; gap: 0; }
.wsp-exif-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--wsp-border); }
.wsp-exif-row:last-child { border-bottom: none; }
.wsp-exif-row dt { font-size: 12px; color: var(--wsp-muted); font-weight: 600; white-space: nowrap; }
.wsp-exif-row dd { font-size: 13px; color: var(--wsp-text); font-weight: 600; text-align: right; margin: 0; }

/* Authenticity list */
.wsp-auth-list { display: flex; flex-direction: column; gap: 14px; }
.wsp-auth-row { display: flex; align-items: flex-start; gap: 12px; }
.wsp-auth-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.wsp-dot-green { background: var(--wsp-green); }
.wsp-dot-gold  { background: var(--wsp-gold); }
.wsp-auth-row strong { display: block; font-size: 13px; font-weight: 700; color: var(--wsp-text); margin-bottom: 2px; }
.wsp-auth-row p { font-size: 12px; color: var(--wsp-muted); line-height: 1.6; margin: 0; }

/* Related */
.wsp-page .wildlens-related-products {
    background: var(--wsp-surface); border-top: 1px solid var(--wsp-border);
    padding: 50px 28px;
}
.wsp-page .wildlens-related-products h2 {
    font-size: 1.4rem; font-weight: 900; color: var(--wsp-text); margin: 0 0 24px; letter-spacing: -.02em;
    max-width: 1400px; margin-left: auto; margin-right: auto;
}
.wsp-page .wildlens-related-grid { max-width: 1400px; margin: 0 auto; gap: 20px; }
.wsp-page .wildlens-related-item {
    background: var(--wsp-surface); border: 1px solid var(--wsp-border);
    border-radius: var(--wsp-radius); overflow: hidden;
    box-shadow: 0 1px 6px rgba(0,0,0,.06);
    transition: transform var(--wsp-t), box-shadow var(--wsp-t);
}
.wsp-page .wildlens-related-item:hover { transform: translateY(-4px); box-shadow: var(--wsp-shadow-lg); }
.wsp-page .wildlens-related-item img { aspect-ratio: 4/3; border-radius: 0; }
.wsp-page .wildlens-related-item span { padding: 10px 12px; font-size: 12px; color: var(--wsp-muted); display: block; }

.jp-single-wrap {
    background: var(--jp-bg);
    color: var(--jp-text);
    min-height: 100vh;
}

/* Breadcrumb */
.jp-single-breadcrumb {
    background: rgba(0,0,0,.9);
    border-bottom: 1px solid var(--jp-border);
    padding: 0;
}
.jp-single-bc-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 10px 28px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--jp-text-muted);
    flex-wrap: wrap;
}
.jp-single-bc-inner a { color: var(--jp-text-muted); text-decoration: none; transition: color var(--jp-transition); }
.jp-single-bc-inner a:hover { color: var(--jp-green-lt); }
.jp-single-bc-inner span:last-child { color: var(--jp-text); }

/* ── Hero split layout ── */
.jp-single-hero {
    display: grid;
    grid-template-columns: 1fr 480px;
    gap: 0;
    max-width: 1400px;
    margin: 0 auto;
    padding: 40px 28px 60px;
    align-items: start;
    gap: 48px;
}
@media (max-width: 1100px) { .jp-single-hero { grid-template-columns: 1fr; gap: 32px; } }

/* Image pane */
.jp-single-img-pane { display: flex; flex-direction: column; gap: 0; position: sticky; top: 80px; }
@media (max-width: 1100px) { .jp-single-img-pane { position: static; } }

.jp-single-img-wrap {
    position: relative;
    border-radius: var(--jp-radius-lg);
    overflow: hidden;
    background: #111111;
    border: 1px solid var(--jp-border);
    cursor: zoom-in;
    aspect-ratio: 4/3;
}
.jp-single-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .5s cubic-bezier(.4,0,.2,1), filter .3s;
    filter: brightness(.97) saturate(1.05);
}
.jp-single-img-wrap:hover .jp-single-img { transform: scale(1.03); filter: brightness(1.02) saturate(1.1); }
.jp-single-img-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.0);
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    padding: 16px;
    opacity: 0;
    transition: opacity var(--jp-transition);
}
.jp-single-img-wrap:hover .jp-single-img-overlay { opacity: 1; }
.jp-single-zoom-hint {
    background: rgba(0,0,0,.75);
    color: #fff;
    font-size: 12px;
    padding: 6px 12px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
    backdrop-filter: blur(4px);
}

/* EXIF strip */
.jp-single-exif-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 0 8px;
}
.jp-exif-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: 5px;
    padding: 4px 10px;
    font-size: 11px;
    color: var(--jp-text-muted);
}

/* Watermark notice */
.jp-single-watermark-notice {
    font-size: 11px;
    color: var(--jp-text-muted);
    padding: 6px 0;
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
.jp-credit-sep { opacity: .4; }
.jp-photo-credit { color: var(--jp-text-muted); }

/* Info pane */
.jp-single-info-pane {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* Tags */
.jp-single-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.jp-stag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    text-decoration: none;
    transition: all var(--jp-transition);
}
.jp-stag-species  { background: rgba(255,255,255,.10); color: var(--jp-green-lt); border: 1px solid rgba(255,255,255,.14); }
.jp-stag-species:hover { background: rgba(255,255,255,.16); }
.jp-stag-location { background: rgba(255,255,255,.07); color: var(--jp-gold-lt); border: 1px solid rgba(255,255,255,.12); }
.jp-stag-location:hover { background: rgba(255,255,255,.12); }
.jp-stag-habitat  { background: var(--jp-surface); color: var(--jp-text-muted); border: 1px solid var(--jp-border); }

/* Title */
.jp-single-title {
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800;
    line-height: 1.2;
    color: #fff;
    margin: 0;
}

/* Short description */
.jp-single-excerpt {
    font-size: 14px;
    line-height: 1.7;
    color: var(--jp-text-muted);
    margin: 0;
    border-left: 3px solid var(--jp-green);
    padding-left: 14px;
}

/* ── Format tabs ── */
.jp-fmt-tabs-wrap {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    overflow: hidden;
}
.jp-fmt-tabs {
    display: flex;
    border-bottom: 1px solid var(--jp-border);
    background: var(--jp-bg2);
}
.jp-fmt-tab {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 13px 8px;
    background: transparent;
    border: none;
    color: var(--jp-text-muted);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: all var(--jp-transition);
    font-family: inherit;
}
.jp-fmt-tab:hover { color: var(--jp-text); background: rgba(255,255,255,.03); }
.jp-fmt-tab.active { color: var(--jp-green-lt); border-bottom-color: var(--jp-green); background: rgba(255,255,255,.05); }
.jp-fmt-icon { display: flex; align-items: center; opacity: .8; }
.jp-fmt-tab.active .jp-fmt-icon { opacity: 1; }

.jp-fmt-panel { display: none; padding: 20px 20px 16px; }
.jp-fmt-panel.active { display: block; }

/* Download options */
.jp-dl-options { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.jp-dl-option {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border: 1.5px solid var(--jp-border);
    border-radius: var(--jp-radius);
    cursor: pointer;
    transition: all var(--jp-transition);
    background: var(--jp-card-bg);
}
.jp-dl-option:has(input:checked),
.jp-dl-option:hover { border-color: var(--jp-green); background: rgba(255,255,255,.06); }
.jp-dl-option input[type="radio"] { accent-color: var(--jp-green); width: 16px; height: 16px; flex-shrink: 0; }
.jp-dl-body { display: flex; flex-direction: column; gap: 2px; flex: 1; }
.jp-dl-name { font-size: 14px; font-weight: 700; color: var(--jp-text); display: flex; align-items: center; gap: 8px; }
.jp-dl-spec { font-size: 11px; color: var(--jp-text-muted); }
.jp-dl-badge { font-size: 10px; background: var(--jp-gold); color: #000; padding: 1px 7px; border-radius: 3px; font-weight: 700; text-transform: uppercase; }
.jp-dl-price { font-size: 17px; font-weight: 800; color: var(--jp-gold); white-space: nowrap; }
.jp-dl-option-featured { border-color: rgba(255,255,255,.16); }

/* License cards */
.jp-lic-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}
.jp-lic-card {
    border: 1.5px solid var(--jp-border);
    border-radius: var(--jp-radius);
    padding: 16px 14px;
    background: var(--jp-card-bg);
    position: relative;
    transition: all var(--jp-transition);
    cursor: pointer;
}
.jp-lic-card:hover { border-color: var(--jp-green); transform: translateY(-2px); box-shadow: var(--jp-shadow); }
.jp-lic-card.selected { border-color: var(--jp-green); background: rgba(255,255,255,.08); box-shadow: 0 0 0 3px rgba(255,255,255,.12); }
.jp-lic-card-featured { border-color: rgba(255,255,255,.20); }
.jp-lic-card-featured:hover { border-color: var(--jp-gold); }
.jp-lic-card-featured.selected { border-color: var(--jp-gold); background: rgba(255,255,255,.07); box-shadow: 0 0 0 3px rgba(255,255,255,.12); }
.jp-lic-popular {
    position: absolute;
    top: -10px; left: 50%; transform: translateX(-50%);
    background: var(--jp-gold);
    color: #000;
    font-size: 9px;
    font-weight: 800;
    padding: 2px 10px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
}
.jp-lic-card-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.jp-lic-card-icon { font-size: 20px; line-height: 1; margin-top: 2px; }
.jp-lic-card-head strong { display: block; font-size: 14px; color: var(--jp-text); }
.jp-lic-card-price { font-size: 16px; font-weight: 800; color: var(--jp-gold); display: block; }
.jp-lic-perms { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-direction: column; gap: 4px; }
.jp-lic-perms li { font-size: 11px; color: var(--jp-text-muted); padding-left: 0; }
.jp-lic-perms li.yes { color: var(--jp-text); }
.jp-lic-perms li.yes::before { content: '✓ '; color: var(--jp-green); font-weight: 700; }
.jp-lic-perms li.no::before  { content: '✗ '; color: #c04040; font-weight: 700; }
.jp-lic-pick {
    width: 100%;
    padding: 8px;
    border: 1.5px solid var(--jp-border);
    border-radius: 6px;
    background: transparent;
    color: var(--jp-text-muted);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all var(--jp-transition);
    font-family: inherit;
}
.jp-lic-pick:hover { border-color: var(--jp-green); color: var(--jp-green-lt); }
.jp-lic-pick-featured { border-color: rgba(255,255,255,.20); color: var(--jp-gold); }
.jp-lic-pick-featured:hover { border-color: var(--jp-gold); background: rgba(255,255,255,.07); }

/* Format includes row */
.jp-format-includes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding-top: 12px;
    border-top: 1px solid var(--jp-border);
    margin-top: 6px;
}
.jp-format-includes span { font-size: 11px; color: var(--jp-text-muted); }

/* ATC section — override WC defaults */
.jp-atc-section .cart { margin: 0; }
.jp-atc-section .quantity { display: flex; align-items: center; gap: 8px; }
.jp-atc-section input.qty {
    width: 60px;
    padding: 12px;
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius);
    color: var(--jp-text);
    font-size: 16px;
    text-align: center;
}
.jp-atc-section .single_add_to_cart_button,
.jp-atc-section button.button.alt {
    width: 100%;
    padding: 15px 28px;
    background: var(--jp-green);
    color: #fff !important;
    border: none;
    border-radius: var(--jp-radius);
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    letter-spacing: .5px;
    text-transform: uppercase;
    transition: all var(--jp-transition);
    font-family: inherit;
    box-shadow: 0 4px 20px rgba(255,255,255,.18);
}
.jp-atc-section .single_add_to_cart_button:hover,
.jp-atc-section button.button.alt:hover {
    background: var(--jp-green-lt);
    box-shadow: 0 6px 28px rgba(0,0,0,.25);
    transform: translateY(-1px);
}

/* Trust row */
.jp-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 12px 0;
    border-top: 1px solid var(--jp-border);
    border-bottom: 1px solid var(--jp-border);
}
.jp-trust-row span {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11px;
    color: var(--jp-text-muted);
}

.jp-single-footer-row { display: flex; gap: 10px; }
.jp-single-wishlist {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px;
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius);
    background: transparent;
    color: var(--jp-text-muted);
    font-size: 13px;
    cursor: pointer;
    transition: all var(--jp-transition);
    font-family: inherit;
    width: auto;
    height: auto;
}
.jp-single-wishlist:hover { border-color: #c04040; color: #e07070; }
.jp-share-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius);
    background: transparent;
    color: var(--jp-text-muted);
    font-size: 13px;
    text-decoration: none;
    transition: all var(--jp-transition);
}
.jp-share-btn:hover { border-color: var(--jp-green); color: var(--jp-green-lt); }

/* Sticky bar */
.jp-sticky-bar {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 999;
    background: rgba(0,0,0,.97);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--jp-border);
    transform: translateY(-100%);
    transition: transform .3s cubic-bezier(.4,0,.2,1);
    box-shadow: 0 4px 24px rgba(0,0,0,.5);
}
.jp-sticky-bar.visible { transform: translateY(0); }
.jp-sticky-inner {
    max-width: 1400px;
    margin: 0 auto;
    padding: 10px 28px;
    display: flex;
    align-items: center;
    gap: 20px;
}
.jp-sticky-title { flex: 1; font-size: 14px; font-weight: 600; color: var(--jp-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jp-sticky-price { font-size: 16px; font-weight: 800; color: var(--jp-gold); white-space: nowrap; }
.jp-sticky-cta {
    padding: 9px 24px;
    background: var(--jp-green);
    color: #fff;
    border-radius: var(--jp-radius);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--jp-transition);
}
.jp-sticky-cta:hover { background: var(--jp-green-lt); color: #fff; }

/* ── Details below fold ── */
.jp-single-details {
    background: var(--jp-bg2);
    border-top: 1px solid var(--jp-border);
    padding: 60px 28px;
}
.jp-details-inner {
    max-width: 1400px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: start;
}
@media (max-width: 900px) { .jp-details-inner { grid-template-columns: 1fr; } }

.jp-details-card {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    padding: 24px 26px;
}
.jp-details-card-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--jp-text-muted);
    margin: 0 0 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--jp-border);
}

/* EXIF grid */
.jp-exif-grid { display: flex; flex-direction: column; gap: 0; }
.jp-exif-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
}
.jp-exif-row:last-child { border-bottom: none; }
.jp-exif-label { font-size: 12px; color: var(--jp-text-muted); white-space: nowrap; flex-shrink: 0; }
.jp-exif-value { font-size: 13px; color: var(--jp-text); font-weight: 500; text-align: right; }

/* Full desc */
.jp-full-desc { font-size: 14px; line-height: 1.8; color: var(--jp-text-muted); }
.jp-full-desc p { margin: 0 0 12px; }
.jp-full-desc p:last-child { margin: 0; }

/* Notes quote */
.jp-notes-quote {
    margin: 0;
    padding: 18px 20px;
    background: rgba(255,255,255,.05);
    border-left: 3px solid var(--jp-green);
    border-radius: 0 var(--jp-radius) var(--jp-radius) 0;
}
.jp-notes-quote p { margin: 0 0 10px; font-size: 14px; line-height: 1.75; color: var(--jp-text); font-style: italic; }
.jp-notes-quote footer { font-size: 12px; color: var(--jp-green-lt); font-weight: 600; }

/* Photographer card */
.jp-photographer-card { display: flex; gap: 20px; align-items: flex-start; grid-column: 1 / -1; }
.jp-photographer-avatar { font-size: 56px; line-height: 1; flex-shrink: 0; background: var(--jp-surface2); border-radius: 50%; width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--jp-border); }
.jp-photographer-bio { display: flex; flex-direction: column; gap: 4px; }
.jp-photographer-name { font-size: 16px; font-weight: 800; color: #fff; }
.jp-photographer-role { font-size: 12px; text-transform: uppercase; letter-spacing: 1px; color: var(--jp-gold); font-weight: 600; }
.jp-photographer-bio p { font-size: 13px; color: var(--jp-text-muted); line-height: 1.7; margin: 6px 0 10px; }
.jp-photographer-links { display: flex; gap: 16px; flex-wrap: wrap; }
.jp-photographer-links a { font-size: 13px; color: var(--jp-green-lt); text-decoration: none; font-weight: 600; }
.jp-photographer-links a:hover { color: #fff; }

/* Related products (override from Gallery.php) */
.wildlens-related-products {
    max-width: 1400px;
    margin: 0 auto;
    padding: 50px 28px;
}
.wildlens-related-products h2 {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--jp-text);
    margin: 0 0 24px;
}
.wildlens-related-grid { gap: 20px; }
.wildlens-related-item {
    background: var(--jp-card-bg);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius);
    overflow: hidden;
    transition: transform var(--jp-transition), box-shadow var(--jp-transition);
}
.wildlens-related-item:hover { transform: translateY(-4px); box-shadow: var(--jp-shadow); }
.wildlens-related-item a { display: block; text-decoration: none; }
.wildlens-related-item img { aspect-ratio: 4/3; border-radius: 0; }
.wildlens-related-item span { display: block; padding: 10px 12px; font-size: 12px; color: var(--jp-text-muted); }

/* ═══════════════════════════════════════════════════════
   SHOP LANDING PAGE  (slp-*)
═══════════════════════════════════════════════════════ */

/* ── Tokens — all brand colours inherit from the active theme ── */
.slp-wrap {
    --slp-green:     #F07840;
    --slp-green2:    #D96828;
    --slp-gold:      #D96828;
    --slp-dark:      #111111;
    --slp-surface:   #ffffff;
    --slp-bg:        #f5f5f5;
    --slp-text:      #111111;
    --slp-muted:     #444444;
    --slp-border:    #e0e0e0;
    --slp-radius:    10px;
    --slp-radius-lg: 18px;
    font-family: inherit;
    color: var(--slp-text);
    background: var(--slp-bg);
}
.slp-wrap *, .slp-wrap *::before, .slp-wrap *::after { box-sizing: border-box; }
.slp-wrap a { color: inherit; }
.slp-wrap h1, .slp-wrap h2, .slp-wrap h3 { margin: 0; line-height: 1.2; }
.slp-wrap p { margin: 0 0 12px; }
.slp-wrap img { max-width: 100%; display: block; }

/* ── Hero ── */
.slp-hero {
    position: relative;
    min-height: 92vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--slp-dark) var(--slp-hero-img, none) center/cover no-repeat;
    color: #fff;
    text-align: center;
    overflow: hidden;
}
.slp-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(160deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.55) 50%, rgba(0,0,0,.78) 100%);
}
.slp-hero-content {
    position: relative; z-index: 1;
    max-width: 780px;
    padding: 80px 24px 60px;
}
.slp-eyebrow {
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: rgba(255,255,255,.65);
    margin-bottom: 18px;
}
.slp-eyebrow a { color: rgba(255,255,255,.8); text-decoration: none; }
.slp-eyebrow a:hover { color: #fff; }
.slp-hero-h1 {
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 900;
    letter-spacing: -.5px;
    line-height: 1.1;
    margin-bottom: 20px;
    color: #fff;
}
.slp-hero-sub {
    font-size: clamp(15px, 2vw, 18px);
    color: rgba(255,255,255,.8);
    line-height: 1.65;
    max-width: 580px;
    margin: 0 auto 28px;
}
.slp-hero-sub strong { color: #fff; }
.slp-hero-pills {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 32px;
}
.slp-hero-pills span {
    display: flex; align-items: center; gap: 6px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 12px;
    backdrop-filter: blur(6px);
}
.slp-hero-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.slp-hero-btn-primary {
    display: inline-block;
    background: var(--slp-green);
    color: #fff;
    text-decoration: none;
    font-size: 15px;
    font-weight: 700;
    padding: 14px 32px;
    border-radius: 999px;
    transition: background .2s, transform .2s;
}
.slp-hero-btn-primary:hover { background: var(--slp-green2); transform: translateY(-2px); }
.slp-hero-btn-ghost {
    display: inline-block;
    background: transparent;
    color: rgba(255,255,255,.85);
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    padding: 14px 32px;
    border: 1.5px solid rgba(255,255,255,.35);
    border-radius: 999px;
    transition: border-color .2s, color .2s;
}
.slp-hero-btn-ghost:hover { border-color: #fff; color: #fff; }
.slp-hero-scroll {
    position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%);
    color: rgba(255,255,255,.5);
    animation: slp-bounce 2s ease-in-out infinite;
}
@keyframes slp-bounce { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(8px)} }

/* ── Trust strip ── */
.slp-trust {
    background: var(--slp-green);
    color: #fff;
    padding: 0;
    overflow-x: auto;
    scrollbar-width: none;
}
.slp-trust::-webkit-scrollbar { display: none; }
.slp-trust-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0;
    min-width: max-content;
    margin: 0 auto;
    padding: 14px 24px;
}
.slp-trust-item {
    display: flex; align-items: center; gap: 8px;
    font-size: 13px; font-weight: 600;
    padding: 6px 20px;
    white-space: nowrap;
}
.slp-trust-dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(255,255,255,.4); flex-shrink: 0; }

/* ── Gallery section ── */
.slp-gallery-section {
    max-width: 1400px;
    margin: 0 auto;
    padding: 48px 20px;
}

/* Filter bar */
.slp-filter-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--slp-border);
    border-radius: var(--slp-radius-lg);
    padding: 14px 20px;
    margin-bottom: 32px;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    position: sticky;
    top: 0;
    z-index: 50;
}
.slp-filter-inner {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.slp-filter-group {
    display: flex; align-items: center; gap: 6px;
    background: var(--slp-bg);
    border: 1px solid var(--slp-border);
    border-radius: 8px;
    padding: 7px 12px;
}
.slp-filter-group svg { color: #555; flex-shrink: 0; }
.slp-filter-select {
    border: none; background: transparent;
    font-size: 13px; font-weight: 600; color: #111;
    outline: none; cursor: pointer;
    padding-right: 4px;
}
.slp-filter-sort { margin-left: 6px; }
.slp-filter-clear {
    border: none; background: none; cursor: pointer;
    font-size: 12px; color: var(--slp-muted); font-weight: 600;
    padding: 6px 10px; border-radius: 6px;
    transition: background .15s, color .15s;
}
.slp-filter-clear:hover { background: #fee2e2; color: #b91c1c; }
.slp-results-label { font-size: 13px; color: var(--slp-muted); }

/* Masonry grid */
.slp-masonry {
    columns: 4 260px;
    column-gap: 16px;
}
.slp-card {
    break-inside: avoid;
    display: inline-block;
    width: 100%;
    background: #fff;
    border-radius: var(--slp-radius-lg);
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.07);
    margin-bottom: 16px;
    transition: box-shadow .2s, transform .2s;
}
.slp-card:hover { box-shadow: 0 8px 32px rgba(0,0,0,.14); transform: translateY(-3px); }

.slp-card-img-wrap { position: relative; overflow: hidden; }
.slp-card-img { width: 100%; display: block; object-fit: cover; transition: transform .4s ease; }
.slp-card:hover .slp-card-img { transform: scale(1.04); }

/* Vary heights for masonry effect */
.slp-card .slp-card-img { aspect-ratio: 4/3; }
.slp-card.slp-card--tall .slp-card-img { aspect-ratio: 3/4; }
.slp-card.slp-card--wide .slp-card-img { aspect-ratio: 16/9; }

.slp-card-badges { position: absolute; top: 10px; left: 10px; display: flex; gap: 5px; flex-wrap: wrap; }
.slp-badge {
    font-size: 10px; font-weight: 800; letter-spacing: .5px;
    text-transform: uppercase; padding: 3px 8px; border-radius: 999px;
}
.slp-badge--dl    { background: #e0f2fe; color: #0369a1; }
.slp-badge--print { background: #fff4ee; color: #c05820; }
.slp-badge--lic   { background: #fefce8; color: #854d0e; }

.slp-card-wish {
    position: absolute; top: 10px; right: 10px;
    background: rgba(255,255,255,.85); backdrop-filter: blur(4px);
    border: none; border-radius: 50%; width: 34px; height: 34px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: var(--slp-muted);
    transition: background .15s, color .15s;
}
.slp-card-wish:hover { background: #fff; color: #e11d48; }

.slp-card-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 55%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 14px;
    opacity: 0; transition: opacity .25s;
}
.slp-card:hover .slp-card-overlay { opacity: 1; }
.slp-card-exif { display: flex; flex-direction: column; gap: 3px; margin-bottom: 10px; }
.slp-card-exif span { display: flex; align-items: center; gap: 5px; font-size: 11px; color: rgba(255,255,255,.75); }
.slp-card-view-btn {
    display: inline-block;
    background: var(--slp-green);
    color: #fff; text-decoration: none;
    font-size: 13px; font-weight: 700;
    padding: 9px 18px; border-radius: 999px;
    text-align: center;
    transition: background .15s;
}
.slp-card-view-btn:hover { background: var(--slp-green2); }

.slp-card-body { padding: 14px 16px 16px; }
.slp-card-tax { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; flex-wrap: wrap; }
.slp-card-species {
    font-size: 11px; font-weight: 800; letter-spacing: .5px;
    text-transform: uppercase; color: var(--slp-green, #F07840);
    text-decoration: none;
}
.slp-card-species:hover { text-decoration: underline; }
.slp-card-loc {
    display: flex; align-items: center; gap: 3px;
    font-size: 11px; color: #666; text-decoration: none;
}
.slp-card-loc:hover { color: var(--slp-green, #F07840); }
.slp-card-title { font-size: 14px; font-weight: 700; margin-bottom: 10px; line-height: 1.35; }
.slp-card-title a { text-decoration: none; color: #111; }
.slp-card-title a:hover { color: var(--slp-green); }
.slp-card-foot { display: flex; align-items: center; justify-content: space-between; }
.slp-card-price { font-size: 13px; color: var(--slp-gold); font-weight: 700; }
.slp-card-cta {
    font-size: 12px; font-weight: 800; color: var(--slp-green);
    text-decoration: none;
}
.slp-card-cta:hover { text-decoration: underline; }

.slp-no-results {
    column-span: all;
    text-align: center; padding: 80px 20px;
    color: var(--slp-muted);
}
.slp-no-results svg { margin: 0 auto 16px; opacity: .4; }

/* Load more */
.slp-grid-loading { text-align: center; padding: 32px; color: var(--slp-muted); display: flex; align-items: center; justify-content: center; gap: 12px; }
.slp-spinner {
    width: 28px; height: 28px;
    border: 3px solid var(--slp-border);
    border-top-color: var(--slp-green);
    border-radius: 50%;
    animation: slp-spin .7s linear infinite;
}
@keyframes slp-spin { to { transform: rotate(360deg); } }
.slp-load-more-wrap { text-align: center; margin-top: 16px; padding: 8px 0 16px; }
.slp-load-more {
    background: transparent;
    border: 2px solid var(--slp-green);
    color: var(--slp-green);
    font-size: 14px; font-weight: 700;
    padding: 12px 40px; border-radius: 999px;
    cursor: pointer;
    transition: background .2s, color .2s;
}
.slp-load-more:hover { background: var(--slp-green); color: #fff; }

/* ── About / SEO copy ── */
.slp-about {
    background: #fff;
    padding: 72px 24px;
}
.slp-about-inner {
    max-width: 1200px; margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 60px;
    align-items: start;
}
.slp-about-eyebrow {
    font-size: 11px; font-weight: 800; letter-spacing: 2px;
    text-transform: uppercase; color: var(--slp-green, #F07840);
    margin-bottom: 12px;
}
.slp-about-text h2 {
    font-size: clamp(1.4rem, 3vw, 2rem);
    font-weight: 800; margin-bottom: 18px;
    color: #111;
}
.slp-about-text p { font-size: 15px; line-height: 1.75; color: #333; margin-bottom: 14px; }
.slp-about-text a { color: var(--slp-green); font-weight: 700; }
.slp-about-keywords {
    display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px;
}
.slp-about-keywords span {
    font-size: 12px; font-weight: 600;
    background: #f5f5f5; border: 1px solid #ddd;
    color: #555; border-radius: 999px; padding: 4px 12px;
}
.slp-about-stats {
    display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
.slp-stat {
    background: var(--slp-bg);
    border: 1px solid var(--slp-border);
    border-radius: var(--slp-radius);
    padding: 22px 18px; text-align: center;
}
.slp-stat-num {
    display: block; font-size: 2rem; font-weight: 900;
    color: var(--slp-green); line-height: 1;
    margin-bottom: 6px;
}
.slp-stat-label { font-size: 12px; color: #666; font-weight: 600; }

/* ── Section headings ── */
.slp-section-head {
    text-align: center; max-width: 640px; margin: 0 auto 44px;
}
.slp-section-head h2 { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; margin-bottom: 10px; color: #111; }
.slp-section-head p { font-size: 15px; color: #444; }
.slp-section-head--light h2 { color: #fff; }
.slp-section-head--light p  { color: rgba(255,255,255,.7); }

/* ── Species grid ── */
.slp-species-section {
    padding: 72px 24px;
    max-width: 1400px; margin: 0 auto;
}
.slp-species-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 18px;
}
.slp-species-card {
    position: relative; border-radius: var(--slp-radius-lg);
    overflow: hidden; display: block; text-decoration: none;
    aspect-ratio: 3/4;
    box-shadow: 0 4px 20px rgba(0,0,0,.12);
    transition: transform .25s, box-shadow .25s;
}
.slp-species-card:hover { transform: translateY(-4px); box-shadow: 0 10px 36px rgba(0,0,0,.22); }
.slp-species-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.slp-species-card:hover .slp-species-img { transform: scale(1.06); }
.slp-species-placeholder {
    width: 100%; height: 100%; background: #ebebeb;
    display: flex; align-items: center; justify-content: center;
    color: var(--slp-muted);
}
.slp-species-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.1) 60%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 18px 16px; gap: 4px;
}
.slp-species-name { font-size: 16px; font-weight: 800; color: #fff; }
.slp-species-count { font-size: 11px; color: rgba(255,255,255,.65); }
.slp-species-cta {
    font-size: 12px; font-weight: 700;
    color: rgba(255,255,255,0);
    transition: color .2s;
}
.slp-species-card:hover .slp-species-cta { color: rgba(255,255,255,.85); }

/* ── Locations row ── */
.slp-locations-section {
    background: var(--slp-dark);
    padding: 72px 24px;
}
.slp-locations-inner { max-width: 1400px; margin: 0 auto; }
.slp-locations-row {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
}
.slp-loc-card {
    position: relative; border-radius: var(--slp-radius-lg);
    overflow: hidden; display: block; text-decoration: none;
    aspect-ratio: 4/3;
    transition: transform .25s;
}
.slp-loc-card:hover { transform: translateY(-3px); }
.slp-loc-img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(.8); transition: filter .3s, transform .4s; }
.slp-loc-card:hover .slp-loc-img { filter: brightness(.95); transform: scale(1.04); }
.slp-loc-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.8) 0%, transparent 60%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 16px 14px; gap: 2px;
}
.slp-loc-name { font-size: 15px; font-weight: 800; color: #fff; }
.slp-loc-count { font-size: 11px; color: rgba(255,255,255,.6); }

/* ── 3 Formats ── */
.slp-formats-section {
    padding: 72px 24px;
    background: var(--slp-bg);
}
.slp-formats-inner { max-width: 1100px; margin: 0 auto; }
.slp-formats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.slp-fmt-card {
    background: #fff;
    border: 1.5px solid var(--slp-border);
    border-radius: var(--slp-radius-lg);
    padding: 32px 28px;
    position: relative;
    transition: box-shadow .2s;
}
.slp-fmt-card:hover { box-shadow: 0 6px 28px rgba(0,0,0,.1); }
.slp-fmt-card--featured {
    border-color: var(--slp-green);
    box-shadow: 0 0 0 3px rgba(0,0,0,.10);
}
.slp-fmt-badge {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
    background: var(--slp-green); color: #fff;
    font-size: 11px; font-weight: 800; letter-spacing: .5px;
    text-transform: uppercase; padding: 4px 14px; border-radius: 999px;
    white-space: nowrap;
}
.slp-fmt-icon { color: var(--slp-green); margin-bottom: 16px; }
.slp-fmt-card h3 { font-size: 18px; font-weight: 800; margin-bottom: 10px; color: #111; }
.slp-fmt-card p { font-size: 14px; color: #444; line-height: 1.65; margin-bottom: 14px; }
.slp-fmt-card ul { list-style: none; padding: 0; margin: 0 0 20px; display: flex; flex-direction: column; gap: 7px; }
.slp-fmt-card ul li {
    font-size: 13px; color: #333;
    display: flex; align-items: center; gap: 7px;
}
.slp-fmt-card ul li::before {
    content: '';
    display: inline-block;
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--slp-green); flex-shrink: 0;
}
.slp-fmt-from { font-size: 15px; font-weight: 800; color: var(--slp-gold); }

/* ── Why section ── */
.slp-why-section { padding: 72px 24px; background: #fff; }
.slp-why-inner {
    max-width: 1200px; margin: 0 auto;
    display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start;
}
.slp-why-text .slp-about-eyebrow { margin-bottom: 10px; }
.slp-why-text h2 { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; margin-bottom: 16px; color: #111; }
.slp-why-text p { font-size: 15px; line-height: 1.75; color: #333; margin-bottom: 12px; }
.slp-why-link { color: var(--slp-green); font-weight: 700; text-decoration: none; font-size: 14px; }
.slp-why-link:hover { text-decoration: underline; }
.slp-why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.slp-why-item {
    background: var(--slp-bg); border: 1px solid var(--slp-border);
    border-radius: var(--slp-radius); padding: 22px;
    display: flex; flex-direction: column; gap: 8px;
}
.slp-why-item svg { color: var(--slp-green); }
.slp-why-item strong { font-size: 14px; font-weight: 800; }
.slp-why-item p { font-size: 13px; color: #444; line-height: 1.6; margin: 0; }

/* ── CTA Banner ── */
.slp-cta-banner { background: var(--slp-green); padding: 56px 24px; }
.slp-cta-inner {
    max-width: 900px; margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between;
    gap: 32px; flex-wrap: wrap;
}
.slp-cta-inner h2 { font-size: clamp(1.3rem, 3vw, 1.8rem); font-weight: 800; color: #fff; margin-bottom: 8px; }
.slp-cta-inner p { color: rgba(255,255,255,.8); font-size: 15px; margin: 0; }
.slp-cta-btn {
    display: inline-block;
    background: #fff; color: var(--slp-green);
    font-size: 15px; font-weight: 800;
    padding: 14px 36px; border-radius: 999px;
    text-decoration: none; white-space: nowrap;
    transition: background .2s, transform .2s;
}
.slp-cta-btn:hover { background: #f5f5f5; transform: translateY(-2px); }

/* ── Responsive ── */
@media (max-width: 1024px) {
    .slp-masonry { columns: 3 220px; }
    .slp-formats-grid { grid-template-columns: 1fr 1fr; }
    .slp-about-inner { grid-template-columns: 1fr; }
    .slp-about-stats { grid-template-columns: repeat(4, 1fr); }
    .slp-why-inner { grid-template-columns: 1fr; }
    .slp-why-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .slp-masonry { columns: 2 180px; }
    .slp-formats-grid { grid-template-columns: 1fr; }
    .slp-about-stats { grid-template-columns: repeat(2, 1fr); }
    .slp-species-grid { grid-template-columns: repeat(2, 1fr); }
    .slp-filter-inner { gap: 6px; }
    .slp-filter-group { padding: 6px 10px; }
    .slp-why-grid { grid-template-columns: 1fr; }
    .slp-cta-inner { flex-direction: column; text-align: center; }
}
@media (max-width: 480px) {
    .slp-masonry { columns: 1; }
    .slp-hero-h1 { font-size: 1.8rem; }
    .slp-species-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════
   INTERACTIVE & ANIMATION ADDITIONS
═══════════════════════════════════════════════════════ */

/* ── Hero parallax ── */
.slp-hero {
    background-position-y: var(--slp-parallax-y, center);
}

/* ── Cycling hero word ── */
.slp-hero-word {
    display: inline-block;
    color: var(--slp-green);
    min-width: 120px;
    text-align: left;
    transition: opacity .28s, transform .28s;
}
.slp-hero-word.slp-word-out {
    opacity: 0;
    transform: translateY(-12px);
}
.slp-hero-word.slp-word-in {
    opacity: 0;
    transform: translateY(12px);
    animation: slp-word-rise .4s forwards;
}
@keyframes slp-word-rise {
    to { opacity: 1; transform: translateY(0); }
}

/* ── Scroll-reveal base states ── */
.slp-reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity .65s cubic-bezier(.4,0,.2,1), transform .65s cubic-bezier(.4,0,.2,1);
}
.slp-reveal-up { opacity: 0; transform: translateY(24px); transition: opacity .55s .1s, transform .55s .1s; }
.slp-reveal-left { opacity: 0; transform: translateX(-32px); transition: opacity .6s, transform .6s; }
.slp-reveal-right { opacity: 0; transform: translateX(32px); transition: opacity .6s, transform .6s; }

.slp-reveal.slp-in-view,
.slp-reveal-up.slp-in-view,
.slp-reveal-left.slp-in-view,
.slp-reveal-right.slp-in-view {
    opacity: 1;
    transform: translate(0);
}

/* Stagger children inside a reveal parent */
.slp-reveal .slp-species-card:nth-child(2) { transition-delay: .08s; }
.slp-reveal .slp-species-card:nth-child(3) { transition-delay: .16s; }
.slp-reveal .slp-species-card:nth-child(4) { transition-delay: .24s; }
.slp-reveal .slp-species-card:nth-child(5) { transition-delay: .32s; }
.slp-reveal .slp-fmt-card:nth-child(2) { transition-delay: .1s; }
.slp-reveal .slp-fmt-card:nth-child(3) { transition-delay: .2s; }

/* ── Filter chips ── */
.slp-chips-wrap {
    padding: 0 0 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.slp-chips-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.slp-chips-label {
    font-size: 11px; font-weight: 700; letter-spacing: 1px;
    text-transform: uppercase; color: var(--slp-muted);
    white-space: nowrap; min-width: 60px;
}
.slp-chip {
    display: inline-flex; align-items: center;
    border: 1.5px solid var(--slp-border);
    background: var(--slp-surface);
    color: var(--slp-muted);
    border-radius: 999px;
    padding: 5px 14px;
    font-size: 13px; font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s, transform .12s;
    white-space: nowrap;
    user-select: none;
}
.slp-chip:hover { border-color: var(--slp-green); color: var(--slp-green); transform: translateY(-1px); }
.slp-chip-active {
    border-color: var(--slp-green);
    background: var(--slp-green);
    color: #fff;
}
.slp-chip-active:hover { background: var(--slp-green2); border-color: var(--slp-green2); color: #fff; }

/* ── Enhanced card hover (override slp-card) ── */
.slp-card {
    will-change: transform;
    transition: box-shadow .22s, transform .22s;
}

/* ── Safari CTA — shop page ── */
.slp-safari {
    position: relative;
    min-height: 560px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--slp-dark) var(--slp-safari-bg, none) center/cover no-repeat;
    background-attachment: fixed;
    overflow: hidden;
    padding: 80px 24px;
}
.slp-safari-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(135deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.65) 60%, rgba(0,0,0,.80) 100%);
}
.slp-safari-inner {
    position: relative; z-index: 1;
    max-width: 800px; margin: 0 auto;
    text-align: center; color: #fff;
}
.slp-safari-badge {
    display: inline-flex; align-items: center; gap: 7px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px;
    padding: 7px 18px;
    font-size: 12px; font-weight: 700; letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 24px;
    backdrop-filter: blur(6px);
}
.slp-safari-h2 {
    font-size: clamp(1.8rem, 5vw, 3rem);
    font-weight: 900;
    line-height: 1.1;
    margin-bottom: 18px;
    color: #fff;
}
.slp-safari-sub {
    font-size: clamp(15px, 2vw, 18px);
    color: rgba(255,255,255,.82);
    line-height: 1.7;
    max-width: 600px;
    margin: 0 auto 28px;
}
.slp-safari-sub a { color: #fff; font-weight: 700; }
.slp-safari-locs {
    display: flex; justify-content: center; gap: 10px; flex-wrap: wrap;
    margin-bottom: 32px;
}
.slp-safari-locs span {
    font-size: 12px; font-weight: 700; letter-spacing: .5px;
    color: rgba(255,255,255,.7);
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px; padding: 4px 14px;
}
.slp-safari-features {
    display: flex; justify-content: center; flex-wrap: wrap; gap: 20px 36px;
    margin-bottom: 36px;
}
.slp-safari-feat {
    display: flex; align-items: center; gap: 9px;
    font-size: 13px; font-weight: 600; color: rgba(255,255,255,.85);
}
.slp-safari-feat svg { color: rgba(255,255,255,.85); flex-shrink: 0; }
.slp-safari-actions {
    display: flex; justify-content: center; gap: 14px; flex-wrap: wrap;
}
.slp-safari-btn-primary {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--slp-green, #F07840);
    color: #fff; text-decoration: none;
    font-size: 16px; font-weight: 800;
    padding: 16px 36px; border-radius: 999px;
    transition: opacity .18s, transform .18s;
    box-shadow: 0 6px 28px rgba(0,0,0,.35);
}
.slp-safari-btn-primary:hover { opacity: .88; transform: translateY(-2px); }
.slp-safari-btn-ghost {
    display: inline-flex; align-items: center; gap: 8px;
    background: transparent; color: rgba(255,255,255,.85);
    border: 1.5px solid rgba(255,255,255,.35);
    text-decoration: none;
    font-size: 15px; font-weight: 600;
    padding: 14px 30px; border-radius: 999px;
    transition: border-color .18s, color .18s;
}
.slp-safari-btn-ghost:hover { border-color: #fff; color: #fff; }

/* ── Safari CTA — single product page ── */
.wsp-safari-cta {
    background: var(--slp-dark, #111);
    padding: 64px 24px;
}
.wsp-safari-cta-inner {
    max-width: 1100px; margin: 0 auto;
    display: flex; align-items: center; gap: 48px; flex-wrap: wrap;
}
.wsp-safari-cta-text { flex: 1; min-width: 280px; }
.wsp-safari-eyebrow {
    font-size: 11px; font-weight: 800; letter-spacing: 2px;
    text-transform: uppercase; color: var(--slp-green, #F07840);
    margin-bottom: 10px;
}
.wsp-safari-cta h2 {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
    font-weight: 900; color: #fff; margin-bottom: 14px;
}
.wsp-safari-cta p {
    font-size: 15px; line-height: 1.7;
    color: rgba(255,255,255,.72); margin-bottom: 16px;
}
.wsp-safari-cta p a { color: rgba(255,255,255,.9); font-weight: 700; }
.wsp-safari-locs {
    display: flex; flex-wrap: wrap; gap: 8px;
}
.wsp-safari-locs span {
    font-size: 12px; font-weight: 600;
    color: rgba(255,255,255,.55);
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 999px; padding: 3px 12px;
}
.wsp-safari-locs .wsp-safari-loc-active {
    border-color: var(--slp-green, #F07840);
    color: var(--slp-green, #F07840);
}
.wsp-safari-cta-action { text-align: center; }
.wsp-safari-cta-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--slp-green, #F07840);
    color: #fff; text-decoration: none;
    font-size: 16px; font-weight: 800;
    padding: 16px 36px; border-radius: 999px;
    transition: opacity .18s, transform .18s;
    box-shadow: 0 6px 24px rgba(0,0,0,.3);
    white-space: nowrap;
}
.wsp-safari-cta-btn:hover { opacity: .88; transform: translateY(-2px); }
.wsp-safari-note { font-size: 12px; color: rgba(255,255,255,.45); margin-top: 12px; }

/* ── Responsive ── */
@media (max-width: 768px) {
    .slp-safari { background-attachment: scroll; padding: 56px 20px; }
    .slp-safari-h2 { font-size: 1.7rem; }
    .slp-safari-features { gap: 14px 20px; }
    .wsp-safari-cta-inner { flex-direction: column; text-align: center; }
    .wsp-safari-locs { justify-content: center; }
    .slp-chips-group { gap: 6px; }
    .slp-chip { font-size: 12px; padding: 4px 12px; }
}

/* ═══════════════════════════════════════════════════════
   ALL WOOCOMMERCE PAGES — GLOBAL DARK THEME
═══════════════════════════════════════════════════════ */

body.woocommerce,
body.woocommerce-page,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account {
    background: var(--jp-bg);
    color: var(--jp-text);
}

/* Main content area reset */
body.woocommerce .site-main,
body.woocommerce-page .site-main,
body.woocommerce-cart .site-main,
body.woocommerce-checkout .site-main,
body.woocommerce-account .site-main {
    background: var(--jp-bg);
    color: var(--jp-text);
}

/* WooCommerce wrappers */
.woocommerce,
.woocommerce-page { color: var(--jp-text); }

/* Headings */
body.woocommerce h1,
body.woocommerce h2,
body.woocommerce h3,
body.woocommerce-page h1,
body.woocommerce-page h2,
body.woocommerce-page h3,
body.woocommerce-cart h1,
body.woocommerce-cart h2,
body.woocommerce-checkout h1,
body.woocommerce-checkout h2,
body.woocommerce-account h1,
body.woocommerce-account h2 {
    color: var(--jp-text);
}

/* Notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    border-top-color: var(--jp-green);
    background: var(--jp-surface);
    color: var(--jp-text);
}
.woocommerce-message::before { color: var(--jp-green); }
.woocommerce-info::before    { color: var(--jp-gold); }
.woocommerce-error           { border-top-color: #c04040; }

/* Buttons — WooCommerce default */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce-page a.button,
.woocommerce-page button.button {
    background: var(--jp-green) !important;
    color: #fff !important;
    border-radius: var(--jp-radius);
    font-weight: 700;
    transition: background var(--jp-transition);
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: var(--jp-green-lt) !important;
    color: #fff !important;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt {
    background: var(--jp-green) !important;
}

/* ── CART PAGE ── */
.woocommerce-cart table.cart,
.woocommerce table.woocommerce-cart-form__contents {
    border-collapse: collapse;
    width: 100%;
}
.woocommerce table.cart th,
.woocommerce table.cart td {
    padding: 14px 16px;
    border-color: var(--jp-border);
    color: var(--jp-text);
    background: transparent;
}
.woocommerce table.cart th {
    background: var(--jp-surface);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .8px;
    color: var(--jp-text-muted);
    font-weight: 700;
    border-bottom: 1px solid var(--jp-border);
}
.woocommerce table.cart tr { border-bottom: 1px solid var(--jp-border); }
.woocommerce table.cart tr:hover td { background: rgba(255,255,255,.02); }

.woocommerce .cart-collaterals .cart_totals {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    padding: 24px;
}
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 15px; text-transform: uppercase; letter-spacing: 1px; margin: 0 0 16px; color: var(--jp-text-muted); }
.woocommerce .cart-collaterals table { border-collapse: collapse; width: 100%; }
.woocommerce .cart-collaterals table th,
.woocommerce .cart-collaterals table td { padding: 10px 0; border-color: var(--jp-border); color: var(--jp-text); font-size: 14px; }
.woocommerce .cart-collaterals .order-total td { font-size: 18px; font-weight: 800; color: var(--jp-gold); }

.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
    background: var(--jp-green) !important;
    border-radius: var(--jp-radius) !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    padding: 16px !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.18) !important;
}
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
    background: var(--jp-green-lt) !important;
    transform: translateY(-1px);
    box-shadow: 0 6px 28px rgba(0,0,0,.22) !important;
}

/* ══════════════════════════════════════════════════════
   CHECKOUT — Clean light design, easy for clients
══════════════════════════════════════════════════════ */

/* Override dark body for checkout only */
body.woocommerce-checkout {
    background: #f7f7f7 !important;
    color: #111 !important;
}
body.woocommerce-checkout .site-main,
body.woocommerce-checkout .jps-main {
    background: #f7f7f7 !important;
    color: #111 !important;
}
body.woocommerce-checkout h1,
body.woocommerce-checkout h2,
body.woocommerce-checkout h3 { color: #111 !important; }

/* Checkout wrapper — two-column: form | summary */
body.woocommerce-checkout .woocommerce {
    max-width: 1100px;
    margin: 0 auto;
    padding: 40px 20px 60px;
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
    align-items: start;
    color: #111;
}
@media (max-width: 860px) {
    body.woocommerce-checkout .woocommerce { grid-template-columns: 1fr; }
}

/* Section cards */
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review,
.woocommerce-checkout #payment {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
}
.woocommerce-checkout #customer_details { padding: 28px; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }

/* Step label above form */
.woocommerce-checkout h3#ship-to-different-address,
.woocommerce-checkout h3#order_review_heading {
    font-size: 13px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    color: #666 !important;
    margin: 0 0 16px !important;
    padding: 20px 24px 0 !important;
}

/* Form labels & inputs */
.woocommerce-checkout .woocommerce form .form-row label,
.woocommerce form.checkout .form-row label {
    color: #333;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 5px;
    display: block;
}
.woocommerce-checkout .woocommerce form .form-row input.input-text,
.woocommerce-checkout .woocommerce form .form-row select,
.woocommerce-checkout .woocommerce form .form-row textarea,
.woocommerce form.checkout .form-row input.input-text,
.woocommerce form.checkout .form-row select {
    background: #fff !important;
    border: 1.5px solid #ddd !important;
    border-radius: 8px !important;
    color: #111 !important;
    font-size: 14px !important;
    padding: 11px 14px !important;
    width: 100%;
    transition: border-color .18s;
}
.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
.woocommerce-checkout .woocommerce form .form-row select:focus,
.woocommerce form.checkout .form-row input.input-text:focus,
.woocommerce form.checkout .form-row select:focus {
    border-color: var(--jp-primary, #F07840) !important;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0,0,0,.08) !important;
}
select option { background: #fff; color: #111; }

/* Order summary card */
.woocommerce-checkout #order_review_heading { display: none; }
.woocommerce-checkout #order_review {
    padding: 0;
    overflow: hidden;
}
.woocommerce-checkout #order_review::before {
    content: 'Your Order';
    display: block;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #666;
    padding: 18px 22px 14px;
    border-bottom: 1px solid #eee;
}
.woocommerce-checkout table.shop_table {
    border-collapse: collapse;
    width: 100%;
    margin: 0;
}
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td {
    padding: 12px 22px;
    border-color: #eee;
    color: #111;
    font-size: 14px;
    background: #fff;
}
.woocommerce-checkout table.shop_table th { color: #666; font-weight: 600; font-size: 12px; }
.woocommerce-checkout table.shop_table tfoot tr:last-child th,
.woocommerce-checkout table.shop_table tfoot tr:last-child td {
    font-size: 17px;
    font-weight: 800;
    color: #111;
    border-top: 2px solid #eee;
}

/* Payment section */
#payment {
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    overflow: hidden;
    margin-top: 16px;
}
#payment ul.payment_methods {
    background: #fafafa;
    padding: 0;
    list-style: none;
    border-bottom: 1px solid #eee;
}
#payment ul.payment_methods li {
    padding: 14px 20px;
    border-bottom: 1px solid #eee;
    color: #111;
}
#payment ul.payment_methods li:last-child { border-bottom: none; }
#payment ul.payment_methods label { color: #111; cursor: pointer; font-weight: 600; }
#payment .payment_box {
    background: #f5f5f5;
    border-top: 1px solid #eee;
    padding: 14px 20px;
    color: #555;
    font-size: 13px;
}
#payment .place-order { padding: 20px; }
#payment #place_order {
    width: 100%;
    padding: 16px;
    background: var(--jp-primary, #F07840) !important;
    color: #fff !important;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 800;
    cursor: pointer;
    letter-spacing: .3px;
    box-shadow: 0 4px 16px rgba(0,0,0,.15);
    transition: opacity .18s, transform .18s;
}
#payment #place_order:hover { opacity: .88; transform: translateY(-1px); }

/* Trust row below Place Order button */
#payment .place-order::after {
    content: '🔒 Secure checkout  ·  Instant download  ·  Print delivered in 5 days';
    display: block;
    text-align: center;
    font-size: 11px;
    color: #888;
    margin-top: 12px;
}

/* ══════════════════════════════════════════════════════
   CART — Clean light layout
══════════════════════════════════════════════════════ */
body.woocommerce-cart {
    background: #f7f7f7 !important;
    color: #111 !important;
}
body.woocommerce-cart .site-main,
body.woocommerce-cart .jps-main { background: #f7f7f7 !important; }
body.woocommerce-cart h1,
body.woocommerce-cart h2 { color: #111 !important; }
body.woocommerce-cart .woocommerce {
    max-width: 1100px; margin: 0 auto; padding: 40px 20px 60px; color: #111;
}

/* ── MY ACCOUNT PAGE ── */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 220px 1fr; gap: 32px; align-items: start; }
@media (max-width: 768px) { .woocommerce-account .woocommerce { grid-template-columns: 1fr; } }

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    overflow: hidden;
}
.woocommerce-MyAccount-navigation ul li { border-bottom: 1px solid var(--jp-border); }
.woocommerce-MyAccount-navigation ul li:last-child { border-bottom: none; }
.woocommerce-MyAccount-navigation ul li a {
    display: block;
    padding: 12px 18px;
    color: var(--jp-text-muted);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    transition: all var(--jp-transition);
}
.woocommerce-MyAccount-navigation ul li a:hover,
.woocommerce-MyAccount-navigation ul li.is-active a {
    color: var(--jp-green-lt);
    background: rgba(255,255,255,.08);
}
.woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--logout a { color: #c04040; }

.woocommerce-MyAccount-content {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    border-radius: var(--jp-radius-lg);
    padding: 28px;
}
.woocommerce-MyAccount-content table.woocommerce-orders-table { width: 100%; border-collapse: collapse; }
.woocommerce-MyAccount-content table th { background: var(--jp-surface2); color: var(--jp-text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .8px; padding: 10px 14px; border-bottom: 1px solid var(--jp-border); }
.woocommerce-MyAccount-content table td { padding: 12px 14px; border-bottom: 1px solid var(--jp-border); color: var(--jp-text); font-size: 14px; }
.woocommerce-MyAccount-content table tr:last-child td { border-bottom: none; }
.woocommerce-MyAccount-content .order-status { padding: 3px 10px; border-radius: 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a { font-size: 12px; }

/* Order received / thank you */
.woocommerce-order-received .woocommerce { max-width: 720px; margin: 0 auto; padding: 60px 28px; }
.woocommerce-order { background: var(--jp-surface); border: 1px solid var(--jp-border); border-radius: var(--jp-radius-lg); padding: 32px; }
.woocommerce-thankyou-order-received { font-size: 1.5rem; font-weight: 700; color: var(--jp-green-lt); margin-bottom: 24px; }
.woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 16px; list-style: none; padding: 0; margin: 0 0 28px; }
.woocommerce-order-overview li { flex: 1; min-width: 120px; background: var(--jp-surface2); border: 1px solid var(--jp-border); border-radius: var(--jp-radius); padding: 14px; font-size: 13px; color: var(--jp-text-muted); }
.woocommerce-order-overview li strong { display: block; font-size: 15px; color: var(--jp-text); margin-top: 4px; }

/* Global form fields fallback */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select {
    background: var(--jp-surface);
    border: 1px solid var(--jp-border);
    color: var(--jp-text);
    border-radius: var(--jp-radius);
}
.woocommerce input::placeholder,
.woocommerce textarea::placeholder { color: var(--jp-text-muted); }

/* ══════════════════════════════════════════════════════
   FAQ ACCORDION  — shared component (.wl-faq-*)
   Used on both shop page and single product page
══════════════════════════════════════════════════════ */
.wl-faq-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 56px;
}
@media (max-width: 820px) { .wl-faq-grid { grid-template-columns: 1fr; } }
.wl-faq-col { display: flex; flex-direction: column; }

.wl-faq-item { border-bottom: 1px solid var(--wl-faq-border, rgba(0,0,0,.09)); }
.wl-faq-col > .wl-faq-item:first-child { border-top: 1px solid var(--wl-faq-border, rgba(0,0,0,.09)); }

.wl-faq-q {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 20px 0;
    background: none;
    border: none;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    text-align: left;
    color: var(--wl-faq-heading, #111);
    transition: color .18s;
}
.wl-faq-q:hover { color: var(--wl-faq-accent, #F07840); }
.wl-faq-item.is-open .wl-faq-q { color: var(--wl-faq-accent, #F07840); }

.wl-faq-chevron {
    flex-shrink: 0;
    opacity: .45;
    transition: transform .26s cubic-bezier(.4,0,.2,1), opacity .18s, color .18s;
}
.wl-faq-q:hover .wl-faq-chevron { opacity: .75; }
.wl-faq-item.is-open .wl-faq-chevron {
    transform: rotate(180deg);
    opacity: 1;
    color: var(--wl-faq-accent, #F07840);
}

.wl-faq-a { overflow: hidden; }
.wl-faq-a-inner {
    padding: 0 28px 22px 0;
    font-size: 14.5px;
    line-height: 1.82;
    color: var(--wl-faq-body, #555);
}
.wl-faq-a-inner strong { color: var(--wl-faq-heading, #111); font-weight: 700; }
.wl-faq-a-inner a { color: var(--wl-faq-accent, #F07840); text-decoration: underline; }
.wl-faq-a-inner a:hover { text-decoration: none; }

/* ── Shop page FAQ wrapper ── */
.slp-faq-section {
    padding: 88px 28px 100px;
    background: var(--slp-bg, var(--wp--preset--color--background, #fff));
    --wl-faq-border:  rgba(0,0,0,.09);
    --wl-faq-heading: var(--slp-dark, var(--wp--preset--color--foreground, #111));
    --wl-faq-body:    var(--slp-gold, var(--wp--preset--color--secondary, #555));
    --wl-faq-accent:  var(--slp-green, #F07840);
}
.slp-faq-inner { max-width: 1200px; margin: 0 auto; }
.slp-faq-head {
    text-align: center;
    margin-bottom: 58px;
}
.slp-faq-head .slp-about-eyebrow { margin-bottom: 10px; }
.slp-faq-head h2 {
    font-size: clamp(22px, 3.5vw, 36px);
    font-weight: 900;
    margin: 0 0 12px;
    color: #111;
}
.slp-faq-head > p {
    font-size: 16px;
    color: #444;
    max-width: 540px;
    margin: 0 auto;
    line-height: 1.6;
}

/* ── Product page FAQ wrapper ── */
.wsp-faq-section {
    padding: 64px 28px 80px;
    background: var(--wsp-surface, #fff);
    border-top: 1px solid var(--wsp-border, rgba(0,0,0,.09));
    --wl-faq-border:  var(--wsp-border, rgba(0,0,0,.09));
    --wl-faq-heading: var(--wsp-text, #111);
    --wl-faq-body:    var(--wsp-muted, #666);
    --wl-faq-accent:  var(--wsp-green, #F07840);
}
.wsp-faq-inner { max-width: 1200px; margin: 0 auto; }
.wsp-faq-head { margin-bottom: 42px; }
.wsp-faq-head h2 {
    font-size: clamp(18px, 2.5vw, 26px);
    font-weight: 900;
    margin: 0 0 6px;
    color: var(--wsp-text, #111);
}
.wsp-faq-head > p {
    font-size: 14px;
    color: var(--wsp-muted, #666);
    line-height: 1.5;
}

/* ══════════════════════════════════════════════════════
   BIG FIVE SECTION  (.slp-bigfive-*)
══════════════════════════════════════════════════════ */
.slp-bigfive-section {
    padding: 80px 28px 88px;
    background: var(--slp-dark, var(--wp--preset--color--contrast, #111));
    color: #fff;
}
.slp-bigfive-inner { max-width: 1320px; margin: 0 auto; }
.slp-bigfive-head {
    text-align: center;
    margin-bottom: 52px;
}
.slp-bigfive-head .slp-eyebrow--light {
    color: rgba(255,255,255,.55);
    border-color: rgba(255,255,255,.18);
}
.slp-bigfive-head h2 {
    font-size: clamp(22px, 3.5vw, 36px);
    font-weight: 900;
    color: #fff;
    margin: 10px 0 14px;
}
.slp-bigfive-head p {
    font-size: 16px;
    color: rgba(255,255,255,.7);
    max-width: 640px;
    margin: 0 auto;
    line-height: 1.65;
}

.slp-bf-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
}
@media (max-width: 1100px) { .slp-bf-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .slp-bf-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; } }
@media (max-width: 440px)  { .slp-bf-grid { grid-template-columns: 1fr; } }

.slp-bf-card {
    position: relative;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    text-decoration: none;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    transition: transform .25s cubic-bezier(.4,0,.2,1), box-shadow .25s;
}
.slp-bf-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 48px rgba(0,0,0,.5);
}
.slp-bf-img {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}
.slp-bf-card:hover .slp-bf-img { transform: scale(1.06); }
.slp-bf-placeholder {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    color: rgba(255,255,255,.25);
}
.slp-bf-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.3) 55%, transparent 100%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 20px 16px;
    gap: 4px;
}
.slp-bf-name {
    display: block;
    font-size: 18px; font-weight: 900;
    color: #fff;
    line-height: 1.2;
}
.slp-bf-count {
    font-size: 11px; color: rgba(255,255,255,.6);
    text-transform: uppercase; letter-spacing: .8px;
}
.slp-bf-desc {
    font-size: 12px; color: rgba(255,255,255,.9);
    line-height: 1.5; margin: 4px 0 8px;
}
.slp-bf-cta {
    font-size: 12px; font-weight: 700;
    color: var(--slp-green, #F07840);
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .2s, transform .2s;
}
.slp-bf-card:hover .slp-bf-cta { opacity: 1; transform: translateY(0); }

.slp-bigfive-note {
    text-align: center;
    margin-top: 32px;
    font-size: 13px;
    color: rgba(255,255,255,.75);
}
.slp-bigfive-note-link {
    color: rgba(255,255,255,.75);
    text-decoration: underline;
    margin-left: 8px;
}
.slp-bigfive-note-link:hover { color: #fff; }

/* ══════════════════════════════════════════════════════
   PRINTS FOR YOUR SPACE  (.slp-space-*)
══════════════════════════════════════════════════════ */
.slp-space-section {
    padding: 80px 28px 88px;
    background: var(--slp-bg, var(--wp--preset--color--background, #fafafa));
}
.slp-space-inner { max-width: 1200px; margin: 0 auto; }

.slp-space-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 48px;
}
@media (max-width: 960px)  { .slp-space-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .slp-space-grid { grid-template-columns: 1fr; } }

.slp-space-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.07);
    border-radius: 14px;
    padding: 28px 24px 24px;
    display: flex; flex-direction: column; gap: 10px;
    transition: box-shadow .2s, transform .2s;
}
.slp-space-card:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,.1);
    transform: translateY(-3px);
}
.slp-space-icon {
    width: 48px; height: 48px;
    background: var(--slp-bg, #f0f0f0);
    border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    color: var(--slp-green, #F07840);
    margin-bottom: 4px;
}
.slp-space-card h3 {
    font-size: 16px; font-weight: 800;
    margin: 0;
    color: #111;
}
.slp-space-card p {
    font-size: 13.5px; line-height: 1.7;
    color: #333;
    margin: 0;
    flex: 1;
}
.slp-space-tip {
    font-size: 11.5px; font-style: italic;
    color: var(--slp-green, #F07840);
    border-top: 1px solid rgba(0,0,0,.07);
    padding-top: 10px;
    margin-top: auto;
}

.slp-space-guide {
    background: var(--slp-dark, #111);
    border-radius: 14px;
    padding: 32px;
    color: rgba(255,255,255,.85);
}
.slp-space-guide-title {
    font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px;
    color: rgba(255,255,255,.7); margin: 0 0 20px;
}
.slp-space-guide-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}
@media (max-width: 900px)  { .slp-space-guide-row { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px)  { .slp-space-guide-row { grid-template-columns: 1fr; } }

.slp-space-guide-item {
    font-size: 13px; line-height: 1.7;
    color: rgba(255,255,255,.88);
}
.slp-space-guide-item strong {
    display: block; margin-bottom: 6px;
    font-size: 13px; font-weight: 700;
    color: #fff;
}

/* ══════════════════════════════════════════════════════
   PHOTOGRAPHY WORKSHOPS  (.slp-workshops-*)
══════════════════════════════════════════════════════ */
.slp-workshops-section {
    padding: 80px 28px 88px;
    background: var(--slp-bg, #f7f7f7);
    border-top: 1px solid rgba(0,0,0,.07);
}
.slp-workshops-inner { max-width: 1200px; margin: 0 auto; }
.slp-workshops-section .slp-section-head p a {
    color: var(--slp-green, #F07840);
}

.slp-workshops-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-bottom: 56px;
}
@media (max-width: 900px)  { .slp-workshops-grid { grid-template-columns: 1fr; } }

.slp-workshop-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 16px;
    padding: 32px 28px;
    position: relative;
    display: flex; flex-direction: column; gap: 12px;
    transition: box-shadow .2s, transform .2s;
}
.slp-workshop-card:hover {
    box-shadow: 0 10px 36px rgba(0,0,0,.1);
    transform: translateY(-3px);
}
.slp-workshop-card--featured {
    border-color: var(--slp-green, #F07840);
    border-width: 2px;
}
.slp-workshop-badge {
    position: absolute; top: -12px; left: 28px;
    background: var(--slp-green, #F07840);
    color: #fff; font-size: 11px; font-weight: 800;
    padding: 4px 12px; border-radius: 999px;
    text-transform: uppercase; letter-spacing: .6px;
}
.slp-workshop-num {
    font-size: 48px; font-weight: 900; line-height: 1;
    color: rgba(0,0,0,.06);
    font-family: inherit;
}
.slp-workshop-card h3 {
    font-size: 18px; font-weight: 800;
    margin: 0;
    color: #111;
}
.slp-workshop-card > p {
    font-size: 14px; line-height: 1.75;
    color: #333;
    margin: 0; flex: 1;
}
.slp-workshop-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 6px;
}
.slp-workshop-list li {
    font-size: 13px;
    color: #333;
    padding-left: 18px;
    position: relative;
}
.slp-workshop-list li::before {
    content: '✓';
    position: absolute; left: 0;
    color: var(--slp-green, #F07840);
    font-weight: 700;
}

.slp-workshops-why {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 48px;
    align-items: center;
    background: var(--slp-dark, #111);
    border-radius: 16px;
    padding: 40px 48px;
}
@media (max-width: 860px) {
    .slp-workshops-why { grid-template-columns: 1fr; gap: 28px; padding: 32px 24px; }
}
.slp-workshops-why-text h3 {
    font-size: 20px; font-weight: 900; margin: 0 0 20px;
    color: #fff;
}
.slp-workshops-why-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 14px;
}
.slp-workshops-why-list li {
    display: flex; align-items: flex-start; gap: 12px;
    font-size: 14px; line-height: 1.65;
    color: rgba(255,255,255,.9);
}
.slp-workshops-why-list li svg {
    flex-shrink: 0; margin-top: 2px;
    color: var(--slp-green, #F07840);
}
.slp-workshops-action {
    display: flex; flex-direction: column; gap: 14px; align-items: flex-start;
}
.slp-workshops-cta-btn {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 16px 28px;
    background: var(--slp-green, #F07840);
    color: #fff;
    border-radius: 999px;
    font-size: 15px; font-weight: 800;
    text-decoration: none;
    transition: filter .2s, transform .2s;
    white-space: nowrap;
}
.slp-workshops-cta-btn:hover { filter: brightness(1.15); transform: translateY(-1px); color: #fff; }
.slp-workshops-note {
    font-size: 12px; color: rgba(255,255,255,.72);
    margin: 0; line-height: 1.5;
}
.slp-workshops-profile-link {
    font-size: 13px;
    color: rgba(255,255,255,.6);
    text-decoration: underline;
}
.slp-workshops-profile-link:hover { color: rgba(255,255,255,.9); }
