/* ============================================================
   single-v2.css — 個別ページ(コンバージョン) v2 ゆるかわPOP
   .vsroot 配下 + .vs-* クラスにスコープ
   ============================================================ */
.vsroot{
  --cream:#fff6ee;--card:#fff;--ink:#43344f;--ink2:#7c6e8c;
  --coral:#ff6f9c;--coral-d:#ff4f86;--peach:#ffb3a0;--mint:#36cdb8;--sky:#76d0ff;--lemon:#ffd23f;--line:#ffe3d6;
  --shadow:0 14px 34px -16px rgba(255,111,156,.45);--shadow-soft:0 10px 26px -14px rgba(126,80,120,.30);
  --r:26px;--r-sm:16px;--pop:"Mochiy Pop One",sans-serif;--maru:"Zen Maru Gothic",system-ui,sans-serif;
  background-color:var(--cream);
  background-image:
    radial-gradient(circle at 12% 4%,rgba(118,208,255,.14),transparent 28%),
    radial-gradient(circle at 88% 2%,rgba(255,210,63,.16),transparent 24%),
    radial-gradient(rgba(255,179,160,.20) 1.4px,transparent 1.4px);
  background-size:auto,auto,22px 22px;
}
.vsroot,.vsroot .single-post,.vsroot #post{font-family:var(--maru);color:var(--ink);line-height:1.85}
.vsroot *{box-sizing:border-box}
.vsroot .vs a{color:inherit;text-decoration:none}
.vsroot .vs img{max-width:100%;display:block}

/* wrapper */
.vs{max-width:1080px;margin:0 auto;padding:8px 0 40px}
.vs-crumb{font-size:12.5px;color:var(--ink2);font-weight:500;margin-bottom:6px}
.vs-crumb a{color:var(--coral)}

/* PDP grid */
.vs-pdp{display:grid;grid-template-columns:1fr 360px;gap:28px;align-items:start}
@media(max-width:940px){.vs-pdp{grid-template-columns:1fr;gap:22px}}

/* hero art */
.vs-hero{position:relative;border-radius:var(--r);overflow:hidden;border:3px solid #fff;box-shadow:var(--shadow)}
.vs-hero img{width:100%;aspect-ratio:16/10;object-fit:cover}
.vs-hero .vs-tag8k{position:absolute;top:14px;left:14px;background:#fff;color:var(--coral);font-family:var(--pop);
  font-size:13px;padding:6px 13px;border-radius:999px;box-shadow:var(--shadow-soft);transform:rotate(-4deg)}
.vs-hero .vs-play{position:absolute;inset:0;display:grid;place-items:center}
.vs-hero .vs-play b{width:74px;height:74px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 12px 30px rgba(255,79,134,.4);transition:.22s}
.vs-hero .vs-play b::after{content:"";border-left:22px solid var(--coral);border-top:13px solid transparent;border-bottom:13px solid transparent;margin-left:5px}
.vs-hero:hover .vs-play b{transform:scale(1.08)}

.vs-sec-h{font-family:var(--pop);font-size:16px;margin:26px 0 13px;display:flex;align-items:center;gap:9px}
.vs-sec-h .ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:15px;background:linear-gradient(135deg,var(--coral),var(--peach));transform:rotate(-6deg)}

