/* ============================================================
   PokeNinja — Shared Brand Stylesheet
   Tokyo Neon / Cyber Samurai design system
   Used by: products.html, how-to-buy.html, shipping-refund-policy.html
   ============================================================ */

:root{
  --ink-0:#050505; --ink-1:#0a0a0c; --ink-2:#111114; --ink-3:#17171c; --ink-4:#1f1f26; --ink-5:#2a2a33;
  --red:#ff003c; --red-2:#ff1f57; --red-deep:#b3002a;
  --purple:#7a00ff; --purple-2:#9b3bff;
  --blue:#00cfff; --blue-2:#3de1ff;
  --gold:#ffcc00; --gold-2:#ffd84d;
  --paper:#f5f1e8; --paper-2:#fffaf0;
  --white-90:rgba(245,241,232,0.92); --white-70:rgba(245,241,232,0.72); --white-50:rgba(245,241,232,0.5);
  --white-30:rgba(245,241,232,0.3); --white-15:rgba(245,241,232,0.15); --white-08:rgba(245,241,232,0.08); --white-04:rgba(245,241,232,0.04);
  --line:rgba(245,241,232,0.10); --line-2:rgba(245,241,232,0.06);
  --grad-hot:linear-gradient(135deg,#ff003c 0%,#ff1f57 40%,#7a00ff 100%);
  --grad-volt:linear-gradient(135deg,#00cfff 0%,#7a00ff 100%);
  --grad-holo:linear-gradient(110deg,#00cfff 0%,#7a00ff 25%,#ff003c 50%,#ffcc00 75%,#00cfff 100%);
  --glow-red:0 0 24px rgba(255,0,60,0.55), 0 0 60px rgba(255,0,60,0.25);
  --glow-blue:0 0 24px rgba(0,207,255,0.55), 0 0 60px rgba(0,207,255,0.25);
  --glow-gold:0 0 20px rgba(255,204,0,0.45), 0 0 50px rgba(255,204,0,0.2);
  --shadow-card:0 24px 60px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.5);
  --r-xs:6px; --r-sm:10px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-pill:999px;
  --header-h:74px; --max:1480px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--ink-0)}
body{
  font-family:'Inter','Zen Kaku Gothic New','Noto Sans JP','Noto Sans SC',system-ui,sans-serif;
  background:var(--ink-0); color:var(--paper); min-height:100vh;
  overflow-x:hidden; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
body[data-lang="ja"]{font-family:'Zen Kaku Gothic New','Noto Sans JP','Inter',system-ui,sans-serif}
body[data-lang="zh"]{font-family:'Noto Sans SC','Inter','Zen Kaku Gothic New',system-ui,sans-serif}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;font-family:inherit}
a{color:inherit;text-decoration:none}
input,select,textarea{font:inherit;color:inherit;font-family:inherit}
::selection{background:var(--red);color:#fff}

/* Multi-language reveal. EN content also serves AU. */
[lang]{display:none}
body[data-lang="en"] [lang="en"]{display:inline}
body[data-lang="ja"] [lang="ja"]{display:inline}
body[data-lang="zh"] [lang="zh"]{display:inline}
body[data-lang="fr"] [lang="fr"]{display:inline}
.l-block[lang]{display:none}
body[data-lang="en"] .l-block[lang="en"],
body[data-lang="ja"] .l-block[lang="ja"],
body[data-lang="zh"] .l-block[lang="zh"],
body[data-lang="fr"] .l-block[lang="fr"]{display:block}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

/* ===== BACKGROUND STAGE ===== */
.bg-stage{
  position:fixed; inset:0; z-index:-2; overflow:hidden; pointer-events:none;
  background:
    radial-gradient(1200px 700px at 80% -10%, rgba(122,0,255,0.30), transparent 60%),
    radial-gradient(900px 600px at 0% 30%, rgba(255,0,60,0.22), transparent 60%),
    radial-gradient(900px 700px at 60% 110%, rgba(0,207,255,0.20), transparent 60%),
    linear-gradient(180deg,#050505 0%,#0a0a0c 50%,#050505 100%);
}
.bg-grid{
  position:absolute; inset:-2px;
  background-image:
    linear-gradient(to right, rgba(245,241,232,0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(245,241,232,0.04) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse at 50% 30%, #000 0%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 30%, #000 0%, transparent 75%);
}
.bg-scan{
  position:absolute; inset:0;
  background:repeating-linear-gradient(180deg, rgba(245,241,232,0.025) 0px, rgba(245,241,232,0.025) 1px, transparent 1px, transparent 3px);
  mix-blend-mode:overlay; opacity:0.5;
}
.bg-grain{
  position:absolute; inset:0; opacity:0.16; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.bg-kanji{position:absolute;inset:0;pointer-events:none}
.bg-kanji span{
  position:absolute;
  font-family:'Shippori Mincho','Noto Sans JP',serif; font-weight:900;
  color:transparent; -webkit-text-stroke:1px rgba(245,241,232,0.07);
  font-size:clamp(80px,18vw,260px); line-height:1;
  user-select:none; white-space:nowrap;
  animation:kanjiDrift 22s ease-in-out infinite alternate;
}
.bg-kanji span:nth-child(1){top:6%;left:-2%;animation-delay:-2s;-webkit-text-stroke-color:rgba(255,0,60,0.10)}
.bg-kanji span:nth-child(2){top:38%;right:-4%;animation-delay:-8s;-webkit-text-stroke-color:rgba(122,0,255,0.10)}
.bg-kanji span:nth-child(3){bottom:6%;left:8%;animation-delay:-14s;-webkit-text-stroke-color:rgba(0,207,255,0.10)}
.bg-kanji span:nth-child(4){top:60%;right:30%;animation-delay:-5s;-webkit-text-stroke-color:rgba(255,204,0,0.08);font-size:clamp(60px,12vw,180px)}
@keyframes kanjiDrift{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(-30px,18px,0)}}

/* ===== HEADER ===== */
header{
  position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(16px,3vw,40px);
  background:rgba(5,5,5,0.65);
  backdrop-filter:blur(20px) saturate(1.4); -webkit-backdrop-filter:blur(20px) saturate(1.4);
  border-bottom:1px solid var(--line-2);
  box-shadow:0 1px 0 rgba(245,241,232,0.04) inset, 0 8px 24px rgba(0,0,0,0.3);
}
.logo{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:0}
.logo-mark{
  width:42px;height:42px;flex-shrink:0;
  filter:drop-shadow(0 0 12px rgba(255,0,60,0.55));
  transition:filter 0.3s, transform 0.4s;
}
.logo:hover .logo-mark{filter:drop-shadow(0 0 18px rgba(255,0,60,0.85));transform:rotate(-6deg) scale(1.05)}
.logo-text{display:flex;flex-direction:column;line-height:1;gap:2px}
.logo-text .en{font-family:'Bebas Neue','Inter',sans-serif;font-size:1.35rem;letter-spacing:2px;color:var(--paper)}
.logo-text .jp{font-family:'Shippori Mincho','Noto Sans JP',serif;font-size:0.62rem;letter-spacing:6px;color:var(--red);font-weight:700;text-shadow:0 0 8px rgba(255,0,60,0.5)}

.nav{display:flex;align-items:center;gap:4px}
.nav a{
  position:relative; padding:10px 16px;
  font-family:'Bebas Neue','Inter',sans-serif; font-size:0.92rem; letter-spacing:1.5px;
  color:var(--white-70); transition:color 0.3s;
}
.nav a:hover{color:var(--paper)}
.nav a::after{
  content:""; position:absolute; left:16px; right:16px; bottom:6px; height:2px;
  background:var(--red); transform:scaleX(0); transform-origin:center;
  transition:transform 0.3s; box-shadow:0 0 8px var(--red);
}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.nav a.active{color:var(--paper)}

.head-right{display:flex;align-items:center;gap:10px;flex-shrink:0}

/* Lang / Currency switchers */
.switch{
  display:flex;align-items:center;
  background:var(--ink-3); border:1px solid var(--line);
  border-radius:var(--r-pill); padding:3px; position:relative;
}
.switch button{
  position:relative; z-index:2; padding:5px 9px;
  font-family:'Bebas Neue',sans-serif; font-size:0.72rem; letter-spacing:1px;
  color:var(--white-50); transition:color 0.25s;
  border-radius:var(--r-pill); white-space:nowrap;
}
.switch button.active{color:#fff}
.switch-pill{
  position:absolute; top:3px; height:calc(100% - 6px);
  background:var(--grad-hot); border-radius:var(--r-pill);
  box-shadow:var(--glow-red);
  transition:transform 0.4s cubic-bezier(0.6,-0.05,0.3,1.3), width 0.3s;
  pointer-events:none;
}

/* ===== BUTTONS ===== */
.btn-pri{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 22px;
  background:var(--grad-hot); color:#fff;
  font-family:'Bebas Neue','Inter',sans-serif; font-size:0.9rem; letter-spacing:2px;
  border-radius:var(--r-pill);
  box-shadow:var(--glow-red);
  position:relative; overflow:hidden;
  transition:transform 0.25s, box-shadow 0.3s;
  text-transform:uppercase;
}
.btn-pri::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,0.45) 50%,transparent 70%);
  transform:translateX(-100%); transition:transform 0.7s;
}
.btn-pri:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 0 30px rgba(255,0,60,0.8), 0 0 70px rgba(255,0,60,0.4)}
.btn-pri:hover::before{transform:translateX(100%)}

.btn-sec{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 22px; background:transparent;
  border:1px solid var(--white-30); color:var(--paper);
  font-family:'Bebas Neue','Inter',sans-serif; font-size:0.9rem; letter-spacing:2px;
  border-radius:var(--r-pill);
  transition:border-color 0.25s, background 0.25s, transform 0.25s;
  text-transform:uppercase;
}
.btn-sec:hover{border-color:var(--paper);background:var(--white-08);transform:translateY(-2px)}

.icon-btn{
  width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--ink-3); border:1px solid var(--line);
  color:var(--white-70);
  transition:color 0.25s, border-color 0.25s, transform 0.25s;
}
.icon-btn:hover{color:var(--paper);border-color:var(--red);transform:translateY(-2px);box-shadow:var(--glow-red)}
.menu-btn{display:none}

/* ===== PAGE HERO (policy pages) ===== */
.page-hero{
  position:relative;
  padding:calc(var(--header-h) + 80px) clamp(20px,4vw,56px) 60px;
  max-width:var(--max); margin:0 auto;
}
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:6px 14px;
  background:rgba(255,0,60,0.10); border:1px solid rgba(255,0,60,0.3);
  font-family:'Bebas Neue',sans-serif; font-size:0.74rem; letter-spacing:2.5px;
  color:var(--red-2);
  border-radius:var(--r-pill);
  margin-bottom:22px;
}
.eyebrow .dot{
  width:7px;height:7px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 0 rgba(255,0,60,0.6); animation:pulse 1.6s infinite;
}
.eyebrow .jp{color:var(--gold);font-family:'Shippori Mincho',serif;font-weight:900}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(255,0,60,0.6)}
  70%{box-shadow:0 0 0 14px rgba(255,0,60,0)}
  100%{box-shadow:0 0 0 0 rgba(255,0,60,0)}
}

