@charset "UTF-8";

/*!
Theme Name: Cocoon Child
Template: cocoon-master
Version: 1.0.0
*/

/* カラー変数の定義 */
:root {
    --bg-color: #fff;
    --text-color: #333;
    --card-bg: #fff;
    --border-color: #ddd;
    --link-color: #4a69bd;
    --title-color: #4a69bd;
    --distributor-bg: #ff6b6b;
    --distributor-text: #fff;
    --tag-text: #666;
    --shadow-color: rgba(0, 0, 0, 0.1);
    --main-bg: #f8f9fa;
    --sidebar-bg: #fff;
    --sidebar-title-bg: #f4f4f4;
    --sidebar-tag-bg: #f0f0f0;
    --sidebar-tag-count-bg: rgba(0, 0, 0, 0.1);
    --search-input-bg: #fff;
    --search-button-bg: #8BC34A;
    --search-button-text: #fff;
    --widget-title-border: #8BC34A;
    --header-bg: #fff;
    --header-text: #333;
    --header-site-title-color: #333;
    --breadcrumb-bg: #fff;
    --search-widget-border: #e0e0e0;
    --footer-bg: #333;
    --footer-text: #fff;
}

/* ダークモード用の変数 */
.dark-mode {
    --bg-color: #1a1a1a;
    --text-color: #e0e0e0;
    --card-bg: #2d2d2d;
    --border-color: #404040;
    --link-color: #7b97e6;
    --title-color: #7b97e6;
    --distributor-bg: #ff6b6b;
    --distributor-text: #fff;
    --tag-text: #bbb;
    --shadow-color: rgba(0, 0, 0, 0.3);
    --main-bg: #2d2d2d;
    --sidebar-bg: #2d2d2d;
    --sidebar-title-bg: #3d3d3d;
    --sidebar-tag-bg: #3d3d3d;
    --sidebar-tag-count-bg: rgba(255, 255, 255, 0.1);
    --search-input-bg: #3d3d3d;
    --search-button-bg: #6a9538;
    --search-button-text: #e0e0e0;
    --widget-title-border: #6a9538;
    --header-bg: #2d2d2d;
    --header-text: #e0e0e0;
    --header-site-title-color: #e0e0e0;
    --breadcrumb-bg: #2d2d2d;
    --search-widget-border: #404040;
    --footer-bg: #1a1a1a;
    --footer-text: #e0e0e0;
}

#header h1,
.header h1,
.header-container h1,
.header #header-in .logo {
    margin: 0 !important;
    padding: 8px !important;
}

#main {
    padding-top: 15px !important;
    padding-bottom: 15px !important;
    margin-top: 4px !important;
}

#content,
#sidebar {
    margin-top: 4px !important;
}

.pagination-next-link,
#navi,
#content-top {
    display: none;
}

.sns-share,
.sns-follow {
    display: none;
}

.tagline {
    text-align: left !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* ダークモードスイッチ */

.dark-mode-switch {
    padding: 10px;
    text-align: center;
}

.dark-mode-toggle {
    display: inline-block !important;
    padding: 12px 20px !important;
    background: #4a69bd !important;
    /* より落ち着いた青 */
    border-radius: 6px !important;
    border: none !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    box-shadow: 0 2px 4px var(--shadow-color) !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
    position: relative !important;
    width: 100% !important;
    max-width: 250px !important;
    opacity: 0.9 !important;
    /* 少し透明度を加えて柔らかく */
}

/* ライトモード時のスタイル（デフォルト） */
.dark-mode-toggle::before {
    content: "🌙" !important;
    margin-right: 8px !important;
    font-size: 16px !important;
}

/* ダークモード時のスタイル */
.dark-mode-toggle.dark-mode-active {
    background: #6c757d !important;
    /* より落ち着いたグレー */
}

.dark-mode-toggle.dark-mode-active::before {
    content: "☀️" !important;
    margin-right: 8px !important;
    font-size: 16px !important;
}

/* ホバー効果 */
.dark-mode-toggle:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px var(--shadow-color) !important;
    opacity: 1 !important;
    /* ホバー時に不透明度を上げる */
}

.dark-mode-toggle:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 4px var(--shadow-color) !important;
}

.mode-text {
    color: #fff !important;
}


/* レスポンシブ対応 */
@media screen and (max-width: 834px) {
    .dark-mode-toggle {
        padding: 10px 16px !important;
        font-size: 13px !important;
    }
}

/* エントリーカードのレイアウト */
.entry-card {
    display: flex !important;
    flex-direction: column !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    padding: 10px !important;
    background: var(--card-bg) !important;
    min-height: 200px !important;
    max-height: 280px !important;
}

