/* ===== Focus detail panels ===== */
.focus-detail {
  position: fixed;
  top: 50%; right: 6vw;
  transform: translateY(-50%);
  z-index: 7;
  width: min(380px, 32vw);
  display: flex; flex-direction: column;
  gap: 18px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease 0.2s;
}
body.focus-mode .focus-detail { opacity: 1; pointer-events: auto; }

.detail-card {
  background: rgba(0, 14, 4, 0.78);
  border: 1px solid rgba(0, 255, 65, 0.45);
  box-shadow:
    0 0 18px rgba(0, 255, 65, 0.32),
    inset 0 0 8px rgba(0, 255, 65, 0.10);
  backdrop-filter: blur(4px);
  padding: 14px 18px;
  font-family: 'Courier New', monospace;
  color: #d8ffe0;
  /* Wave on X axis — gentle horizontal float */
  animation: detail-wave 5.5s ease-in-out infinite;
}
.detail-card:nth-child(2) { animation-delay: -1.5s; }
.detail-card:nth-child(3) { animation-delay: -3.2s; }
.detail-card .label {
  font-size: 9px; letter-spacing: 0.42em;
  color: rgba(150, 255, 170, 0.72);
  margin-bottom: 6px;
}
.detail-card .value {
  font-size: 13px; letter-spacing: 0.08em;
  color: #f0fff5;
  text-shadow: 0 0 8px rgba(0, 255, 65, 0.5);
  line-height: 1.5;
}
.detail-card .value a {
  color: #9cffb0; text-decoration: none;
  border-bottom: 1px dashed rgba(0, 255, 65, 0.5);
}
.detail-card .value a:hover { color: #f0fff5; border-bottom-color: rgba(0, 255, 65, 1); }
/* Prominent "View on haze.works" CTA — sends the visitor to the live Wix
   project page. Sized larger and outlined so it reads as the primary
   action in the focus panel. */
.detail-card.detail-cta {
  border: 1px solid rgba(0, 255, 65, 0.55);
  box-shadow: 0 0 18px rgba(0, 255, 65, 0.18);
  margin-top: 4px;
}
.detail-card .cta-link {
  display: block;
  padding: 14px 16px;
  color: #f4fff8;
  text-decoration: none;
  font-family: 'Courier New', monospace;
  transition: background 0.2s ease;
}
.detail-card .cta-link:hover {
  background: rgba(0, 255, 65, 0.10);
}
.detail-card .cta-prefix {
  display: block;
  font-size: 9px;
  letter-spacing: 0.42em;
  color: rgba(150, 255, 170, 0.75);
  margin-bottom: 6px;
}
.detail-card .cta-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-shadow: 0 0 10px rgba(0, 255, 65, 0.55);
}
.detail-card .cta-arrow {
  transition: transform 0.25s ease;
}
.detail-card .cta-link:hover .cta-arrow {
  transform: translateX(6px);
}
/* Disabled CTA — used for shop "COMING SOON". No hover state, dimmer text,
   no animated arrow, default cursor. Renders as a div in the DOM, not an
   anchor, so accidental clicks don't navigate anywhere. */
/* ---- Post-checkout confirmation banner ---- */
.order-banner {
  position: fixed;
  left: 50%;
  bottom: 34px;
  transform: translate(-50%, 20px);
  z-index: 120;
  opacity: 0;
  transition: opacity 0.4s ease, transform 0.4s ease;
  pointer-events: none;
  max-width: min(560px, 92vw);
}
.order-banner.visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.order-banner-inner {
  font-family: var(--global-font, 'Courier New', monospace);
  background: rgba(0, 16, 6, 0.94);
  border: 1px solid rgba(0, 255, 65, 0.55);
  box-shadow: 0 0 28px rgba(0, 255, 65, 0.22);
  padding: 18px 20px;
}
.order-banner-label {
  font-size: 10px;
  letter-spacing: 0.30em;
  color: rgba(150, 255, 170, 0.75);
  margin-bottom: 8px;
}
.order-banner-body {
  font-size: 13px;
  line-height: 1.6;
  color: #e8fff0;
}
.order-banner-close {
  margin-top: 12px;
  font-family: inherit;
  font-size: 11px;
  letter-spacing: 0.22em;
  color: rgba(200, 255, 215, 0.9);
  background: transparent;
  border: 1px solid rgba(0, 255, 65, 0.4);
  padding: 7px 14px;
  cursor: pointer;
}
.order-banner-close:hover { background: rgba(0, 255, 65, 0.12); }