.page-hero h1{
  font-family:'Bebas Neue','Anton','Inter',sans-serif;
  font-weight:400;
  font-size:clamp(2.8rem, 6.5vw, 5.6rem);
  line-height:0.95; letter-spacing:1px;
  color:var(--paper); margin-bottom:22px; text-transform:uppercase;
}
body[data-lang="ja"] .page-hero h1,body[data-lang="zh"] .page-hero h1{
  font-family:'Zen Kaku Gothic New','Noto Sans JP','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-1px; line-height:1; font-size:clamp(2.2rem, 5.5vw, 4.4rem);
}
.page-hero h1 .jp-tag{
  display:inline-block;
  font-family:'Shippori Mincho','Noto Sans JP',serif;
  font-size:0.34em; letter-spacing:6px; vertical-align:middle;
  color:var(--red); margin-left:14px; font-weight:900;
  text-shadow:0 0 12px rgba(255,0,60,0.5);
}
.page-hero h1 .holo{
  background:var(--grad-holo); background-size:300% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:holoShift 6s linear infinite;
  -webkit-text-stroke:1px rgba(245,241,232,0.05);
}
@keyframes holoShift{0%{background-position:0% 50%}100%{background-position:300% 50%}}
.page-hero .lead{
  font-size:clamp(1rem, 1.35vw, 1.18rem);
  color:var(--white-70); max-width:680px;
  line-height:1.65; margin-bottom:28px;
}
.page-hero .lead .em{color:var(--gold);font-weight:600}

