/* Sport Plus Camp Shop v2.5.4 — aligned with Stats and Badges */
.spc-shop-page .spc-main{padding-top:clamp(20px,4vw,48px)}
.spc-shop-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:36px;margin-bottom:28px}
.spc-shop-hero h1{margin:0;font-size:clamp(3rem,7vw,6.4rem);line-height:.9;letter-spacing:-.07em}
.spc-shop-hero .spc-page-intro{max-width:680px}
.spc-shop-page .spc-participant-nav{display:flex;gap:6px;margin:0 0 36px;padding:8px;border:1px solid var(--spc-line);border-radius:999px;background:var(--spc-surface-soft);overflow-x:auto}
.spc-shop-page .spc-participant-nav a{flex:0 0 auto;padding:9px 14px;border-radius:999px;font-size:.78rem;font-weight:800;text-decoration:none}
.spc-shop-page .spc-participant-nav a[aria-current=page]{background:var(--spc-text);color:var(--spc-bg)}
.spc-shop-page .spc-participant-nav-spacer{flex:1}.spc-shop-page .spc-logout-link{color:var(--spc-danger)}
.spc-shop-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px;padding:18px 0;border-top:1px solid var(--spc-line);border-bottom:1px solid var(--spc-line)}
.spc-shop-toolbar p{margin:0 0 5px}.spc-shop-toolbar strong{font-size:1rem}.spc-stat-label{color:var(--spc-accent);font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.spc-shop-code{padding:7px 11px;border-radius:999px;background:var(--spc-accent-soft);color:var(--spc-accent);font-size:.7rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase}
.spc-shop-account-link{color:var(--spc-text);font-size:.78rem;font-weight:800;text-underline-offset:3px}
.spc-shop-page .shop{width:100%;margin:0;padding:0}.spc-shop-page .shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.spc-shop-page .card{min-width:0;overflow:hidden;border:1px solid var(--spc-line)!important;border-radius:var(--spc-radius-lg)!important;background:var(--spc-surface-soft)!important;box-shadow:none!important;transition:transform .22s var(--spc-ease),border-color .22s ease,box-shadow .22s ease}
.spc-shop-page .card:hover{transform:translateY(-3px);border-color:var(--spc-line-strong)!important;box-shadow:var(--spc-shadow)!important}
.spc-shop-page .card>a:first-child{display:block;aspect-ratio:1/1;overflow:hidden;background:var(--spc-accent-soft)}
.spc-shop-page .card img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--spc-ease)}.spc-shop-page .card:hover img{transform:scale(1.025)}
.spc-shop-page .card-body{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px 14px;padding:20px!important;text-align:left!important}
.spc-product-kicker{grid-column:1/-1;margin:0;color:var(--spc-accent);font-size:.65rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.spc-shop-page .card-title{grid-column:1/-1;margin:0!important;color:var(--spc-text);font-size:1.15rem!important;font-weight:750!important;line-height:1.2;letter-spacing:-.025em}
.spc-shop-page .price{color:var(--spc-muted);font-size:.76rem;font-weight:750}.spc-points-price{justify-self:end;padding:5px 9px;border-radius:999px;background:var(--spc-accent-soft);color:var(--spc-accent);font-size:.68rem;font-weight:850;white-space:nowrap}
.spc-shop-page .btn{min-height:43px;display:inline-flex;align-items:center;justify-content:center;padding:9px 14px!important;border:1px solid var(--spc-line)!important;border-radius:12px!important;background:transparent!important;color:var(--spc-text)!important;font-size:.76rem;font-weight:800!important;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease}
.spc-shop-page .btn:hover{border-color:var(--spc-line-strong)!important;background:var(--spc-accent-soft)!important}.spc-shop-page .card-body>.btn{grid-column:1/-1;width:100%;margin-top:8px}
.spc-shop-page .modal{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(10,10,9,.68);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.spc-shop-page .modal.open{display:flex}
.spc-shop-page .modal-card{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(320px,.85fr);width:min(860px,100%);max-height:min(760px,calc(100dvh - 48px));overflow:hidden;border:1px solid var(--spc-line);border-radius:var(--spc-radius-lg)!important;background:var(--spc-surface)!important;box-shadow:0 35px 110px rgba(0,0,0,.3)}
.spc-shop-page .modal-img-wrap{position:relative;min-height:430px;background:var(--spc-accent-soft)}.spc-shop-page .modal-img{width:100%;height:100%!important;max-height:none!important;object-fit:cover!important}
.spc-shop-page .modal-body{min-width:0;overflow:auto;padding:clamp(22px,3vw,32px)!important;color:var(--spc-text)!important}.spc-modal-eyebrow{margin-bottom:9px}
.spc-shop-page .modal-title{margin:0;padding-right:82px;font-size:clamp(1.7rem,3vw,2.65rem)!important;font-weight:750;line-height:.98;letter-spacing:-.055em}
.spc-shop-page .modal-price{margin-top:12px;color:var(--spc-text);font-size:.92rem;font-weight:800}.spc-shop-page .modal-meta{margin-top:11px;color:var(--spc-muted);font-size:.78rem;line-height:1.55}
.spc-shop-page .modal-desc{margin-top:18px;color:var(--spc-muted);font-size:.86rem;line-height:1.6}.spc-shop-page .modal-desc strong,.spc-shop-page .modal-feats strong{color:var(--spc-text);font-weight:750}
.spc-shop-page .modal-feats{display:grid;gap:8px;margin:16px 0;padding-left:18px;color:var(--spc-muted);font-size:.82rem;line-height:1.5}
.spc-shop-page .variant-group{margin:23px 0}.spc-shop-page .variant-title{margin-bottom:9px;color:var(--spc-muted);font-size:.67rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.spc-shop-page .swatches{display:flex;flex-wrap:wrap;gap:8px!important}
.spc-shop-page .swatch{min-height:40px;padding:8px 12px!important;border:1px solid var(--spc-line)!important;border-radius:11px!important;background:transparent!important;color:var(--spc-text)!important;font-size:.76rem;font-weight:800}.spc-shop-page .swatch.active{outline:0!important;border-color:var(--spc-accent)!important;background:var(--spc-accent-soft)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--spc-accent) 16%,transparent)}.spc-shop-page .swatch.disabled{opacity:.34}
.spc-shop-page .modal-close,.spc-shop-page .modal-share{position:absolute;top:16px;z-index:6;width:42px;height:42px;display:grid;place-items:center;padding:0!important;border:1px solid var(--spc-line)!important;border-radius:50%!important;background:var(--spc-surface-soft)!important;color:var(--spc-text)!important;backdrop-filter:blur(12px);cursor:pointer}.spc-shop-page .modal-close{right:16px!important}.spc-shop-page .modal-share{right:64px!important}.spc-shop-page .modal-close svg,.spc-shop-page .modal-share svg{width:18px;height:18px;fill:currentColor}
.spc-shop-page .modal-actions{display:grid;gap:9px;margin-top:18px}.spc-shop-page .modal-actions .btn{width:100%}.spc-shop-page #modalStripe,.spc-redeem-btn{background:var(--spc-text)!important;color:var(--spc-bg)!important;border-color:var(--spc-text)!important}.spc-shop-page #modalStripe:hover,.spc-redeem-btn:hover{transform:translateY(-1px);background:var(--spc-text)!important;color:var(--spc-bg)!important}.spc-redeem-btn:disabled{opacity:.5;cursor:wait}.spc-modal-points{font-weight:850;color:var(--spc-accent)!important}
.spc-slider-arrow{position:absolute;top:50%;z-index:3;width:40px;height:40px;display:none;align-items:center;justify-content:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(0,0,0,.4);color:#fff;cursor:pointer}.spc-slider-arrow.left{left:12px}.spc-slider-arrow.right{right:12px}.modal-img-wrap:hover .spc-slider-arrow{display:flex}
.spc-shop-page .toast{position:fixed;left:50%;bottom:24px;z-index:1200;transform:translate(-50%,20px);padding:11px 15px;border-radius:999px;background:var(--spc-text);color:var(--spc-bg);font-size:.74rem;font-weight:800;opacity:0;pointer-events:none;transition:.2s ease}.spc-shop-page .toast.show{transform:translate(-50%,0);opacity:1}html.spc-modal-open,html.spc-modal-open body{overflow:hidden}.spc-shop-page :focus-visible{outline:3px solid color-mix(in srgb,var(--spc-focus) 60%,transparent)!important;outline-offset:3px}
body.spc-shop-page .spc-qr-dialog{position:fixed!important;inset:0!important;width:min(92vw,500px)!important;max-width:none!important;max-height:calc(100dvh - 24px)!important;margin:auto!important;padding:0!important;overflow:hidden!important;border:0!important;border-radius:28px!important;background:transparent!important;color:var(--spc-text)!important;transform:none!important}body.spc-shop-page .spc-qr-dialog:not([open]){display:none!important}body.spc-shop-page .spc-qr-dialog[open]{display:block!important}body.spc-shop-page .spc-qr-dialog::backdrop{background:rgba(8,9,8,.72)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}body.spc-shop-page .spc-qr-dialog-panel{position:relative!important;box-sizing:border-box!important;width:100%!important;max-height:calc(100dvh - 24px)!important;margin:0!important;padding:clamp(22px,4vw,34px)!important;overflow:hidden!important;border:1px solid var(--spc-line)!important;border-radius:28px!important;background:var(--spc-surface)!important;box-shadow:0 30px 100px rgba(0,0,0,.3)!important;text-align:center!important;transform:none!important}
@media(max-width:900px){.spc-shop-page .shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spc-shop-page .modal-card{grid-template-columns:1fr 1fr}.spc-shop-page .modal-img-wrap{min-height:380px}}
@media(max-width:820px){.spc-shop-hero{grid-template-columns:1fr;align-items:start}.spc-shop-page .spc-participant-nav-spacer{display:none}}
@media(max-width:680px){.spc-shop-hero .spc-qr-card{display:none}.spc-shop-toolbar{align-items:flex-start}.spc-shop-page .shop-grid{grid-template-columns:1fr}.spc-shop-page .card>a:first-child{aspect-ratio:4/3}.spc-shop-page .modal{align-items:flex-end;padding:0}.spc-shop-page .modal-card{display:block;width:100%;max-height:92dvh;border-radius:24px 24px 0 0!important;overflow:hidden}.spc-shop-page .modal-img-wrap{min-height:0;aspect-ratio:4/3}.spc-shop-page .modal-body{max-height:52dvh;overflow-y:auto;overscroll-behavior:contain;padding:20px 18px max(30px,env(safe-area-inset-bottom))!important;-webkit-overflow-scrolling:touch}.spc-shop-page .modal-title{padding-right:76px}.spc-slider-arrow{display:flex}.spc-shop-page .spc-participant-nav{margin-left:-13px;margin-right:-13px;border-left:0;border-right:0;border-radius:0}}

/* v2.5.5: compact desktop product modal and contain authenticated mobile layout */
.spc-shop-page .spc-main,
.spc-shop-page .spc-shop-hero,
.spc-shop-page .spc-shop-toolbar,
.spc-shop-page .shop,
.spc-shop-page .shop-grid,
.spc-shop-page .card,
.spc-shop-page .card-body {
  min-width: 0;
  max-width: 100%;
}

@media (min-width: 681px) {
  .spc-shop-page .modal-card {
    grid-template-columns: minmax(0, .88fr) minmax(300px, .72fr);
    width: min(760px, calc(100vw - 48px));
    max-height: min(650px, calc(100dvh - 48px));
  }

  .spc-shop-page .modal-img-wrap {
    min-height: 350px;
  }

  .spc-shop-page .modal-body {
    padding: 22px 24px !important;
  }

  .spc-shop-page .modal-title {
    font-size: clamp(1.45rem, 2.3vw, 2.15rem) !important;
    line-height: 1.02;
  }

  .spc-shop-page .modal-desc {
    margin-top: 14px;
    font-size: .8rem;
    line-height: 1.5;
  }

  .spc-shop-page .modal-feats {
    gap: 6px;
    margin: 13px 0;
    font-size: .77rem;
    line-height: 1.42;
  }

  .spc-shop-page .variant-group {
    margin: 17px 0;
  }

  .spc-shop-page .swatch {
    min-height: 36px;
    padding: 7px 10px !important;
    font-size: .72rem;
  }

  .spc-shop-page .modal-actions {
    gap: 7px;
    margin-top: 14px;
  }

  .spc-shop-page .modal-actions .btn {
    min-height: 40px;
  }
}

@media (max-width: 680px) {
  .spc-shop-page .spc-shop-toolbar > * {
    min-width: 0;
  }

  .spc-shop-page .spc-shop-code {
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}

/* v2.22.2: restore complete shop footer and remove mobile trailing space */
html:has(body.spc-shop-page),
body.spc-shop-page {
  margin: 0;
  padding: 0;
  min-height: 100%;
}

body.spc-shop-page {
  min-height: 100svh;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

body.spc-shop-page > .spc-footer {
  align-self: end;
  margin-bottom: 0;
}

.spc-shop-footer {
  flex-wrap: wrap;
  row-gap: 14px;
}

.spc-shop-footer-primary,
.spc-shop-footer-legal {
  flex-wrap: wrap;
}

.spc-shop-footer-legal {
  justify-content: flex-end;
}

@media (max-width: 760px) {
  body.spc-shop-page {
    min-height: 100dvh;
  }

  .spc-shop-footer {
    width: min(calc(100% - 30px), var(--spc-content));
    margin: 0 auto;
    padding-bottom: max(18px, env(safe-area-inset-bottom));
  }

  .spc-shop-footer-primary,
  .spc-shop-footer-legal {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: row;
    gap: 10px 18px;
  }
}

@media (max-width: 430px) {
  .spc-shop-footer-primary,
  .spc-shop-footer-legal {
    flex-direction: column;
    gap: 9px;
  }
}


/* v2.23.0: remove legacy mobile body spacing completely */
@media (max-width: 760px) {
  html, body.spc-shop-page {
    min-height: 100%;
    padding-bottom: 0 !important;
    background: var(--spc-bg);
  }
  body.spc-shop-page > .spc-footer {
    padding-bottom: 16px !important;
  }
}
