/* Store product page — Complete Pilates.
   Sits on top of the sienna sheets; only what the store adds is defined here.
   Brand: accent #10b5db, ink #112337, taken from the live site. */

.store-ribbon{
  background:#fff6e5;border-bottom:1px solid #e8c88a;color:#7a5410;
  font-size:14px;line-height:1.5;padding:11px 20px;text-align:center;
}
.store-ribbon strong{font-weight:700}

.store-wrap{padding:32px 0 72px}

.store-crumb{
  font-size:13px;color:#5b6b7d;letter-spacing:.02em;margin-bottom:18px;
  display:flex;gap:8px;flex-wrap:wrap;
}

.store-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:start}
@media (max-width:900px){.store-grid{grid-template-columns:1fr;gap:32px}}

.store-eyebrow{
  font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:#10b5db;margin:0 0 10px;
}
.store-title{font-size:clamp(28px,4vw,42px);line-height:1.14;margin:0 0 14px;color:#112337}
.store-standfirst{font-size:18px;line-height:1.6;color:#3d4c5c;max-width:60ch;margin:0}

.store-cover{
  margin:28px 0 32px;border:1px solid #dde7ec;border-radius:10px;overflow:hidden;
  background:#f7fafb;
}
.store-cover img{display:block;width:100%;height:auto}
.store-cover--empty{
  aspect-ratio:16/10;display:grid;place-items:center;
  background:repeating-linear-gradient(135deg,#f7fafb 0 14px,#eef5f8 14px 28px);
}
.store-cover--empty span{
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5b6b7d;
  background:#fff;border:1px solid #dde7ec;border-radius:99px;padding:6px 14px;
}

.store-prose h2{font-size:22px;margin:34px 0 10px;color:#112337}
.store-prose p{margin:0 0 15px;max-width:65ch;color:#3d4c5c;line-height:1.65}
.store-list{margin:14px 0 0;padding:0;list-style:none;border-top:1px solid #eaf1f4}
.store-list li{
  padding:12px 2px;border-bottom:1px solid #eaf1f4;color:#112337;
  display:flex;gap:12px;align-items:baseline;
}
.store-list li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;
  background:#10b5db;margin-top:8px}

/* purchase panel */
.store-buy{
  position:sticky;top:24px;border:1px solid #dde7ec;border-radius:12px;background:#fff;
  box-shadow:0 1px 2px rgba(17,35,55,.06),0 12px 32px -12px rgba(17,35,55,.16);
  overflow:hidden;
}
@media (max-width:900px){.store-buy{position:static}}
.store-buy__head{padding:20px 22px 0}
.store-price{
  font-size:34px;font-weight:700;color:#112337;letter-spacing:-.02em;line-height:1;
  font-variant-numeric:tabular-nums;
}
.store-fmt{margin:10px 0 0;font-size:14px;color:#5b6b7d}
.store-buy__body{padding:18px 22px 22px}

.store-cta{
  width:100%;font-size:15px;font-weight:600;background:#10b5db;color:#04141a;
  border:0;border-radius:8px;padding:14px 18px;cursor:pointer;
  transition:filter .15s;font-family:inherit;
}
.store-cta:hover:not(:disabled){filter:brightness(1.07)}
.store-cta:focus-visible{outline:3px solid #10b5db;outline-offset:2px}
.store-cta:disabled{background:#dde7ec;color:#8296a5;cursor:not-allowed}

.store-off{
  margin:12px 0 0;font-size:13px;line-height:1.5;color:#7a5410;
  background:#fff6e5;border:1px solid #e8c88a;border-radius:8px;padding:10px 12px;
}

.store-assure{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:8px;
  font-size:13px;color:#5b6b7d}
.store-assure li{display:flex;gap:9px;align-items:flex-start}
.store-assure li::before{
  content:"\2713";color:#1f8a5f;font-weight:700;flex:none;line-height:1.4;
}

.store-empty{padding:80px 0;text-align:center}
.store-empty h1{font-size:28px;color:#112337;margin:0 0 10px}
.store-empty p{color:#5b6b7d}

@media (prefers-reduced-motion:reduce){.store-cta{transition:none}}

/* VAT + legal notices. Quiet by design: required information, not sales copy. */
.store-vat{margin:6px 0 0;font-size:12px;color:#5b6b7d;letter-spacing:.01em}
.store-legal{
  margin:18px 0 0;padding:14px 0 0;border-top:1px solid #eaf1f4;
  font-size:12px;line-height:1.55;color:#5b6b7d;
}
.store-legal p{margin:0 0 7px}
.store-legal__cancel{color:#3d4c5c}
.store-legal a{color:#10b5db}

/* Embedded checkout + the return state. Stripe draws the form itself inside
   an iframe; we only give it room and keep the panel's rhythm around it. */
.store-checkout{margin:16px -22px 0;min-height:420px}
.store-checkout iframe{display:block;width:100%}
.store-msg{margin:12px 0 0;font-size:13px;line-height:1.5;color:#3d4c5c}
.store-msg--error{
  color:#8a2a2a;background:#fdf1f1;border:1px solid #efc2c2;border-radius:8px;padding:10px 12px;
}
.store-success h2{font-size:22px;margin:0 0 6px;color:#112337}
.store-success .store-msg{margin-top:6px}
.store-success [data-role="link"]{margin-top:14px}
.store-cta--link{display:block;text-align:center;text-decoration:none;box-sizing:border-box}
.store-success__note{margin:12px 0 0;font-size:12px;color:#5b6b7d;line-height:1.5}