/* タイトル */
.entry-card-title {
    font-size: 20px !important;
    line-height: 1.4 !important;
    margin: 0 0 10px 0 !important;
    width: 100% !important;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 56px !important;
    max-height: 56px !important;
}

.entry-card-title-link {
    color: var(--title-color) !important;
    text-decoration: none !important;
}

/* コンテンツのレイアウト */
.entry-card-content-wrap {
    display: flex !important;
    gap: 15px;
}

/* 左側（サムネイル）部分 */
.entry-card-left {
    width: auto !important;
    min-width: auto !important;
}

.entry-card-thumb {
    margin: 0 !important;
    padding: 0 !important;
    display: inline-block !important;
    /* ブロックレベルからインラインブロックに変更 */
    line-height: 0 !important;
    /* 行間による余白を削除 */
    font-size: 0 !important;
    /* フォントサイズによる余白を削除 */
    width: fit-content !important;
    /* コンテンツに合わせたサイズに */
}

.entry-card-thumb img {
    height: 180px !important;
    /* max-heightではなくheightを使用 */
    width: 280px !important;
    /* autoではなく固定値を使用 */
    border-radius: 4px !important;
    width: auto !important;
    display: block !important;
    vertical-align: top !important;
    /* 画像下部の余白を削除 */
}

/* 右側（タグ）部分 */
.entry-card-right {
    flex: 1;
    display: flex !important;
    flex-direction: column !important;
    gap: 8px;
    min-width: 0;
}

/* 配信サイト */
.entry-card-distributor {
    margin-bottom: 2px;
    flex-shrink: 0 !important;
}

.distributor-badge {
    display: inline-block;
    background: var(--distributor-bg);
    color: var(--distributor-text);
    padding: 2px 6px;
    border-radius: 3px;
    font-size: 13px;
    font-weight: 600;
    margin-left: 0;
}

/* タグ */
.entry-card-tags {
    font-size: 15px;
    line-height: 1.4;
    color: var(--tag-text);
    overflow: hidden;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    min-height: 80px !important;
    flex-grow: 1 !important;
    display: block !important;
}

.entry-card-tag {
    color: var(--link-color) !important;
    text-decoration: none !important;
    white-space: normal !important;
    display: inline !important;
}

/* サイト名 */
.dark-mode .logo-text,
.dark-mode .logo-header {
    color: var(--text-color) !important;
}

.dark-mode .site-name-text {
    color: var(--text-color) !important;
}

/* 検索フォーム */
.dark-mode .video-search-form {
    background: var(--card-bg) !important;
    border: 1px solid var(--border-color) !important;
    box-shadow: 0 1px 3px var(--shadow-color) !important;
}

.dark-mode .video-search-input {
    background: var(--search-input-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

.dark-mode .video-search-input::placeholder {
    color: var(--tag-text) !important;
}

/* ダークモード追加スタイル */
.dark-mode #header {
    background-color: var(--header-bg) !important;
    color: var(--header-text) !important;
}

.dark-mode .header-container {
    background-color: var(--header-bg) !important;
}

.dark-mode #main {
    background-color: var(--main-bg) !important;
}

.dark-mode #sidebar {
    background-color: var(--sidebar-bg) !important;
}

.dark-mode .widget-title {
    background-color: var(--sidebar-title-bg) !important;
    color: var(--text-color) !important;
    border-color: var(--widget-title-border) !important;
}

.dark-mode .video-tag-link {
    background-color: var(--sidebar-tag-bg) !important;
    color: var(--text-color) !important;
}

.dark-mode .count-badge,
.dark-mode .tag-count {
    background-color: var(--sidebar-tag-count-bg) !important;
    color: var(--text-color) !important;
}

.dark-mode .video-filter-list a {
    background-color: var(--sidebar-tag-bg) !important;
    color: var(--text-color) !important;
}

.dark-mode .video-filter-list a.active {
    background-color: var(--link-color) !important;
    color: var(--distributor-text) !important;
}

.dark-mode .breadcrumb {
    background-color: var(--breadcrumb-bg) !important;
    color: var(--text-color) !important;
}

.dark-mode .search-icon {
    color: var(--search-button-text) !important;
}

.dark-mode #footer {
    background-color: var(--footer-bg) !important;
    color: var(--footer-text) !important;
}

.dark-mode .footer-bottom {
    background-color: var(--footer-bg) !important;
    color: var(--footer-text) !important;
}

.dark-mode .copyright {
    color: var(--footer-text) !important;
}

/* 動画情報テーブルのダークモード対応 */
.dark-mode .video-info-container {
    background: var(--card-bg) !important;
}

