/*
Theme Name: アインズプレス
Theme URI:
Description:
Author:PLUSIDEA
Author URI:https://plusidea.co.jp/
Version:2.0
*/

@charset "utf-8";

/*----------------------------------------------------------------------
fonts
----------------------------------------------------------------------*/


/*----------------------------------------------------------------------
base
----------------------------------------------------------------------*/

html {
    min-width: 320px;
    font-size: 100%;
    height: 100%;
}

html,
body {
    overflow-x: hidden;
}


/*webフォント読み込むまで非表示*/


/* html body {
    opacity: 0;
}

html.loading-delay body,
html.wf-active body {
    transition: 0.4s;
    opacity: 1;
} */

body,
input,
textarea {
    /* font-family: "Noto Sans JP", sans-serif; */
    /* font-family: HiraginoHelvetica, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Helvetica Neue", arial, meiryo, sans-serif; */
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans CJK JP", Meiryo, "Helvetica Neue", Arial, sans-serif;
    /*font-family: 'NotoSansJP', 'Noto Sans JP', "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", -apple-system, BlinkMacSystemFont, sans-serif;*/
    /*font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;*/
    font-style: normal;
    font-weight: 400;
}

.en {
    font-family: "Outfit", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

body {
    color: #333333;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 100vh;
    /* カスタムプロパティ未対応ブラウザ用のフォールバック */
    min-height: calc(var(--vh, 1vh) * 100);
}

footer {
    margin-top: auto;
}


/*.wf-loading body header {
    opacity: 0;
    transition: 0.5s;
}

.loading-delay body header,
.wf-active body header {
    opacity: 1;
}*/


/*safariの場合*/

::-webkit-full-page-media,
:future,
:root html {
    height: -webkit-fill-available;
}

::-webkit-full-page-media,
:future,
:root body {
    min-height: -webkit-fill-available;
}


/*safariの場合ここまで*/

:root {
    --primary-color: #d70150;
    --ranking-color: #d70150;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: auto;
}

svg {
    display: initial;
}

a {
    text-decoration: none;
    color: #333333;
}

button,
a,
a img,
a svg,
a svg path {
    transition: 0.3s;
}

a:hover img,
a:hover {
    opacity: 0.7;
}

span.big {
    font-size: 1.5em;
}

span.red {
    color: #ff3333;
    font-weight: bold;
}

table {
    border-collapse: collapse;
}

h1 {
    font-size: 2em;
}

h2 {
    font-size: 1.5em;
}

h3 {
    font-size: 1.17em;
}

dh {
    color: #555;
    font-size: 20px;
    font-weight: bold;
}

strong {
    font-weight: bold;
}

input,
textarea,
button,
input[type="submit"] {
    -webkit-appearance: none;
    border-radius: 0;
}

input[type="checkbox"] {
    -webkit-appearance: auto;
}


/*------------------検索窓------------*/

.search_form_inner {
    width: 100%;
    position: relative;
}

input.search_input {
    width: 100%;
    /* border: 1px solid #333333; */
    /* border: 1px solid #FFFFFF; */
    border: 1px solid #FFFFFF;
    background-color: #f4f4f4;
    border-radius: 100px;
    height: 40px;
    padding: 0 35px 0 15px;
    box-sizing: border-box;
    outline: none;
    color: #333333;
}

input.search_button {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 15px;
    margin: auto;
    width: 15px;
    height: auto;
    outline: none;
}


/*------------------パンくずリスト------------*/

.breadcrumg-area {
    width: 100%;
    background-color: #f4f4f4;
    /* border-top: 1px solid #f4f4f4; */
}

.breadcrumg-area ol {
    padding: 10px 0;
    display: block;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    width: 100%;
}

.breadcrumg-area ol li {
    display: inline;
    padding-left: 16px;
    position: relative;
    margin-left: 9px;
    font-size: 0.7em;
    font-weight: 600;
}

.breadcrumg-area ol li::before {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    content: "";
    color: #333;
    width: 5px;
    height: 10px;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-image: url(./img/arrow_pan.png);
}

.breadcrumg-area ol li:first-child {
    padding-left: 0;
    margin-left: 0;
}

.breadcrumg-area ol li:first-child::before {
    display: none;
}


/*----------------------------------------------------------------------
all
----------------------------------------------------------------------*/

.inner {
    width: 1000px;
    max-width: 94%;
    margin: auto;
}

.w_max {
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
}

.fff {
    color: #fff;
}

.id_link_contents {
    height: 0;
    opacity: 0;
    pointer-events: none;
    z-index: -999999;
    /* 高さは要調整 */
    padding-top: 80px;
    margin-top: -80px;
}

.fade_up {
    opacity: 0;
}

.loading-delay .fade_up,
.wf-active .fade_up {
    animation: fade-up-item 0.5s ease-out forwards;
}

.is_fade_up {
    opacity: 0;
}

.is_fade_up.is_fade_up_start {
    animation: fade-up-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-up-item {
    0% {
        opacity: 0;
        transform: translateY(50px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.is_fade_left {
    opacity: 0;
}

.is_fade_left.is_fade_left_start {
    animation: fade-left-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-left-item {
    0% {
        opacity: 0;
        transform: translateX(-50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.is_fade_right {
    opacity: 0;
}

.is_fade_right.is_fade_right_start {
    animation: fade-right-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-right-item {
    0% {
        opacity: 0;
        transform: translateX(50vw);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

.fade_in {
    opacity: 0;
}

.loading-delay .fade_in,
.wf-active .fade_in {
    animation: fade-in-item 0.3s ease-out forwards;
}

.is_fade_in {
    opacity: 0;
}

.is_fade_in.is_fade_in_start {
    animation: fade-in-item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade-in-item {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.fade_in_zoom {
    opacity: 0;
    -webkit-transform: scale(0.9);
    transform: scale(0.9);
}

.loading-delay .fade_in_zoom,
.wf-active .fade_in_zoom {
    animation: fade-in-zoom-item 0.5s ease-out forwards;
}

.is_fade_zoom {
    opacity: 0;
}

.is_fade_zoom.is_fade_zoom_start {
    animation: fade_in_zoom_item 0.5s ease-out forwards;
    animation-delay: 0.1s;
}

@keyframes fade_in_zoom_item {
    0% {
        opacity: 0;
        -webkit-transform: scale(0.9);
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        -webkit-transform: scale(1);
        transform: scale(1);
    }
}

p.no_post {
    padding: 60px 0;
    text-align: center;
    font-size: 18px;
    font-weight: 500;
}

.frame_btn {
    min-width: 200px;
    height: 48px;
    padding: 0 10px;
    box-sizing: border-box;
    border-radius: 500px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background-color: #ffffff;
    font-size: 16px;
    line-height: 1.23;
    border: 1px solid;
    border-color: #333333;
    color: #333333;
}

.frame_btn:after {
    display: none;
}

.frame_btn:hover {
    opacity: 1;
    background-color: #333333;
    border-color: #ffffff;
}

.wh_frame {
    width: 100%;
    padding: 80px;
    box-sizing: border-box;
    border-radius: 40px;
    background-color: #ffffff;
    /*color: #0B0E19;*/
}

.wh_frame a {
    /*color: #0B0E19;*/
}

li.li_hidden {
    margin: 0 !important;
    padding: 0 !important;
    height: 0 !important;
}

@media screen and (max-width: 360px) {
    html #wpadminbar {
        display: none !important;
    }
    html {
        margin-top: 0 !important;
    }
}


/*----------------------------------------------------------------------
header
----------------------------------------------------------------------*/


/*
header#header,
#header_bottom_contents {
    height: 80px;
}

header#header {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 999999;
}

.header_contents {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.inner.header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
    z-index: 1;
    height: 100%;
}
*/

.header_contents {
    padding: 20px 0 0;
    position: relative;
}

.header_contents:after {
    position: absolute;
    content: "";
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 0.9;
}

.inner.header_inner {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    position: relative;
    z-index: 1;
    flex-direction: column;
    width: 100%;
    max-width: 100%;
}

.header_logo {
    margin-bottom: 10px;
}

.header_box.pc-only {
    width: 100%;
    padding: 10px 0;
    background-color: #ffe7f1;
    /* background-color: #f4f4f4; */
}

.header_box.pc-only .header_box_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 30px;
}

.header_box.pc-only ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}


/* .header_box.pc-only ul li {
    margin-left: 15px;
} */

.header_box.pc-only ul li a {
    position: relative;
    padding: 3px 0;
    font-weight: 700;
}

.header_box.pc-only ul li a:after {
    content: "";
    position: absolute;
    /*left: 0;*/
    right: 0;
    bottom: 0;
    width: 0%;
    height: 1px;
    background-color: #333333;
    /*margin: auto;*/
    transition: 0.3s;
}

.header_box.pc-only ul li a:hover {
    opacity: 1;
}

.header_box.pc-only ul li a:hover:after {
    width: 100%;
    left: 0;
}

.header_box.pc-only.header_box_center {
    justify-content: center;
    background-color: transparent;
    padding-bottom: 40px;
}

.header_box.pc-only.header_box_center .header_box_inner {
    width: 100%;
}

.header_box.pc-only.header_box_center ul {
    justify-content: center;
    gap: 60px;
    width: 100%;
}


/*ドロップダウンメニューここから*/

.header_box.pc-only ul li.is_drop {
    position: relative;
}

.header_box.pc-only ul li.is_drop a:after {
    display: none;
}

.header_box.pc-only ul ul.drop_menu {
    position: absolute;
    width: max-content;
    flex-direction: column;
    margin: auto;
    padding: 16px;
    background-color: #fff;
    box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.16);
    opacity: 0;
    pointer-events: none;
    transition: 0.3s;
}

.header_box.pc-only ul li.is_drop.is_active ul.drop_menu {
    opacity: 1;
    pointer-events: all;
}

.header_box.pc-only ul ul.drop_menu li {
    margin-bottom: 15px;
    width: 100%;
}

.header_box.pc-only ul ul.drop_menu li:last-child {
    margin-bottom: 0;
}

.header_box.pc-only ul ul.drop_menu li a {
    /*font-weight: 500;*/
    /*font-size: 12px;*/
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
}

.header_box.pc-only ul ul.drop_menu li a:after {
    bottom: -3px;
}

.header_box.pc-only ul li.is_drop a svg {
    width: 9.09px;
    margin-left: 3px;
}


/*ドロップダウンメニューここまで*/


/*----- modal menu -----*/

.modal_btn_wrapper {
    position: relative;
    z-index: 999999;
    pointer-events: all;
    transition: 0.3s;
}

button.menu-trigger,
button.menu-trigger span {
    display: inline-block;
    transition: all .4s;
    box-sizing: border-box;
}

button.menu-trigger {
    position: relative;
    width: 36px;
    height: 30px;
    background: none;
    border: none;
    appearance: none;
    cursor: pointer;
}

button.menu-trigger.active {
    width: 36px;
    height: 30px;
}

button.menu-trigger span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--primary-color);
    border-radius: 3px;
}

button.menu-trigger span:nth-of-type(1) {
    top: 0;
}

button.menu-trigger span:nth-of-type(2) {
    top: 0;
    bottom: 0;
    width: 100%;
    left: inherit;
    right: 0;
    margin: auto;
}

button.menu-trigger span:nth-of-type(3) {
    bottom: 0;
    width: 100%;
    left: inherit;
    right: 0;
}

button.menu-trigger.active span:nth-of-type(1) {
    transform: translateY(13px) rotate(-45deg);
    width: 36px;
}

button.menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
}

button.menu-trigger.active span:nth-of-type(3) {
    transform: translateY(-13px) rotate(45deg);
    width: 36px;
}


/*
button.menu-trigger span {
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 19px;
    height: 3px;
    background: linear-gradient(113.8deg, #2063E4 0%, #42A9DA 40.22%, #3BE3C5 78.8%);
    border-radius: 3px;
    transform-origin: center;
}

button.menu-trigger span:nth-of-type(1) {
    top: 0;
}

button.menu-trigger span:nth-of-type(2) {
    top: 0;
    bottom: 0;
}

button.menu-trigger span:nth-of-type(3) {
    bottom: 0;
}

button.menu-trigger.active span:nth-of-type(1) {
    transform: translateY(13px) rotate(-45deg);
}

button.menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
    width: 0;
}

button.menu-trigger.active span:nth-of-type(3) {
    transform: translateY(-13px) rotate(45deg);
}
*/

.modal.js-modal {
    height: calc(var(--vh, 1vh) * 100);
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    left: 0;
    top: 0;
    width: 450px;
    max-width: 100%;
    pointer-events: none;
    opacity: 0;
    transition: 0.3s;
}

.header_contents.active_m .modal.js-modal {
    opacity: 1;
    pointer-events: all;
}

.modal.js-modal.top {
    opacity: 1;
    transform: translate(0, -150vh);
}

.modal.js-modal.left {
    opacity: 1;
    transform: translate(150vw, 0);
    left: initial;
    right: 0;
}

.modal.js-modal.right {
    opacity: 1;
    transform: translate(-150vw, 0);
}

.header_contents.active_m .modal.js-modal.right,
.header_contents.active_m .modal.js-modal.left,
.header_contents.active_m .modal.js-modal.top {
    transform: translate(0, 0);
    pointer-events: all;
}

.header_contents.active_m .modal.js-modal.left {
    left: initial;
    right: 0;
}

.modal__bg.js-modal-close {
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0;
    right: 0;
    /* background-color: #e7e7e7; */
    background-color: #FFFFFF;
    /* border-left: 1px solid var(--primary-color); */
    /* opacity: 0.95; */
}

.modal_inner {
    height: 100%;
    position: relative;
    z-index: 1;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    overflow-y: scroll;
    overflow-x: hidden;
    -ms-overflow-style: none;
    scrollbar-width: none;
    overscroll-behavior-y: contain;
}

.modal_content_wrapper {
    height: 100%;
    width: 343px;
    max-width: 92%;
    padding-bottom: 20px;
    box-sizing: border-box;
}

.modal__content {
    height: 100%;
    min-height: calc(var(--vh, 1vh) * 100 + 1px);
    padding-top: 80px 0 20px;
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    flex-direction: column;
    padding: 60px 0;
    box-sizing: border-box;
}


/* .modal__content ul.modal_manu_ul {
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
} */


/* .sidebar_menu .modal_manu_ul {
    display: block;
}

.modal__content ul.modal_manu_ul li a {
    font-size: 1em;
    line-height: 1.5;
    font-weight: 500;
    color: #333333;
    text-decoration: none;
    transition: color 0.3s;
    transition: all 0.3s;
    padding: 10px 0;
    box-sizing: border-box;
} */


/* sidebar_contentsの中のmenu項目はsidebarスタイルに統一 */

.sidebar_menu .modal_manu_ul li a {
    padding: 8px 4px;
}

.sidebar_menu .modal_manu_ul li a:hover {
    background-color: #f4f4f4;
}

.modal_sidebar_contents {
    padding-bottom: 60px;
}

@media screen and (max-width: 1050px) {
    .header_box.header_box_center.pc-only {
        display: none;
    }
    .header_box.sp-only {
        display: block;
    }
    header#header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 90px;
        z-index: 999999;
    }
    header#header,
    div#header_bottom_contents {
        height: 90px;
    }
    .header_logo {
        margin-bottom: 0;
    }
    .header_contents {
        padding: 0;
        height: 100%;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .inner.header_inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        max-width: 94%;
    }
}

@media screen and (max-width: 768px) {
    header#header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 60px;
        z-index: 999999;
    }
    header#header,
    div#header_bottom_contents {
        height: 60px;
    }
    .header_logo {
        margin-bottom: 0;
    }
    .header_contents {
        padding: 0;
        height: 100%;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    .inner.header_inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        max-width: 94%;
    }
    button.menu-trigger {
        width: 18px;
        height: 14px;
    }
    button.menu-trigger.active {
        width: 20px;
        height: 20px;
    }
    button.menu-trigger span {
        border-radius: 2px;
    }
    button.menu-trigger.active span:nth-of-type(1) {
        transform: translateY(9px) rotate( -45deg);
        width: 22px;
        left: -3px;
    }
    button.menu-trigger.active span:nth-of-type(3) {
        transform: translateY(-8px) rotate( 45deg);
        width: 22px;
    }
}


/*アコーディオンメニュー*/


/*調整してください*/

.icon_modal_arrow {
    width: 11px;
    height: auto;
    margin: 0;
    margin-left: auto;
}

.icon_modal_arrow.active {
    transform: rotate(180deg);
}

ul.modal_drop_menu {
    padding-top: 24px;
}

.modal__content ul ul.modal_drop_menu li {
    padding: 0;
    border: 0;
    margin-bottom: 16px;
}

.modal__content ul ul.modal_drop_menu li:last-child {
    margin-bottom: 0;
}

.modal__content ul ul.modal_drop_menu li a {
    position: relative;
}

.modal__content ul ul.modal_drop_menu li a:before {
    content: "";
    position: relative;
    width: 5px;
    height: 2px;
    background-color: #fff;
    margin: 0 5px;
}


/*----- end modal menu -----*/


/*----------------------------------------------------------------------
aside sideber
----------------------------------------------------------------------*/

.main_wrapper {
    display: flex;
    justify-content: space-between;
    width: 100%;
    max-width: 1050px;
    margin: auto;
}

.main_wrapper.is_wide {
    max-width: 1400px;
}

.main_wrapper main {
    flex: 1;
    min-width: 0;
}

.main_wrapper aside.sidebar {
    position: relative;
    flex-shrink: 0;
    /*デザインに合わせる*/
    /* margin-left: 15px; */
    /* background-color: #ffe7f1; */
    /* border-left: 2px solid #f4f4f4; */
    min-height: 1px;
    /* サイドバーの高さを確保 */
}

.main_wrapper aside.sidebar {
    /*デザインに合わせる*/
    width: 280px;
    padding: 20px 0;
    box-sizing: border-box;
}

.main_wrapper aside.sidebar .sidebar_inner {
    width: 280px;
    /* width: 94%; */
    margin: auto;
    /* padding: 30px 15px; */
    padding: 30px 0;
    box-sizing: border-box;
    position: relative;
    /* JavaScriptで動的に変更される */
}


/* サイドバー共通 */

.sidebar_contents {
    margin-bottom: 40px;
}

.sidebar_contents:first-child {
    margin-top: 0;
}

.sidebar_contents:last-child {
    margin-bottom: 0;
}

.sidebar_contents h2 {
    font-size: 18px;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid #333333;
    text-align: center;
}

.sidebar_contents ul {
    list-style: none;
    padding: 0;
}

.sidebar_contents ul li {
    /* margin-bottom: 8px; */
    /* width: 100%; */
}

.sidebar_contents ul li:last-child {
    margin-bottom: 0;
}

.sidebar_contents ul li a {
    display: block;
    padding: 8px 4px;
    font-size: 1em;
    line-height: 1.5;
    transition: color 0.3s;
    border-bottom: 1px solid #f4f4f4;
    transition: all 0.3s;
    width: 100%;
    box-sizing: border-box;
}

.sidebar_contents ul li:last-child a {
    border-bottom: 0;
}

.sidebar_contents ul li a:hover {
    background-color: #f4f4f4;
    opacity: 1;
}

.sidebar_contents.sidebar_ranking ul li a:hover {
    background-color: transparent;
    opacity: 1;
}


/* サイドバー検索 */

.sidebar_search {
    margin-bottom: 32px;
}


/* サイドバーカテゴリー */

.sidebar_category ul li a {
    display: flex;
    align-items: center;
    justify-content: space-between;
}


/* サイドバータグ */

.sidebar_tags ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sidebar_tags ul li {
    margin-bottom: 0;
}

.sidebar_tags ul li a {
    display: inline-block;
    padding: 4px 12px;
    background-color: #f4f4f4;
    border-radius: 4px;
    font-size: 13px;
    transition: background-color 0.3s;
}

.sidebar_tags ul li a:hover {
    background-color: #e0e0e0;
    color: #333333;
}


/* サイドバーキャスト */

.sidebar_cast ul.cast_list {
    display: grid;
    /* grid-template-columns: repeat(2, 1fr); */
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
    padding: 0;
}

.sidebar_cast ul.cast_list li.cast_item {
    margin-bottom: 0;
}

.sidebar_cast ul.cast_list li.cast_item a {
    padding: 0;
    border: 0;
}

.cast_img {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 8px;
}

.cast_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

.cast_title {
    font-size: 10px;
    line-height: 1.4;
    font-weight: 700;
    text-align: center;
}

.sidebar_cast ul.cast_list li.cast_item a:hover {
    opacity: 1;
}

.sidebar_cast ul.cast_list li.cast_item a:hover .cast_img img {
    opacity: 1;
    transform: scale(1.05);
}


/* サイドバー共通 moreボタン */

.sidebar_more {
    margin-top: 12px;
    text-align: end;
}

.sidebar_more .more_btn_mini {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 24px;
    background-color: #333333;
    color: #ffffff;
    border-radius: 20px;
    font-size: 12px;
    letter-spacing: 0.1em;
    font-weight: 500;
    transition: all 0.3s;
    position: relative;
}

.sidebar_more .more_btn_mini:hover {
    background-color: #000000;
    opacity: 1 !important;
}

.sidebar_more .more_btn_mini svg {
    width: 10px;
    height: auto;
    transition: transform 0.3s ease;
}

.sidebar_more .more_btn_mini:hover svg {
    transform: translateX(3px);
    opacity: 1 !important;
}


/* サイドバーキャスト 個別調整 */

.sidebar_cast .sidebar_more {
    margin-top: 16px;
}


/* サイドバーYouTube */

.sidebar_youtube ul.youtube_list {
    padding: 0;
    list-style: none;
}

.sidebar_youtube ul.youtube_list li.youtube_item {
    margin-bottom: 20px;
}

.sidebar_youtube ul.youtube_list li.youtube_item:last-child {
    margin-bottom: 0;
}

.sidebar_youtube ul.youtube_list li.youtube_item a {
    display: block;
    padding: 0;
    transition: opacity 0.3s;
    /* border: 1px solid #333333; */
    border: 3px solid #f4f4f4;
    box-sizing: border-box;
    transition: all 0.3s;
}

.sidebar_youtube ul.youtube_list li.youtube_item a:hover {
    opacity: 1;
    border: 3px solid #333333;
}

.youtube_img {
    width: 100%;
    overflow: hidden;
    /* margin-bottom: 8px; */
}

.youtube_img img {
    width: 100%;
    height: auto;
    display: block;
    transition: 0.3s;
}

.sidebar_youtube ul.youtube_list li.youtube_item a:hover .youtube_img img {
    opacity: 1;
    transform: scale(1.05);
}

.youtube_content {
    padding: 5px;
    background-color: #f4f4f4;
    transition: 0.3s;
    /* background-color: #333333; */
}

.youtube_title {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    color: #333333;
    /* color: #ffffff; */
    text-align: center;
    letter-spacing: 0.05em;
    transition: 0.3s;
}

.youtube_info {
    margin: 6px 0 0;
    font-size: 11px;
    line-height: 1.5;
    color: #333333;
    /* color: #ffffff; */
    margin: 0;
    transition: 0.3s;
}

a:hover .youtube_content {
    background-color: #333333;
}

a:hover .youtube_title {
    color: #ffffff;
}

a:hover .youtube_info {
    color: #999999;
}


/* サイドバーランキング */

ul.rank_ul {
    padding: 0;
}

ul.rank_ul li {
    margin-bottom: 16px;
}

ul.rank_ul li:last-child {
    margin-bottom: 0;
}

ul.rank_ul li a {
    position: relative;
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 12px;
}

ul.rank_ul li a:hover {
    opacity: 1;
}

.rank_num {
    position: absolute;
    left: 0;
    top: 0;
    width: 28px;
    height: 28px;
    background-color: #666;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    z-index: 1;
    border-radius: 3px;
}


/* 1位は豪華な金色 */

.rank_num.rank_1 {
    background: linear-gradient(135deg, #FFE57F 0%, #FFD700 25%, #FFC107 50%, #FF9800 75%, #F57C00 100%);
    color: #5D4037;
    font-weight: 900;
    box-shadow: 3px 3px 0px rgba(255, 193, 7, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.6);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}


/* 2位は豪華な銀色 */

.rank_num.rank_2 {
    background: linear-gradient(135deg, #FAFAFA 0%, #E0E0E0 25%, #BDBDBD 50%, #9E9E9E 75%, #757575 100%);
    color: #212121;
    font-weight: 900;
    box-shadow: 3px 3px 0px rgba(158, 158, 158, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}


/* 3位は豪華な銅色 */

.rank_num.rank_3 {
    background: linear-gradient(135deg, #FFAB91 0%, #FF7043 25%, #D84315 50%, #BF360C 75%, #8D3819 100%);
    color: #FFF3E0;
    font-weight: 900;
    box-shadow: 3px 3px 0px rgba(191, 54, 12, 0.5), inset 0 1px 0 rgba(255, 171, 145, 0.5);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.rank_img {
    flex-shrink: 0;
    margin-right: 12px;
    width: 96px;
    height: 56px;
    overflow: hidden;
    border-radius: 4px;
}

.rank_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.3s;
}

.rank_title {
    width: 100%;
}

.rank_title h3 {
    font-weight: 700;
    font-size: 14px;
    line-height: 1.3;
    transition: 0.3s;
}

ul.rank_ul li a:hover .rank_img img,
ul.rank_ul li a:hover .rank_title h3 {
    /* opacity: 0.6; */
}


/* サイドバーランキング タイトル+抜粋 */

.rank_info {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rank_info .rank_title {
    font-size: 14px;
    line-height: 1.4;
    font-weight: 500;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

.rank_info .rank_excerpt {
    font-size: 12px;
    line-height: 1.5;
    color: #666;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

ul.rank_ul li a:hover .rank_info .rank_title,
ul.rank_ul li a:hover .rank_info .rank_excerpt {
    /* opacity: 0.6; */
}

@media screen and (max-width: 1050px) {
    aside.sidebar {
        display: none;
    }
}


/*----------------------------------------------------------------------
main
----------------------------------------------------------------------*/

main {
    width: 100%;
}

main {
    padding: 40px 0 60px;
}

main.front_page {
    /* padding: 0; */
    display: flex;
    flex-direction: column;
    gap: 60px;
}

main.front_page section {
    /* padding: 60px 0; */
}

section.bg_gy {
    background-color: #f4f4f4;
    padding: 40px 0;
}


/* セクションタイトル */

.s_title {
    text-align: center;
    margin-bottom: 40px;
}

.s_title h2 {
    font-size: 1.8em;
    /* font-weight: 700; */
    color: #333;
    margin: 0 0 8px;
    letter-spacing: 0.05em;
}

.s_title p {
    font-size: 0.8em;
    font-weight: 400;
    color: #999;
    margin: 0;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}


/* トピックス・ランキング・カテゴリー共通 */

.news_list_contents,
.ranking_list_contents,
.category_list_contents {
    width: 100%;
}

.news_list_ul,
.ranking_list_ul,
.category_list_ul {
    display: grid;
    /* grid-template-columns: repeat(3, 1fr); */
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    list-style: none;
    padding: 0;
    /* margin: 0 0 40px; */
}

.ranking_list_ul.news_list_ul_3col,
.category_list_ul.news_list_ul_3col,
.news_list_ul.news_list_ul_3col {
    grid-template-columns: repeat(3, 1fr);
}

.news_list_ul li,
.ranking_list_ul li,
.category_list_ul li {
    list-style: none;
    position: relative;
}

.news_list_ul li a,
.ranking_list_ul li a,
.category_list_ul .post-card a {
    display: block;
    text-decoration: none;
    transition: opacity 0.3s ease;
    position: relative;
    padding-bottom: 35px;
}

.news_list_ul li a:hover,
.ranking_list_ul li a:hover,
.category_list_ul .post-card a:hover {
    opacity: 1;
}


/* カテゴリーカード */

.category_card_wrapper {
    display: flex;
    flex-direction: column;
    height: 100%;
}


/* カテゴリーヘッダー */

.category_header {
    position: absolute;
    top: 0;
    left: 0;
    width: max-content;
    height: auto;
    padding: 5px 10px;
    border: 1px solid #f4f4f4;
    background-color: rgba(255, 255, 255, 0.8);
    /* 半透明の白 */
    box-sizing: border-box;
    z-index: 2;
}

.category_name {
    font-size: 1.2em;
    font-weight: 700;
    color: #333333;
    margin: 0;
    text-align: center;
    letter-spacing: 0.05em;
}

.category_archive_btn {
    margin-top: 12px;
    text-align: center;
}

.category_archive_btn a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 24px;
    background: #f5f5f5;
    color: #333;
    text-decoration: none;
    border-radius: 20px;
    font-size: 14px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.category_archive_btn a:hover {
    background: #e5e5e5;
}

.category_archive_btn a svg {
    width: 10px;
    height: auto;
}


/* ランキング */


/* column-1の場合は画像に余白 */

.news_list_ul li.post-card.column-1.has-ranking .news_list_img {
    margin-top: 25px;
}


/* column-2の場合はaタグに余白（バッジも一緒に動く） */

.news_list_ul li.post-card.column-2.has-ranking>a {
    padding-top: 25px;
}


/* ランキングバッジ */

.ranking_badge {
    position: absolute;
    width: 36px;
    height: 36px;
    top: -10px;
    left: -10px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    color: #000000;
    text-shadow: 1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #ffffff;
}


/* ランキング数字（通常） */

.ranking_badge .ranking_number {
    display: block;
    font-size: 37px;
    font-weight: 700;
    color: var(--ranking-color);
    text-shadow: 1px 0 0 #ffffff, -1px 0 0 #ffffff, 0 1px 0 #ffffff, 0 -1px 0 #ffffff;
}


/* ランキング数字（王冠付き） */

.ranking_badge .ranking_number.with_crown {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -40%);
    font-weight: 700;
    color: var(--ranking-color);
    z-index: 2;
}


/* クラウンSVG */

.ranking_badge .ranking_crown {
    width: 30px;
    transform: rotate(-5deg);
    height: auto;
    display: block;
    position: relative;
    z-index: 1;
    filter: drop-shadow(1px 1px 0px #ca9f00);
    /* filter: drop-shadow(1px 1px 0px #ca9f00) drop-shadow(-1px -1px 0px #ca9f00); */
    /* filter: drop-shadow(3px 3px 5px rgba(0, 0, 0, 0.3)); */
}


/* 1位 - 金の王冠 */

.ranking_badge.rank_1,
.ranking_badge.rank_2,
.ranking_badge.rank_3 {
    width: 50px;
    height: 50px;
    /* top: -10px;
    left: -10px; */
}

.ranking_badge.rank_1 .ranking_crown,
.ranking_badge.rank_2 .ranking_crown,
.ranking_badge.rank_3 .ranking_crown {
    width: 50px;
}

.news_list_img {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f5f5f5;
    /* margin-bottom: 12px; */
}

.news_list_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: 0.4s ease;
}

.news_list_ul li a:hover .news_list_img img,
.ranking_list_ul li a:hover .news_list_img img,
.category_list_ul .post-card a:hover .news_list_img img {
    transform: scale(1.05);
    opacity: 1;
}


/* .news_list_info {
    padding: 0;
} */

.news_list_info {
    padding: 5px;
    position: absolute;
    bottom: 0;
    width: 90%;
    margin: auto;
    left: 0;
    right: 0;
    /* background-color: #ffffff; */
    background-color: rgba(255, 255, 255, 0.9);
    box-sizing: border-box;
    border: 1px solid #f4f4f4;
    backdrop-filter: blur(3px);
}

.news_list_cat {
    margin-bottom: 8px;
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
}

.news_list_cat .cat_item {
    display: inline-block;
    padding: 2px 8px;
    background: var(--primary-color);
    color: #FFFFFF;
    font-size: 10px;
    border-radius: 3px;
    font-weight: bold;
}


/* グレー背景セクション内のカテゴリータグは白背景 */

.bg_gy .news_list_cat .cat_item {
    background: #fff;
}

.news_list_title {
    font-size: 14px;
    line-height: 1.6;
    min-height: 3.2em;
    color: #333;
    font-weight: 600;
    letter-spacing: 0.05em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-shadow: 0 0 1px #FFFFFF;
}

.ranking_list_ul.news_list_ul_3col .news_list_title,
.category_list_ul.news_list_ul_3col .news_list_title,
.news_list_ul.news_list_ul_3col .news_list_title {
    font-size: 12px;
}

.news_list_date_cp {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 10px;
    font-weight: 300;
    color: #666666;
    margin-top: 5px;
}


/* もっと見るボタン */

.more_btn {
    text-align: center;
    margin-top: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.more_btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 300px;
    height: 40px;
    background: #333;
    color: #fff;
    text-decoration: none;
    border-radius: 100px;
    font-size: 16px;
    font-weight: 600;
    transition: all 0.3s ease;
    position: relative;
    box-sizing: border-box;
    padding: 0 40px;
}

.more_btn a:hover {
    background: #000;
    opacity: 1;
}

.more_btn a svg {
    position: absolute;
    right: 20px;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 12px;
    height: auto;
    transition: all 0.3s ease;
}

.more_btn a:hover svg {
    transform: translateX(5px);
}

.more_btn a svg path {
    fill: #fff;
}


/* おすすめ特集スライダー */

.top_slider_contents {
    padding-bottom: 60px;
    padding: 0 20px;
}

.swiper_contents {
    position: relative;
    overflow: hidden;
    padding: 0 20px;
    /* padding: 20px 0 40px; */
}

.swiper-slide {
    height: auto;
}

.swiper-slide_inner {
    height: 100%;
}

.special_card {
    display: block;
    background: #fff;
    border-radius: 0;
    overflow: hidden;
    box-shadow: 7px 7px 0px rgba(0, 0, 0, 0.04);
    transition: all 0.3s ease;
    height: 100%;
    text-decoration: none;
}

.special_card:hover {
    /* box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12); */
    opacity: 1;
}

.special_card_img {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f5f5f5;
}

.special_card_img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.special_card:hover .special_card_img img {
    transform: scale(1.1);
    opacity: 1;
}

.special_card_content {
    padding: 10px;
}

.special_card_title {
    font-size: 18px;
    line-height: 1.6;
    letter-spacing: 0.05em;
    color: #333;
    font-weight: 600;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.swiper_contents_b .special_card_title {
    font-size: 16px;
}

.swiper_contents_c .special_card_content {
    padding: 8px;
}

.swiper_contents_c .special_card_title {
    font-size: 14px;
}


/* ナビゲーション矢印 */

.swiper-button-prev,
.swiper-button-next {
    width: 44px;
    height: 44px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 100px;
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); */
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}


/* デフォルトの矢印を非表示 */

.swiper-button-prev::after,
.swiper-button-next::after {
    display: none;
}

.top_slider_contents .swiper-button-prev {
    left: 0;
}

.top_slider_contents .swiper-button-next {
    right: 0;
}


/* SVGのサイズ */

.swiper-button-prev svg,
.swiper-button-next svg {
    width: 15px;
    height: auto;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
    background: #fff;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); */
}

.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
    opacity: 0.3;
    cursor: not-allowed;
}


/* ページネーション */

.slider__pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 30px;
}

.slider__pagination .swiper-pagination-bullet {
    width: 10px;
    height: 2px;
    background: #ccc;
    opacity: 1;
    border-radius: 100px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.slider__pagination .swiper-pagination-bullet-active {
    background: #333;
    width: 24px;
    border-radius: 100px;
}


/*----------------------------------------------------------------------
footer
----------------------------------------------------------------------*/

.sns_links {
    margin-top: 20px;
}

ul.sns_ul {
    display: flex;
    align-items: center;
    justify-content: center;
}

ul.sns_ul li {
    margin: 0 7px;
}

ul.sns_ul li svg {
    width: 25px;
    height: auto;
}


/* Footer Styles */

#footer {
    background-color: #f4f4f4;
    padding: 30px 0 0;
}

.f_contents {
    width: 100%;
    padding: 20px 0;
}

.f_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.f_logo {
    margin-bottom: 20px;
}

.f_logo a {
    display: inline-block;
}

.f_menu {
    /* margin-bottom: 20px; */
}

.f_menu ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
}

.f_menu ul li {
    margin: 0 15px;
    padding: 5px 0;
}

.f_menu ul li a {
    font-size: 14px;
    color: #333;
    text-decoration: none;
    transition: color 0.3s;
}

.f_menu ul li a:hover {
    color: #666;
    opacity: 1;
}

.f_menu ul li.active a {
    font-weight: bold;
    color: #000;
}


/* Footer Menu Container */

.f_menu_container {
    display: flex;
    justify-content: space-between;
    gap: 40px;
    width: 100%;
    margin: 30px 0 0;
}

.f_menu_container.f_menu_container_1col {
    max-width: 500px;
    /* text-align: center; */
}

.f_menu_section {
    flex: 1;
    min-width: 0;
}

.f_menu_section h2 {
    font-size: 18px;
    /* font-weight: 500; */
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid #333333;
    text-align: center;
}

.f_menu_section ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.f_menu_section ul li {
    margin: 0;
}

.f_menu_section ul li a {
    display: block;
    padding: 8px 4px;
    font-size: 1em;
    line-height: 1.5;
    color: #333;
    text-decoration: none;
    border-bottom: 1px solid #e0e0e0;
    transition: all 0.3s;
}

.f_menu_section ul li:last-child a {
    border-bottom: 0;
}

.f_menu_section ul li a:hover {
    background-color: #e8e8e8;
    opacity: 1;
}

.f_menu_section ul li.active a {
    font-weight: bold;
}

.copyright {
    background-color: #333;
    color: #fff;
    text-align: center;
    padding: 12px 10px;
    margin-top: 20px;
}

.copyright p {
    margin: 0;
    font-size: 11px;
    line-height: 1.5;
}


/*----------------------------------------------------------------------

media query

----------------------------------------------------------------------*/

.pc-only {
    display: block;
}

.sp-only {
    display: none;
}

@media screen and (max-width: 1050px) {
    section.fp_s.s1.s1_b .inner.s1_inner {
        max-width: 100%;
        width: 1050px;
    }
    section.fp_s.s1.s1_b .top_slider_contents {
        padding: 0;
    }
    section.fp_s.s1.s1_c .inner.s1_inner {
        max-width: 100%;
        width: 1050px;
    }
    section.fp_s.s1.s1_c .top_slider_contents {
        padding: 0;
    }
}

@media screen and (max-width: 768px) {
    .pc-only {
        display: none;
    }
    .br-pc {
        display: none;
    }
    .br-sp {
        display: block;
    }
    .sp-only {
        display: block;
    }
    .mmb-10 {
        margin-bottom: 10px;
    }
    .mmb-20 {
        margin-bottom: 20px;
    }
    .mmb-30 {
        margin-bottom: 30px;
    }
    .mmb-40 {
        margin-bottom: 40px;
    }
    a,
    a img,
    a svg,
    a svg path {
        transition: 0.3s;
    }
    main {
        padding: 30px 0 60px;
    }
    .top_slider_contents {
        padding-bottom: 60px;
        padding: 0;
    }
    .swiper_contents {
        padding: 0 10px;
    }
    .swiper_contents_b {
        padding: 0 10px;
    }
    .swiper_contents_b .special_card_content {
        /* padding: 10px; */
        padding: 0.952vw;
    }
    .swiper_contents_b .special_card_title {
        /* font-size: 16px; */
        font-size: 3.1vw;
        -webkit-line-clamp: 3;
    }
    .swiper_contents_c {
        padding: 0 10px;
    }
    .swiper_contents_c .special_card_content {
        /* padding: 10px; */
        padding: 0.952vw;
    }
    .swiper_contents_c .special_card_title {
        /* font-size: 15px; */
        font-size: 3.1vw;
        -webkit-line-clamp: 3;
    }
    .f_menu_container {
        flex-direction: column;
        gap: 30px;
    }
    .f_menu_section h2 {
        font-size: 16px;
    }
    #footer {
        /* padding: 30px 0 0; */
        /* margin-top: 40px; */
    }
    .f_menu ul {
        flex-direction: column;
    }
    .f_menu ul li {
        margin: 8px 0;
    }
}


/* レスポンシブ */


/* タブレット */

@media screen and (max-width: 1024px) and (min-width: 768px) {
    .news_list_ul.news_list_ul_3col,
    .ranking_list_ul.news_list_ul_3col,
    .category_list_ul.news_list_ul_3col,
    .news_list_ul,
    .ranking_list_ul,
    .category_list_ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }
}


/* スマホ */

@media screen and (max-width: 767px) {
    main.front_page section {
        /* padding: 40px 0; */
    }
    .s_title {
        margin-bottom: 30px;
    }
    .s_title h2 {
        font-size: 24px;
    }
    .s_title p {
        font-size: 12px;
    }
    /* トピックス・ランキング・カテゴリー：SPは1カラム */
    .news_list_ul.news_list_ul_3col,
    .ranking_list_ul.news_list_ul_3col,
    .category_list_ul.news_list_ul_3col,
    .news_list_ul,
    .ranking_list_ul,
    .category_list_ul {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .news_list_ul.news_list_ul_3col .news_list_title,
    .ranking_list_ul.news_list_ul_3col .news_list_title,
    .category_list_ul.news_list_ul_3col .news_list_title,
    .news_list_title {
        font-size: 14px;
    }
    .more_btn a {
        padding: 10px 24px;
        font-size: 14px;
    }
    /* カテゴリーヘッダー */
    .category_header {
        padding: 12px 16px;
    }
    .category_name {
        font-size: 16px;
    }
    /* おすすめ特集 */
    .special_card_content {
        padding: 15px;
    }
    .special_card_title {
        font-size: 14px;
    }
    /* スマホでは矢印を非表示 */
    .swiper-button-prev,
    .swiper-button-next {
        display: none;
    }
}

@media screen and (max-width: 425px) {}


/*スマホ横の場合*/


/*@media only screen and (max-device-height: 480px) and (orientation: landscape) {}*/


/*media queryここまで*/


/*IEの場合*/


/* IE11 は最初に *::-ms-backdrop, をつける */


/* IE10 より前はそのまま */


/*@media all and (-ms-high-contrast:none){
    *::-ms-backdrop, .class {
        padding-top: 15px ;
    }

    .class {
        padding-top: 15px ;
    }

}*/


/*Firefoxの場合*/


/*@-moz-document url-prefix() {
}*/


/*safariの場合*/


/*::-webkit-full-page-media, :future, :root クラス名 {
}*/


/*--------------------------------------------------------------------
下層ページ pages
--------------------------------------------------------------------*/


/* ----------------------
base 投稿デフォルト 
---------------------- */

.page_base_contents {
    font-size: 16px;
    line-height: 1.3;
    letter-spacing: 0.05em;
    font-weight: 500;
}

.page_base_contents> :first-child {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

.page_base_contents> :last-child {
    margin-block-end: 0 !important;
    margin-bottom: 0 !important;
}

.page_base_contents .wp-block-image {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

.page_base_contents figure {
    margin-block-start: 2em;
    margin-block-end: 2em;
}

.page_base_contents img {
    height: auto;
}

.page_base_contents p,
.page_base_contents li {
    font-size: 1em;
    line-height: 1.5;
    font-weight: 500;
}

.page_base_contents p {
    margin-block-start: 1em;
    margin-block-end: 1em;
}

.page_base_contents li {
    margin-block-start: 0.5em;
    margin-block-end: 0.5em;
}

.page_base_contents h1,
.page_base_contents h2 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.25;
    margin-block-start: 60px;
    margin-block-end: 0.83em;
    font-weight: bold;
    width: 100%;
    box-sizing: border-box;
    padding: .4rem;
    color: var(--heading-color, var(--primary-color));
    border-bottom: 0.1em solid var(--heading-color, var(--primary-color));
}

.page_base_contents h3 {
    font-size: 1.17em;
    margin-block-start: 1.5em;
    margin-block-end: 1em;
    font-weight: bold;
    padding-left: 1rem;
    border-left: 0.3em solid var(--heading-color, var(--primary-color));
    color: #333;
}

.page_base_contents h4 {
    display: block;
    margin-block-start: 1.33em;
    margin-block-end: 1.33em;
    font-weight: bold;
    color: var(--heading-color, var(--primary-color));
    padding-left: 0.5rem;
    position: relative;
}

.page_base_contents h4::before {
    content: "■";
    margin-right: 0.5rem;
    font-size: 0.8em;
    color: var(--heading-color, var(--primary-color));
}

.page_base_contents h5 {
    display: block;
    font-size: 0.83em;
    margin-block-start: 1.67em;
    margin-block-end: 1.67em;
    font-weight: bold;
}

.page_base_contents h6 {
    display: block;
    font-size: 0.67em;
    margin-block-start: 2.33em;
    margin-block-end: 2.33em;
    font-weight: bold;
}

.page_base_contents ul {
    display: block;
    list-style-type: disc;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    padding-inline-start: 1.5em;
}

.page_base_contents ol {
    display: block;
    list-style-type: decimal;
    margin-block-start: 1em;
    margin-block-end: 1em;
    margin-inline-start: 0px;
    margin-inline-end: 0px;
    padding-inline-start: 1.5em;
}

.page_base_contents table {
    display: table;
    border-collapse: collapse;
    box-sizing: border-box;
    text-indent: initial;
    border-spacing: 2px;
    border-color: grey;
}

.page_base_contents tbody {
    display: table-row-group;
    vertical-align: middle;
    border-color: inherit;
}

.page_base_contents thead {
    border-bottom: 3px solid;
}

.page_base_contents tfoot {
    border-top: 3px solid;
}

.page_base_contents .wp-block-table td,
.page_base_contents .wp-block-table th {
    border: 1px solid;
    padding: .5em;
    word-break: normal;
    font-weight: 500;
}

.page_base_contents th {
    display: table-cell;
    vertical-align: inherit;
    font-weight: bold;
    text-align: -internal-center;
}

.page_base_contents td {
    border-collapse: separate;
    text-indent: initial;
    border-spacing: 2px;
}

.page_base_contents figcaption {
    color: #555;
    font-size: 0.8em;
    text-align: center;
}

.page_base_contents figure.is-provider-youtube {
    display: flex;
    align-items: center;
    justify-content: center;
}

.page_base_contents a {
    color: #2271b1;
    text-decoration: underline;
}

.page_base_contents em {
    font-style: italic;
}

.page_base_contents strong {
    background: linear-gradient(transparent 60%, rgba(255, 155, 188, 0.7) 60%);
}

@media screen and (max-width: 768px) {
    .page_base_contents {
        font-size: 14px;
        line-height: 1.3;
    }
}


/* ----------------------
base 投稿デフォルト ここまで
---------------------- */


/*--------------------------------------------------------------------
検索結果
--------------------------------------------------------------------*/


/* ページタイトル */

.pages_title {
    text-align: center;
    margin-bottom: 40px;
}

.pages_title h1 {
    font-size: 1.8em;
    font-weight: 500;
    color: #333;
    letter-spacing: 0.05em;
}

.pages_subtitle {
    margin: 16px 0 0;
    font-size: 1em;
    color: #666;
}


/* 検索結果なし */

.no_search {
    text-align: center;
    padding: 60px 0;
}


/* スマホ */

@media screen and (max-width: 767px) {
    .pages_title {
        margin-bottom: 30px;
    }
    .pages_title h1 {
        font-size: 1.5em;
    }
    .pages_subtitle {
        font-size: 0.9em;
    }
}


/*----------------------------------------------------------------------
news page 記事一覧
----------------------------------------------------------------------*/


/*カテゴリー一覧*/

.archive_cats_tab {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 64px;
}

.archive_cats_title {
    flex-shrink: 0;
    margin-right: 50px;
    font-size: 40px;
    line-height: 53px;
}

.archive_cats_tab ul {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px;
}

.archive_cats_tab.ranking_tabs ul {
    justify-content: center;
}

.archive_cats_tab ul li {
    /* margin: 4px 8px 4px 0; */
    font-size: 0.8em;
    line-height: 1.5;
    letter-spacing: 0.05em;
}

.archive_cats_tab ul li a {
    background-color: #ffffff;
    border: 1px solid;
    border-radius: 40px;
    border-color: #181818;
    padding: 2px 8px;
    font-weight: bold;
    box-sizing: border-box;
    display: flex;
}

.archive_cats_tab ul li.active a,
.archive_cats_tab ul li a:hover {
    background-color: #181818;
    border-color: #181818;
    color: #ffffff;
    opacity: 1;
}

.archive_cats_tab.ranking_tabs ul li a {
    border-color: var(--primary-color);
    color: var(--primary-color);
    opacity: 0.8;
}

.archive_cats_tab.ranking_tabs ul li.active a,
.archive_cats_tab.ranking_tabs ul li a:hover {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
    color: #ffffff;
    opacity: 1;
}


/*カテゴリー一覧ここまで*/


/*カテゴリーをクリックする場合*/

article.news_content.news_cat_click {
    position: relative;
}

article.news_content.news_cat_click .news_title a {}

article.news_content.news_cat_click .news_title a:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

article.news_content.news_cat_click .news_cat a {
    position: relative;
    z-index: 1;
}


/*カテゴリーをクリックする場合ここまで*/


/*ページネーション*/

.pagination_wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
}

.pagination_wrapper nav {
    margin-top: 60px;
}

.nav-links {
    display: flex;
    align-items: center;
    justify-content: center;
}

.page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    min-width: 40px;
    height: 40px;
    margin: 0 3px;
    padding: 0 5px;
    font-size: 14px;
    box-sizing: border-box;
    border: 1px solid;
    border-radius: 5px;
    border-color: transparent;
    background-color: #fff;
    color: #333333;
    border-color: #333333;
}

span.page-numbers.current,
a.page-numbers:hover {
    opacity: 1;
    color: #fff;
    background-color: #333333;
}

.page-numbers.dots {
    border: 0;
}

a.prev.page-numbers,
a.next.page-numbers {
    /* min-width: 60px; */
}

.prev.page-numbers svg,
.next.page-numbers svg {
    width: 10px;
    height: auto;
}

.prev.page-numbers svg path,
.next.page-numbers svg path {
    transition: 0.3s ease;
}

.prev.page-numbers:hover svg path,
.next.page-numbers:hover svg path {
    fill: #fff;
}

.archive_title h2 {
    margin-bottom: 40px;
    font-size: 19px;
    font-weight: bold;
}


/*ページネーションここまで*/

@media screen and (max-width: 768px) {
    /*カテゴリー一覧*/
    .archive_cats_tab {
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
    }
    .archive_cats_title {
        font-size: 32px;
        line-height: 43px;
        margin: 0;
        margin-bottom: 16px;
    }
    .archive_cats_tab {
        margin-bottom: 32px;
    }
    /* .archive_cats_tab ul {
        margin-bottom: -12px;
    }
    .archive_cats_tab ul li {
        margin: 0 12px 12px 0;
    } */
    .archive_cats_tab ul li a {
        font-size: 0.8em;
    }
    /*カテゴリー一覧ここまで*/
    .main_wrapper {
        flex-direction: column;
    }
    .pagination_wrapper nav {
        margin-top: 40px;
    }
    /* .main_wrapper aside.sidebar {
        display: block;
        width: 100%;
        padding-top: 0;
    }
    .main_wrapper aside.sidebar .sidebar_inner {
        width: 500px;
        max-width: 94%;
    }
    .main_wrapper aside.sidebar .sidebar_inner {
        width: 500px;
        max-width: 94%;
        padding-top: 0;
    } */
}

@media screen and (max-width: 500px) {
    /*ページネーション*/
    .page-numbers {
        min-width: 8vw;
        height: 8vw;
        margin: 0 0.6vw;
        padding: 0 0.5vw;
        font-size: 2.8vw;
    }
    a.prev.page-numbers,
    a.next.page-numbers {
        width: 10vw;
    }
    /*ページネーションここまで*/
}


/*----------------------------------------------------------------------
single page 記事詳細
----------------------------------------------------------------------*/

.single_cat_date {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    margin-bottom: 20px;
}

.single_cat_date time {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.05em;
    margin-left: auto;
}

.single_cats {
    margin-right: auto;
    /* display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    flex-wrap: wrap; */
}

.single_cats ul {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}

.single_cats a {
    background-color: var(--primary-color);
    padding: 4px 8px 3px;
    font-size: 1em;
    font-weight: 600;
    color: #FFFFFF;
    border-radius: 3px;
}

.single_title h1 {
    display: block;
    width: 100%;
    font-size: 1.5rem;
    margin: 0 0 .5em;
    line-height: 160%;
    border-top: double 2px #333;
    border-bottom: solid 1px #333;
    padding: .4em .5em;
    font-weight: bold;
    box-sizing: border-box;
}

.single_page_contents {
    margin-top: 40px;
}


/*--------------------
sns
--------------------*/

.single_share {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-bottom: 20px;
}

.single_share span.a2a_label {
    width: 0 !important;
    /* display: none !important; */
}


/*--------------------
関連記事
--------------------*/

.related_posts_section {
    margin-top: 40px;
}


/*--------------------
タグ一覧
--------------------*/

.news_post_tags {
    margin-top: 40px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.news_post_tags a {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    background: #f8f8f8;
    color: #666;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 20px;
    transition: all 0.3s ease;
    border: 1px solid #e5e5e5;
}

.news_post_tags a:hover {
    background: #333;
    color: #fff;
    border-color: #333;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}


/*--------------------
タグ一覧 ここまで
--------------------*/


/*--------------------
次の記事,前の記事
--------------------*/

.single_links {
    position: relative;
    margin-top: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid #e5e5e5;
}

.other_news_link {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.other_news_link .next {
    margin-left: auto;
}

.news_top_link {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    width: max-content;
    margin: auto;
    max-width: 100%;
}

.news_top_link a {
    position: relative;
    /* padding: 4px 8px; */
}


/* .news_top_link a:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: #333333;
} */

.other_news_link svg {
    width: 11px;
}

.other_news_link .prev svg {
    margin-right: 5px;
}

.other_news_link .next svg {
    margin-left: 5px;
}

.other_news_link .prev a:hover svg {
    opacity: 1;
    transform: translateX(-3px);
}

.other_news_link .next a:hover svg {
    opacity: 1;
    transform: translateX(3px);
}


/*--------------------
次の記事,前の記事 ここまで
--------------------*/

@media screen and (max-width: 768px) {
    .news_post_tags {
        margin-top: 32px;
        padding-top: 20px;
        gap: 6px;
    }
    .news_post_tags a {
        padding: 5px 12px;
        font-size: 12px;
    }
}

@media screen and (max-width: 600px) {
    .news_top_link {
        margin-top: 32px;
        position: relative;
        left: initial;
        top: initial;
        right: initial;
        width: 100%;
        max-width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
    }
}


/* ========================================
   1カラムカードレイアウト
======================================== */


/* 1カラムレイアウト：横並び */

.news_list_ul .post-card.column-1 {
    display: block;
    width: 100%;
    /* margin-bottom: 30px; */
    list-style: none;
    grid-column: 1 / -1;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
    /* グリッド内で全幅を使用 */
}

.post-card.column-1:last-child {
    border-bottom: none;
    /* 最後の記事には線を表示しない */
    padding-bottom: 0;
    margin-bottom: 0;
}

.news_list_ul .post-card.column-1>a {
    display: flex;
    gap: 10px;
    width: 100%;
    align-items: flex-start;
    padding-bottom: 0 !important;
    /* 既存のpadding-bottomを無効化 */
}

.news_list_ul .post-card.column-1.no-excerpt>a {
    align-items: stretch;
}


/* 画像エリア：固定幅 */

.post-card.column-1 .news_list_img {
    flex-shrink: 0;
    width: 240px;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    /* margin-top: 40px; */
}

.post-card.column-1 .news_list_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.post-card.column-1.no-excerpt .news_list_img {
    height: max-content;
}


/* コンテンツエリア：可変幅 */

.post-card.column-1 .news_list_info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    /* フレックスボックス内でのオーバーフロー防止 */
    position: static !important;
    /* 既存のabsolute配置を無効化 */
    width: auto !important;
    /* 既存の幅指定を無効化 */
    margin: 0 !important;
    padding: 0 !important;
    background-color: transparent !important;
    border: none !important;
    /* 背景色を無効化 */
}


/* カテゴリー */

.post-card.column-1 .news_list_cat {
    /* display: flex; */
    /* gap: 8px; */
    /* flex-wrap: wrap; */
    margin-bottom: 0 !important;
}


/* .post-card.column-1 .news_list_cat .cat_item {
    font-size: 20px;
    padding: 4px 16px;
} */


/* タイトル */

.post-card.column-1 .news_list_title {
    font-size: 1.2em;
    font-weight: bold;
    line-height: 1.6;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    min-height: 0 !important;
    /* 既存のmin-heightを無効化 */
}


/* 抜粋：1カラム時のみ表示 */

.post-card.column-1 .news_list_excerpt {
    display: block;
    font-size: 0.9em;
    line-height: 1.7;
    /* color: #666; */
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
}


/* 2カラム時は抜粋を非表示 */

.post-card.column-2 .news_list_excerpt {
    display: none;
}


/* 日付とcp-category */

.post-card.column-1 .news_list_date_cp {
    /* display: flex; */
    /* align-items: center; */
    /* gap: 16px; */
    font-size: 0.8em;
    /* color: #999; */
    /* 下部に配置 */
    /* justify-content: flex-start !important; */
    /* 既存のspace-betweenを無効化 */
}

.post-card.column-1.no-excerpt .news_list_date_cp {
    margin-top: auto;
}


/* SPレスポンシブ対応 */

@media screen and (max-width: 768px) {
    /* ランキング表示時のマージン調整 */
    /* column-1の場合は画像に余白 */
    .news_list_ul li.post-card.column-1.has-ranking .news_list_img {
        margin-top: 20px;
    }
    /* column-2の場合はaタグに余白（バッジも一緒に動く） */
    .news_list_ul li.post-card.column-2.has-ranking>a {
        padding-top: 20px;
    }
    /* ランキングバッジ基本サイズをSP用に調整 */
    .ranking_badge {
        width: 30px;
        height: 30px;
        top: -8px;
        left: -8px;
    }
    /* ランキング数字のサイズ調整 */
    .ranking_badge .ranking_number {
        font-size: 28px;
    }
    /* 王冠の基本サイズ調整 */
    .ranking_badge .ranking_crown {
        width: 24px;
    }
    /* 1〜3位のバッジサイズ調整 */
    .ranking_badge.rank_1,
    .ranking_badge.rank_2,
    .ranking_badge.rank_3 {
        width: 40px;
        height: 40px;
    }
    /* 1〜3位の王冠サイズ調整 */
    .ranking_badge.rank_1 .ranking_crown,
    .ranking_badge.rank_2 .ranking_crown,
    .ranking_badge.rank_3 .ranking_crown {
        width: 40px;
    }
    .post-card.column-1 {
        /* padding-bottom: 20px; */
        /* margin-bottom: 20px; */
        /* border-bottom: 1px solid #e0e0e0; */
        /* 薄いグレーの区切り線 */
    }
    .post-card.column-1>a {
        flex-direction: row;
        /* 横並びを維持 */
        gap: 12px;
    }
    .post-card.column-1 .news_list_img {
        width: 110px;
        /* 画像を小さく */
        min-width: 110px;
        /* 画像サイズを固定 */
    }
    .post-card.column-1 .news_list_title {
        font-size: 15px;
        line-height: 1.5;
        /* スマホでは小さめに */
        -webkit-line-clamp: 3;
        /* 3行まで表示 */
        font-weight: 600;
    }
    .post-card.column-1 .news_list_excerpt {
        font-size: 13px;
        /* スマホでは小さめに */
        -webkit-line-clamp: 4;
        line-height: 1.5;
    }
    .post-card.column-1 .news_list_cat .cat_item {
        font-size: 10px;
        padding: 2px 8px;
    }
    .post-card.column-1 .news_list_date_cp {
        font-size: 11px;
    }
    .post-card.column-1 .news_list_info {
        gap: 6px;
        /* 間隔を狭く */
    }
}


/* ========================================
   Single Cast Section
======================================== */

.single_cast {
    margin: 60px 0;
}

.single_cast_list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 40px;
}

.single_cast_item {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.single_cast_header {
    display: flex;
    align-items: center;
    gap: 20px;
}

.single_cast_link {
    display: block;
    text-decoration: none;
}

.single_cast_icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    transition: opacity 0.3s ease;
}

.single_cast_link:hover .single_cast_icon {
    opacity: 0.7;
}

.single_cast_icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.single_cast_info_wrapper {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.single_cast_name {
    font-size: 1.5em;
    font-weight: bold;
    margin: 0;
    line-height: 1.4;
}

.single_cast_name a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.single_cast_name a:hover {
    color: #666;
}

.single_cast_content {
    font-size: 0.95em;
    line-height: 1.8;
    color: #333;
}

.single_cast_content p {
    margin: 0.5em 0;
}

.single_cast_sns {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.cast_sns_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    text-decoration: none;
    border-radius: 50%;
    transition: all 0.3s ease;
    color: #fff;
    background-color: #333;
}

.cast_sns_link:hover {
    opacity: 0.7;
    transform: translateY(-2px);
}

.cast_sns_link svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}


/* 店舗アイコン（画像） */

.cast_sns_link img {
    width: 16px;
    height: 16px;
    object-fit: contain;
}


/* ========================================
   Single CP Page (キャスト詳細ページ)
======================================== */

.single_cp_page {}

.cp_header {
    display: flex;
    gap: 40px;
    margin-bottom: 60px;
}

.cp_icon_large {
    flex-shrink: 0;
    width: 200px;
    height: 200px;
}

.cp_icon_large img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.cp_info {
    flex: 1;
}

.cp_shop_info {
    font-size: 0.8em;
    margin-bottom: 5px;
}

.cp_name {
    font-size: 2em;
    font-weight: bold;
    margin: 0 0 20px 0;
    line-height: 1.4;
}

.cp_sns_links {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.cp_sns_link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    text-decoration: none;
    border-radius: 50%;
    transition: all 0.3s ease;
    color: #fff;
    background-color: #333;
}

.cp_sns_link:hover {
    opacity: 0.7;
    transform: translateY(-2px);
}

.cp_sns_link svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.cp_sns_link img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}


/* .cp_content {
    font-size: 1em;
    line-height: 1.8;
    color: #333;
}

.cp_content p {
    margin: 1em 0;
} */


/* 投稿一覧セクション */

.cp_posts_section {
    margin: 60px 0;
}

.cp_posts_section .no_posts {
    text-align: center;
    padding: 40px 20px;
    color: #999;
    font-size: 1em;
}


/* ページネーション - index.phpと共通スタイルを使用 */

.cp_posts_section .pagination_wrapper {
    margin-top: 40px;
}


/* SPレスポンシブ対応 (CP Page) */

@media screen and (max-width: 768px) {
    .cp_header {
        flex-direction: column;
        align-items: center;
        gap: 24px;
        margin-bottom: 40px;
    }
    .cp_icon_large {
        width: 150px;
        height: 150px;
    }
    .cp_info {
        /* text-align: center; */
    }
    .cp_shop_info {
        text-align: center;
    }
    .cp_name {
        font-size: 1.5em;
        margin-bottom: 16px;
        text-align: center;
    }
    .cp_sns_links {
        justify-content: center;
        margin-bottom: 20px;
    }
    .cp_sns_link {
        width: 36px;
        height: 36px;
    }
    .cp_sns_link svg,
    .cp_sns_link img {
        width: 16px;
        height: 16px;
    }
    /* .cp_content {
        font-size: 0.95em;
        text-align: left;
    } */
    .cp_posts_section {
        margin: 40px 0;
    }
}


/* SPレスポンシブ対応 */

@media screen and (max-width: 768px) {
    .single_cast {
        margin: 40px 0;
    }
    .single_cast_list {
        gap: 30px;
    }
    .single_cast_item {
        gap: 16px;
        padding: 16px;
    }
    .single_cast_header {
        gap: 12px;
    }
    .single_cast_info_wrapper {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .single_cast_name {
        font-size: 1.2em;
    }
    .single_cast_content {
        font-size: 0.9em;
        line-height: 1.7;
    }
    .single_cast_sns {
        gap: 10px;
    }
    .cast_sns_link {
        width: 30px;
        height: 30px;
    }
    .cast_sns_link svg,
    .cast_sns_link img {
        width: 14px;
        height: 14px;
    }
}


/* ===============================================
   キャスト一覧ページ（archive-cp.php）
=============================================== */


/* キャスト一覧グリッド */

.cast_archive_list {
    margin-top: 40px;
}

.cast_archive_ul {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 30px 20px;
    padding: 0;
    list-style: none;
}

.cast_archive_item {
    margin: 0;
}

.cast_archive_link {
    display: block;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.cast_archive_link:hover img,
.cast_archive_link:hover {
    opacity: 1;
}

.cast_archive_icon {
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: 12px;
}

.cast_archive_icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.cast_archive_link:hover .cast_archive_icon img {
    transform: scale(1.05);
}

.cast_archive_name {
    font-size: 1.1em;
    font-weight: 700;
    text-align: center;
    color: #333;
    margin: 0;
    line-height: 1.4;
}


/* レスポンシブ対応 */

@media screen and (max-width: 768px) {
    .cast_archive_ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 15px;
    }
    .cast_archive_name {
        font-size: 1em;
    }
}

@media screen and (max-width: 430px) {
    .cast_archive_ul {
        grid-template-columns: repeat(2, 1fr);
        gap: 15px 10px;
    }
    .cast_archive_name {
        font-size: 0.95em;
    }
}


/* ライターアーカイブページ */

.writer_header {
    margin: 40px 0 60px;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.writer_header_content {
    display: flex;
    align-items: center;
    gap: 20px;
}

.writer_header_icon {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
}

.writer_header_icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.writer_header_info {
    flex: 1;
}

.writer_header_label {
    display: block;
    font-size: 0.85em;
    color: #000;
    font-weight: normal;
    margin-bottom: 8px;
}

.writer_header_info h1 {
    font-size: 2em;
    font-weight: bold;
    margin: 0 0 12px 0;
    line-height: 1.4;
}

.writer_header_description {
    font-size: 1em;
    line-height: 1.8;
    color: #666;
    margin: 0;
}

@media (max-width: 768px) {
    .writer_header {
        margin: 30px 0 40px;
        padding: 16px;
    }
    .writer_header_content {
        gap: 16px;
        align-items: flex-start;
    }
    .writer_header_icon {
        width: 80px;
        height: 80px;
    }
    .writer_header_label {
        font-size: 0.75em;
        margin-bottom: 6px;
    }
    .writer_header_info h1 {
        font-size: 1.5em;
        margin-bottom: 10px;
    }
    .writer_header_description {
        font-size: 0.9em;
        line-height: 1.7;
    }
}


/* 記事詳細ページのライターセクション */

.single_writer {
    margin: 60px 0;
    padding: 20px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.single_writer_content_wrapper {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.single_writer_icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: block;
    text-decoration: none;
    transition: opacity 0.3s ease;
}

.single_writer_icon:hover {
    opacity: 0.7;
}

.single_writer_icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.single_writer_info {
    flex: 1;
}

.single_writer_label {
    display: block;
    font-size: 0.75em;
    color: #000;
    font-weight: normal;
    margin-bottom: 4px;
}

.single_writer_info h3 {
    font-size: 1.2em;
    font-weight: bold;
    margin: 0 0 8px 0;
    line-height: 1.4;
}

.single_writer_info h3 a {
    color: inherit;
    text-decoration: none;
    transition: color 0.3s ease;
}

.single_writer_info h3 a:hover {
    color: #666;
}

.single_writer_description {
    font-size: 0.95em;
    line-height: 1.8;
    color: #666;
    margin: 8px 0 0 0;
    flex-basis: 100%;
    width: 100%;
}

.single_writer_archive_link {
    margin-top: 12px;
    text-align: right;
}

.single_writer_archive_link a {
    display: inline-block;
    font-size: 0.9em;
    color: #333;
    text-decoration: underline;
    transition: color 0.3s ease;
}

.single_writer_archive_link a:hover {
    color: #666;
}

@media (max-width: 768px) {
    .single_writer {
        margin: 40px 0;
        padding: 16px;
    }
    .single_writer_content_wrapper {
        gap: 12px;
        align-items: center;
        flex-wrap: wrap;
    }
    .single_writer_icon {
        width: 60px;
        height: 60px;
    }
    .single_writer_info {
        flex: 1;
        min-width: 0;
    }
    .single_writer_label {
        font-size: 0.7em;
        display: block;
        margin-bottom: 2px;
    }
    .single_writer_info h3 {
        font-size: 1.1em;
        margin: 0;
    }
    .single_writer_description {
        font-size: 0.9em;
        line-height: 1.7;
        margin-top: 8px;
        flex-basis: 100%;
        width: 100%;
    }
    .single_writer_archive_link {
        margin-top: 8px;
    }
    .single_writer_archive_link a {
        font-size: 0.85em;
    }
}


/* ライター一覧ページ */

.writers_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
    margin-top: 40px;
}

.writers_list_item {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.writers_list_item:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.writers_list_link {
    display: block;
    padding: 20px;
    text-decoration: none;
    color: inherit;
}

.writers_list_icon {
    width: 100px;
    height: 100px;
    margin: 0 auto 20px;
}

.writers_list_icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

.writers_list_info {
    text-align: center;
}

.writers_list_label {
    display: block;
    font-size: 0.75em;
    color: #999;
    margin-bottom: 8px;
}

.writers_list_name {
    font-size: 1.3em;
    font-weight: bold;
    margin: 0 0 12px 0;
    line-height: 1.4;
}

.writers_list_description {
    font-size: 0.9em;
    line-height: 1.6;
    color: #666;
    margin: 0 0 12px 0;
    min-height: 3em;
}

.writers_list_count {
    font-size: 0.85em;
    color: #999;
    margin: 0;
}

@media (max-width: 768px) {
    .writers_list {
        grid-template-columns: 1fr;
        gap: 20px;
        margin-top: 30px;
    }
    .writers_list_link {
        padding: 16px;
    }
    .writers_list_icon {
        width: 80px;
        height: 80px;
        margin-bottom: 16px;
    }
    .writers_list_name {
        font-size: 1.2em;
        margin-bottom: 10px;
    }
    .writers_list_description {
        font-size: 0.85em;
        margin-bottom: 10px;
    }
    .writers_list_count {
        font-size: 0.8em;
    }
}


/* ===============================================
   年齢確認ページ（tmp_age-verification.php）
=============================================== */

.kin18_svg {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
}

.kin18_svg svg {
    width: 100%;
    max-width: 200px;
    height: auto;
    object-fit: contain;
}

.kin18_links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

.kin18_links a {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    width: 150px;
    height: 40px;
    max-width: 40%;
    background: #333;
    color: #fff;
    border-radius: 5px;
    text-decoration: none;
    font-size: 16px;
    font-weight: bold;
    transition: all 0.3s ease;
    box-sizing: border-box;
}

.kin18_links a.kin18_links_yes {
    background: #22a06b;
    color: #fff;
}


/* .kin18_links a.kin18_links_no {
    background: #c73a3a;
    color: #fff;
} */

@media screen and (max-width: 550px) {
    .kin18_links {
        flex-direction: column;
    }
    .kin18_links a {
        width: 100%;
        max-width: 100%;
    }
}


/* .kin18_svg svg path {
    fill: #000;
} */