/* mini trust strip */
.mini-trust{
  display:flex; flex-wrap:wrap; gap:8px;
  margin-bottom:8px;
}
.mini-trust span{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-pill);
  font-family:'Bebas Neue',sans-serif; font-size:0.78rem; letter-spacing:1.6px;
  color:var(--white-70);
}
.mini-trust span svg{width:14px;height:14px;color:var(--red);flex-shrink:0}

/* breadcrumb */
.breadcrumb{
  max-width:var(--max); margin:0 auto;
  padding:calc(var(--header-h) + 24px) clamp(20px,4vw,56px) 0;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  font-family:'Bebas Neue',sans-serif; font-size:0.74rem; letter-spacing:2px;
  color:var(--white-50);
}
.breadcrumb a{color:var(--white-50);transition:color 0.25s}
.breadcrumb a:hover{color:var(--paper)}
.breadcrumb .sep{color:var(--red);opacity:0.6}
.breadcrumb .current{color:var(--paper)}

/* ===== SECTION ===== */
.section{position:relative;padding:60px clamp(20px,4vw,56px);max-width:var(--max);margin:0 auto}
.sec-head{margin-bottom:36px}
.sec-tag{
  display:inline-flex; align-items:center; gap:8px;
  padding:5px 12px;
  background:rgba(255,0,60,0.10); border:1px solid rgba(255,0,60,0.3);
  font-family:'Bebas Neue',sans-serif; font-size:0.72rem; letter-spacing:2.5px;
  color:var(--red-2); border-radius:var(--r-pill);
  margin-bottom:14px;
}
.sec-tag .jp{font-family:'Shippori Mincho',serif;font-weight:900;color:var(--gold)}
.sec-h{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:clamp(2rem, 4vw, 3.4rem);
  letter-spacing:1px; line-height:1;
  color:var(--paper); text-transform:uppercase;
}
body[data-lang="ja"] .sec-h,body[data-lang="zh"] .sec-h{font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;font-weight:900;letter-spacing:-1px}
.sec-h .jp{
  display:inline-block; font-family:'Shippori Mincho',serif;
  color:var(--red); font-size:0.5em; letter-spacing:6px; margin-left:14px; vertical-align:middle;
  text-shadow:0 0 10px rgba(255,0,60,0.4); font-weight:900;
}
.sec-sub{color:var(--white-70);margin-top:10px;font-size:1rem;line-height:1.65;max-width:680px}