.dark-mode .video-info-table {
    background: var(--card-bg) !important;
    border-color: var(--border-color) !important;
}

.dark-mode .video-info-table th,
.dark-mode .video-info-table td {
    border-color: var(--border-color) !important;
    color: var(--text-color) !important;
}

.dark-mode .video-info-table th {
    background: var(--sidebar-title-bg) !important;
}

/* 項目名（見出し）のダークモード対応 */
.dark-mode .section-title,
.dark-mode .video-link-title {
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}

/* リンク色の調整 */
.dark-mode .video-info-table a {
    color: var(--link-color) !important;
}

.dark-mode .video-info-table a:hover {
    opacity: 0.8 !important;
}

/* 見出しのダークモード対応 */
.dark-mode h2.section-title {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
    border-color: var(--border-color) !important;
}

/* テーブルの奇数行・偶数行のダークモード対応 */
.dark-mode .video-info-table tr:nth-child(odd) {
    background: var(--card-bg) !important;
}

.dark-mode .video-info-table tr:nth-child(even) {
    background: var(--sidebar-tag-bg) !important;
    /* 少し明るい背景色 */
}

/* テーブルのセル内のテキストカラーを確実に適用 */
.dark-mode .video-info-table tr td,
.dark-mode .video-info-table tr th {
    color: var(--text-color) !important;
}

/* レスポンシブ対応 */
@media screen and (max-width: 834px) {
    .entry-card {
        min-height: 150px !important;
        max-height: 190px !important;
    }

    .entry-card-thumb {
        margin: 0 !important;
        padding: 0 !important;
        display: inline-block !important;
        line-height: 0 !important;
        font-size: 0 !important;
        width: fit-content !important;
    }

    .entry-card-thumb img {
        max-height: 112px !important;
        vertical-align: top !important;
    }

    .entry-card-title {
        font-size: 18px !important;
        min-height: 50px !important;
        max-height: 50px !important;
    }
}

/* 不要な要素を非表示 */
.admin-pv,
.entry-card-snippet,
.entry-card-meta,
.entry-card-info {
    display: none !important;
}

/* ホバー効果の無効化 */
a:hover {
    opacity: 1 !important;
}

.a-wrap:hover {
    background-color: transparent !important;
    opacity: 1 !important;
}

/* ページ全体の背景 */
body {
    background-color: var(--bg-color);
    color: var(--text-color);
}

/* ============================================
  投稿詳細ページ（single）のスタイル
============================================ */
/* 動画情報テーブル */
.video-info-container {
    margin-bottom: 2em;
}

.video-info-table {
    width: 100%;
    border-collapse: collapse;
    background: #f8f8f8;
    margin: 1em 0;
}

.video-info-table th,
.video-info-table td {
    padding: 10px;
    border: 1px solid #ddd;
}

.video-info-table th {
    width: 150px;
    background: #f0f0f0;
    text-align: center;
}

/* 動画プレイヤー */
.video-player-container {
    margin: 2em 0;
}

.video-wrapper {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
}

/* アクションボタン */
.action-buttons {
    margin: 2em auto;
    max-width: 600px;
    display: flex;
    flex-direction: column;
    gap: 1em;
}

.action-buttons .button {
    display: block;
    width: 100%;
    padding: 1em;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    font-size: 16px;
}

.button-primary {
    background: #8BC34A;
    color: white !important;
}

.button-secondary {
    background: #5B9BD5;
    color: white !important;
}

.button-icon {
    margin-right: 0.5em;
}

/* サンプル画像のスタイル */
.section-title {
    font-size: 18px;
    border-bottom: 1px solid #ccc;
    padding-bottom: 0.5em;
    margin: 2em 0 1em;
}

.sample-container {
    margin: 2em 0;
    background: var(--card-bg) !important;
}

.sample-images {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 100%;
    margin: 0 auto;
}

.sample-image {
    text-align: center;
}

.sample-image img {
    max-width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: top;
}

/* 動画リンク */
.video-link-container {
    margin: 2em 0;
    text-align: center;
}

.video-link-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 1em;
    padding-left: 10px;
    border-left: 4px solid #ff6b6b;
}

.video-link {
    display: inline-block !important;
    /* ブロックからインラインブロックに変更 */
    text-decoration: none;
    line-height: 0 !important;
    /* 行間による余白を削除 */
    font-size: 0 !important;
    /* フォントサイズによる余白を削除 */
    width: fit-content !important;
}

.video-link img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* 女優作品一覧ボタン */
.actress-works-container {
    margin: 2em auto;
    padding: 0 1em;
}

