:root {
  --bg: #0d0d0d;
  --bg2: #141414;
  --bg3: #1a1a1a;
  --border: #2a2a2a;
  --red: #e53935;
  --red-dark: #b71c1c;
  --text: #e0e0e0;
  --text-muted: #888;
  --text-dim: #555;
  --white: #fff;
  --radius: 6px;
  --font: 'Inter', 'Noto Sans JP', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.65;
}

a { color: var(--red); text-decoration: none; }
a:hover { color: #ef5350; }

/* ---- Layout ---- */
.container { max-width: 1100px; margin: 0 auto; padding: 0 20px; }
.layout { display: grid; grid-template-columns: 1fr 300px; gap: 40px; padding: 40px 20px; }
@media (max-width: 768px) { .layout { grid-template-columns: 1fr; } .sidebar { order: -1; } }

/* ---- Ads ---- */
.ad-top { background: var(--bg2); text-align: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.ad-inline { text-align: center; margin: 28px 0; }
.ad-sidebar { padding: 0 !important; overflow: hidden; }
.ad-placeholder { background: var(--bg3); border: 1px dashed var(--border); color: var(--text-dim); display: flex; align-items: center; justify-content: center; font-size: 12px; min-height: 60px; border-radius: var(--radius); }

/* ---- Header ---- */
header {
  background: var(--bg2);
  border-bottom: 1px solid var(--border);
  position: sticky; top: 0; z-index: 100;
}
header .container { display: flex; align-items: center; gap: 32px; height: 58px; }
.logo { font-size: 20px; font-weight: 700; color: var(--white); letter-spacing: -0.5px; }
.logo span { color: var(--red); }
nav { display: flex; gap: 20px; align-items: center; margin-left: auto; }
nav a { font-size: 13.5px; color: var(--text-muted); font-weight: 500; white-space: nowrap; }
nav a:hover { color: var(--text); }
.btn-guide { background: var(--red); color: #fff !important; padding: 7px 14px; border-radius: var(--radius); font-size: 13px !important; }
.btn-guide:hover { background: var(--red-dark); }
.nav-toggle { display: none; background: none; border: none; color: var(--text); font-size: 20px; cursor: pointer; margin-left: auto; }
@media (max-width: 768px) {
  nav { display: none; position: absolute; top: 58px; left: 0; right: 0; background: var(--bg2); flex-direction: column; padding: 16px 20px; border-bottom: 1px solid var(--border); gap: 12px; }
  nav.open { display: flex; }
  .nav-toggle { display: block; }
}

/* ---- Buttons ---- */
.btn-primary { display: inline-block; background: var(--red); color: #fff; padding: 10px 20px; border-radius: var(--radius); font-weight: 600; font-size: 15px; }
.btn-primary:hover { background: var(--red-dark); color: #fff; }
.btn-secondary { display: inline-block; background: var(--bg3); color: var(--text); padding: 10px 20px; border-radius: var(--radius); font-weight: 500; border: 1px solid var(--border); }
.btn-large { padding: 13px 28px; font-size: 16px; }
.btn-xlarge { padding: 16px 36px; font-size: 18px; }

/* ---- Hero ---- */
.hero { padding: 56px 0 40px; }
.hero-label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--red); margin-bottom: 12px; }
.hero h1 { font-size: clamp(28px, 4vw, 42px); font-weight: 700; color: var(--white); line-height: 1.2; margin-bottom: 16px; }
.hero-sub { font-size: 17px; color: var(--text-muted); max-width: 640px; margin-bottom: 24px; }
.hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px; }
.hero-stats { font-size: 13px; color: var(--text-dim); display: flex; gap: 8px; }

/* ---- Category sections ---- */
.category-section { margin-bottom: 48px; }
.category-header { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 16px; border-bottom: 1px solid var(--border); padding-bottom: 10px; }
.category-header h2 { font-size: 20px; font-weight: 700; color: var(--white); }
.category-header h2 a { color: inherit; }
.see-all { font-size: 13px; color: var(--red); }
.article-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.article-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; display: flex; flex-direction: column; gap: 8px; transition: border-color 0.15s; }
.article-card:hover { border-color: var(--red); }
.article-cat { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--red); }
.article-card h3 { font-size: 15px; font-weight: 600; color: var(--white); line-height: 1.3; }
.article-summary { font-size: 13px; color: var(--text-muted); flex: 1; }
.article-meta { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.read-more { margin-left: auto; font-size: 12px; color: var(--red); }

/* ---- Badges ---- */
.badge { font-size: 11px; padding: 2px 8px; border-radius: 20px; font-weight: 600; }
.badge-legal { background: #1b5e20; color: #a5d6a7; }
.badge-regulated { background: #1a237e; color: #90caf9; }
.badge-gray_area { background: #4a148c; color: #ce93d8; }
.badge-yes { background: #1b5e20; color: #a5d6a7; }
.badge-neutral { background: #333; color: #aaa; }
.badge-price { background: #3e2723; color: #ffccbc; }

/* ---- Article list (category page) ---- */
.page-header { padding: 40px 0 24px; border-bottom: 1px solid var(--border); margin-bottom: 24px; }
.page-header h1 { font-size: 32px; font-weight: 700; color: var(--white); margin-bottom: 8px; }
.breadcrumb { font-size: 13px; color: var(--text-dim); margin-bottom: 16px; }
.breadcrumb a { color: var(--text-muted); }
.article-list { display: flex; flex-direction: column; gap: 12px; }
.article-row { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 24px; display: flex; align-items: center; gap: 20px; }
.article-row:hover { border-color: var(--red); }
.article-row-body { flex: 1; }
.article-row-body h2 { font-size: 17px; font-weight: 600; color: var(--white); margin-bottom: 6px; }
.article-row-body p { font-size: 14px; color: var(--text-muted); }
.article-row-cta { color: var(--red); font-size: 14px; white-space: nowrap; }

/* ---- Article body ---- */
.article-meta-bar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 16px 0; }
.updated { font-size: 12px; color: var(--text-dim); margin-left: auto; }
.vpn-inline { background: #0d2818; border: 1px solid #1b5e20; border-radius: var(--radius); padding: 10px 14px; font-size: 13px; margin: 16px 0; }
.vpn-inline strong { color: #a5d6a7; }
.article-body { font-size: 16px; line-height: 1.75; color: var(--text); }
.article-body h1 { font-size: 28px; font-weight: 700; color: var(--white); margin: 32px 0 12px; padding-bottom: 10px; border-bottom: 2px solid var(--red); }
.article-body h2 { font-size: 20px; font-weight: 700; color: var(--white); margin: 28px 0 10px; padding-left: 12px; border-left: 3px solid var(--red); }
.article-body h3 { font-size: 17px; font-weight: 600; color: #ccc; margin: 20px 0 8px; }
.article-body p { margin-bottom: 14px; }
.article-body ul, .article-body ol { padding-left: 24px; margin-bottom: 14px; }
.article-body li { margin-bottom: 6px; }
.article-body strong { color: var(--white); font-weight: 600; }
.key-facts { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px 24px; margin: 28px 0; }
.key-facts h3 { font-size: 15px; font-weight: 700; color: var(--white); margin-bottom: 12px; }
.key-facts ul { padding-left: 20px; }
.key-facts li { font-size: 14px; color: var(--text-muted); margin-bottom: 6px; }
.related-articles { margin: 32px 0; }
.related-articles h3 { font-size: 17px; font-weight: 700; color: var(--white); margin-bottom: 12px; }
.related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.related-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px; display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: var(--text); }
.related-card:hover { border-color: var(--red); }
.related-card span { color: var(--red); font-size: 13px; }
.article-upsell { background: var(--bg2); border: 1px solid var(--red); border-radius: var(--radius); padding: 24px; margin: 32px 0; text-align: center; }
.article-upsell h3 { font-size: 18px; font-weight: 700; color: var(--white); margin-bottom: 8px; }
.article-upsell p { color: var(--text-muted); margin-bottom: 16px; }

/* ---- Sidebar ---- */
.sidebar { display: flex; flex-direction: column; gap: 20px; }
.sidebar-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; }
.card-highlight { border-color: var(--red); }
.card-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: var(--red); margin-bottom: 8px; }
.sidebar-card h3 { font-size: 16px; font-weight: 700; color: var(--white); margin-bottom: 8px; }
.sidebar-card p { font-size: 13px; color: var(--text-muted); margin-bottom: 14px; }
.vpn-links { display: flex; flex-direction: column; gap: 8px; }
.vpn-link { display: block; padding: 9px 12px; border-radius: var(--radius); font-size: 13px; font-weight: 600; text-align: center; }
.vpn-link.nord { background: #1565c0; color: #fff; }
.vpn-link.express { background: #c62828; color: #fff; }
.vpn-link.shark { background: #1b5e20; color: #fff; }
.vpn-link:hover { opacity: 0.85; }
.cat-list { list-style: none; display: flex; flex-direction: column; gap: 8px; }
.cat-list a { font-size: 14px; color: var(--text-muted); }
.cat-list a:hover { color: var(--text); }

/* ---- Guide page ---- */
.guide-page { max-width: 860px; }
.guide-hero { padding: 48px 0 32px; text-align: center; }
.guide-badge { display: inline-block; background: var(--red); color: #fff; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; padding: 4px 12px; border-radius: 20px; margin-bottom: 16px; }
.guide-hero h1 { font-size: clamp(26px, 4vw, 40px); font-weight: 700; color: var(--white); margin-bottom: 12px; }
.guide-subtitle { font-size: 17px; color: var(--text-muted); max-width: 600px; margin: 0 auto 28px; }
.guide-buy-box { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 28px; display: inline-block; min-width: 320px; }
.guide-price { font-size: 36px; font-weight: 700; color: var(--white); margin-bottom: 4px; }
.guide-price span { font-size: 14px; color: var(--text-dim); font-weight: 400; }
.guide-trust { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; margin-top: 12px; font-size: 12px; color: var(--text-dim); }
.guide-contents { margin: 32px 0; }
.guide-contents h2 { font-size: 24px; font-weight: 700; color: var(--white); margin-bottom: 20px; }
.toc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; }
.toc-part { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; }
.toc-part-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--red); margin-bottom: 12px; }
.toc-part ul { list-style: none; display: flex; flex-direction: column; gap: 7px; }
.toc-part li { font-size: 14px; color: var(--text-muted); padding-left: 12px; border-left: 2px solid var(--border); }
.features-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 20px; margin-top: 20px; }
.feature { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; }
.feature-icon { font-size: 28px; margin-bottom: 10px; }
.feature h3 { font-size: 15px; font-weight: 700; color: var(--white); margin-bottom: 6px; }
.feature p { font-size: 13px; color: var(--text-muted); }
.guide-buy-bottom { text-align: center; padding: 48px 0; }
.guide-buy-bottom h2 { font-size: 26px; font-weight: 700; color: var(--white); margin-bottom: 12px; }
.guide-buy-bottom .guide-price { font-size: 32px; margin-bottom: 16px; }
.guide-buy-bottom .small { font-size: 13px; color: var(--text-dim); margin-top: 12px; }
.guarantee { font-size: 12px; color: var(--text-dim); margin-top: 10px; }

/* ---- Guide promo section ---- */
.guide-promo { background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 32px; margin: 48px 0; }
.guide-promo-inner { display: grid; grid-template-columns: 1fr 240px; gap: 32px; align-items: center; }
.guide-promo h2 { font-size: 22px; font-weight: 700; color: var(--white); margin-bottom: 10px; }
.guide-promo p { font-size: 14px; color: var(--text-muted); margin-bottom: 14px; }
.guide-features { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.guide-features li { font-size: 14px; color: var(--text-muted); }
.guide-cta-box { text-align: center; }
.price { font-size: 36px; font-weight: 700; color: var(--white); }
.price-sub { font-size: 12px; color: var(--text-dim); margin-bottom: 16px; }
@media (max-width: 640px) { .guide-promo-inner { grid-template-columns: 1fr; } }

/* ---- Footer ---- */
footer { background: var(--bg2); border-top: 1px solid var(--border); padding: 40px 0 24px; margin-top: 60px; }
.footer-cols { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 32px; margin-bottom: 28px; }
.footer-cols p { font-size: 13px; color: var(--text-dim); margin-top: 10px; }
footer h4 { font-size: 13px; font-weight: 700; color: var(--white); margin-bottom: 12px; }
footer ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
footer li a { font-size: 13px; color: var(--text-dim); }
footer li a:hover { color: var(--text-muted); }
.footer-bottom { border-top: 1px solid var(--border); padding-top: 16px; }
.footer-bottom p { font-size: 12px; color: var(--text-dim); text-align: center; }
@media (max-width: 640px) { .footer-cols { grid-template-columns: 1fr; } }

/* ================================================================
   RANKINGS PAGE
   ================================================================ */

/* Hero */
.rankings-hero { padding: 48px 0 32px; text-align: center; }
.rh-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--red); margin-bottom: 12px; }
.rankings-hero h1 { font-size: clamp(26px, 4vw, 40px); font-weight: 700; color: var(--white); margin-bottom: 12px; }
.rankings-hero p { font-size: 16px; color: var(--text-muted); max-width: 680px; margin: 0 auto 24px; }
.rh-stats { display: flex; gap: 24px; justify-content: center; flex-wrap: wrap; }
.rh-stat { text-align: center; }
.rh-stat span { display: block; font-size: 28px; font-weight: 700; color: var(--red); line-height: 1; }
.rh-stat { font-size: 13px; color: var(--text-muted); }

/* Category tabs */
.cat-tabs { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 0; border-bottom: 1px solid var(--border); margin-bottom: 32px; }
.tab-btn { background: var(--bg2); border: 1px solid var(--border); color: var(--text-muted); padding: 7px 14px; border-radius: 20px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.15s; white-space: nowrap; }
.tab-btn:hover { border-color: var(--red); color: var(--text); }
.tab-btn.active { background: var(--red); border-color: var(--red); color: #fff; }

/* Map */
.map-section { margin-bottom: 40px; }
.map-header { margin-bottom: 12px; }
.map-header h2 { font-size: 20px; font-weight: 700; color: var(--white); margin-bottom: 4px; }
.map-note { font-size: 13px; color: var(--text-muted); }
#venueMap { width: 100%; height: 420px; border-radius: var(--radius); border: 1px solid var(--border); }
.map-legend { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 10px; }
.leg-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); }
.leg-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }

/* Category section */
.cat-section { margin-bottom: 56px; }
.cat-section-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 2px solid var(--border); }
.cat-icon { font-size: 32px; line-height: 1; flex-shrink: 0; }
.cat-section-header h2 { font-size: 22px; font-weight: 700; color: var(--white); margin-bottom: 4px; }
.cat-desc { font-size: 14px; color: var(--text-muted); }
.cat-guide-link { margin-left: auto; flex-shrink: 0; font-size: 13px; color: var(--red); font-weight: 600; white-space: nowrap; }

/* Category meta bar */
.cat-meta-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 20px; }
@media (max-width: 640px) { .cat-meta-bar { grid-template-columns: repeat(2, 1fr); } }
.cmb-item { background: var(--bg2); padding: 12px 16px; }
.cmb-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin-bottom: 4px; }
.cmb-val { font-size: 13px; color: var(--text); font-weight: 500; }