/* ---- Size picker (shop cards in focus mode) ---- */
.size-picker {
  padding: 14px 16px 12px 16px;
  border: 1px solid rgba(0, 255, 65, 0.22);
  border-bottom: none;
  background: rgba(0, 20, 8, 0.35);
}
.size-label {
  font-family: var(--global-font, 'Courier New', monospace);
  font-size: 10px;
  letter-spacing: 0.28em;
  color: rgba(150, 255, 170, 0.62);
  margin-bottom: 9px;
}
.size-row { display: flex; flex-wrap: wrap; gap: 7px; }
.size-opt {
  font-family: var(--global-font, 'Courier New', monospace);
  font-size: 12px;
  letter-spacing: 0.10em;
  min-width: 40px;
  padding: 8px 11px;
  color: rgba(200, 255, 215, 0.88);
  background: transparent;
  border: 1px solid rgba(0, 255, 65, 0.32);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.size-opt:hover:not(:disabled) {
  border-color: rgba(0, 255, 65, 0.75);
  background: rgba(0, 255, 65, 0.10);
}
.size-opt.selected {
  color: #041008;
  background: rgba(0, 255, 65, 0.85);
  border-color: rgba(0, 255, 65, 0.95);
  text-shadow: none;
}
/* Sold-out size: struck through, not clickable, still visible so the
   range reads correctly. */
.size-opt.oos {
  color: rgba(150, 255, 170, 0.28);
  border-color: rgba(0, 255, 65, 0.12);
  cursor: not-allowed;
  text-decoration: line-through;
}
.detail-card .cta-link.cta-disabled {
  cursor: default;
  opacity: 0.72;
}
.detail-card .cta-link.cta-disabled:hover {
  background: transparent;
}
.detail-card .cta-link.cta-disabled .cta-action {
  color: rgba(180, 220, 195, 0.85);
  text-shadow: 0 0 6px rgba(0, 255, 65, 0.25);
  animation: none !important;
  letter-spacing: 0.30em;
}
@keyframes detail-wave {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(8px); }
}

/* Desktop detail panel can now be taller than the viewport (contact form
   adds ~300px). Let it scroll instead of clipping at the bottom. Scoped to
   desktop widths — the mobile media query computes its own max-height from
   the focused card's height and must win there. */
@media (min-width: 821px) {
  .focus-detail {
    max-height: 90vh;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 255, 65, 0.35) transparent;
  }
}

/* ---- Contact form (inside the GET IN TOUCH focus panel) ---- */
.detail-card.detail-form {
  animation: none;             /* no wave — floating text inputs feel broken */
}
.detail-form form {
  display: flex; flex-direction: column; gap: 10px;
}
.detail-form .form-field {
  width: 100%;
  box-sizing: border-box;
  background: rgba(0, 22, 8, 0.65);
  border: 1px solid rgba(0, 255, 65, 0.35);
  color: #eafff0;
  font-family: 'Courier New', monospace;
  font-size: 13px;
  letter-spacing: 0.08em;
  padding: 10px 12px;
  outline: none;
  border-radius: 0;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}
.detail-form .form-field::placeholder {
  color: rgba(150, 255, 170, 0.45);
  letter-spacing: 0.3em;
  font-size: 10px;
}
.detail-form .form-field:focus {
  border-color: rgba(0, 255, 65, 0.85);
  box-shadow: 0 0 12px rgba(0, 255, 65, 0.25), inset 0 0 6px rgba(0, 255, 65, 0.08);
}
.detail-form textarea.form-field {
  resize: vertical;
  min-height: 92px;
  line-height: 1.5;
}
/* Honeypot: off-screen, never focusable. Bots that fill every field trip it. */
.detail-form .form-hp {
  position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0;
}
.detail-form .form-submit {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 1px solid rgba(0, 255, 65, 0.55);
  cursor: pointer;
  margin-top: 4px;
}
.detail-form .form-submit:disabled {
  opacity: 0.55;
  cursor: wait;
}
.detail-form .form-status {
  min-height: 1em;
  font-size: 10px;
  letter-spacing: 0.22em;
  line-height: 1.5;
  color: rgba(150, 255, 170, 0.75);
}
.detail-form .form-status.ok  { color: #9cffb0; text-shadow: 0 0 8px rgba(0, 255, 65, 0.6); }
.detail-form .form-status.err { color: #ff9aa2; text-shadow: 0 0 8px rgba(255, 80, 90, 0.45); }
.detail-form form.sent .form-field,
.detail-form form.sent .form-submit { display: none; }
.detail-form .form-alt {
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(150, 255, 170, 0.6);
}
.detail-form .form-alt a {
  color: #9cffb0; text-decoration: none;
  border-bottom: 1px dashed rgba(0, 255, 65, 0.5);
}
