/* ╔══════════════════════════════════════════════════════════════════════════════╗
   ║  SouGPT Purchase — Cyberpunk HUD Design System                               ║
   ╚══════════════════════════════════════════════════════════════════════════════╝ */

:root {
  --bg-void: #080C15; --bg-deep: #0D111D; --bg-card: #131824; --bg-elevated: #1A2032;
  --text-primary: #ECF0F5; --text-secondary: #A8B4C5; --text-muted: #6B7890;
  --cyan: #00D4FF; --green: #00FF88; --amber: #F59E0B; --red: #FF4470;
  --glow-cyan: 0 0 10px rgba(0,212,255,.4),0 0 36px rgba(0,212,255,.15);
  --glow-cyan-strong: 0 0 6px rgba(0,212,255,.65),0 0 26px rgba(0,212,255,.3),0 0 60px rgba(0,212,255,.12);
  --glow-green: 0 0 10px rgba(0,255,136,.35),0 0 30px rgba(0,255,136,.12);
  --border-default: #202638; --border-glow: rgba(0,212,255,.22);
  --radius-sm: 2px; --radius-md: 8px; --radius-lg: 14px; --radius-xl: 20px;
  --font-display: 'Space Grotesk Variable','DingTalk JinBuTi',system-ui,sans-serif;
  --font-mono: 'Space Grotesk Variable','Courier New',monospace;
  --font-body: 'Noto Sans SC Variable','PingFang SC','Microsoft YaHei',sans-serif;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;
}
*,*::before,*::after{box-sizing:border-box}

body{
  margin:0;min-height:100vh;background:var(--bg-void);
  color:var(--text-primary);font-family:var(--font-body);font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.25;
  background:repeating-conic-gradient(rgba(255,255,255,.008) 0% 25%,transparent 0% 50%) 0 0/3px 3px;
}
button,input{font:inherit} button{border:0;cursor:pointer} a{color:inherit;text-decoration:none}
img{display:block;max-width:100%} [hidden]{display:none!important}
::selection{background:rgba(0,212,255,.3);color:#fff}
::-webkit-scrollbar{width:5px} ::-webkit-scrollbar-track{background:var(--bg-deep)} ::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}

/* Background layers — shared with main page */
.dot-grid{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(circle,rgba(0,212,255,.09) 1px,transparent 1px);
  background-size:26px 26px;
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%,#000 22%,transparent 72%);
}
.scanlines-overlay{
  position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.05) 2px,rgba(0,0,0,.05) 4px);
}
.ambient-orbs{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse at 80% 6%,rgba(0,212,255,.18) 0%,transparent 45%),radial-gradient(ellipse at 12% 24%,rgba(217,70,239,.1) 0%,transparent 42%),radial-gradient(ellipse at 55% 82%,rgba(0,255,136,.08) 0%,transparent 48%);
}
#particleCanvas{position:fixed;inset:0;z-index:0;pointer-events:none}

main,.site-footer{position:relative;z-index:2}

/* Main */
.purchase-main{width:min(1200px,calc(100vw - 2rem));margin:0 auto;padding:clamp(2rem,5vw,4rem) 0}
.purchase-grid{
  display:grid;grid-template-columns:minmax(0,.52fr) minmax(0,.48fr);
  gap:clamp(1.5rem,4vw,3rem);align-items:start;
}

/* Gallery */
.gallery-panel,.buy-panel,.modal-card{
  border:1px solid var(--border-default);border-radius:var(--radius-lg);
  background:linear-gradient(155deg,rgba(20,25,38,.94),rgba(16,20,32,.88));
  box-shadow:0 16px 48px rgba(0,0,0,.3),0 0 1px rgba(0,212,255,.08);
}
.gallery-panel,.buy-panel{border-radius:var(--radius-xl);padding:clamp(1rem,2vw,1.5rem)}

.product-frame{
  display:grid;place-items:center;min-height:min(56vw,610px);margin:0;
  border-radius:18px;overflow:hidden;
  background:radial-gradient(circle at 50% 10%,rgba(0,212,255,.18) 0%,transparent 55%),
             radial-gradient(circle at 80% 80%,rgba(0,255,136,.08) 0%,transparent 40%),
             rgba(255,255,255,.04);
}
.product-frame img{width:100%;height:100%;max-height:580px;object-fit:contain;transition:transform 300ms ease}
.product-frame:hover img{transform:scale(1.04)}

