/* J-PlateMap product page. Uses site tokens; navy + mint. */
.pm{color:var(--jv-ink)}
.pm-hero{padding:calc(var(--jv-header-h) + 28px) 0 72px;background:linear-gradient(180deg,var(--jv-mint-soft),var(--jv-canvas) 85%)}
.pm-hero__g{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;margin-top:28px}
.pm-eyebrow,.pm-kick{font:600 12px var(--jv-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--jv-navy)}
html.dark .pm-eyebrow,html.dark .pm-kick{color:var(--jv-mint)}
.pm-eyebrow{display:inline-block;padding:7px 14px;border-radius:999px;background:var(--jv-surface);border:1px solid var(--jv-border-strong)}
.pm-hero h1{margin:18px 0 0;font:800 clamp(38px,5vw,60px)/1.05 var(--jv-font-display);color:var(--jv-navy);letter-spacing:-.02em}
html.dark .pm-hero h1{color:var(--jv-ink)}
.pm-hero h1 em{font-style:normal;background:linear-gradient(100deg,var(--jv-navy) 0%,#3f6f9e 45%,var(--jv-mint-strong) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
html.dark .pm-hero h1 em{background:linear-gradient(100deg,var(--jv-mint) 0%,#7fa8d6 52%,#c7b8f0 100%);-webkit-background-clip:text;background-clip:text}
.pm-lead{margin:20px 0 0;font:500 20px/1.55 var(--jv-font-body);color:var(--jv-ink)}
.pm-sub{margin:12px 0 0;font:400 16px/1.7 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:28px}
.pm-cta--c{justify-content:center}
.pm-ghost{display:inline-flex;align-items:center;min-height:52px;padding:0 26px;border-radius:999px;border:1.5px solid var(--jv-border-strong);color:var(--jv-navy);font:700 15px var(--jv-font-display);text-decoration:none;background:var(--jv-surface);transition:border-color var(--jv-speed),transform var(--jv-speed)}
html.dark .pm-ghost{color:var(--jv-ink)}
.pm-ghost:hover{border-color:var(--jv-mint-strong);transform:translateY(-1px)}
.pm-micro{margin:18px 0 0;font:400 14px var(--jv-font-body);color:var(--jv-ink-mute)}
.pm-vis{margin:0;padding:18px;border-radius:24px;background:var(--jv-surface);border:1px solid var(--jv-border);box-shadow:var(--jv-shadow-card)}
.pm-vis svg{display:block;width:100%;height:auto}
.pm-sheet rect:first-child{fill:var(--jv-canvas-soft);stroke:var(--jv-border-strong)}
.pm-gl path{stroke:var(--jv-border-strong);stroke-width:1;fill:none}
.pm-cell rect{fill:var(--jv-mint-soft);stroke:var(--jv-mint-strong);stroke-width:1}
.pm-tangle path{fill:none;stroke:var(--jv-ink-mute);stroke-width:1.2;stroke-dasharray:3 4;opacity:.7}
.pm-arrow path{fill:none;stroke:var(--jv-mint-strong);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.pm-edge{fill:none;stroke:var(--jv-navy);stroke-width:2;opacity:.55}
.pm-edge--m{stroke:var(--jv-mint-strong);opacity:.9;stroke-dasharray:6 6;animation:pmdash 2.4s linear infinite}
html.dark .pm-edge{stroke:var(--jv-mint)}
@keyframes pmdash{to{stroke-dashoffset:-24}}
@media (prefers-reduced-motion:reduce){.pm-edge--m{animation:none}}
.pm-nd rect{fill:var(--jv-surface);stroke:var(--jv-navy);stroke-width:1.5}
html.dark .pm-nd rect{stroke:var(--jv-mint)}
.pm-nd text{font:700 14px var(--jv-font-display);fill:var(--jv-navy);text-anchor:middle}
html.dark .pm-nd text{fill:var(--jv-ink)}
.pm-core rect{fill:var(--jv-navy)}
html.dark .pm-core rect{fill:var(--jv-navy-deep);stroke:var(--jv-mint);stroke-width:1.5}
.pm-core text{font:800 15px var(--jv-font-display);fill:#fff;text-anchor:middle}
.pm-core .pm-core__s{font:500 11px var(--jv-font-mono);fill:var(--jv-mint)}
.pm-cap{font:600 11px var(--jv-font-mono);letter-spacing:.12em;text-transform:uppercase;fill:var(--jv-ink-mute)}
.pm-note{font:500 11px var(--jv-font-mono);fill:var(--jv-ink-mute)}
.pm-sec{padding:84px 0}
.pm-alt{background:var(--jv-canvas-soft)}
.pm-head{max-width:820px;margin:0 0 40px}
.pm-head h2{margin:10px 0 0;font:800 clamp(28px,3.4vw,40px)/1.15 var(--jv-font-display);color:var(--jv-navy);letter-spacing:-.01em}
html.dark .pm-head h2{color:var(--jv-ink)}
.pm-head p{margin:16px 0 0;font:400 17px/1.7 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-head a,.pm-more a{color:var(--jv-navy);font-weight:600}
html.dark .pm-head a,html.dark .pm-more a{color:var(--jv-mint)}
.pm-grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.pm-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.pm-card{padding:26px;border-radius:20px;background:var(--jv-surface);border:1px solid var(--jv-border);box-shadow:var(--jv-shadow-sm);transition:transform var(--jv-speed) var(--jv-ease),border-color var(--jv-speed),box-shadow var(--jv-speed)}
.pm-card:hover{transform:translateY(-3px);border-color:var(--jv-mint-strong);box-shadow:var(--jv-shadow-card)}
.pm-card h3{margin:14px 0 0;font:700 19px/1.3 var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-card h3{color:var(--jv-ink)}
.pm-card p{margin:10px 0 0;font:400 15px/1.65 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-card--sm h3{margin-top:0}
.pm-num{font:600 13px var(--jv-font-mono);color:var(--jv-mint-strong)}
.pm-ic{display:inline-flex;width:46px;height:46px;border-radius:14px;align-items:center;justify-content:center;background:var(--jv-mint-soft);color:var(--jv-navy)}
html.dark .pm-ic{color:var(--jv-mint)}
.pm-ic svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.pm-more{margin:28px 0 0}
.pm-more a{display:inline-flex;gap:8px;align-items:center;text-decoration:none}
.pm-more svg,.pm-list svg,.pm-bens svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pm-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:40px;align-items:start}
.pm-h3{margin:0 0 16px;font:700 20px var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-h3{color:var(--jv-ink)}
.pm-list,.pm-bens{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.pm-list li{display:flex;gap:12px;font:400 16px/1.6 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-list li svg,.pm-bens li svg{color:var(--jv-mint-strong);margin-top:3px}
.pm-list b{color:var(--jv-ink)}
.pm-note-card{padding:26px;border-radius:20px;background:var(--jv-navy);color:#fff}
html.dark .pm-note-card{background:var(--jv-navy-deep);border:1px solid var(--jv-border-strong)}
.pm-note-card b{font:700 18px var(--jv-font-display);color:var(--jv-mint)}
.pm-note-card p{margin:10px 0 0;font:400 15px/1.65 var(--jv-font-body);color:#e4e8f0}
.pm-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;counter-reset:s}
.pm-steps li{position:relative;padding:26px;border-radius:20px;background:var(--jv-surface);border:1px solid var(--jv-border)}
.pm-step{display:inline-flex;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;background:var(--jv-navy);color:#fff;font:700 15px var(--jv-font-display)}
html.dark .pm-step{background:var(--jv-mint);color:var(--jv-navy-ink)}
.pm-steps h3{margin:14px 0 0;font:700 18px/1.3 var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-steps h3{color:var(--jv-ink)}
.pm-steps p{margin:8px 0 0;font:400 15px/1.65 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-fine{margin:22px 0 0;font:400 14px var(--jv-font-body);color:var(--jv-ink-mute)}
.pm-bens{grid-template-columns:repeat(2,minmax(0,1fr))}
.pm-bens li{display:flex;gap:12px;padding:20px 22px;border-radius:16px;background:var(--jv-mint-soft);border:1px solid var(--jv-border);font:600 16px/1.5 var(--jv-font-body);color:var(--jv-ink)}
.pm-faq{display:grid;gap:12px;max-width:860px}
.pm-final{padding:88px 0;text-align:center;background:linear-gradient(150deg,var(--jv-navy-deep),var(--jv-navy) 60%,#2f5c86);color:#fff}
.pm-final h2{margin:0 auto;max-width:820px;font:800 clamp(28px,3.6vw,42px)/1.15 var(--jv-font-display)}
.pm-final p{margin:18px auto 0;max-width:720px;font:400 17px/1.7 var(--jv-font-body);color:#e4e8f0}
.pm-final .jv-btn--primary{background:var(--jv-mint);color:var(--jv-navy-ink)}
.pm-ghost--l{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
html.dark .pm-ghost--l{color:#fff}
.pm-tag{font:600 12px var(--jv-font-mono)!important;letter-spacing:.16em;text-transform:uppercase;color:var(--jv-mint)!important;margin-top:28px!important}
@media (max-width:1080px){.pm-hero__g,.pm-split{grid-template-columns:1fr}.pm-grid4,.pm-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.pm-grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.pm-grid4,.pm-grid3,.pm-steps,.pm-bens{grid-template-columns:1fr}.pm-sec{padding:60px 0}}

.pm .pm-final h2{color:#fff}
.pm .jv-crumbs{display:flex;gap:8px;align-items:center;font:500 14px var(--jv-font-body);color:var(--jv-ink-mute)}
.pm .jv-crumbs a{color:var(--jv-navy);text-decoration:none}
html.dark .pm .jv-crumbs a{color:var(--jv-mint)}
.pm-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:640px){.pm-grid2{grid-template-columns:1fr}}
.pm-plate rect{fill:var(--jv-canvas-soft);stroke:var(--jv-border-strong);stroke-width:1.5}
.pm-ax{font:600 9px var(--jv-font-mono);fill:var(--jv-ink-mute)}
.pm-w{stroke-width:1.5}
.pm-w--s{fill:var(--jv-navy);stroke:var(--jv-navy)}
.pm-w--p{fill:var(--jv-mint-strong);stroke:var(--jv-mint-strong)}
.pm-w--n{fill:var(--jv-surface);stroke:var(--jv-mint-strong);stroke-width:2.5}
.pm-w--b{fill:var(--jv-border-strong);stroke:var(--jv-ink-mute);stroke-dasharray:2 2}
.pm-w--e{fill:none;stroke:var(--jv-border-strong)}
html.dark .pm-w--s{fill:#7fa8d6;stroke:#7fa8d6}
.pm-plate .pm-w{animation:pmwell 3.6s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes pmwell{0%,70%,100%{opacity:1}35%{opacity:.35}}
.pm-leg text{font:500 11px var(--jv-font-body);fill:var(--jv-ink-soft)}
@media (prefers-reduced-motion:reduce){.pm-plate .pm-w{animation:none}}
.pm-lab{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.pm-lab__plate,.pm-lab__check{padding:24px;border-radius:24px;background:var(--jv-surface);border:1px solid var(--jv-border);box-shadow:var(--jv-shadow-md)}
.pm-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.pm-tool,.pm-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:999px;border:1.5px solid var(--jv-border-strong);background:var(--jv-surface);color:var(--jv-ink);font:600 14px var(--jv-font-body);cursor:pointer;transition:border-color .2s,background .2s}
.pm-tool.is-on{border-color:var(--jv-navy);background:var(--jv-mint-soft)}
html.dark .pm-tool.is-on{border-color:var(--jv-mint)}
.pm-btn{background:var(--jv-navy);color:#fff;border-color:var(--jv-navy)}
.pm-btn--ghost{background:transparent;color:var(--jv-navy);border-color:var(--jv-border-strong)}
html.dark .pm-btn--ghost{color:var(--jv-ink)}
html.dark .pm-btn{background:var(--jv-mint);color:var(--jv-navy-ink);border-color:var(--jv-mint)}
.pm-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.pm-sw{display:inline-block;width:14px;height:14px;border-radius:50%}
.pm-sw--s,.pm-well--s{background:var(--jv-navy)}
.pm-sw--p,.pm-well--p{background:var(--jv-mint-strong)}
.pm-sw--n,.pm-well--n{background:var(--jv-surface);box-shadow:inset 0 0 0 2.5px var(--jv-mint-strong)}
.pm-sw--b,.pm-well--b{background:var(--jv-border-strong);border:1px dashed var(--jv-ink-mute)}
html.dark .pm-sw--s,html.dark .pm-well--s{background:#7fa8d6}
.pm-grid96{display:grid;grid-template-columns:20px repeat(12,minmax(0,1fr));gap:5px;align-items:center;touch-action:none;user-select:none}
.pm-grid96>b{font:600 11px var(--jv-font-mono);color:var(--jv-ink-mute);text-align:center}
.pm-well{aspect-ratio:1;border-radius:50%;border:1.5px solid var(--jv-border-strong);background:var(--jv-canvas-soft);padding:0;cursor:pointer;min-width:0}
.pm-well:hover{border-color:var(--jv-mint-strong)}
.pm-well:focus-visible,.pm-tool:focus-visible,.pm-btn:focus-visible{outline:3px solid var(--jv-mint-strong);outline-offset:2px}
.pm-lab__check h3{margin:0 0 12px;font:800 20px var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-lab__check h3{color:var(--jv-ink)}
.pm-lab__check ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pm-lab__check li{padding:10px 14px;border-radius:12px;font:500 15px var(--jv-font-body)}
.pm-lab__check li.ok{background:var(--jv-mint-soft);color:var(--jv-ink)}
.pm-lab__check li.no{background:var(--jv-canvas-soft);color:var(--jv-ink-soft);border:1px dashed var(--jv-border-strong)}
.pm-lab__count{margin:14px 0 0;font:600 13px var(--jv-font-mono);color:var(--jv-ink-mute)}
.pm-h3--sp{margin-top:36px}
.pm-tbl-wrap{overflow-x:auto;border-radius:20px;border:1px solid var(--jv-border);background:var(--jv-surface)}
.pm-tbl{width:100%;border-collapse:collapse;font:400 15px/1.55 var(--jv-font-body);min-width:620px}
.pm-tbl th,.pm-tbl td{padding:14px 18px;text-align:left;vertical-align:top;border-top:1px solid var(--jv-border)}
.pm-tbl thead th{border-top:0;background:var(--jv-canvas-soft);font:600 12px var(--jv-font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--jv-ink-mute)}
.pm-tbl tbody th{font-weight:700;color:var(--jv-navy)}
html.dark .pm-tbl tbody th{color:var(--jv-ink)}
.pm-tbl td{color:var(--jv-ink-soft)}
.pm-tbl--vs td:last-child{color:var(--jv-ink);background:var(--jv-mint-soft);font-weight:500}
.pm-risk p{margin:12px 0 0}
.pm-risk b,.pm-day b{display:block;font:600 11px var(--jv-font-mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}
.pm-risk__p b,.pm-day__b b{color:#b42318}
html.dark .pm-risk__p b,html.dark .pm-day__b b{color:#fca5a5}
.pm-risk__f b,.pm-day__w b{color:var(--jv-navy)}
html.dark .pm-risk__f b,html.dark .pm-day__w b{color:var(--jv-mint)}
.pm-day{list-style:none;margin:0;padding:0;display:grid;gap:14px;max-width:900px}
.pm-day li{display:grid;grid-template-columns:84px 1fr;gap:18px;padding:22px;border-radius:20px;background:var(--jv-surface);border:1px solid var(--jv-border)}
.pm-day__t{font:700 15px var(--jv-font-mono);color:var(--jv-mint-strong)}
.pm-day h3{margin:0;font:700 18px var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-day h3{color:var(--jv-ink)}
.pm-day p{margin:10px 0 0;font:400 15px/1.6 var(--jv-font-body);color:var(--jv-ink-soft)}
.pm-split--sp{margin-top:44px}
.pm-gloss{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0}
.pm-gloss div{padding:18px 20px;border-radius:16px;background:var(--jv-surface);border:1px solid var(--jv-border)}
.pm-gloss dt{font:700 16px var(--jv-font-display);color:var(--jv-navy)}
html.dark .pm-gloss dt{color:var(--jv-mint)}
.pm-gloss dd{margin:6px 0 0;font:400 15px/1.6 var(--jv-font-body);color:var(--jv-ink-soft)}
@media (max-width:1080px){.pm-lab{grid-template-columns:1fr}}
@media (max-width:640px){.pm-gloss{grid-template-columns:1fr}.pm-day li{grid-template-columns:1fr;gap:6px}.pm-lab__plate,.pm-lab__check{padding:16px}.pm-grid96{gap:3px}}
.pm-well.pm-well--s{background:var(--jv-navy);border-color:var(--jv-navy)}
.pm-well.pm-well--p{background:var(--jv-mint-strong);border-color:var(--jv-mint-strong)}
.pm-well.pm-well--n{background:var(--jv-surface);border-color:var(--jv-mint-strong);box-shadow:inset 0 0 0 2.5px var(--jv-mint-strong)}
.pm-well.pm-well--b{background:var(--jv-border-strong);border:1.5px dashed var(--jv-ink-mute)}
html.dark .pm-well.pm-well--s{background:#7fa8d6;border-color:#7fa8d6}
html.dark .pm-well.pm-well--p{background:var(--jv-mint);border-color:var(--jv-mint)}
html.dark .pm-well.pm-well--n{border-color:var(--jv-mint);box-shadow:inset 0 0 0 2.5px var(--jv-mint)}
