/* ============================================================
   SHARED PRODUCT-DETAIL STYLESHEET
   Shanghai ValiantWin — used by every products/*.html page
   Mirrors the design tokens/components from the main index.html
   ============================================================ */
:root{
  --c-bg:          #1A1A1A;
  --c-bg-darker:   #111111;
  --c-panel:       #232323;
  --c-panel-2:     #2A2A2A;
  --c-border:      #3A3A3A;
  --c-accent:      #E64A19;
  --c-accent-dim:  #B23A13;
  --c-text:        #FFFFFF;
  --c-text-muted:  #B3B3B3;
  --c-text-faint:  #7A7A7A;

  --f-display: 'Oswald', 'Arial Narrow', sans-serif;
  --f-body:    'Inter', -apple-system, sans-serif;
  --f-mono:    'Roboto Mono', 'Courier New', monospace;

  --nav-h: 76px;
  --container: 1180px;
  --radius: 4px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top: var(--nav-h); }
body{
  font-family: var(--f-body);
  background: var(--c-bg);
  color: var(--c-text);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }

.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--f-mono);
  font-size:13px; letter-spacing:.12em; text-transform:uppercase;
  color: var(--c-accent); font-weight:600; margin-bottom:14px;
}
.eyebrow::before{ content:"//"; opacity:.55; }
section{ position:relative; }
.section-pad{ padding:64px 0; }
@media (max-width:768px){ .section-pad{ padding:44px 0; } }

/* ============================================================
   NAVIGATION (same pattern as the main site, paths point back to ../)
   ============================================================ */
.navbar{
  position:fixed; top:0; left:0; right:0; z-index:1000;
  height:var(--nav-h);
  display:flex; align-items:center;
  background:rgba(17,17,17,0.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(255,255,255,0.08);
}
.navbar .container{ display:flex; align-items:center; justify-content:space-between; width:100%; max-width:1360px; }
.nav-brand{ display:flex; align-items:center; gap:12px; }
.nav-brand img{ height:40px; width:40px; object-fit:cover; border-radius:3px; background:var(--c-panel); }
.nav-brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.nav-brand-text .name{ font-family:var(--f-display); font-weight:700; font-size:17px; letter-spacing:.03em; }
.nav-brand-text .tag{ font-family:var(--f-mono); font-size:10px; letter-spacing:.15em; color:var(--c-accent); }
.nav-links{ display:flex; align-items:center; gap:2px; }
.nav-links a{
  font-size:13px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  padding:10px 18px; color:var(--c-text-muted); transition:color .25s ease;
}
.nav-links a:hover{ color:var(--c-text); }
.nav-toggle{ display:none; font-size:22px; color:var(--c-text); }
@media (max-width:860px){
  .nav-links{
    position:fixed; top:var(--nav-h); right:0; height:calc(100vh - var(--nav-h));
    width:240px; background:var(--c-bg-darker);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:24px; transform:translateX(100%); transition:transform .3s ease;
    border-left:1px solid var(--c-border);
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ width:100%; padding:14px 8px; }
  .nav-toggle{ display:block; }
}

/* ============================================================
   BREADCRUMB
   ============================================================ */
.breadcrumb{
  padding:calc(var(--nav-h) + 22px) 0 0;
  font-family:var(--f-mono); font-size:12px; letter-spacing:.03em; color:var(--c-text-faint);
}
.breadcrumb a:hover{ color:var(--c-accent); }
.breadcrumb .sep{ margin:0 6px; opacity:.5; }
.breadcrumb .current{ color:var(--c-text-muted); }

/* ============================================================
   TITLE BAR
   ============================================================ */
.product-hero{ padding:20px 0 0; }
.product-hero h1{
  font-family:var(--f-display); font-weight:700; text-transform:uppercase;
  font-size:clamp(26px, 4vw, 44px); line-height:1.15; letter-spacing:.01em;
  max-width:900px;
}
.product-hero .tagline{
  margin-top:16px; max-width:760px; font-size:16.5px; color:var(--c-text-muted);
}

/* ============================================================
   IMAGE CAROUSEL (large, 3 slides, crossfade)
   ============================================================ */
.pd-carousel{
  position:relative; width:100%; aspect-ratio:16/9; overflow:hidden;
  border-radius:6px; border:1px solid var(--c-border); background:var(--c-panel-2);
}
.pd-slide{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:0; transition:opacity 1s ease;
}
.pd-slide.active{ opacity:1; }
.pd-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:6;
  width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.3);
  color:#fff; font-size:15px;
  transition:background .25s ease, border-color .25s ease;
}
.pd-arrow:hover{ background:var(--c-accent); border-color:var(--c-accent); }
.pd-arrow.prev{ left:16px; } .pd-arrow.next{ right:16px; }
.pd-dots{ position:absolute; bottom:16px; left:50%; transform:translateX(-50%); z-index:6; display:flex; gap:8px; }
.pd-dot{
  width:8px; height:8px; border-radius:50%;
  background:rgba(255,255,255,.35); border:1px solid rgba(255,255,255,.5);
  transition:background .25s ease, transform .25s ease;
}
.pd-dot.active{ background:var(--c-accent); border-color:var(--c-accent); transform:scale(1.2); }