.thumb-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);margin-top:1rem}
.thumb{
  aspect-ratio:1;overflow:hidden;border:1px solid var(--border-default);border-radius:12px;
  background:rgba(255,255,255,.04);padding:.3rem;transition:border-color 200ms,box-shadow 200ms;
}
.thumb:hover{border-color:rgba(0,212,255,.3)}
.thumb.is-active{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,212,255,.2),var(--glow-cyan)}
.thumb img{width:100%;height:100%;object-fit:contain}

.spec-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3);margin-top:1rem}
.spec-pills span{
  padding:.55rem .85rem;border:1px solid var(--border-default);border-radius:999px;
  color:var(--text-secondary);background:rgba(255,255,255,.04);font-size:.88rem;
}

/* Buy Panel */
.buy-panel{background:rgba(17,21,33,.95)}
.eyebrow{
  margin:0 0 .6rem;color:var(--green);font-family:var(--font-mono);
  font-size:.8rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  text-shadow:0 0 8px rgba(0,255,136,.35);
}
h1{margin:0;font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3.5rem);line-height:1.05}
.subline{margin:.8rem 0 0;color:var(--text-secondary);font-size:1rem}

.price-row{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;margin:2rem 0}
.price-row strong{color:var(--cyan);font-family:var(--font-display);font-size:clamp(2rem,3.5vw,3rem);text-shadow:0 0 16px rgba(0,212,255,.25)}
.price-row span{color:var(--text-muted);font-size:1.2rem;text-decoration:line-through}
.price-row em{
  padding:.35rem .6rem;border:1px solid rgba(0,255,136,.25);border-radius:8px;
  color:#0A0C13;background:var(--green);font-style:normal;font-weight:700;font-size:.88rem;
}

.model-switch{
  position:relative;display:grid;grid-template-columns:1fr 1fr;gap:.4rem;
  padding:.35rem;border:1px solid var(--border-default);border-radius:999px;
  background:rgba(255,255,255,.04);
}
.model-btn{
  min-height:3rem;border-radius:999px;color:var(--text-secondary);
  background:transparent;font-family:var(--font-display);font-size:.95rem;font-weight:700;
  transition:all 200ms;
}
.model-btn:hover{color:var(--text-primary)}
.model-btn.is-active{color:#0A0C13;background:#fff;font-weight:800}

/* Feature panel */
.feature-panel{
  margin:1.5rem 0;padding:1.2rem;border:1px solid rgba(0,212,255,.18);border-radius:var(--radius-md);
  background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(0,255,136,.04)),rgba(255,255,255,.02);
}
.feature-panel h2{margin:0 0 1rem;font-family:var(--font-display);font-size:1.1rem}
.feature-panel ul{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}
.feature-panel li{
  display:grid;grid-template-columns:1.25rem 1fr;gap:.6rem;
  color:var(--text-secondary);font-size:.95rem;line-height:1.6;
}
.feature-panel li::before{
  content:"";width:.65rem;height:.65rem;margin-top:.45rem;border-radius:50%;
  background:var(--green);box-shadow:0 0 14px rgba(0,255,136,.6);
}

/* Quantity */
.quantity-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.3rem;color:var(--text-secondary);font-size:1rem;font-weight:600}
.quantity-stepper{
  display:inline-grid;grid-template-columns:2.5rem 3rem 2.5rem;min-height:2.7rem;
  overflow:hidden;border:1px solid var(--border-default);border-radius:999px;
  background:rgba(255,255,255,.04);
}
.quantity-stepper button{color:var(--text-primary);font-size:1.1rem;background:transparent;transition:background 200ms}
.quantity-stepper button:hover{background:rgba(0,212,255,.1)}
.quantity-stepper output{display:grid;place-items:center;font-weight:700;font-size:1.05rem}

