/* Crystal shop (2026-11-08): /shop and /shop/<product>. Builds on landing.css (hero, facts, ai, pricing, faq, final). */
.sh-hero { padding-bottom:10px; }
.sh-hero h1.two { max-width:14ch; }
.sh-hero .lead b { color:var(--text); font-weight:600; }
.sh-cartlink b { min-width:22px; height:22px; padding:0 6px; border-radius:999px; background:rgba(var(--accent-rgb),.22);
  color:#fff; font-size:12px; display:inline-grid; place-items:center; }

.sh-show { max-width:1100px; margin:64px auto 0; display:grid; grid-template-columns:1fr 1.25fr 1fr; gap:18px; align-items:end; }
.sh-show a { position:relative; display:block; border-radius:24px; overflow:hidden; background:#0b0908; aspect-ratio:1;
  box-shadow:0 0 0 1px rgba(255,255,255,.07), 0 40px 100px -40px rgba(var(--accent-rgb),.55); transition:transform .35s var(--ease); }
.sh-show a:nth-child(2) { box-shadow:0 0 0 1px rgba(var(--accent-rgb),.25), 0 50px 140px -30px rgba(var(--accent-rgb),.7); }
.sh-show a:hover { transform:translateY(-4px); }
.sh-show img { width:100%; height:100%; object-fit:cover; display:block; }
.sh-show span { position:absolute; left:14px; right:14px; bottom:14px; display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; text-align:left;
  padding:10px 14px; border-radius:14px; background:rgba(13,10,9,.62); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.08); font-size:13px; color:var(--muted); }
.sh-show span b { color:var(--text); font-size:14px; }
.sh-show span em { margin-left:auto; font-style:normal; font-weight:600; color:var(--text); }
@media (max-width:820px) { .sh-show { grid-template-columns:1fr 1fr; } .sh-show a:nth-child(3) { display:none; } }
@media (max-width:480px) { .sh-show { margin-top:44px; gap:12px; } .sh-show span { display:none; } }

/* range + cart */
.sh-layout { max-width:var(--max); margin:0 auto; padding:110px 24px 0; display:grid; grid-template-columns:minmax(0,1fr) 360px;
  gap:36px; align-items:start; scroll-margin-top:70px; }
.sh-sec { margin-bottom:90px; }
.sh-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px 40px; flex-wrap:wrap; margin-bottom:30px; }
.sh-head h2.two { font-size:clamp(30px, 3.6vw, 48px); }
.sh-head p { margin:0; max-width:40ch; color:var(--muted); font-size:15px; }
.sh-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:20px; }
.sh-grid.k4 { grid-template-columns:repeat(4, minmax(0,1fr)); }
.sh-grid.k4 .sh-txt { padding:16px 16px 4px; } .sh-grid.k4 .sh-buy { flex-wrap:wrap; padding:12px 16px 16px; }
.sh-grid.k4 .sh-txt h3 { font-size:17px; }
@media (max-width:1240px) { .sh-grid.k4 { grid-template-columns:repeat(2, minmax(0,1fr)); } }
.sh-card { display:flex; flex-direction:column; border:1px solid var(--hair); border-radius:22px; overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.01));
  transition:border-color .25s, transform .25s var(--ease), box-shadow .25s; }
