@charset "utf-8";
/* ---- サブナビ ---- */
.cast-subnav { display:flex; gap:0; margin-bottom:16px; border:1px solid #c8a8c8; border-radius:4px; overflow:hidden; }
.cast-subnav a { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:8px 4px; background:#47414e; color:#fff; font-size:11px; text-decoration:none; border-right:1px solid #5c5566; text-align:center; line-height:1.3; }
.cast-subnav a:last-child { border-right:none; }
.cast-subnav a:hover { background:#931d1d; }
.cast-subnav a.active { background:#931d1d; }
.cast-subnav a img { width:20px; height:20px; }

/* ---- キャスト名 ---- */
.cast-name { font-size:22px; font-weight:bold; color:#333; display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.cast-name .cast-age { font-size:15px; font-weight:normal; color:#666; }
.cast-status-badge { display:inline-flex; align-items:center; justify-content:center; line-height:1; background:#D6428B; color:#fff; font-size:12px; padding:5px 14px; border-radius:14px; font-weight:bold; margin-bottom:12px; }
.cast-action-bar { display:flex; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.cast-fav-btn { display:flex; align-items:center; gap:5px; background:#fff; border:2px solid #D6428B; color:#D6428B; font-size:10px; font-weight:bold; padding:6px 12px; border-radius:20px; text-decoration:none; cursor:pointer; font-family:'Noto Sans JP',sans-serif; }
.cast-fav-btn:hover { background:#D6428B; color:#fff; }
.cast-fav-btn.is-on { background:#D6428B; color:#fff; }
.cast-fav-btn.is-on:hover { background:#b5306e; }
.cast-review-link { display:flex; align-items:center; gap:5px; background:#fff; border:2px solid #47414e; color:#47414e; font-size:10px; font-weight:bold; padding:6px 12px; border-radius:20px; text-decoration:none; font-family:'Noto Sans JP',sans-serif; }
.cast-review-link:hover { background:#47414e; color:#fff; }

/* ---- セクションタイトルバー ---- */
.sec-bar { background:#47414e; color:#fff; font-size:13px; font-weight:bold; padding:7px 12px; margin:0 0 12px; }

/* ---- 動画グリッド ---- */
.movie-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:16px; }
@media(max-width:893px){ .movie-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .movie-grid { grid-template-columns:repeat(2,1fr); gap:8px; } }

.movie-card { cursor:pointer; border:1px solid #ddd; border-radius:4px; overflow:hidden; background:#000; position:relative; }
.movie-card:hover .movie-thumb img { opacity:0.75; transform:scale(1.03); }
.movie-card:hover .movie-play-icon { transform:translate(-50%,-50%) scale(1.15); }

.movie-thumb { position:relative; overflow:hidden; }
.movie-thumb img { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; transition:opacity 0.2s, transform 0.2s; }

.movie-play-icon { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:52px; height:52px; background:rgba(0,0,0,0.62); border-radius:50%; display:flex; align-items:center; justify-content:center; transition:transform 0.2s; pointer-events:none; }
.movie-play-icon svg { width:24px; height:24px; fill:#fff; margin-left:4px; }

.movie-card-body { padding:8px 10px 10px; background:#fff; }
.movie-card-num { font-size:10px; color:#999; margin-bottom:3px; }
.movie-card-desc { font-size:12px; color:#333; line-height:1.6; }

/* ---- 戻るリンク ---- */
.back-link { display:block; text-align:center; border:1px solid #47414e; color:#47414e; padding:9px; font-size:13px; text-decoration:none; border-radius:3px; margin-top:4px; }
.back-link:hover { background:#47414e; color:#fff; }

/* ---- 動画モーダル ---- */
.movie-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.92); z-index:3000; display:none; align-items:center; justify-content:center; flex-direction:column; }
.movie-modal-overlay.is-open { display:flex; }
.movie-modal-inner { position:relative; width:90vw; max-width:840px; }
.movie-modal-video { width:100%; aspect-ratio:16/9; background:#000; display:block; }
.movie-modal-desc { color:#ccc; font-size:13px; margin-top:10px; text-align:center; }
.movie-modal-close { position:fixed; top:14px; right:18px; font-size:30px; color:#fff; background:none; border:none; cursor:pointer; z-index:3001; line-height:1; }
.movie-modal-nav { display:flex; justify-content:space-between; margin-top:10px; }
.movie-modal-prev, .movie-modal-next { background:rgba(255,255,255,0.15); border:none; color:#fff; font-size:13px; padding:8px 18px; border-radius:3px; cursor:pointer; }
.movie-modal-prev:hover, .movie-modal-next:hover { background:rgba(255,255,255,0.3); }
.movie-modal-counter { color:#999; font-size:12px; align-self:center; }