/* sample gallery */
.vs-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
@media(max-width:520px){.vs-gallery{grid-template-columns:repeat(3,1fr)}}
.vs-gallery a{aspect-ratio:1/1;border-radius:16px;overflow:hidden;border:3px solid #fff;box-shadow:var(--shadow-soft);transition:.2s;background:linear-gradient(135deg,#ffe4cf,#ffd0e0)}
.vs-gallery a:hover{transform:translateY(-3px) rotate(1deg)}
.vs-gallery img{width:100%;height:100%;object-fit:cover}
.vs-gallery .vs-more{display:grid;place-items:center;background:linear-gradient(135deg,var(--coral),var(--coral-d));color:#fff;font-family:var(--pop);font-size:12px;text-align:center;line-height:1.4}

/* buy box */
.vs-buy{position:sticky;top:16px;background:var(--card);border:3px solid #fff;border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
@media(max-width:940px){.vs-buy{position:static}}
.vs-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}
.vs-chip{font-size:12px;font-weight:700;color:var(--ink2);background:var(--cream);border-radius:999px;padding:5px 12px}
.vs-chip.hot{color:#fff;background:linear-gradient(120deg,var(--mint),var(--sky))}
.vs-buy h1{font-size:20px;font-weight:900;line-height:1.5;margin:0 0 6px}
.vs-maker{font-size:12.5px;color:var(--ink2);font-weight:500;margin-bottom:13px}
.vs-rate{display:flex;align-items:center;gap:7px;margin-bottom:16px;font-weight:500;font-size:13px;color:var(--ink2)}
.vs-rate img{display:inline;width:16px;height:16px;vertical-align:-3px}
.vs-rate b{font-family:var(--pop);color:var(--ink);font-size:16px}

/* price box (clear!) */
.vs-pricebox{background:var(--cream);border-radius:var(--r-sm);padding:15px 18px;margin-bottom:14px;position:relative;min-height:54px}
.vs-pricebox .vs-saleoff{position:absolute;top:-13px;right:-6px;background:linear-gradient(135deg,var(--coral),var(--coral-d));color:#fff;font-family:var(--pop);font-size:14px;min-width:60px;height:60px;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.05;transform:rotate(10deg);box-shadow:var(--shadow);border:3px solid #fff;padding:4px}
.vs-pricebox .vs-saleoff small{font-size:9px;display:block}
.vs-pricebox .vs-label{font-family:var(--pop);font-size:15px;color:var(--coral-d)}
.vs-pricebox .vs-nosale{font-weight:700;color:var(--ink2);font-size:14px}
.vs-pricebox .product-item{display:inline}
.vs-pricebox .sale-label{font-family:var(--pop);font-size:15px;color:var(--coral-d)}

.vs-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;font-family:var(--pop);font-size:18px;
  padding:18px;border-radius:18px;color:#fff;border:none;cursor:pointer;
  background:linear-gradient(120deg,var(--coral),var(--coral-d));box-shadow:0 12px 26px -8px rgba(255,79,134,.7);transition:.18s}
.vs-cta:hover{transform:translateY(-2px) scale(1.01);box-shadow:0 18px 34px -8px rgba(255,79,134,.85);color:#fff}
.vs-cta .arw{transition:.2s}.vs-cta:hover .arw{transform:translateX(4px)}
.vs-trust{display:flex;flex-wrap:wrap;gap:9px 14px;justify-content:center;margin-top:14px;font-size:11.5px;font-weight:700;color:var(--ink2)}
.vs-trust b{color:var(--mint)}
.vs-tip{display:flex;align-items:center;gap:9px;background:linear-gradient(120deg,#fff7fb,#eefcf8);border:2px dashed var(--line);border-radius:16px;padding:9px 13px;margin-top:14px;font-size:12px;font-weight:700}
.vs-tip svg{width:34px;height:34px;flex:none}

/* sections */
.vs-block{margin-top:30px}
.vs-h2{font-family:var(--pop);font-size:20px;display:flex;align-items:center;gap:10px;margin-bottom:14px}
.vs-h2 .ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;color:#fff;font-size:17px;background:linear-gradient(135deg,var(--coral),var(--peach));transform:rotate(-6deg)}
.vs-h2.mint .ic{background:linear-gradient(135deg,var(--mint),var(--sky))}
.vs-panel{background:var(--card);border:3px solid #fff;border-radius:var(--r);padding:22px;box-shadow:var(--shadow-soft)}
.vs-panel.review{color:#5b4d68;font-size:14.5px}
.vs-panel.review blockquote{margin:0 0 12px;font-style:normal}

/* CTA band */
.vs-band{background:linear-gradient(120deg,#fff,#fff6f9);border:3px solid #fff;border-radius:var(--r);box-shadow:var(--shadow);
  padding:20px 22px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:24px}
.vs-band svg{width:54px;height:54px;flex:none}
.vs-band .l{flex:1;min-width:200px}
.vs-band .l b{font-family:var(--pop);font-size:17px;display:block}
.vs-band .l small{color:var(--ink2);font-weight:500}
.vs-band .vs-cta{width:auto;padding:14px 30px}

/* info table */
.vs-info{width:100%;border-collapse:separate;border-spacing:0 8px;font-size:14px}
.vs-info th{text-align:left;width:110px;color:var(--ink2);font-weight:700;padding:9px 14px;background:var(--cream);border-radius:12px 0 0 12px;vertical-align:top}
.vs-info td{padding:9px 14px;background:var(--cream);border-radius:0 12px 12px 0;font-weight:500}
.vs-tag{display:inline-block;background:#fff;border:2px solid var(--line);border-radius:999px;padding:3px 12px;margin:0 5px 5px 0;font-size:12.5px;font-weight:700}
.vs-tag:hover{border-color:var(--coral);color:var(--coral)}

/* actress cards */
.vs-actress{display:flex;flex-wrap:wrap;gap:12px}
.vs-actress a,.vs-actress .dummy{display:flex;align-items:center;gap:12px;background:var(--card);border:3px solid #fff;border-radius:18px;padding:10px 16px 10px 10px;box-shadow:var(--shadow-soft);transition:.2s}
.vs-actress a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.vs-actress img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--line)}
.vs-actress p{margin:0;font-family:var(--pop);font-size:15px}

/* stars */
.vs-stars .average-score{font-family:var(--pop);font-size:18px}
.vs-stars img{display:inline;width:18px;height:18px;vertical-align:-3px}
.vs-stars .reviewer a{color:var(--coral);font-weight:700;font-size:13px}
.vs-stars .caption{display:block;color:var(--ink2);font-size:11px}

/* related list / grids */
.vs-related-posts{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:640px){.vs-related-posts{grid-template-columns:1fr}}
.vs-related-posts li a{display:block;background:var(--cream);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:500;transition:.15s}
.vs-related-posts li a:hover{background:#fff;box-shadow:var(--shadow-soft);color:var(--coral)}

.vs-popcat{margin-top:30px}
.vs-popcat .category-section{margin-bottom:18px}
.vs-popcat h3{font-family:var(--pop);font-size:15px;margin:14px 0 8px}
.vs-popcat .popular-posts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:640px){.vs-popcat .popular-posts{grid-template-columns:1fr}}
.vs-popcat .post-item{background:var(--card);border:2px solid #fff;border-radius:14px;padding:11px 14px;box-shadow:var(--shadow-soft)}
.vs-popcat .post-item a{font-size:13px;font-weight:700;line-height:1.4;display:block}
.vs-popcat .post-item a:hover{color:var(--coral)}
.vs-popcat .views-count{font-size:11px;color:var(--ink2);margin-top:4px}

/* sale banner */
.vs-salebanner{margin-top:26px;text-align:center}
.vs-salebanner .m-copy{font-family:var(--pop);color:var(--coral);margin-bottom:10px}
.vs-salebanner a{display:inline-block;font-family:var(--pop);font-size:16px;color:#fff;background:linear-gradient(120deg,var(--coral),var(--coral-d));padding:15px 36px;border-radius:16px;box-shadow:0 12px 26px -8px rgba(255,79,134,.7)}

/* mobile sticky CTA */
.vs-mbar{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:none;align-items:center;gap:12px;
  background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-top:2px solid var(--line);padding:10px 14px;box-shadow:0 -8px 24px -12px rgba(126,80,120,.4)}
.vs-mbar .p{flex:none;line-height:1.15}
.vs-mbar .p .lab{font-family:var(--pop);font-size:14px;color:var(--coral-d)}
.vs-mbar .vs-cta{flex:1;width:auto;padding:14px;font-size:15px}
@media(max-width:940px){.vsroot .vs-mbar{display:flex} .vsroot{padding-bottom:84px}}

/* debug box (admin) tidy */
.vsroot .debug{background:#fff;border:2px dashed var(--line);border-radius:14px;padding:10px 14px;margin-bottom:14px;font-size:11px;color:var(--ink2);opacity:.8}
.vsroot .debug pre{display:inline-block;margin:0 12px 0 0}