/* ===== STEP CARDS (how-to-buy) ===== */
.step-list{list-style:none;display:flex;flex-direction:column;gap:14px}
.step-card{
  position:relative;
  display:grid; grid-template-columns:auto 1fr; gap:24px;
  padding:28px 28px 28px 24px;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-lg);
  transition:border-color 0.3s, transform 0.3s;
  overflow:hidden;
}
.step-card::before{
  content:""; position:absolute; top:0; left:0; width:3px; height:100%;
  background:var(--grad-hot);
  transform:scaleY(0); transform-origin:top;
  transition:transform 0.4s;
}
.step-card:hover{transform:translateX(4px);border-color:var(--white-30)}
.step-card:hover::before{transform:scaleY(1)}
.step-num{
  width:72px; height:72px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(255,0,60,0.18), rgba(122,0,255,0.18));
  border:1px solid var(--line);
  border-radius:18px;
  font-family:'Bebas Neue',sans-serif;
  font-size:2.4rem; line-height:1;
  color:var(--paper);
  position:relative;
  flex-shrink:0;
}
.step-num::after{
  content:attr(data-kanji); position:absolute; right:-6px; bottom:-6px;
  font-family:'Shippori Mincho',serif; font-weight:900;
  font-size:1.1rem; color:var(--gold);
  text-shadow:0 0 8px rgba(255,204,0,0.5);
}
.step-body h3{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:1.4rem; letter-spacing:1px;
  color:var(--paper); margin-bottom:8px;
  text-transform:uppercase;
}
body[data-lang="ja"] .step-body h3,body[data-lang="zh"] .step-body h3{
  font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-0.3px;
}
.step-body p{color:var(--white-70);font-size:0.95rem;line-height:1.65}