/* ============================================================
   DESCRIPTION + HIGHLIGHTS
   ============================================================ */
.pd-body{ display:grid; grid-template-columns:1.4fr 1fr; gap:56px; align-items:start; }
@media (max-width:900px){ .pd-body{ grid-template-columns:1fr; gap:32px; } }
.pd-desc p{ font-size:16px; color:var(--c-text-muted); margin-bottom:16px; }
.pd-highlights{ background:var(--c-panel); border:1px solid var(--c-border); border-radius:6px; padding:26px 26px; }
.pd-highlights h3{ font-family:var(--f-display); font-size:15px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:16px; color:var(--c-accent); }
.pd-highlights li{
  position:relative; padding-left:22px; margin-bottom:12px; font-size:14.5px; color:var(--c-text-muted);
}
.pd-highlights li:last-child{ margin-bottom:0; }
.pd-highlights li::before{
  content:"\f00c"; font-family:"Font Awesome 6 Free"; font-weight:900; font-size:11px;
  position:absolute; left:0; top:3px; color:var(--c-accent);
}

/* ============================================================
   SPEC TABLE
   ============================================================ */
.section-title-sm{
  font-family:var(--f-display); text-transform:uppercase; font-weight:700;
  font-size:clamp(22px,3vw,30px); margin-bottom:22px; letter-spacing:.01em;
}
.section-alt{ background:var(--c-bg-darker); border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); }
.pd-highlights-wrap{ display:flex; flex-direction:column; gap:20px; }
.spec-wrap{ overflow-x:auto; border:1px solid var(--c-border); border-radius:6px; }
table.spec-table{ width:100%; border-collapse:collapse; min-width:520px; font-size:14px; }
.spec-table th, .spec-table td{ padding:12px 16px; text-align:left; border-bottom:1px solid var(--c-border); white-space:nowrap; }
.spec-table thead th{
  background:var(--c-bg-darker); font-family:var(--f-mono); font-size:11.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--c-accent);
}
.spec-table tbody th{
  background:var(--c-panel); font-weight:600; color:var(--c-text); font-size:13.5px;
  position:sticky; left:0;
}
.spec-table td{ color:var(--c-text-muted); font-family:var(--f-mono); font-size:13px; }
.spec-table tbody tr:last-child th, .spec-table tbody tr:last-child td{ border-bottom:none; }
.spec-note{ margin-top:12px; font-size:12.5px; color:var(--c-text-faint); }

/* ============================================================
   DOWNLOAD BUTTON
   ============================================================ */
.btn-download-lg{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  background:var(--c-accent); color:#fff;
  font-size:14px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  padding:15px 28px; border-radius:4px; transition:background .2s ease;
}
.btn-download-lg:hover{ background:var(--c-accent-dim); }

/* ============================================================
   INQUIRY FORM
   ============================================================ */
