:root{
  --color-primary:#ff6b9d;
  --color-secondary:#ff8fab;
  --color-bg:#f8f9fa;
  --color-text:#333;
  --radius:10px;
}

*{box-sizing:border-box}
body{font-family:'Noto Sans JP',sans-serif;line-height:1.6;color:var(--color-text);background:var(--color-bg);margin:0}
a{color:inherit;text-decoration:none}
.container{max-width:1200px;margin:0 auto;padding:0 28px;}

.btn{display:inline-block;padding:12px 20px;border:none;border-radius:var(--radius);cursor:pointer;transition:.2s;font-weight:600}
.btn-primary{background:var(--color-primary);color:#fff}
.btn-primary:hover{background:var(--color-secondary)}
.btn-outline{background:transparent;border:2px solid var(--color-primary);color:var(--color-primary)}
.btn-outline:hover{background:var(--color-primary);color:#fff}
.btn-small{padding:8px 14px}
.btn-large{padding:14px 26px}

.header{display:flex;align-items:center;justify-content:center;height:120px;background:#ff7ca8;}
.nav{display:flex;align-items:center;justify-content:space-betweenjustify-content:center;}
.nav-menu{list-style:none;display:flex;gap:20px}
.nav-menu li a{color:#fff;opacity:.95}
.nav-menu li a:hover{opacity:1}

.page-title{font-size:28px;margin:10px 0}
.page-description{color:#555;margin-bottom:20px}

.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:24px 0}
.product-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 20px rgba(0,0,0,.08);transition:transform .2s}
.product-card:hover{transform:translateY(-3px)}
.product-image{position:relative;overflow:hidden;aspect-ratio:16/9;background:#fafafa}
.product-image img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;user-select:none;background:#fafafa}
.product-rating{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.7);color:#ffd700;padding:4px 8px;border-radius:6px;font-size:12px}
.product-info{padding:16px}
.product-title{font-size:16px;margin:4px 0}
.actress-name{color:var(--color-primary);font-weight:600;margin-bottom:8px}
.product-meta{display:flex;justify-content:space-between;color:#666;font-size:12px;margin-bottom:10px}
.bunny-type{background:#eef;padding:2px 8px;border-radius:6px}

.info-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);overflow:hidden}
.info-table th,.info-table td{padding:10px;border-bottom:1px solid #eee;text-align:left}
.info-table th{width:140px;color:#555;background:#fafafa}

.footer{background:#333;color:#fff;margin-top:50px}
.footer-content{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:30px 0}
.footer-section h4{color:#ffbed4;margin:0 0 10px}
.footer-section ul{list-style:none;padding:0;margin:0}
.footer-section li{margin:6px 0}
.footer-bottom{text-align:center;padding:16px;border-top:1px solid #555}

.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);align-items:center;justify-content:center}
.modal-content{background:#fff;padding:30px;border-radius:var(--radius);width:min(520px,90%)}
.modal-buttons{display:flex;gap:10px;justify-content:center;margin-top:16px}

.error-message{color:#c62828;margin-top:10px}
.input-error{color:#c62828;font-size:13px;display:block;margin:6px 0}
.char-counter{color:#666;margin-top:8px}


/* v4 custom styles */
.site-logo {
  height: 28px;
  vertical-align: middle;
  margin-right: 8px;
}
.site-title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  vertical-align: middle;
}
.footer {
  background: #f7f7f7;
  color: #333;
}
.footer a:hover {
  color: #ff8fab;
}

@media (max-width:640px){.container{padding:0 20px}}

.category-inline{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}
.filter-grid{justify-content:center}
.category-filters{margin:14px 0 18px}
.category-label{font-weight:700;color:#333}

.product-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.product-meta .actress-name{display:inline-block;margin:0;font-weight:700;color:#ff5fa2}
.product-meta .bunny-type{display:inline-block}

.footer-bottom{padding:22px 0;text-align:center;font-size:15px}
.footer-bottom a{font-weight:700;text-decoration:underline;text-underline-offset:2px}

/* v14 meta inline row */
.product-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.product-meta .actress-name{color:#ff5fa2;font-weight:700;margin:0}
.product-meta .bunny-type{display:inline-block;background:#f2f2f2;padding:4px 10px;border-radius:8px;font-size:13px;font-weight:600;color:#555}

/* align sort dropdown */
.search-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:8px;margin-bottom:8px}
.sort-control{display:flex;align-items:center;gap:6px}
.sort-select{margin-top:0 !important}

.breadcrumb{display:flex;justify-content:center;gap:8px;font-size:16px;color:#555;margin:10px 0 18px}