.sh-card:hover { border-color:rgba(var(--accent-rgb),.45); transform:translateY(-3px); box-shadow:0 30px 60px -36px rgba(var(--accent-rgb),.55); }
.sh-card.in { border-color:rgba(var(--accent-rgb),.6); box-shadow:0 0 0 1px rgba(var(--accent-rgb),.35) inset; }
.sh-pic { position:relative; display:block; aspect-ratio:1; background:#0b0908; overflow:hidden; }
.sh-pic img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .45s var(--ease), transform .8s var(--ease); }
.sh-pic img.b { opacity:0; }
.sh-card:hover .sh-pic img { transform:scale(1.03); }
.sh-card:hover .sh-pic img.b { opacity:1; }
.sh-tag { position:absolute; top:12px; left:12px; font-size:12px; font-weight:600; letter-spacing:.06em; padding:4px 10px; border-radius:999px;
  background:rgba(13,10,9,.7); border:1px solid rgba(255,255,255,.12); color:#fff; backdrop-filter:blur(6px); }
.sh-none { position:absolute; inset:0; display:grid; place-items:center; color:var(--muted); font-size:14px; }
.sh-txt { padding:18px 20px 6px; flex:1; }
.sh-txt h3 { margin:0; font-size:19px; letter-spacing:-.02em; line-height:1.25; }
.sh-txt h3 a:hover { color:var(--accent-hover); }
.sh-size { color:var(--accent-hover); font-size:13px; margin:4px 0 0; }
.sh-txt p { margin:10px 0 0; color:var(--muted); font-size:14px; line-height:1.5; }
.sh-buy { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 20px 20px; }
.sh-price { font-size:22px; font-weight:600; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.sh-price.big { font-size:40px; letter-spacing:-.04em; }
.sh-more { color:var(--accent-hover); font-weight:600; font-size:14px; }
.sh-qty { display:inline-flex; align-items:center; border:1px solid var(--hair); border-radius:999px; background:#0e0b0a; }
.sh-qty button { width:36px; height:36px; border:0; background:none; color:var(--text); font:inherit; font-size:18px; cursor:pointer; border-radius:999px; }
.sh-qty button:hover { background:rgba(255,255,255,.07); }
.sh-qty input { width:38px; border:0; background:none; color:var(--text); font:600 15px Geist, sans-serif; text-align:center; -moz-appearance:textfield; }
.sh-qty input::-webkit-inner-spin-button, .sh-qty input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }

.sh-cart { position:sticky; top:84px; padding:24px; border-radius:24px; border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg, #1d1716, #141010); box-shadow:0 0 0 1px rgba(var(--accent-rgb),.14), 0 40px 100px -40px rgba(var(--accent-rgb),.5); scroll-margin-top:90px; }
.sh-cart h2 { margin:0 0 16px; font-size:22px; letter-spacing:-.02em; }
.sh-field, .sh-addr label { display:grid; gap:6px; font-size:13px; color:var(--muted); }
.sh-addr label i { font-style:normal; opacity:.7; }
.sh-cart select, .sh-cart input[type=text] { width:100%; font:inherit; font-size:15px; color:var(--text); background:#0e0b0a;
  border:1px solid var(--hair); border-radius:12px; padding:10px 12px; }
.sh-cart select:focus, .sh-cart input[type=text]:focus { outline:none; border-color:rgba(var(--accent-rgb),.6); }
.sh-cart select option { color:#111; }
.sh-cart table { width:100%; border-collapse:collapse; margin:14px 0 6px; font-size:14px; }
.sh-cart td { padding:7px 0; vertical-align:top; }
.sh-cart td:last-child { text-align:right; white-space:nowrap; padding-left:12px; font-variant-numeric:tabular-nums; }
.sh-cart td small { color:var(--muted); }
.sh-cart tr.sub td { border-top:1px solid var(--hair); padding-top:11px; color:var(--soft-text); }
.sh-cart tr.total td { border-top:1px solid var(--hair); padding-top:12px; font-size:18px; font-weight:600; color:var(--text); }
.sh-dim { color:var(--muted); } .sh-good { color:var(--ok); } .sh-bad { color:var(--err-text); }
.sh-addr { display:grid; gap:10px; margin:16px 0; }
.sh-addr b { font-size:15px; }
.sh-err { margin:0 0 12px; padding:10px 12px; border-radius:12px; background:rgba(var(--err-rgb),.12); color:var(--err-text); font-size:14px; }
.sh-cart .btn.block { margin-top:8px; }
.sh-cart .btn:disabled { opacity:.5; cursor:default; transform:none; }
.sh-fine { margin:12px 0 0; color:var(--muted); font-size:13px; }
.sh-fine a, .sh-ship a, .sh-added a { color:var(--accent-hover); }

.sh-mine { max-width:var(--max); margin:0 auto 40px; padding:0 24px; }
.sh-mine h2.two { font-size:clamp(26px, 3vw, 38px); margin-bottom:18px; }
.sh-table { border:1px solid var(--hair); border-radius:18px; overflow:hidden; }
.sh-table table { width:100%; border-collapse:collapse; font-size:14px; }
.sh-table td { padding:12px 16px; border-bottom:1px solid var(--hair); }
.sh-table tr:last-child td { border-bottom:0; }
.sh-table a { color:var(--accent-hover); font-family:"Geist Mono", monospace; }
.badge { display:inline-flex; align-items:center; gap:6px; font-size:13px; }
.badge i { width:7px; height:7px; border-radius:50%; background:var(--c); }

/* why / pricing / final */
.sh-why { padding-top:40px; }
.sh-price-sec { padding-top:140px; }
.sh-two { display:grid; grid-template-columns:1.1fr 1fr; gap:20px; margin-top:56px; align-items:stretch; }
.sh-nums { grid-template-columns:1fr 1fr; margin-top:0; }
.sh-ship { padding:30px; border-radius:24px; border:1px solid var(--hair); background:linear-gradient(180deg, rgba(255,255,255,.035), transparent); }
.sh-ship h3 { margin:0 0 14px; font-size:20px; letter-spacing:-.02em; }
.sh-ship table { width:100%; border-collapse:collapse; font-size:16px; }
.sh-ship td { padding:11px 0; border-bottom:1px solid var(--hair); }
.sh-ship td:last-child { text-align:right; font-weight:600; font-variant-numeric:tabular-nums; }
.sh-ship p { margin:16px 0 0; color:var(--muted); font-size:14px; }
.sh-final { padding:120px 24px 150px; }

/* product page */
.sh-pd { max-width:var(--max); margin:0 auto; padding:110px 24px 40px; }
.sh-crumb { color:var(--muted); font-size:14px; margin-bottom:26px; }
.sh-crumb a:hover { color:var(--text); } .sh-crumb span { margin:0 6px; opacity:.6; }
.sh-pd-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:56px; align-items:start; }
.sh-gallery { position:sticky; top:84px; }
.sh-big { position:relative; aspect-ratio:1; border-radius:26px; overflow:hidden; background:#0b0908;
  box-shadow:0 0 0 1px rgba(255,255,255,.07), 0 50px 120px -40px rgba(var(--accent-rgb),.5); }
.sh-big img { width:100%; height:100%; object-fit:cover; display:block; }
.sh-thumbs { display:flex; gap:10px; margin-top:14px; flex-wrap:wrap; }
.sh-thumbs button { width:70px; height:70px; padding:0; border-radius:14px; overflow:hidden; border:1px solid var(--hair); background:#0b0908;
  cursor:pointer; opacity:.6; transition:opacity .2s, border-color .2s; }
.sh-thumbs button img { width:100%; height:100%; object-fit:cover; display:block; }
.sh-thumbs button:hover, .sh-thumbs button.on { opacity:1; border-color:var(--accent); }
.sh-info { padding-top:12px; }
.sh-info h1.two { font-size:clamp(36px, 4.4vw, 58px); max-width:none; margin:10px 0 16px; text-wrap:balance; }
.sh-lead { margin:0; color:var(--soft-text); font-size:18px; max-width:46ch; }
.sh-pricebox { display:flex; align-items:baseline; gap:8px 18px; flex-wrap:wrap; margin:30px 0 22px; }
.sh-save { color:var(--warn); font-size:14px; }
.sh-add { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.sh-add .sh-qty button { width:46px; height:52px; }
.sh-add .sh-qty input { width:44px; font-size:17px; }
.sh-added { margin:14px 0 0; color:var(--ok); font-size:15px; }
.sh-points { list-style:none; margin:30px 0 0; padding:24px 0 0; border-top:1px solid var(--hair); display:grid; gap:10px; color:var(--soft-text); font-size:15px; }
.sh-points li::before { content:"✓"; color:var(--ok); margin-right:10px; font-weight:700; }
.sh-pd-more { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:56px; margin:110px 0 100px; }
.sh-pd-more .prose h2:first-child { margin-top:0; }
.sh-specs h2 { margin:0 0 18px; font-size:28px; letter-spacing:-.025em; }
.sh-specs table { width:100%; border-collapse:collapse; border:1px solid var(--hair); border-radius:18px; overflow:hidden; font-size:15px; }
.sh-specs th, .sh-specs td { text-align:left; padding:13px 18px; border-bottom:1px solid var(--hair); vertical-align:top; }
.sh-specs th { width:38%; color:var(--muted); font-weight:500; }
.sh-specs tr:last-child th, .sh-specs tr:last-child td { border-bottom:0; }

@media (max-width:1080px) {
  .sh-layout { grid-template-columns:minmax(0,1fr); }
  .sh-cart { position:static; max-width:560px; }
  .sh-two { grid-template-columns:1fr; }
}
@media (max-width:820px) {
  .sh-pd-grid, .sh-pd-more { grid-template-columns:minmax(0,1fr); gap:36px; }
  .sh-gallery { position:static; }
  .sh-pd-more { margin:70px 0 60px; }
  .nav .btn.ghost.sh-cartlink { display:inline-flex; }
}
@media (max-width:480px) {
  .sh-layout, .sh-pd, .sh-mine { padding-left:16px; padding-right:16px; }
  .sh-grid { grid-template-columns:1fr 1fr; gap:12px; }
  .sh-txt { padding:14px 14px 4px; } .sh-txt p { display:none; } .sh-txt h3 { font-size:16px; }
  .sh-buy { flex-direction:column; align-items:flex-start; padding:10px 14px 14px; }
  .sh-nums { grid-template-columns:1fr; }
}

/* stock (2026-11-09): Sold out is automatic at 0 units */
.sh-stock { position:absolute; top:12px; right:12px; font-size:12px; font-weight:600; padding:4px 10px; border-radius:999px; backdrop-filter:blur(6px); }
.sh-stock.low { background:rgba(242,165,65,.18); border:1px solid rgba(242,165,65,.5); color:#ffd59a; }
.sh-stock.out { background:rgba(13,10,9,.78); border:1px solid rgba(255,255,255,.18); color:#fff; letter-spacing:.04em; text-transform:uppercase; }
.sh-card.sold .sh-pic img { filter:grayscale(.6) brightness(.7); }
.sh-card.sold:hover { transform:none; box-shadow:none; border-color:var(--hair); }
.sh-soldout { font-size:14px; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
.sh-left { margin:12px 0 0; color:var(--warn); font-size:15px; }
.sh-left a { color:var(--accent-hover); }