.actress-works-button {
    display: block;
    width: 100%;
    max-width: 600px;
    margin: 0 auto;
    padding: 1em;
    background: #8BC34A;
    color: white !important;
    text-align: center;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    font-size: 16px;
}

/* single.phpでのタグ */
.video-tags {
    margin: 1em 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5em;
}

.video-tag {
    display: inline-block;
    padding: 0.3em 0.8em;
    background-color: #f0f0f0;
    border-radius: 3px;
    font-size: 0.9em;
    color: #666;
}

/* レスポンシブ対応に追加 */
@media screen and (max-width: 834px) {

    /* 詳細ページ */
    .video-info-table th {
        width: 120px;
    }

    .video-link-title {
        font-size: 16px;
    }

    .action-buttons .button {
        font-size: 14px;
    }

    .section-title {
        font-size: 16px;
    }
}

/* ページネーション基本スタイル */
.pagination {
    text-align: center;
    margin: 2em 0;
}

.pagination .page-numbers {
    display: inline-block;
    width: 46px !important;  /* 固定幅 */
    height: 46px !important; /* 固定高さ */
    padding: 0 !important;   /* paddingを0に */
    margin: 0 4px;
    text-decoration: none;
    border-radius: 4px;
    font-weight: bold;
    background: var(--card-bg);
    color: var(--text-color);
    border: 1px solid var(--border-color);
    font-size: 14px !important;
    line-height: 46px !important; /* heightと同じ値に */
    text-align: center !important;
}

/* カレントページのスタイル */
.pagination .current {
    background: var(--link-color);
    color: #fff;
    border-color: var(--link-color);
}

/* ホバー時のスタイル */
.pagination .page-numbers:hover:not(.current) {
    background: var(--sidebar-tag-bg);
}

/* 次へ/前へボタンのアイコン色 */
.pagination .next .fa,
.pagination .prev .fa {
    color: var(--text-color);
}

/* ダークモード対応 */
.dark-mode .pagination .page-numbers {
    background: var(--card-bg);
    color: var(--text-color);
    border-color: var(--border-color);
}

.dark-mode .pagination .current {
    background: var(--link-color);
    color: #fff;
    border-color: var(--link-color);
}

.dark-mode .pagination .page-numbers:hover:not(.current) {
    background: var(--sidebar-tag-bg);
}

.dark-mode .pagination .next .fa,
.dark-mode .pagination .prev .fa {
    color: var(--text-color);
    font-size: 14px !important; /* フォントサイズ指定 */
    line-height: 1 !important; /* line-heightを1に設定 */
    vertical-align: middle !important; 
}

/* モバイルフッターメニューの基本スタイル */
.mobile-footer-menu-buttons {
    background: var(--card-bg) !important;
    border-top: 1px solid var(--border-color) !important;
}

/* メニューボタンの基本スタイル */
.mobile-footer-menu-buttons .menu-button {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
}

/* メニューボタンの中身 */
.mobile-footer-menu-buttons .menu-button-in {
    color: var(--text-color) !important;
}

/* アイコンの色 */
.mobile-footer-menu-buttons .menu-icon .fa {
    color: var(--text-color) !important;
}

/* キャプションの色 */
.mobile-footer-menu-buttons .menu-caption {
    color: var(--text-color) !important;
}

/* サイドバーメニューのチェックボックスがオンの時の背景色 */
.mobile-footer-menu-buttons .menu-button.menu-button-on {
    background-color: var(--sidebar-tag-bg) !important;
    color: var(--text-color) !important;
}

/* ダークモード時の追加スタイル */
.dark-mode .mobile-footer-menu-buttons {
    background: var(--card-bg) !important;
    border-top-color: var(--border-color) !important;
}

.dark-mode .mobile-footer-menu-buttons .menu-button {
    background: var(--card-bg) !important;
    color: var(--text-color) !important;
}

.dark-mode .mobile-footer-menu-buttons .menu-button-in {
    color: var(--text-color) !important;
}

.dark-mode .mobile-footer-menu-buttons .menu-icon .fa {
    color: var(--text-color) !important;
}

.dark-mode .mobile-footer-menu-buttons .menu-caption {
    color: var(--text-color) !important;
}

.dark-mode .mobile-footer-menu-buttons .menu-button.menu-button-on {
    background-color: var(--sidebar-tag-bg) !important;
    color: var(--text-color) !important;
}

/* サイドバーメニューが開いた時の背景 */
.dark-mode #sidebar-menu-content {
    background: var(--card-bg) !important;
    border-left: 1px solid var(--border-color) !important;
}

/* クローズボタンの色 */
.dark-mode .sidebar-menu-close-button {
    color: var(--text-color) !important;
}