/* ===== POLICY CONTENT BLOCKS ===== */
.policy-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.policy-card{
  position:relative;
  padding:28px;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-lg);
  transition:border-color 0.3s, transform 0.3s;
  overflow:hidden;
}
.policy-card:hover{transform:translateY(-3px);border-color:var(--white-30)}
.policy-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:var(--grad-hot);
  transform:scaleX(0); transform-origin:left;
  transition:transform 0.4s;
}
.policy-card:hover::before{transform:scaleX(1)}
.policy-icon{
  width:54px; height:54px; border-radius:14px;
  display:grid; place-items:center;
  background:linear-gradient(135deg, rgba(255,0,60,0.18), rgba(122,0,255,0.18));
  border:1px solid var(--line);
  color:var(--paper);
  margin-bottom:18px;
}
.policy-icon svg{width:26px;height:26px}
.policy-card h3{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:1.4rem; letter-spacing:1px;
  color:var(--paper); margin-bottom:10px;
  text-transform:uppercase;
}
body[data-lang="ja"] .policy-card h3,body[data-lang="zh"] .policy-card h3{
  font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-0.3px;
}
.policy-card p{color:var(--white-70);font-size:0.93rem;line-height:1.65;margin-bottom:8px}
.policy-card ul{margin-left:18px;color:var(--white-70);font-size:0.92rem;line-height:1.7}
.policy-card ul li{margin-bottom:6px}
.policy-card .jp-overlay{
  position:absolute; top:18px; right:18px;
  font-family:'Shippori Mincho',serif; font-weight:900;
  color:transparent; -webkit-text-stroke:1px rgba(245,241,232,0.18);
  font-size:3.5rem; line-height:1;
  pointer-events:none;
}

/* Single-column long-form policy block */
.policy-block{
  position:relative;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:36px clamp(24px,4vw,48px);
  margin-bottom:18px;
}
.policy-block h2{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:clamp(1.4rem, 2.5vw, 2rem);
  letter-spacing:1px; line-height:1;
  color:var(--paper); margin-bottom:14px;
  text-transform:uppercase;
}
body[data-lang="ja"] .policy-block h2,body[data-lang="zh"] .policy-block h2{
  font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-0.5px;
}
.policy-block h2 .jp{
  font-family:'Shippori Mincho',serif; color:var(--red);
  font-size:0.6em; letter-spacing:6px; margin-left:12px;
  text-shadow:0 0 8px rgba(255,0,60,0.4); font-weight:900;
}
.policy-block p{color:var(--white-70);font-size:0.95rem;line-height:1.75;margin-bottom:12px}
.policy-block ul,.policy-block ol{margin-left:20px;color:var(--white-70);font-size:0.95rem;line-height:1.8;margin-bottom:12px}
.policy-block ul li,.policy-block ol li{margin-bottom:6px}
.policy-block strong{color:var(--paper)}
.policy-block a{color:var(--blue-2);border-bottom:1px solid rgba(0,207,255,0.3);transition:border-color 0.25s}
.policy-block a:hover{border-color:var(--blue-2)}

/* ===== CTA BLOCK ===== */
.cta-block{
  position:relative;
  padding:48px clamp(24px,4vw,60px);
  background:
    linear-gradient(135deg, rgba(255,0,60,0.18), rgba(122,0,255,0.18)),
    var(--ink-2);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  overflow:hidden; text-align:center;
}
.cta-block::before{
  content:"忍"; position:absolute; top:-30px; right:-20px;
  font-family:'Shippori Mincho',serif; font-weight:900;
  color:transparent; -webkit-text-stroke:2px rgba(255,0,60,0.3);
  font-size:18rem; line-height:1;
  pointer-events:none;
}
.cta-block h3{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:clamp(1.6rem, 3vw, 2.4rem);
  letter-spacing:1px; line-height:1;
  color:var(--paper); margin-bottom:14px;
  text-transform:uppercase; position:relative;
}
body[data-lang="ja"] .cta-block h3,body[data-lang="zh"] .cta-block h3{
  font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-0.5px;
}
.cta-block h3 .jp{
  font-family:'Shippori Mincho',serif; color:var(--red);
  font-size:0.5em; letter-spacing:6px; margin-left:10px;
  text-shadow:0 0 8px rgba(255,0,60,0.4); font-weight:900;
}
.cta-block p{color:var(--white-70);font-size:1rem;max-width:560px;margin:0 auto 22px;line-height:1.65;position:relative}
.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative}

