/* FilmHaven checkout UI — extends the existing obsidian / gold design. */
.store-cart-toggle { display:inline-flex; align-items:center; gap:10px; min-height:40px; margin-left:18px; padding:0 14px; border:1px solid rgba(225,193,110,.48); color:var(--ivory); background:transparent; font-size:9px; letter-spacing:.16em; cursor:pointer; }
.store-cart-count { display:grid; place-items:center; width:21px; height:21px; border-radius:50%; color:var(--obsidian); background:var(--champagne); font-size:10px; letter-spacing:0; }
.store-add:not(:disabled) { cursor:pointer; }
.store-add:disabled { opacity:.46; cursor:not-allowed; }
.store-unavailable { opacity:.72; }
.store-overlay[hidden] { display:none !important; }
.store-overlay { position:fixed; z-index:12000; inset:0; display:flex; justify-content:flex-end; background:rgba(2,4,7,.78); backdrop-filter:blur(8px); }
.store-panel { width:min(100%,560px); height:100%; overflow:auto; padding:clamp(22px,4vw,42px); border-left:1px solid rgba(225,193,110,.32); color:var(--ivory); background:#090c10; box-shadow:-25px 0 80px rgba(0,0,0,.35); outline:none; }
.store-panel__header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.store-panel__header .section-kicker { margin:0 0 9px; color:var(--gold); }
.store-panel__header h2 { margin:0; font:400 clamp(2.3rem,6vw,3.5rem)/1 var(--serif); }
.store-close { width:42px; height:42px; border:1px solid rgba(225,193,110,.42); color:var(--ivory); background:transparent; font-size:27px; cursor:pointer; }
.store-message { margin:18px 0; color:rgba(241,238,231,.55); font-size:11px; line-height:1.6; }
.store-cart-lines { display:grid; gap:0; }
.store-empty { padding:25px 0; color:rgba(241,238,231,.55); font:400 1.25rem/1.4 var(--serif); }
.store-cart-line { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:14px; padding:18px 0; border-bottom:1px solid var(--line); }
.store-cart-line strong { display:block; font:400 1.15rem/1.25 var(--serif); }
.store-cart-line small { display:block; margin-top:5px; color:rgba(241,238,231,.48); font-size:10px; }
.store-line-total { color:var(--champagne); font-size:12px; white-space:nowrap; }
.store-quantity { display:flex; align-items:center; gap:8px; }
.store-quantity button { width:28px; height:28px; border:1px solid rgba(225,193,110,.35); color:var(--ivory); background:transparent; cursor:pointer; }
.store-quantity button:disabled { opacity:.3; }
.store-quantity span { min-width:14px; text-align:center; font-size:11px; }
.store-quantity .store-remove { width:auto; margin-left:4px; border:0; color:rgba(241,238,231,.5); font-size:9px; text-decoration:underline; }
.store-cart-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 0 8px; color:rgba(241,238,231,.62); font-size:11px; }
.store-cart-summary strong { color:var(--champagne); font-size:18px; }
.store-shipping-note { margin:8px 0 22px; color:rgba(241,238,231,.42); font-size:10px; line-height:1.6; }
.store-primary { width:100%; min-height:50px; padding:14px 18px; border:1px solid var(--champagne); color:var(--obsidian); background:var(--champagne); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; cursor:pointer; }
.store-primary:hover { background:var(--ivory); border-color:var(--ivory); }
.store-primary:disabled { opacity:.45; cursor:wait; }
.store-checkout { margin-top:24px; padding-top:22px; border-top:1px solid var(--line); }
.store-checkout h3,.store-payment-result h3 { margin:0 0 18px; font:400 1.8rem/1.1 var(--serif); }
.store-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.store-form-grid label { display:grid; gap:7px; color:rgba(241,238,231,.68); font-size:10px; }
.store-form-wide { grid-column:1/-1; }
.store-form-grid input { width:100%; min-height:43px; padding:10px 11px; border:1px solid rgba(225,193,110,.24); border-radius:0; color:var(--ivory); background:#0e1218; font:inherit; font-size:13px; }
.store-form-grid input:focus { outline:1px solid var(--champagne); border-color:var(--champagne); }
.store-shipping-fields { margin:22px 0; padding:17px 0 0; border:0; border-top:1px solid var(--line); }
.store-shipping-fields legend { padding:0 10px 0 0; color:var(--champagne); font:400 1.45rem var(--serif); }
.store-terms { display:flex; align-items:flex-start; gap:10px; margin:20px 0; color:rgba(241,238,231,.62); font-size:10px; line-height:1.6; }
.store-terms input { margin-top:2px; accent-color:var(--champagne); }
.store-terms a { color:var(--champagne); text-decoration:underline; }
.store-error { margin:14px 0; padding:12px; border-left:2px solid #bd785d; color:#f0c5b3; background:rgba(189,120,93,.1); font-size:11px; line-height:1.5; }
.store-back { display:block; margin:14px auto 0; padding:10px; border:0; color:rgba(241,238,231,.6); background:transparent; font-size:9px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.store-payment-result { margin-top:28px; padding:20px 0; line-height:1.6; }
.store-payment-result p { color:rgba(241,238,231,.65); font-size:12px; }
.store-download-link { display:block; margin:12px 0; padding:13px; border:1px solid rgba(225,193,110,.4); color:var(--champagne); font-size:11px; text-decoration:none; }
.store-download-link:hover { background:rgba(225,193,110,.08); }
body.store-open { overflow:hidden; }
@media(max-width:760px) { .store-cart-toggle { min-height:34px; margin-left:0; padding:0 9px; font-size:8px; } .store-panel { padding:22px 18px; } .store-cart-line { grid-template-columns:minmax(0,1fr) auto; gap:10px; } .store-line-total { grid-column:2; grid-row:1; } .store-quantity { grid-column:1/-1; } }
@media(max-width:390px) { .store-form-grid { grid-template-columns:1fr; } .store-form-wide { grid-column:auto; } }

/* Shipping & total rows */
.store-shipping-row,
.store-grand-total {
  margin-top: 0.4rem;
  display: flex;
  justify-content: space-between;
}
.store-grand-total {
  font-weight: 600;
  border-top: 1px solid #333;
  padding-top: 0.5rem;
  margin-top: 0.6rem;
}

/* High-conversion Add to Cart */
.store-add {
  background: #ff3b30 !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: all 0.15s ease;
  box-shadow: 0 4px 14px rgba(255, 59, 48, 0.35);
}
.store-add:hover {
  background: #e02e24 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(255, 59, 48, 0.45);
}
.store-add:disabled {
  background: #555 !important;
  box-shadow: none;
  transform: none;
}

/* Pulsing CTA: red/orange ↔ blue */
@keyframes cta-pulse {
  0%, 100% { background: #ff3b30; box-shadow: 0 4px 14px rgba(255, 59, 48, 0.4); }
  50%      { background: #007aff; box-shadow: 0 4px 18px rgba(0, 122, 255, 0.45); }
}
.store-add {
  animation: cta-pulse 2.4s ease-in-out infinite !important;
  color: #fff !important;
  border: none !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.store-add:hover {
  animation-play-state: paused;
  background: #e02e24 !important;
  transform: translateY(-1px);
}
.store-add:disabled {
  animation: none !important;
  background: #555 !important;
  box-shadow: none;
}