/* Venue cards */
.venue-list { display: flex; flex-direction: column; gap: 24px; }
.venue-card { background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; display: flex; gap: 0; overflow: hidden; transition: border-color 0.15s; }
.venue-card:hover { border-color: var(--red); }
.vc-rank { background: var(--red); color: #fff; font-size: 22px; font-weight: 700; writing-mode: vertical-rl; text-orientation: mixed; display: flex; align-items: center; justify-content: center; padding: 0 14px; min-width: 48px; letter-spacing: -1px; }
.vc-body { flex: 1; padding: 20px 24px; }
.vc-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.vc-names { flex: 1; }
.vc-name-en { font-size: 19px; font-weight: 700; color: var(--white); margin-bottom: 2px; }
.vc-name-jp { font-size: 14px; color: var(--text-muted); }
.vc-score { text-align: right; flex-shrink: 0; }
.score-num { font-size: 28px; font-weight: 700; color: var(--white); line-height: 1; }
.score-stars { color: #f9a825; font-size: 13px; margin: 2px 0; }
.score-count { font-size: 11px; color: var(--text-muted); }

/* Venue badges */
.vc-badges { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.vc-badge { font-size: 11px; padding: 3px 8px; border-radius: 4px; font-weight: 600; }
.vc-badge.loc { background: #1a1a2e; color: #90caf9; }
.vc-badge.en { background: #1b3a1b; color: #a5d6a7; }
.vc-badge.ok { background: #0d2818; color: #a5d6a7; }
.vc-badge.maybe { background: #2d2000; color: #ffe082; }
.vc-badge.cash { background: #1a1000; color: #ffe082; }

/* Venue grid */
.vc-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; margin-bottom: 16px; }
@media (max-width: 900px) { .vc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .vc-grid { grid-template-columns: 1fr; } }
.vc-col { display: flex; flex-direction: column; gap: 6px; }
.vc-detail-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); }
.vc-detail-label.mt { margin-top: 10px; }
.vc-detail-val { font-size: 13px; color: var(--text-muted); }
.vc-price { font-size: 15px; font-weight: 700; color: var(--white); }
.vc-price-usd { font-size: 13px; font-weight: 400; color: var(--text-muted); }
.vc-services { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.vc-services li { font-size: 13px; color: var(--text-muted); padding-left: 12px; position: relative; }
.vc-services li::before { content: '·'; position: absolute; left: 0; color: var(--red); }
.vc-book-steps { font-size: 13px; color: var(--text-muted); line-height: 1.6; }

/* Review & secrets */
.vc-review { background: var(--bg3); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 12px; }
.vc-review-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--text-dim); margin-bottom: 6px; }
.vc-review p { font-size: 13px; color: var(--text-muted); line-height: 1.55; }
.vc-secrets { background: #0d1a0d; border: 1px solid #1b3a1b; border-radius: var(--radius); padding: 12px 16px; margin-bottom: 12px; }
.vc-secrets-label { font-size: 11px; font-weight: 700; color: #a5d6a7; margin-bottom: 8px; }
.vc-secrets ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.vc-secrets li { font-size: 13px; color: #c8e6c9; padding-left: 14px; position: relative; }
.vc-secrets li::before { content: '→'; position: absolute; left: 0; color: #4caf50; }
.vc-contact-tips { font-size: 13px; color: var(--text-muted); background: var(--bg3); padding: 10px 14px; border-radius: var(--radius); margin-bottom: 14px; }
.vc-contact-tips strong { color: var(--white); }

/* Venue footer */
.vc-footer { display: flex; gap: 10px; flex-wrap: wrap; }
.vc-map-btn { display: inline-block; font-size: 12px; padding: 6px 12px; border-radius: var(--radius); background: var(--bg3); border: 1px solid var(--border); color: var(--text-muted); cursor: pointer; font-family: inherit; transition: all 0.15s; text-decoration: none; }
.vc-map-btn:hover { border-color: var(--red); color: var(--text); }
.vc-map-btn.outline { background: transparent; }

/* How-to-use grid */
.howto-section { margin: 48px 0; }
.howto-section h2 { font-size: 22px; font-weight: 700; color: var(--white); margin-bottom: 20px; }
.howto-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.howto-card { background: var(--bg2); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; }
.howto-num { font-size: 28px; font-weight: 700; color: var(--red); line-height: 1; margin-bottom: 10px; }
.howto-card h3 { font-size: 15px; font-weight: 700; color: var(--white); margin-bottom: 8px; }
.howto-card p { font-size: 13px; color: var(--text-muted); line-height: 1.55; }

/* Rankings upsell */
.rankings-upsell { background: var(--bg2); border: 1px solid var(--red); border-radius: 10px; padding: 32px; margin: 48px 0; display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.ru-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: var(--red); margin-bottom: 8px; }
.ru-left h3 { font-size: 22px; font-weight: 700; color: var(--white); margin-bottom: 10px; }
.ru-left p { font-size: 14px; color: var(--text-muted); margin-bottom: 14px; }
.ru-features { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ru-features li { font-size: 14px; color: var(--text-muted); }
.ru-right { text-align: center; flex-shrink: 0; }
.ru-price { font-size: 40px; font-weight: 700; color: var(--white); margin-bottom: 12px; }
.ru-note { font-size: 12px; color: var(--text-dim); margin-top: 8px; }

/* ================================================================
   FAQ PAGE
   ================================================================ */

.faq-hero { padding: 48px 0 32px; text-align: center; }
.faq-hero h1 { font-size: clamp(26px, 4vw, 40px); font-weight: 700; color: var(--white); margin-bottom: 12px; }
.faq-hero p { font-size: 16px; color: var(--text-muted); max-width: 620px; margin: 0 auto; }

.faq-wrapper { max-width: 860px; margin: 0 auto 40px; }

/* Quick nav */
.faq-nav { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 0 24px; border-bottom: 1px solid var(--border); margin-bottom: 32px; }
.faq-nav a { font-size: 12px; font-weight: 600; color: var(--text-muted); background: var(--bg2); border: 1px solid var(--border); padding: 5px 12px; border-radius: 20px; transition: all 0.15s; white-space: nowrap; }
.faq-nav a:hover { border-color: var(--red); color: var(--text); }

/* FAQ sections */
.faq-section { margin-bottom: 40px; }
.faq-section h2 { font-size: 20px; font-weight: 700; color: var(--white); margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--border); }

/* FAQ accordion */
.faq-item { border: 1px solid var(--border); border-radius: var(--radius); margin-bottom: 8px; overflow: hidden; }
.faq-q { width: 100%; background: var(--bg2); border: none; color: var(--text); font-family: inherit; font-size: 15px; font-weight: 600; padding: 16px 20px; text-align: left; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 12px; transition: background 0.15s; }
.faq-q:hover { background: var(--bg3); }
.faq-q span:first-child { flex: 1; line-height: 1.4; }
.faq-arrow { font-size: 18px; color: var(--red); transition: transform 0.2s; flex-shrink: 0; }
.faq-a { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; background: var(--bg3); }
.faq-a p, .faq-a ul, .faq-a ol { padding: 0 20px; margin-bottom: 12px; font-size: 14px; color: var(--text-muted); line-height: 1.7; }
.faq-a p:first-child, .faq-a ul:first-child, .faq-a ol:first-child { padding-top: 16px; }
.faq-a p:last-child, .faq-a ul:last-child, .faq-a ol:last-child { padding-bottom: 16px; margin-bottom: 0; }
.faq-a ul, .faq-a ol { padding-left: 40px; }
.faq-a li { margin-bottom: 5px; }
.faq-a strong { color: var(--white); font-weight: 600; }
.faq-item.open .faq-q { background: var(--bg3); }
.faq-item.open { border-color: var(--red); }

/* FAQ CTA */
.faq-cta { background: var(--bg2); border: 1px solid var(--red); border-radius: 10px; padding: 36px; text-align: center; margin: 40px 0; max-width: 860px; margin-left: auto; margin-right: auto; }
.faq-cta h3 { font-size: 20px; font-weight: 700; color: var(--white); margin-bottom: 10px; }
.faq-cta p { font-size: 14px; color: var(--text-muted); max-width: 560px; margin: 0 auto 20px; }
