/* Stand Up Boxing shop — SaaS 2026 product imagery v5.5.0 */
.shop-v550 {
  background: #f4f7fb;
  color: #172033;
}

.shop-v550 .shop-hero {
  padding-bottom: clamp(34px, 5vw, 64px);
}

.shop-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 350px);
  gap: clamp(24px, 5vw, 70px);
  align-items: end;
}

.shop-v550 .shop-hero .eyebrow {
  display: block;
  margin-top: 18px;
}

.shop-hero-note {
  display: grid;
  gap: 7px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, .88);
  border: 1px solid #dce4ee;
  border-left: 4px solid #e31b23;
  border-radius: 16px;
  box-shadow: 0 14px 34px rgba(23, 32, 51, .08);
}

.shop-hero-note strong {
  color: #111827;
  font-size: 1rem;
}

.shop-hero-note span {
  color: #667085;
  font-size: .92rem;
  line-height: 1.5;
}

.shop-section-heading {
  display: flex;
  gap: 22px;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 24px;
}

.shop-section-heading h2 {
  margin: 6px 0 0;
}

.shop-product-grid {
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.shop-product-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce4ee;
  border-radius: 20px;
  box-shadow: 0 14px 36px rgba(23, 32, 51, .07);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.shop-product-card:hover {
  transform: translateY(-3px);
  border-color: #c9d3df;
  box-shadow: 0 19px 42px rgba(23, 32, 51, .11);
}

.shop-product-media {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 0;
  overflow: hidden;
  background: #10151e;
}

.shop-product-media picture,
.shop-product-media img {
  display: block;
  width: 100%;
  height: 100%;
}

.shop-product-media img {
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center;
  transition: transform .35s ease;
}

.shop-product-card:hover .shop-product-media img {
  transform: scale(1.025);
}

.shop-product-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 22px;
}

