/* ============================================================
   v2-shell.css — 全ページ共通シェル（ヘッダー vnav / フッター / 背景 / トークン）
   ※全ページで最後に読み込み、ヘッダー・フッター・背景・トークンを統一する。
     旧ページの本文レイアウト（styles.css / child-styles.css）は触らない設計。
     v2固有のリセット（.container等の打ち消し・.vstop/.vhub）は v2-base.css 側に残す。
   ============================================================ */
:root{
  --cream:#fff6ee;--card:#fff;--ink:#43344f;--ink2:#7c6e8c;
  --coral:#ff6f9c;--coral-d:#ff4f86;--peach:#ffb3a0;--mint:#36cdb8;--sky:#76d0ff;--lemon:#ffd23f;--lav:#b9a7ff;--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;--pop:"Mochiy Pop One",sans-serif;--maru:"Zen Maru Gothic",system-ui,sans-serif;
}

/* ===== 全ページ共通の素地（背景＋書体のみ。本文の色/行間/段組は各CSSに委ねる） ===== */
html,body{margin:0;padding:0}
body{
  font-family:var(--maru);
  background-color:var(--cream);
  background-image:
    radial-gradient(circle at 12% 2%,rgba(118,208,255,.12),transparent 24%),
    radial-gradient(circle at 88% 0%,rgba(255,210,63,.14),transparent 20%),
    radial-gradient(rgba(255,179,160,.16) 1.4px,transparent 1.4px);
  background-size:auto,auto,22px 22px;background-attachment:fixed;
}
/* ヘッダー・フッター内部だけ border-box を保証（旧ページの content-box 前提を壊さない） */
.vnav *,.footer *{box-sizing:border-box}

/* ===== 共通ヘッダー（vnav） ===== */
.vnav{position:sticky;top:0;z-index:100;background:rgba(255,246,238,.9);backdrop-filter:blur(12px);border-bottom:2px dotted var(--line)}
.vnav-in{max-width:1120px;margin:0 auto;padding:0 18px;height:64px;display:flex;align-items:center;gap:14px}
.vnav-brand{display:flex;align-items:center;gap:10px}
.vnav-brand svg{width:40px;height:40px;flex:none}
.vnav-logo{font-family:var(--pop);font-size:20px;color:var(--ink);line-height:1}
.vnav-logo b{color:var(--coral)}
.vnav-menu{display:flex;gap:4px;margin-left:8px}
.vnav-menu a{font-weight:700;font-size:14px;color:var(--ink2);padding:7px 13px;border-radius:999px;transition:.18s;text-decoration:none}
.vnav-menu a:hover{background:#fff;color:var(--coral);box-shadow:var(--shadow-soft)}
.vnav-menu a.sale{color:#fff;background:linear-gradient(120deg,var(--coral),var(--coral-d))}
.vnav-sp{flex:1}
.vnav-search{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--line);border-radius:999px;padding:0 8px 0 14px}
.vnav-search input{border:0;background:none;outline:none;font-family:var(--maru);font-size:13px;color:var(--ink);padding:9px 0;width:150px}
.vnav-search button{border:0;background:none;cursor:pointer;font-size:15px;padding:6px}
@media(max-width:860px){.vnav-menu,.vnav-search{display:none}}

/* ===== 共通フッター（既存 .footer マークアップを再スタイル） ===== */
.footer{background:#fff;border-top:3px dotted var(--line);margin-top:30px;padding:30px 18px 36px;color:var(--ink2);font-family:var(--maru)}
.footer .footer--wrapper{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.footer .site_logo .brand{font-family:var(--pop);font-size:18px;color:var(--ink)}
.footer .site_logo .site-description{display:block;font-size:12px;color:var(--ink2);margin-top:4px}
.footer .site_logo--img img{max-height:46px;width:auto;margin:0 auto}
.footer .footer--nav{min-width:0}
.footer .footer--nav ul{list-style:none;margin:0;padding:0;display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:center}
.footer .footer--nav a{color:var(--ink2);font-weight:500;font-size:13px;text-decoration:none}
.footer .footer--nav a:hover{color:var(--coral)}
.footer .footer--sns ul{display:flex;gap:12px;list-style:none;margin:10px 0 0;padding:0;justify-content:center}
.footer .footer--sns a{color:var(--coral);font-weight:700;font-size:13px}
.footer .copyright{max-width:1120px;margin:14px auto 0;font-size:12px;color:var(--ink2);text-align:center}
.footer .copyright a{color:var(--coral)}
/* フッター内部リンク（人気ジャンル/女優） */
.footer .footer--links{max-width:1120px;margin:6px auto 0;padding:18px 0 4px;display:flex;gap:30px 50px;flex-wrap:wrap;justify-content:center;border-top:2px dotted var(--line)}
.footer .footer--links-col b{font-family:var(--pop);font-size:14px;color:var(--ink);display:block;margin-bottom:8px}
.footer .footer--links-col ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;max-width:560px}
.footer .footer--links-col a{color:var(--ink2);font-weight:500;font-size:12.5px;text-decoration:none}
.footer .footer--links-col a:hover{color:var(--coral)}

/* トップへ戻る */
#page_top{position:fixed;right:16px;bottom:16px;z-index:90}
#page_top #top{width:46px;height:46px;border-radius:50%;background:linear-gradient(120deg,var(--coral),var(--coral-d));box-shadow:var(--shadow);display:grid;place-items:center;cursor:pointer}
#page_top #top .top{display:block;width:12px;height:12px;border-top:3px solid #fff;border-right:3px solid #fff;transform:rotate(-45deg);margin-top:4px}

/* 個別ページ下部のセールバナー（#page_banner） */
#page_banner{max-width:1080px;margin:0 auto;padding:0 18px}
#page_banner #banner a.banner{display:block;text-align:center;font-family:var(--pop);color:#fff;background:linear-gradient(120deg,var(--coral),var(--coral-d));padding:16px;border-radius:16px;box-shadow:var(--shadow);margin-top:10px}
#page_banner .sale-rate{font-family:var(--pop)}
