/* =========================================
   Base & Common Styles
========================================= */
:root {
    --primary-color: #ff4a8d;
    --text-dark: #333333;
    --text-muted: #888888;
    --bg-light: #fdfdfd;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', sans-serif; background-color: var(--bg-light); color: var(--text-dark); }

/* Navigation */
.navbar { position: fixed; top: 0; width: 100%; padding: 25px 50px; display: flex; justify-content: space-between; align-items: center; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(8px); z-index: 1000; box-shadow: 0 2px 20px rgba(0,0,0,0.03); }
.nav-logo { font-size: 24px; font-weight: 900; letter-spacing: 2px; }
.nav-links { display: flex; gap: 40px; }
.nav-links a { text-decoration: none; color: var(--text-dark); font-size: 13px; font-weight: 700; letter-spacing: 1px; transition: color 0.3s; }
.nav-links a:hover, .nav-links a.active { color: var(--primary-color); }

/* Hero Section (index.html) */
.hero { position: relative; padding: 180px 0 100px; text-align: center; overflow: hidden; }
.hero-category { font-size: 12px; font-weight: 800; color: var(--primary-color); letter-spacing: 4px; margin-bottom: 20px; display: inline-block; }
.main-title { font-size: 52px; font-weight: 900; margin-bottom: 50px; }
.main-title .highlight { color: var(--primary-color); }
.sub-title { font-size: 20px; font-weight: 700; margin-bottom: 10px; }

/* Cast Board Scroll (横スクロール対応) */
.stage-container { position: relative; width: 100%; margin: 0 auto; padding-top: 40px; overflow: hidden; }
.floating-badge { 
    position: absolute; 
    background: var(--text-dark); 
    color: #fff; 
    padding: 8px 16px; 
    border-radius: 30px; 
    font-size: 12px; 
    font-weight: bold; 
    z-index: 10; 
}
.badge-left { top: 10px; left: -10px; transform: rotate(-5deg); }
.badge-right { top: 10px; right: -10px; background: var(--primary-color); transform: rotate(5deg); }

.cast-scroll-wrapper { 
    width: 100%; 
    overflow-x: auto; 
    scrollbar-width: none; /* Firefox用スクロールバー非表示 */
    -webkit-overflow-scrolling: touch; 
    cursor: grab; 
    padding-bottom: 30px; 
}
.cast-scroll-wrapper::-webkit-scrollbar { display: none; /* Chrome/Safari用 */ }
.cast-scroll-wrapper:active { cursor: grabbing; }

.cast-board { 
    display: inline-flex; 
    gap: 30px; 
    padding: 20px 5vw; 
    align-items: center; 
}
.cast-card { 
    position: relative; /* これを追加 */
    flex-shrink: 0; 
    width: 300px; 
    background: #fff; 
    border-radius: 20px; 
    padding: 15px; 
    box-shadow: 0 15px 40px rgba(0,0,0,0.06); 
    transition: transform 0.3s; 
}
.cast-card:hover { transform: translateY(-10px); }

/* 真ん中を目立たせる装飾（横並びなのでサイズのみ調整） */
.c2 { width: 320px; box-shadow: 0 20px 50px rgba(255,74,141,0.15); border: 2px solid #fff5f8; transform: scale(1.05); }
.c2:hover { transform: scale(1.05) translateY(-10px); }

.cast-media { height: 350px; border-radius: 12px; margin-bottom: 15px; background-size: cover; background-position: center; }
.c2 .cast-media { height: 380px; }
.cast-details { text-align: left; padding: 0 10px; }
.cast-meta { font-size: 11px; color: var(--primary-color); font-weight: 800; margin-bottom: 5px; }
.cast-name { font-size: 20px; font-weight: 900; }

/* Background Images */
.bg-c1 { background-image: url('photo-red.jpg'); background: linear-gradient(135deg, #ffe3ec 0%, #ffb6c1 100%); }
.bg-c2 { background-image: url('photo-yellow.jpg'); background: linear-gradient(135deg, #fff3d1 0%, #ffd15c 100%); }
.bg-c3 { background-image: url('photo-blue.jpg'); background: linear-gradient(135deg, #e3f2fd 0%, #90caf9 100%); }

/* ★ 目立たせた Action Area ★ */
.action-area { padding: 100px 20px 140px; text-align: center; }
.btn-premium { 
    background: linear-gradient(135deg, #ff4a8d 0%, #ff7eb3 100%);
    color: #fff; 
    border: none; 
    padding: 25px 60px; 
    font-size: 22px; 
    font-weight: 900; 
    border-radius: 50px; 
    cursor: pointer; 
    transition: all 0.3s; 
    box-shadow: 0 15px 30px rgba(255, 74, 141, 0.4); 
    letter-spacing: 2px;
    animation: pulse 2s infinite; /* 脈打つアニメーション */
}
.btn-premium:hover { 
    transform: translateY(-5px) scale(1.05); 
    box-shadow: 0 20px 40px rgba(255, 74, 141, 0.6); 
}

/* 脈打つアニメーションの設定 */
@keyframes pulse {
    0% { box-shadow: 0 0 0 0 rgba(255, 74, 141, 0.7); }
    70% { box-shadow: 0 0 0 25px rgba(255, 74, 141, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 74, 141, 0); }
}

footer { text-align: center; padding: 40px 20px; background: #fff; font-size: 12px; color: var(--text-muted); border-top: 1px solid #eee; }

/* 年齢確認＆プロフィールポップアップ（前と同じ） */
.modal-overlay, .profile-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 10000; display: none; opacity: 0; justify-content: center; align-items: center; transition: opacity 0.3s ease; }
.modal-overlay { background: rgba(0,0,0,0.8); backdrop-filter: blur(15px); }
.profile-modal-overlay { background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(10px); }
.modal-overlay.show, .profile-modal-overlay.show { opacity: 1; }
.modal-container { background: #fff; padding: 50px 40px; border-radius: 24px; text-align: center; max-width: 400px; width: 90%; }
.profile-modal-container { background: #ffffff; width: 90%; max-width: 450px; border-radius: 24px; box-shadow: 0 30px 60px rgba(0,0,0,0.1); overflow: hidden; position: relative; transform: translateY(20px); transition: transform 0.3s cubic-out; border: 1px solid rgba(255, 74, 141, 0.1); }
.profile-modal-overlay.show .profile-modal-container { transform: translateY(0); }
/* ポップアップの中身 */
.modal-icon { font-size: 40px; margin-bottom: 20px; }
.modal-title { font-size: 22px; font-weight: 900; margin-bottom: 15px; }
.modal-text { font-size: 14px; line-height: 1.6; margin-bottom: 30px; }
.modal-text span { color: var(--primary-color); font-weight: bold; }
.modal-actions { display: flex; flex-direction: column; gap: 15px; }
.btn-allow { background: var(--text-dark); color: #fff; border: none; padding: 16px; border-radius: 30px; font-weight: bold; cursor: pointer; transition: 0.3s; }
.btn-allow:hover { background: var(--primary-color); }
.btn-deny { background: #f0f0f0; color: var(--text-muted); border: none; padding: 16px; border-radius: 30px; font-weight: bold; cursor: pointer; }
.modal-close-btn { position: absolute; top: 15px; right: 15px; width: 36px; height: 36px; background: rgba(255, 255, 255, 0.9); border: none; border-radius: 50%; font-size: 20px; font-weight: bold; cursor: pointer; z-index: 10; transition: 0.2s; }
.modal-close-btn:hover { background: var(--primary-color); color: #ffffff; }
.modal-profile-img { width: 100%; height: 300px; background-size: cover; background-position: center; }
.modal-profile-content { padding: 30px; }
.modal-name { font-size: 28px; font-weight: 900; color: #333; margin-bottom: 25px; text-align: center; }
.info-label { font-size: 11px; font-weight: 800; color: var(--primary-color); margin-bottom: 8px; }
.info-value { font-size: 15px; font-weight: 600; color: #333; line-height: 1.6; background: #f9f9f9; padding: 12px 15px; border-radius: 12px; margin-bottom: 20px; }

/* スマホ対応 */
@media screen and (max-width: 768px) {
    .navbar { padding: 15px 20px; flex-direction: column; gap: 12px; }
    .nav-links { gap: 20px; width: 100%; justify-content: center; }
    .hero { padding: 160px 0 80px; }
    .main-title { font-size: 38px; }
    /* スマホでも横スクロールを維持するためカード幅を固定 */
    .cast-card, .c2 { width: 280px; transform: none !important; margin: 0 10px; } 
    .badge-left { top: -10px; left: 10px; }
    .badge-right { bottom: auto; top: -10px; right: 10px; }
    .btn-premium { width: 90%; padding: 20px; font-size: 18px; }
}