.inquiry{ background:var(--c-bg-darker); border-top:1px solid var(--c-border); border-bottom:1px solid var(--c-border); }
.inquiry-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .inquiry-grid{ grid-template-columns:1fr; gap:28px; } }
.inquiry-copy h2{ font-family:var(--f-display); font-size:clamp(24px,3vw,32px); text-transform:uppercase; margin-bottom:14px; }
.inquiry-copy p{ color:var(--c-text-muted); font-size:15px; max-width:440px; }
.inquiry-form{ background:var(--c-panel); border:1px solid var(--c-border); border-radius:6px; padding:30px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.form-group{ margin-bottom:18px; }
.form-group label{ display:block; font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--c-text-muted); margin-bottom:7px; font-weight:600; }
.form-group input, .form-group textarea{
  width:100%; background:var(--c-bg-darker); border:1px solid var(--c-border); border-radius:4px;
  padding:12px 14px; color:#fff; font-family:var(--f-body); font-size:14.5px;
}
.form-group input:focus, .form-group textarea:focus{ outline:none; border-color:var(--c-accent); }
.form-group textarea{ resize:vertical; min-height:100px; }
.btn-submit{
  background:var(--c-accent); color:#fff; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  font-size:13px; padding:14px 30px; border-radius:4px; width:100%; transition:background .2s ease;
}
.btn-submit:hover{ background:var(--c-accent-dim); }
.form-success{ display:none; margin-top:12px; color:#8BC48A; font-size:13.5px; font-family:var(--f-mono); }
.form-success.show{ display:block; }

/* ============================================================
   RELATED PRODUCTS
   ============================================================ */
.related-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:760px){ .related-grid{ grid-template-columns:1fr; } }
.related-card{
  background:var(--c-panel); border:1px solid var(--c-border); border-radius:4px; overflow:hidden;
  transition:transform .25s ease, border-color .25s ease;
}
.related-card:hover{ transform:translateY(-4px); border-color:var(--c-accent); }
.related-card .thumb{ aspect-ratio:4/3; background:var(--c-panel-2); overflow:hidden; }
.related-card .thumb img{ width:100%; height:100%; object-fit:cover; }
.related-card .info{ padding:16px 16px 18px; }
.related-card .name{ font-family:var(--f-display); font-weight:600; font-size:14px; text-transform:uppercase; line-height:1.3; margin-bottom:8px; }
.related-card .link{ font-family:var(--f-mono); font-size:11.5px; color:var(--c-accent); letter-spacing:.05em; text-transform:uppercase; }

footer.site-footer{ background:#0b0b0b; padding:26px 0; text-align:center; border-top:1px solid var(--c-border); }
footer.site-footer p{ font-size:12.5px; color:var(--c-text-faint); letter-spacing:.02em; }

/* ============================================================
   MODAL — email gate for spec-sheet download (same as main site)
   ============================================================ */
.modal-overlay{
  position:fixed; inset:0; z-index:3000;
  background:rgba(10,10,10,.72);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .25s ease, visibility .25s ease;
  padding:20px;
}
.modal-overlay.active{ opacity:1; visibility:visible; }
.modal-box{
  width:100%; max-width:420px; background:var(--c-panel); border:1px solid var(--c-border);
  border-radius:8px; padding:34px 30px 30px; position:relative;
  transform:translateY(14px); transition:transform .25s ease;
}
.modal-overlay.active .modal-box{ transform:translateY(0); }
.modal-close{ position:absolute; top:14px; right:14px; font-size:18px; color:var(--c-text-muted); width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; }
.modal-close:hover{ background:var(--c-bg-darker); color:#fff; }
.modal-eyebrow{ font-family:var(--f-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--c-accent); margin-bottom:8px; }
.modal-box h3{ font-family:var(--f-display); font-size:17px; text-transform:uppercase; margin-bottom:6px; line-height:1.3; }
.modal-box .modal-hint{ color:var(--c-text-muted); font-size:13.5px; margin-bottom:20px; }
.modal-box input{
  width:100%; background:var(--c-bg-darker); border:1px solid var(--c-border); border-radius:4px;
  padding:12px 14px; color:#fff; font-size:14.5px; margin-bottom:12px;
}
.modal-box input:focus{ outline:none; border-color:var(--c-accent); }
.modal-verify-btn{
  width:100%; background:var(--c-accent); color:#fff; font-weight:700; text-transform:uppercase;
  letter-spacing:.03em; font-size:13.5px; padding:12px; border-radius:4px;
}
.modal-verify-btn:hover{ background:var(--c-accent-dim); }
.modal-msg{ margin-top:12px; font-size:13.5px; font-family:var(--f-mono); }
.modal-msg.error{ color:#E86A4E; }
.modal-msg.success{ color:#7FCB84; }
.modal-download{
  display:none; margin-top:14px; align-items:center; justify-content:center; gap:8px;
  background:#2E7D32; color:#fff; font-weight:700; text-transform:uppercase; font-size:13px;
  padding:12px; border-radius:4px; letter-spacing:.03em;
}
.modal-download:hover{ background:#276029; }

.hidden{ display:none !important; }