/* ===== PRODUCT DETAIL (products.html) ===== */
.product-detail{
  display:grid; grid-template-columns:1.05fr 1fr; gap:48px;
  padding:calc(var(--header-h) + 60px) clamp(20px,4vw,56px) 60px;
  max-width:var(--max); margin:0 auto;
}
.product-gallery{
  position:relative;
  border-radius:var(--r-lg);
  overflow:hidden;
  background:var(--ink-2); border:1px solid var(--line);
  aspect-ratio:4/5;
  box-shadow:var(--shadow-card);
}
.product-gallery .halo{
  position:absolute; inset:8%;
  background:conic-gradient(from 0deg, var(--red), var(--purple), var(--blue), var(--gold), var(--red));
  border-radius:50%; filter:blur(60px); opacity:0.5;
  animation:spin 18s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.product-gallery .img-stage{
  position:absolute; inset:0;
  display:grid; place-items:center;
  padding:30px;
}
.product-gallery img{
  max-width:78%;
  border-radius:14px;
  box-shadow:0 40px 80px rgba(0,0,0,0.6), 0 0 0 1px rgba(245,241,232,0.05);
  transform:rotate(-4deg);
  animation:hover-tilt 6s ease-in-out infinite;
}
@keyframes hover-tilt{
  0%,100%{transform:rotate(-4deg) translateY(0)}
  50%{transform:rotate(-2deg) translateY(-12px)}
}
.product-gallery .holo-foil{
  position:absolute; inset:0;
  background:linear-gradient(110deg, transparent 25%, rgba(0,207,255,0.18) 35%, rgba(122,0,255,0.18) 50%, rgba(255,204,0,0.18) 60%, transparent 75%);
  background-size:200% 200%;
  mix-blend-mode:overlay;
  animation:foilShine 5s ease-in-out infinite; pointer-events:none;
}
@keyframes foilShine{0%{background-position:-100% 50%}100%{background-position:200% 50%}}
.product-gallery .stamp{
  position:absolute; bottom:20px; right:20px;
  width:74px; height:74px; border-radius:50%;
  background:rgba(5,5,5,0.72); border:1.5px solid var(--gold);
  display:grid; place-items:center;
  font-family:'Shippori Mincho',serif; font-weight:900;
  color:var(--gold); font-size:1.6rem;
  box-shadow:var(--glow-gold); backdrop-filter:blur(4px);
  transform:rotate(-12deg); z-index:2;
}
.product-gallery .corner{
  position:absolute; top:20px; left:20px;
  padding:6px 12px; background:var(--red); color:#fff;
  font-family:'Bebas Neue',sans-serif; font-size:0.72rem; letter-spacing:2px;
  border-radius:4px; box-shadow:var(--glow-red); z-index:2;
}

.product-info .set-tag{
  font-family:'Orbitron',sans-serif; font-size:0.72rem; letter-spacing:2px;
  color:var(--blue-2); text-transform:uppercase; margin-bottom:12px;
}
.product-info h1{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:clamp(2.2rem, 4vw, 3.6rem);
  letter-spacing:1px; line-height:1;
  color:var(--paper); margin-bottom:18px;
  text-transform:uppercase;
}
body[data-lang="ja"] .product-info h1,body[data-lang="zh"] .product-info h1{
  font-family:'Zen Kaku Gothic New','Noto Sans SC',sans-serif;
  font-weight:900; letter-spacing:-0.5px;
}
.product-info .desc{color:var(--white-70);font-size:1rem;line-height:1.7;margin-bottom:24px}

.product-price{
  display:flex; align-items:baseline; gap:14px; flex-wrap:wrap;
  padding:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-bottom:24px;
}
.product-price .v{
  font-family:'Orbitron',sans-serif; font-weight:900;
  font-size:clamp(2.2rem, 3.6vw, 3rem); letter-spacing:0.5px;
  color:var(--paper);
}
.product-price .v .ccy{color:var(--white-50);font-size:0.5em;margin-right:6px}
.product-price .alt{
  font-family:'Orbitron',sans-serif; font-size:0.84rem;
  color:var(--white-50);
}

.product-meta{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px;
}
.meta-row{
  display:flex; flex-direction:column; gap:4px;
  padding:14px 18px;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-md);
}
.meta-row .k{
  font-family:'Bebas Neue',sans-serif; font-size:0.7rem; letter-spacing:1.6px;
  color:var(--white-50);
}
.meta-row .v{
  font-family:'Inter',sans-serif; font-weight:600; font-size:0.92rem;
  color:var(--paper);
}

.product-cta{display:flex;flex-direction:column;gap:12px;margin-bottom:28px}
.product-cta .btn-pri,.product-cta .btn-sec{justify-content:center;padding:16px 24px;font-size:0.95rem}

.feature-list{display:flex;flex-direction:column;gap:10px}
.feature-list .item{
  display:flex; align-items:center; gap:12px;
  font-size:0.9rem; color:var(--white-70);
}
.feature-list .item svg{width:18px;height:18px;color:var(--red);flex-shrink:0}