/* Buttons */
.action-stack{display:grid;gap:.75rem}
.primary-buy,.overseas-buy,.submit-booking{
  position:relative;overflow:hidden;min-height:3.2rem;border:1px solid var(--cyan);border-radius:var(--radius-sm);
  background:linear-gradient(135deg,rgba(0,212,255,.12),rgba(0,255,136,.08));
  color:var(--cyan);font-family:var(--font-mono);font-size:.95rem;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;box-shadow:var(--glow-cyan);
  transition:transform 220ms cubic-bezier(.34,1.56,.64,1),box-shadow 220ms,border-color 220ms;
}
.primary-buy:hover,.overseas-buy:hover,.submit-booking:hover{
  transform:translateY(-2px) scale(1.01);box-shadow:var(--glow-cyan-strong);border-color:rgba(0,212,255,.55);color:#fff;
}
.primary-buy:active{transform:translateY(0) scale(.98);transition:transform 80ms}
.overseas-buy{border-color:var(--border-default);color:var(--text-secondary);background:rgba(255,255,255,.03);box-shadow:none}
.overseas-buy:hover{border-color:rgba(0,212,255,.28);box-shadow:var(--glow-cyan);color:var(--text-primary)}

.checkout-message{margin:0;padding:.8rem .9rem;border-radius:12px;color:var(--amber);background:rgba(245,158,11,.08);font-size:.92rem}
.checkout-message.is-error{color:var(--red);background:rgba(255,68,112,.08)}
.checkout-message.is-success{color:var(--green);background:rgba(0,255,136,.06)}

.delivery-notes{margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--border-default);color:var(--text-muted);font-size:.92rem;line-height:1.65}

/* Footer */
.site-footer{
  display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,.65fr);gap:1rem;
  width:min(1200px,calc(100vw - 2rem));margin:0 auto;padding:2rem 0 3rem;
  border-top:1px solid var(--border-default);color:var(--text-secondary);font-size:.92rem;
}
.purchase-footer strong{color:var(--text-primary);font-family:var(--font-display);font-size:1rem}

/* Modal */
.booking-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1rem;background:rgba(0,0,0,.65);backdrop-filter:blur(14px)}
.modal-card{width:min(560px,100%);max-height:calc(100vh - 2rem);overflow:auto;border-radius:var(--radius-xl);background:var(--bg-card)}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.2rem;border-bottom:1px solid var(--border-default)}
.modal-header h2{margin:0;font-family:var(--font-display);font-size:1.15rem}
.modal-header button{
  width:2rem;height:2rem;border-radius:999px;color:var(--text-primary);font-size:1rem;
  background:rgba(255,255,255,.06);transition:background 200ms;
}
.modal-header button:hover{background:rgba(255,68,112,.2);color:var(--red)}
.booking-form{display:grid;gap:1rem;padding:1.2rem}
.booking-form p{margin:0;color:var(--text-secondary);font-size:.95rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.booking-form input{
  width:100%;min-height:3rem;padding:.8rem .9rem;
  border:1px solid var(--border-default);border-radius:var(--radius-sm);
  color:var(--text-primary);background:rgba(255,255,255,.04);font-size:.95rem;
  transition:border-color 200ms;
}
.booking-form input:focus{outline:0;border-color:var(--cyan);box-shadow:0 0 0 1px rgba(0,212,255,.2)}
fieldset{margin:0;padding:0;border:0}
legend{margin-bottom:.75rem;color:var(--text-secondary);font-size:.95rem}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.choice-grid button{
  min-height:2.6rem;border-radius:999px;color:var(--text-secondary);font-size:.9rem;
  background:rgba(255,255,255,.04);transition:all 200ms;
}
.choice-grid button:hover{background:rgba(0,212,255,.08);color:var(--text-primary)}
.choice-grid button.is-selected{color:#0A0C13;background:var(--green);font-weight:600}
.form-error{color:var(--red)!important;font-size:.9rem}
.submit-booking{width:100%}

/* Responsive */
@media(max-width:960px){
  .site-header{grid-template-columns:auto auto}
  .site-nav{display:flex;grid-column:1/-1;justify-content:flex-start;overflow-x:auto}
  .header-actions{display:flex}
  .purchase-grid,.site-footer{grid-template-columns:1fr}
}
@media(max-width:640px){
  .purchase-main{width:min(100% - 1rem,1200px)}
  .gallery-panel,.buy-panel{border-radius:var(--radius-lg)}
  .thumb-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .form-grid,.choice-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .scanlines-overlay,#particleCanvas{display:none}
}