.shop-product-topline {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.shop-product-body h3 {
  margin: 0 0 10px;
  color: #111827;
  font-size: clamp(1.22rem, 2vw, 1.48rem);
  line-height: 1.16;
}

.shop-product-body > p {
  flex: 1;
  margin: 0;
  color: #667085;
  line-height: 1.62;
}

.shop-product-meta {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin: 20px 0 16px;
  padding-top: 16px;
  border-top: 1px solid #e5eaf0;
}

.shop-product-meta .product-price {
  color: #111827;
  font-size: 1rem;
}

.button-disabled {
  cursor: not-allowed;
  color: #7b8492;
  background: #e9edf2;
  border-color: #e1e6ec;
  box-shadow: none;
}

@media (max-width: 980px) {
  .shop-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .shop-hero-grid {
    grid-template-columns: 1fr;
  }

  .shop-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 620px) {
  .shop-product-grid {
    grid-template-columns: 1fr;
  }

  .shop-product-card {
    border-radius: 17px;
  }

  .shop-product-body {
    padding: 19px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shop-product-card,
  .shop-product-media img {
    transition: none;
  }
}

/* Public reservations and member price presentation, v5.5.3. */
.shop-v553 .shop-hero { padding-top: clamp(30px, 4vw, 58px); }
.shop-v553 .shop-hero h1 { max-width: 760px; }
.shop-v553 .shop-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.shop-v553 .shop-hero-note { align-self:center; }
.shop-v553 .shop-benefit-label { font-size:.75rem; text-transform:uppercase; font-weight:800; letter-spacing:.08em; color:#a71016; }
.shop-v553 .shop-benefit-number { font-size:clamp(2.7rem, 5vw, 4rem); line-height:1.05; letter-spacing:-.04em; }
.shop-v553 .shop-section-heading p { margin:10px 0 0; color:#536076; }
.shop-v553 .shop-image-note, .shop-image-note.portal-help { font-size:11px; line-height:1.5; margin:0 0 10px; }
.shop-v553 .shop-product-body > .shop-image-note { flex:none; }
.shop-v553 .shop-product-meta .product-price { display:block; font-size:1.4rem; margin-top:4px; }
.shop-price-label { display:block; font-size:.75rem; font-weight:700; letter-spacing:.04em; color:#617084; }
.shop-product-card.is-selected, .shop-member-product.is-selected { border-color:#c51620; box-shadow:0 0 0 2px rgba(197,22,32,.14); }
.shop-v553 #reserve, .shop-v553 #reservation, .shop-v553 #shop-products-heading, .shop-reservation-history { scroll-margin-top:126px; }
.shop-v553 .shop-reserve-section { padding-top:24px; padding-bottom:54px; }
.shop-v553 .shop-checkout-grid { display:grid; grid-template-columns:minmax(0, .8fr) minmax(0, 1.2fr); gap:clamp(24px, 4vw, 48px); padding:clamp(22px, 4vw, 42px); background:#fff; border:1px solid #dce4ee; border-radius:20px; box-shadow:0 16px 40px rgba(23,32,51,.06); }
.shop-v553 .shop-checkout-summary { min-width:0; }
.shop-v553 .shop-checkout-summary h2 { margin:10px 0 14px; font-size:clamp(1.7rem, 3vw, 2.4rem); }
.shop-v553 .shop-checkout-summary p { color:#536076; line-height:1.65; }
.shop-v553 .shop-checkout-summary .shop-selected-price { font-size:1.4rem; font-weight:800; color:#172033; }
.shop-v553 .shop-reservation-form { display:grid; gap:16px; min-width:0; }
.shop-v553 .shop-reservation-form label { display:grid; gap:7px; font-size:.87rem; font-weight:700; color:#29364c; }
.shop-v553 .shop-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.shop-v553 .shop-reservation-form input:not([type=checkbox]):not([type=hidden]) { display:block; box-sizing:border-box; width:100%; min-width:0; height:46px; padding:10px 12px; border:1px solid #bdc9d7; border-radius:8px; background:#fff; font:inherit; font-size:16px; font-weight:400; color:#172033; }
.shop-v553 .shop-reservation-form input:focus-visible { outline:3px solid rgba(195,20,30,.25); outline-offset:2px; border-color:#b2121b; }
.shop-v553 .shop-reservation-form .shop-checkbox { display:flex; align-items:flex-start; gap:10px; line-height:1.5; font-weight:500; }
.shop-v553 .shop-checkbox input { flex:0 0 18px; width:18px; height:18px; margin:2px 0 0; accent-color:#ba141d; }
.shop-v553 .shop-small { font-size:.83rem; line-height:1.65; margin:0; color:#566277; }
.shop-v553 .shop-small a { text-decoration:underline; text-underline-offset:3px; color:#9b1119; }
.shop-v553 .shop-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.shop-v553 .shop-alert { margin-bottom:20px; padding:16px 20px; color:#8b1720; background:#fff0f1; border:1px solid #e5acb1; border-radius:12px; line-height:1.6; }
.shop-v553 .shop-receipt { padding:clamp(22px, 4vw, 38px); background:#edf8f2; border:1px solid #b5d9c6; border-radius:18px; }
.shop-v553 .shop-receipt h2 { margin:8px 0 14px; }
.shop-v553 .shop-receipt p { margin:12px 0; }
.shop-v553 .shop-receipt .button { margin-top:12px; }
.shop-v553 .shop-order-reference { display:inline-block; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.02em; }
.shop-inline-alert { position:static; width:auto; margin-bottom:16px; }
.shop-member-benefit { margin-bottom:20px; border-left:4px solid #c91d26; }
.shop-member-benefit .portal-split { gap:20px; align-items:center; }
.shop-member-benefit h2 { margin:10px 0 8px; font-size:clamp(20px,2.5vw,28px); }
.shop-member-benefit .portal-help { max-width:740px; margin:8px 0 0; }
.shop-member-benefit .portal-btn { flex-shrink:0; }
.shop-member-product { display:flex; flex-direction:column; min-width:0; overflow:hidden; }
.shop-member-media { height:180px; overflow:hidden; background:#10151e; }
.shop-member-media img { display:block; width:100%; height:100%; object-fit:cover; }
.shop-member-product-body { display:flex; flex-direction:column; align-items:flex-start; flex:1; }
.shop-member-product-body h2 { font-size:18px; line-height:1.3; margin:10px 0 6px; }
.shop-member-product-body .shop-product-description { flex:1; }
.shop-member-prices { display:grid; width:100%; gap:7px; border-top:1px solid #e1e6ee; padding-top:14px; margin:14px 0; }
.shop-member-prices .portal-split { gap:10px; flex-wrap:wrap; }
.shop-member-price { font-size:24px; line-height:1.2; color:#172033; }
.shop-public-comparison { font-size:12px; color:#606b7c; }
.shop-public-comparison s { margin-left:4px; }
.shop-member-reserve { width:100%; margin-top:16px; }
.shop-member-reserve .portal-btn:disabled { opacity:.5; cursor:not-allowed; }
.shop-reservation-history { margin-top:22px; }
.shop-admin-totals { margin-top:16px; }
.shop-admin-order-form { margin-top:18px; }
.shop-admin-price-fields { margin:0; padding:14px; border:1px solid #cdd7e2; border-radius:10px; min-width:0; display:grid; gap:12px; }
.shop-admin-price-fields legend { padding:0 6px; font-size:13px; font-weight:800; }
.shop-admin-price-fields .portal-help { margin:0; }
@media(max-width:800px) { .shop-v553 .shop-checkout-grid { grid-template-columns:1fr; } .shop-member-benefit .portal-split { flex-direction:column; align-items:flex-start; } }
@media(max-width:540px) { .shop-v553 .shop-form-grid { grid-template-columns:1fr; } .shop-v553 .shop-hero-actions .button { width:100%; } .shop-v553 .shop-checkout-grid { padding:20px; } }