/* related products grid */
.related-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:14px}
.card{
  position:relative;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-lg); overflow:hidden;
  transition:transform 0.35s cubic-bezier(0.2,0.8,0.2,1), border-color 0.3s, box-shadow 0.4s;
  cursor:pointer;
}
.card:hover{
  transform:translateY(-6px) rotate(-0.4deg);
  border-color:rgba(255,0,60,0.35);
  box-shadow:0 30px 60px rgba(0,0,0,0.5), 0 0 30px rgba(255,0,60,0.18);
}
.card .img-wrap{position:relative;aspect-ratio:1/1;overflow:hidden;background:#000}
.card .img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s}
.card:hover .img-wrap img{transform:scale(1.1)}
.card .img-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 60%, rgba(5,5,5,0.6) 100%)}
.card .holo-foil{
  position:absolute; inset:0;
  background:linear-gradient(110deg, transparent 30%, rgba(245,241,232,0.18) 50%, transparent 70%);
  background-size:300% 100%; background-position:-150% 0;
  mix-blend-mode:overlay; pointer-events:none;
  transition:background-position 0.7s;
}
.card:hover .holo-foil{background-position:200% 0}
.card .badges{
  position:absolute; top:10px; left:10px; right:10px;
  display:flex; justify-content:space-between; align-items:flex-start; gap:6px; z-index:2;
}
.badge{
  padding:5px 9px;
  background:rgba(5,5,5,0.85); border:1px solid var(--line);
  font-family:'Bebas Neue',sans-serif; font-size:0.66rem; letter-spacing:1.6px;
  color:var(--paper); border-radius:4px;
  backdrop-filter:blur(6px);
}
.badge.red{background:var(--red);border-color:var(--red);box-shadow:var(--glow-red)}
.badge.gold{background:var(--gold);border-color:var(--gold);color:var(--ink-0)}
.badge.blue{background:var(--blue);border-color:var(--blue);color:var(--ink-0)}
.card .body{padding:14px 16px 16px}
.card .title{
  font-family:'Bebas Neue','Anton',sans-serif;
  font-size:1.05rem; letter-spacing:0.8px;
  color:var(--paper); line-height:1.1;
  margin-bottom:8px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.card .price{font-family:'Orbitron',sans-serif;font-weight:700;font-size:1.1rem;color:var(--paper);letter-spacing:0.5px}
.card .price .ccy{font-size:0.7rem;color:var(--white-50);margin-right:2px}

/* ===== FOOTER ===== */
footer{
  position:relative;
  border-top:1px solid var(--line);
  padding:70px clamp(20px,4vw,56px) 40px;
  max-width:var(--max); margin:0 auto;
}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:48px}
.foot-brand .logo{margin-bottom:18px}
.foot-brand p{color:var(--white-70);font-size:0.9rem;line-height:1.65;margin-bottom:18px;max-width:340px}
.foot-social{display:flex;gap:10px}
.foot-social a{
  width:38px; height:38px; border-radius:10px;
  display:grid; place-items:center;
  background:var(--ink-2); border:1px solid var(--line);
  color:var(--white-70);
  transition:color 0.25s, border-color 0.25s, transform 0.25s;
}
.foot-social a:hover{color:var(--paper);border-color:var(--red);transform:translateY(-2px);box-shadow:var(--glow-red)}
.foot-col h5{font-family:'Bebas Neue',sans-serif;font-size:0.78rem;letter-spacing:2px;color:var(--paper);margin-bottom:14px;text-transform:uppercase}
.foot-col a{display:block;padding:6px 0;color:var(--white-70);font-size:0.88rem;transition:color 0.25s}
.foot-col a:hover{color:var(--paper)}
.foot-news input{
  width:100%; padding:12px 14px;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:var(--r-sm);
  color:var(--paper); font-size:0.88rem;
  margin-bottom:10px; transition:border-color 0.25s;
}
.foot-news input:focus{outline:0;border-color:var(--red)}
.foot-news button{
  width:100%; padding:12px;
  background:var(--paper); color:var(--ink-0);
  font-family:'Bebas Neue',sans-serif; font-size:0.84rem; letter-spacing:1.6px;
  border-radius:var(--r-sm);
  transition:background 0.25s;
}
.foot-news button:hover{background:var(--red);color:#fff;box-shadow:var(--glow-red)}
.foot-bar{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:24px; border-top:1px solid var(--line);
  color:var(--white-50); font-size:0.78rem;
  flex-wrap:wrap; gap:10px;
}
.foot-bar .stamp{display:inline-flex;align-items:center;gap:6px;font-family:'Bebas Neue',sans-serif;letter-spacing:2px;color:var(--white-50)}
.foot-bar .stamp .jp{color:var(--red);font-family:'Shippori Mincho',serif;font-weight:900}

/* ===== FLOATING WHATSAPP / MOBILE DRAWER ===== */
.fab-wa{
  position:fixed; right:24px; bottom:24px; z-index:90;
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 22px;
  background:#25d366; color:#fff;
  border-radius:var(--r-pill);
  font-family:'Bebas Neue',sans-serif; font-size:0.86rem; letter-spacing:1.6px;
  box-shadow:0 10px 30px rgba(37,211,102,0.5);
  transition:transform 0.3s;
}
.fab-wa:hover{transform:translateY(-3px) scale(1.05)}
.fab-wa svg{width:18px;height:18px}

.mobile-drawer{
  position:fixed; inset:0; z-index:200;
  background:rgba(5,5,5,0.96); backdrop-filter:blur(16px);
  display:none;
  padding:90px 28px 40px;
  flex-direction:column; gap:18px;
}
.mobile-drawer.open{display:flex}
.mobile-drawer a{
  font-family:'Bebas Neue',sans-serif;
  font-size:1.8rem; letter-spacing:2px;
  color:var(--paper);
  padding:6px 0; border-bottom:1px solid var(--line);
}
.mobile-drawer .switches{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.mobile-drawer .switch-label{font-family:'Bebas Neue',sans-serif;font-size:0.74rem;letter-spacing:2px;color:var(--white-50);margin-bottom:8px}
.mobile-drawer .switch{justify-content:center;flex-wrap:wrap}

.skip-link{
  position:absolute; top:-100px; left:10px; z-index:9999;
  background:var(--red); color:#fff; padding:10px 14px;
  border-radius:6px; font-family:'Bebas Neue',sans-serif; letter-spacing:1.5px;
}
.skip-link:focus{top:10px}

/* Cursor spark */
@keyframes sparkFade{
  0%{opacity:1;transform:scale(1) translate(0,0)}
  100%{opacity:0;transform:scale(0.3) translate(0,-20px)}
}
.cursor-spark{
  position:fixed; width:6px; height:6px; border-radius:50%;
  background:#fff; box-shadow:0 0 8px #ff003c, 0 0 16px #ff003c;
  pointer-events:none; z-index:9000;
  animation:sparkFade 700ms ease-out forwards;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1080px){
  .product-detail{grid-template-columns:1fr;gap:32px}
  .product-gallery{aspect-ratio:1/1;max-width:540px;margin:0 auto}
  .foot-grid{grid-template-columns:1fr 1fr;gap:30px}
  .foot-brand{grid-column:1 / -1}
  .policy-grid{grid-template-columns:1fr}
}
@media (max-width: 760px){
  :root{--header-h:64px}
  header{padding:0 14px;gap:8px}
  .nav{display:none}
  .head-right .switch{display:none}
  .head-right .btn-pri.hide-mob{display:none}
  .menu-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink-3);border:1px solid var(--line);color:var(--paper)}
  .logo-mark{width:36px;height:36px}
  .logo-text .en{font-size:1.1rem}
  .logo-text .jp{font-size:0.56rem;letter-spacing:4px}

  .page-hero{padding:calc(var(--header-h) + 50px) 18px 40px}
  .page-hero h1{font-size:clamp(2rem, 9vw, 3rem)}
  .breadcrumb{padding:calc(var(--header-h) + 20px) 18px 0}

  .section{padding:40px 18px}
  .sec-h{font-size:clamp(1.8rem, 7vw, 2.4rem)}

  .step-card{padding:18px;gap:16px;grid-template-columns:auto 1fr}
  .step-num{width:56px;height:56px;font-size:1.7rem;border-radius:14px}

  .policy-card{padding:22px}
  .policy-block{padding:24px 20px}

  .product-info h1{font-size:clamp(1.8rem, 7vw, 2.6rem)}
  .product-price .v{font-size:1.9rem}
  .product-meta{grid-template-columns:1fr 1fr;gap:8px}
  .meta-row{padding:10px 12px}

  .foot-grid{grid-template-columns:1fr;gap:30px}
  .foot-bar{flex-direction:column;align-items:flex-start;gap:14px;text-align:left}
  .fab-wa{right:14px;bottom:14px;padding:12px 18px;font-size:0.78rem}

  .cta-block{padding:32px 20px}
  .cta-block::before{font-size:12rem;top:-20px;right:-20px}
}
@media (max-width: 420px){
  .logo-text .jp{display:none}
  .product-meta{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
}
