@charset "utf-8";

/*
Theme Name : LOVEST
Author: ASIRANCIA
Author URI: /
Description: LOVEST original theme.
Version: 9.2.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ASIRANCIA
*/

/* 変数宣言 */
:root {
    --vw: 100vw;
    --easing: cubic-bezier(.2, 1, .2, 1);
    --transition: .8s var(--easing);
    --container--column--padding: 10px;
    --content--max--width: 1200px;
    --content--1200--width: min(var(--vw) - var(--container--column--padding) * 2, 1200px);
    --content--960--width: min(var(--vw) - var(--container--column--padding) * 2, 960px);
    --content--640--width: min(var(--vw) - var(--container--column--padding) * 2, 640px);
    --content--480--width: min(var(--vw) - var(--container--column--padding) * 2, 480px);
    --layer--1200--width: min(100%, 1200px);
    --layer--960--width: min(100%, 960px);
    --layer--640--width: min(100%, 640px);
    --layer--480--width: min(100%, 480px);
    --aspect--standard: calc(1 / 16 * 9);
    --aspect--analog: calc(1 / 3 * 4);
    --aspect--cinema: calc(1 / 2.35);
    --aspect--square: 1;
    /* スワイパー共通 */
    --swiper--button--size: clamp(24px, var(--clamp_1) * (48 - 24) + 24px, 48px);
    --swiper--button--translate: calc(var(--swiper--button--size) / 6);
    --swiper--button--radius: calc(var(--swiper--button--size--small) * 2);
    --swiper--button--size--small: clamp(24px, var(--clamp_1) * (36 - 24) + 24px, 36px);
    --swiper--button--translate--small: calc(var(--swiper--button--size--small) / 6);
    --swiper--button--radius--small: calc(var(--swiper--button--size--small) * 2);
    /* バナースワイパー */
    --swiper--banner--width: var(--vw);
    --swiper--banner--height: calc(var(--vw) * var(--aspect--standard));
    --swiper--banner--logo--width: min(var(--vw), 480px);
    --swiper--banner--logo--height: calc(var(--swiper--banner--logo--width) * var(--aspect--cinema));
    /* ガールスワイパー */
    --swiper--girl--column: 2;
    --swiper--girl--column--gap: 10px;
    --swiper--girl--border: 0px;
    --swiper--girl--trim: calc(var(--container--column--padding) * 2);
    --swiper--girl--space: calc(var(--swiper--girl--border) * var(--swiper--girl--column) * 2 + var(--swiper--girl--column--gap) * (var(--swiper--girl--column) - 1));
    --swiper--girl--width: calc((min(var(--vw) - var(--swiper--girl--trim), var(--content--max--width)) - var(--swiper--girl--space)) / var(--swiper--girl--column));
    --swiper--girl--height: calc(var(--swiper--girl--width) * var(--aspect--analog));
    /* イベントスワイパー */
    --swiper--event--column: 1;
    --swiper--event--column--gap: 0px;
    --swiper--event--trim: calc(var(--container--column--padding) * 2);
    --swiper--event--space: calc(var(--swiper--event--column--gap) * (var(--swiper--event--column) - 1));
    --swiper--event--width: calc((min(var(--vw) - var(--swiper--event--trim), var(--content--max--width)) - var(--swiper--event--space)) / var(--swiper--event--column));
    --swiper--event--height: calc(var(--swiper--event--width) * var(--aspect--standard));
    /* ビデオスワイパー */
    --swiper--video--column: 1;
    --swiper--video--column--gap: 10px;
    --swiper--video--trim: calc(var(--container--column--padding) * 2);
    --swiper--video--space: calc(var(--swiper--video--column--gap) * (var(--swiper--video--column) - 1));
    --swiper--video--width: calc((min(var(--vw) - var(--swiper--video--trim), var(--content--max--width)) - var(--swiper--video--space)) / var(--swiper--video--column));
    --swiper--video--height: calc(var(--swiper--video--width) * var(--aspect--standard));
    /* プロフィールスワイパー */
    --profile--container--column: 1;
    --profile--container--column--gap: 0px;
    --profile--content--max--width: calc((min(var(--vw), var(--content--max--width)) - var(--swiper--profile--trim)) / var(--profile--container--column));
    --swiper--profile--orig--column: 1;
    --swiper--profile--thumb--column: 3;
    --swiper--profile--orig--column--gap: 0px;
    --swiper--profile--thumb--column--gap: 0px;
    --swiper--profile--border: 0px;
    --swiper--profile--orig--border-width: 10px;
    --swiper--profile--thumb--border-width: 5px;
    --swiper--profile--trim: 0px;
    --swiper--profile--orig--space: calc(var(--swiper--profile--border) * var(--swiper--profile--orig--column) * 2 + var(--swiper--profile--orig--column--gap) * (var(--swiper--profile--orig--column) - 1));
    --swiper--profile--thumb--space: calc(var(--swiper--profile--border) * var(--swiper--profile--thumb--column) * 2 + var(--swiper--profile--thumb--column--gap) * (var(--swiper--profile--thumb--column) - 1));
    --swiper--profile--orig--width: calc((min(var(--vw) - var(--swiper--profile--trim), var(--profile--content--max--width)) - var(--swiper--profile--orig--space)) / var(--swiper--profile--orig--column) / var(--profile--container--column));
    --swiper--profile--thumb--width: calc((min(var(--vw) - var(--swiper--profile--trim), var(--profile--content--max--width)) - var(--swiper--profile--thumb--space)) / var(--swiper--profile--thumb--column) / var(--profile--container--column));
    --swiper--profile--orig--height: calc(var(--swiper--profile--orig--width) * var(--aspect--analog));
    --swiper--profile--thumb--height: calc(var(--swiper--profile--thumb--width) * var(--aspect--analog));
    /* フロントページ */
    --home--container--column: 1;
    --home--container--column--gap: 30px;
    --home--container--column--padding: 40px;
    --home--container--border: 1px;
    --home--container--trim: calc(var(--home--container--column--padding) * 2);
    --home--container--space: calc(var(--home--container--column--gap) * (var(--home--container--column) - 1));
    --home--container--width: calc((min(var(--vw) - var(--home--container--trim), var(--content--max--width)) - var(--home--container--space)) / var(--home--container--column));
    --home--container--height: calc(var(--home--container--width) * var(--aspect--standard));
    /* 女の子一覧 */
    --girls--collection--column: 3;
    --girls--collection--column--gap: 10px;
    --girls--collection--border: 0px;
    --girls--collection--trim: calc(var(--container--column--padding) * 2);
    --girls--collection--space: calc(var(--girls--collection--border) * var(--girls--collection--column) * 2 + var(--girls--collection--column--gap) * (var(--girls--collection--column) - 1));
    --girls--collection--width: calc((min(var(--vw) - var(--girls--collection--trim), var(--content--max--width)) - var(--girls--collection--space)) / var(--girls--collection--column));
    --girls--collection--height: calc(var(--girls--collection--width) * var(--aspect--analog));
    /* 動画一覧 */
    --video--grid--column: 1;
    --video--grid--column--gap: 10px;
    --video--grid--trim: calc(var(--container--column--padding) * 2);
    --video--grid--space: calc(var(--video--grid--column--gap) * (var(--video--grid--column) - 1));
    --video--grid--width: calc((min(var(--vw) - var(--video--grid--trim), var(--content--max--width)) - var(--video--grid--space)) / var(--video--grid--column));
    --video--grid--height: calc(var(--video--grid--width) * var(--aspect--standard));
    /* 店内写真 */
    --store--photos--column: 2;
    --store--photos--column--gap: 12px;
    --store--photos--trim: calc(var(--container--column--padding) * 2);
    --store--photos--space: calc(var(--store--photos--column--gap) * (var(--store--photos--column) - 1));
    --store--photos--width: calc((min(var(--vw) - var(--store--photos--trim), var(--content--max--width)) - var(--store--photos--space)) / var(--store--photos--column));
    --store--photos--height: var(--store--photos--width);
    /* マップ */
    --map--google--svg--width: calc(min(var(--vw), 1200px) / 6);
    --map--google--svg--height: var(--map--google--svg--width);
    /* カード */
    --cards--grid--column: 1;
    --cards--grid--column--gap: 10px;
    --cards--grid--trim: calc(var(--container--column--padding) * 2);
    --cards--grid--space: calc(var(--cards--grid--column--gap) * (var(--cards--grid--column) - 1));
    --cards--grid--width: calc((min(var(--vw) - var(--cards--grid--trim), var(--content--max--width)) - var(--cards--grid--space)) / var(--cards--grid--column));
    --cards--grid--height: calc(var(--cards--grid--width) * var(--aspect--standard));
    --post--cards--grid--width: min(var(--vw) - 20px, 380px);
    --post--cards--grid--height: calc(var(--post--cards--grid--width) * var(--aspect--standard));
    /* 投稿アイキャッチ */
    --post--image--height: min(var(--vw) * var(--aspect--standard), 540px);
    /* 投稿一覧 -ブログ- */
    --posts--flex--thumb--width: clamp(120px, var(--clamp_1) * (150 - 120) + 120px, 150px);
    --posts--flex--thumb--height: var(--posts--flex--thumb--width);
    --posts--flex--column: 2;
    --posts--flex--column--gap: 5px;
    --posts--flex--border: 0px;
    --posts--flex--trim: calc(var(--container--column--padding) * 2);
    --posts--flex--space: calc(var(--posts--flex--border) * var(--posts--flex--column) * 2 + var(--posts--flex--column--gap) * (var(--posts--flex--column) - 1));
    --posts--flex--width: calc((min(var(--vw) - var(--posts--flex--trim), var(--content--max--width)) - var(--posts--flex--space)) / var(--posts--flex--column));
    --posts--flex--height: calc(var(--posts--flex--width) * var(--aspect--square));
    /* 投稿 -女の子- */
    --girls--header--width: min(var(--vw), var(--content--max--width));
    --wpulike--girls--header--right: max((var(--vw) - var(--content--max--width)) / 2, 0vw);
    /* バナーリンク */
    --banner--grid--column: 2;
    --banner--grid--width: calc(var(--vw) / var(--banner--grid--column));
    --banner--grid--height: calc(var(--banner--grid--width) * var(--aspect--standard));
    --flat--banner--grid--column: 2;
    --flat--banner--grid--gap: 5px;
    --flat--banner--grid--trim: calc(var(--container--column--padding) * 2);
    --flat--banner--grid--space: calc(var(--flat--banner--grid--gap) * (var(--flat--banner--grid--column) - 1));
    --flat--banner--grid--width: calc((min(var(--vw) - var(--flat--banner--grid--trim), var(--content--max--width)) - var(--flat--banner--grid--space)) / var(--flat--banner--grid--column));
    --flat--banner--grid--height: calc(var(--flat--banner--grid--width) * var(--aspect--standard));
    /* エンドポイント */
    --footer--bubble--frame--width: 100px;
    --footer--bubble--frame--height: calc(var(--footer--bubble--frame--width) / 198 * 59);
    --footer--bubble--logo--width: 150px;
    --footer--bubble--logo--height: calc(var(--footer--bubble--logo--width) * var(--aspect--cinema));
    --footer--perm--trim: calc(var(--container--column--padding) * 2);
    --footer--perm--width: calc((min((var(--vw) - var(--footer--perm--trim)), var(--content--max--width))) * .6);
    --footer--perm--height: calc(var(--footer--perm--width) * var(--aspect--standard));
    /* ボトムナビ */
    /* --bottom--nav--height: 50px; */
    /* カラー */
    --_trigger--color: var(--trigger--color, var(--theme_main));
    --_active--trigger--color: var(--active--trigger--color, var(--_trigger--color));
    /* --trigger--color: var(--theme_marking);
    --active--trigger--color: var(--theme_sub); */

    @media (width > 480px) {
        /* ガールスワイパー */
        --swiper--girl--column: 3;
        /* イベントスワイパー */
        --swiper--event--column: 1;
        /* ビデオスワイパー */
        --swiper--video--column: 2;
        /* 女の子一覧 */
        --girls--collection--column: 3;
        --girls--collection--column--gap: 12px;
        /* 動画一覧 */
        --video--grid--column: 2;
        /* 店内写真 */
        --store--photos--column: 3;
        /* カード */
        --cards--grid--column: 2;
        /* 投稿一覧 */
        --posts--flex--column: 3;
    }

    @media (width > 896px) {
        /* ガールスワイパー */
        --swiper--girl--column: 4;
        /* イベントスワイパー */
        --swiper--event--column: 2;
        /* ビデオスワイパー */
        --swiper--video--column: 3;
        /* プロフィールスワイパー */
        --swiper--profile--thumb--column--gap: 10px;
        --swiper--profile--orig--width: 345px;
        --swiper--profile--thumb--width: calc(var(--swiper--profile--thumb--height) / var(--aspect--analog));
        --swiper--profile--thumb--height: calc((var(--swiper--profile--orig--height) - var(--swiper--profile--thumb--column--gap)) / 2);
        /* フロントページ */
        --home--container--column: 2;
        /* 女の子一覧 */
        --girls--collection--column: 4;
        /* 動画一覧 */
        --video--grid--column: 3;
        /* 店内写真 */
        --store--photos--column: 4;
        /* カード */
        --cards--grid--column: 3;
        /* 投稿一覧 */
        --posts--flex--column: 4;
        /* バナーリンク */
        --banner--grid--column: 4;
        --flat--banner--grid--column: 4;
    }
}

/* cssのリセット */
html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,
blockquote,pre,abbr,address,cite,code,del,dfn,em,img,
ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,
ol,ul,li,fieldset,form,label,legend,table,caption,
tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,
figcaption,figure,footer,header,hgroup,menu,nav,section,
summary,time,mark,audio,video {
    font-size: 100%;
    margin: 0;
    padding: 0;
    vertical-align: baseline;
    border: 0;
    outline: 0;
    background: transparent;
}
article,aside,details,figcaption,figure,
footer,header,hgroup,menu,nav,section {
    display: block;
}
audio,canvas,video {
	display: inline-block;
}
ul,ol {
    list-style: none;
}
blockquote,q {
    quotes: none;
}
:is(blockquote,q)::before,:is(blockquote,q)::after {
    content: "";
    content: none;
}
a {
    font-size: 100%;
    margin: 0;
    padding: 0;
    color: inherit;
    vertical-align: baseline;
    background: transparent;
    text-decoration: none;
}
ins {
    text-decoration: none;
    color: #000;
    background-color: #ff9;
}
del {
    text-decoration: line-through;
}
:is(abbr,dfn)[title] {
    cursor: help;
    border-bottom: 1px dotted;
}
table {
    border-spacing: 0;
    border-collapse: collapse;
}
caption,th,td {
	font-weight: normal;
	text-align: left;
}
hr {
    display: block;
    height: 1px;
    margin: 1rem 0;
    padding: 0;
    border: 0;
    border-top: 1px solid #ccc;
}
audio:not([controls]) {
	display: none;
}
sub,sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sup {
	top: -0.5em;
}
sub {
	bottom: -0.25em;
}
small {
	font-size: smaller;
}
button {
    cursor: pointer;
    outline: none;
}

/* サイト全体の基準 */
*, h1, h2, h3, h4, h5, h6, ::before, ::after {
    box-sizing: border-box;
}
html {
    font-size: 16px;
    text-underline-position: under;
}
body {
    line-height: 1.8;
    margin: 0;
    padding: 0;
    color: var(--black_2);
    background: var(--white_0);
    position: relative;

    @media (width > 1119px) {
        &::before {
            content: '';
            background: url();
            width: var(--vw);
            height: 100vh;
            display: block;
            position: fixed;
            z-index: -1;
            top: 0;
            left: 0;
            background-size: cover;
            background-attachment: fixed;
        }
    }
}
video {
    background-color: #000;
}
.defs {
    display: none;
}
.header-inner, .content, .footer-inner, .breadcrumb {
    width: min(100%, var(--content--max--width));
    height: 100%;
    margin: 0 auto;
}
.max-960 {
    width: var(--content--960--width);
}
.else {
    padding: 0 10px;
}

/* 必須cssクラス */
/* .wp-caption {}
.wp-caption-text {}
.sticky {}
.gallery-caption {}
.bypostauthor {}
.alignright {}
.alignleft {}
.aligncenter {}
.screen-reader-text {} */

/************************/
/* header
/************************/

/* ヘッダー */
.header {
    width: 100%;
    height: 80px;
    background: var(--white_0);
    box-shadow: 0px 0px 0px 0px var(--white_0);
    position: fixed;
    top: 0;
    z-index: 100;
    transition: .8s ease;
    transition-property: box-shadow;

    .scroll & {
        box-shadow: 0px 2px 6px -2px var(--black_3);

        @media (orientation: landscape) {
            transform: translate(0, -100%);
        }

        @media (width > 896px) {
            transform: none;
            transition-property: box-shadow;
        }
    }
}
.header-bar {
    padding-right: 55px;
    padding-left: 10px;
    background-image: none !important;
    color: var(--theme_main);
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;

    @media (width > 896px) {
        padding-right: 0;
        padding-left: 0;
    }

    .header-inner {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
}
.header-title {
    flex: 1;

    @media (width > 896px) {
        flex: 0;
    }

    figure {
        width: calc(80px / var(--aspect--cinema));
    }
}

/* sns */
.sns-icons {
    display: flex;

    .nav-container & {
        margin-top: 20px;
        padding: 0 10px;
        flex-wrap: wrap;
    }

    .header-bar & {
        display: none;

        @media (width > 480px) {
            display: flex;

            &.-shop {
                margin-left: 10px;
            }
        }

        @media (width > 896px) {
            position: absolute;
            left: 10px;

            &.-shop {
                margin-left: 0;
            }
            a {
                font-size: 2rem;

                strong {
                    display: block;
                    font-size: 10px;
                    line-height: 1.2;
                    text-align: center;
                }
            }
        }
    }
    .footer & {
        justify-content: center;
        margin: 30px auto 10px;
    }
    &.-shop {
        gap: 10px;

        a[href=""] {
            display: none;
        }

        @media (width > 480px) {
            margin-left: 10px;
        }
    }
    &.-girls {
        width: min(85%, 400px);
        margin: 30px auto;
        padding: 30px 12px 20px;
        border: 1px solid var(--theme_main);
        border-radius: 8px;
        display: flex;
        justify-content: space-around;
        position: relative;
        background: var(--gradation_color_6);
        z-index: 0;

        &::before {
            content: "CAST";
            background: var(--gradation_color_6);
            color: var(--theme_marking);
            font-size: .8rem;
            position: absolute;
            bottom: 80%;
            right: -7%;
            padding: 9px 7px 4px 15px;
            line-height: 1;
            border: 2px solid var(--black_0);
            border-radius: 90% 7px 9px 0;
            transform: rotate(-18deg);
        }
        &::after {
            content: "";
            position: absolute;
            top: 2px;
            bottom: 2px;
            left: 2px;
            right: 2px;
            border: 2px solid var(--theme_marking);
            background: var(--black_0);
            z-index: -1;
            border-radius: 6px;
        }
        a {
            width: 57px;
            height: 55px;
            font-size: 2rem;
            line-height: 1;
            display: block;
            text-align: center;

            &:not([href=""]):hover {
                filter: drop-shadow(0px 0px 7px #ffd);
            }
            &[href=""] {
                &, &::before {
                    color: var(--white_3);
                    background: transparent;
                    text-shadow: none;
                }
            }
            strong {
                margin-top: 5px;
                font-size: 10px;
                display: block;
            }
        }
        .fa-line {
            color: #00c300;
        }
        .fa-twitter {
            color: #55acee;
        }
        .fa-instagram {
            color: #e344c7;
        }
        .fa-facebook-f {
            color: #3b5998;
        }
        .fa-tiktok {
            color: #fff;
        }
    }
    a {
        width: 42px;
        height: 40px;
        font-size: 2.4rem;
        border-radius: 5px;
        color: var(--theme_main);
        line-height: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-flow: column;

        strong {
            display: none;
        }
    }
    .sp {
        display: none;

        @media (width > 480px) {
            display: flex;
        }
    }
}
.header-contact {
    address > a {
        width: 42px;
        height: 40px;
        font-size: 2.4rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }
    address > a span, p {
        display: none;
    }

    @media (width > 896px) {
        display: block;
        position: absolute;
        right: 56px;

        address {
            font-style: normal;

            > a {
                & {
                    width: auto;
                }
                &::before {
                    font-size: 1.5rem;
                    margin-right: 5px;
                }
                span {
                    font-size: 2rem;
                }
            }
            p {
                font-size: .9rem;
                text-align: right;
            }
        }
        address > a span, p {
            display: block;
            line-height: 1.4;
        }
    }
}
:is(.fa-solid, .fa-regular, .fa-brands, .fa-classic) {
    width: 100%;
    line-height: unset;
}

/* ナビメニュー */
.header-nav {
    display: none;
}
.global-nav {
    &::before {
        content: "";
        width: 100%;
        height: 100%;
        display: none;
        position: fixed;
        top: 0;
        right: 0;
        z-index: 1;
        background: var(--black_2);
    }
    .active &::before {
        display: block;
    }
}
:is(.global-nav-menu, .top-nav-menu, .utility-nav-menu) a {
    padding: 10px 1.7vw;
    font-weight: 600;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    letter-spacing: 1px;

    &::after {
        content: attr(title);
        font-weight: 400;
        line-height: 1;
    }
}
:is(.global-nav-menu, .utility-nav-menu) {
	text-align: center;
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: 10px;
}
:is(.global-nav-menu, .utility-nav-menu) a {
    width: 100%;
    height: 48px;
    position: relative;
    padding: 8px;
    background: var(--theme_transparent);
    color: var(--theme_sub);
    border: 1px solid;
    text-align: center;
    line-height: 1.4;
    font-size: .8rem;
    font-family: "Times New Roman", 游明朝, YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", メイリオ, Meiryo, serif;
    transition: all .2s ease 0s;
}
.global-nav-menu .current-menu-item a {
    background: var(--white_2);
}
:is(.global-nav-menu, .utility-nav-menu) a:hover {
    opacity: .6;
}
.global-nav-menu a::after {
    font-size: .8rem;
}
.top-nav-menu {
    li {
        height: 100%;
        display: flex;
    }
    .btn-right a {
        background: var(--gradation_color_1);
        background-size: var(--gradation_size_1);
        border-radius: .5rem;
        margin: 8px auto;
        color: #fff;
        font-weight: 400;
        font-size: 1.2vw;
        box-shadow: var(--shadow_1);
        transition: background-position .4s, box-shadow .8s;

        &:hover {
            background-position: var(--gradation_position_hover_1);
            box-shadow: var(--shadow_hover_1);
        }
    }

    @media (width > 1119px) {
        a {
            padding: 10px 20px;
            font-size: 1rem;

            &::after {
                font-size: .9rem;
            }
        }
    }
}
.utility-nav-menu {
    padding: 10px 0 20px;
}
.utility-nav-menu a {
    color: var(--theme_accent);
}
.utility-nav-menu .cast a {
    background: linear-gradient(to bottom, #ff98d1, #ffdcef);
}
.utility-nav-menu .staff a {
    background: linear-gradient(to bottom, #7edcff, #c3efff);
}
.utility-nav-menu a::after {
    font-size: .8rem;
}
.drawer-nav-menu {
    grid-template-columns: auto !important;
}
.drawer-nav-menu .strong a {
    color: #fff;
    background: var(--gradation_color_1);
    text-shadow: 0px 1px 0px #0006;
}

/* ハンバーガーメニュー */
.menu-trigger {
    width: 45px !important;
    height: 40px;
    padding: 0px 10px !important;
    border: none;
    background-color: transparent;
    cursor: pointer;
    outline: none;
    appearance: none;
    position: fixed;
    top: 20px;
    right: 5px;
    z-index: 120;
}
.menu-trigger::after {
    content: 'MENU';
    display: block;
    width: 100%;
    color: var(--theme_main);
    font-size: 8px;
    font-weight: 900;
    text-decoration: none;
    text-align: center;
    white-space: nowrap;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
}
.hamburger-icon,
.hamburger-icon::before,
.hamburger-icon::after {
    width: 100%;
    height: 3px;
    transition: transform .6s cubic-bezier(.03,1,1,1);
    background-color: var(--theme_main);
}
.hamburger-icon {
    position: relative;
    display: block;
    top: -5px;
}
.hamburger-icon::before,
.hamburger-icon::after {
    content: "";
    position: absolute;
    left: 0;
}
.hamburger-icon::before {
    transform: translateY(-9px) rotate(0deg);
}
.hamburger-icon::after {
    transform: translateY(9px) rotate(0deg);
}
.nav-container {
    width: min(100%, 240px);
    height: 100%;
    padding: 80px 10px calc(env(safe-area-inset-bottom) + 85px);
    background-color: var(--black_1);
    overflow: auto;
    position: fixed !important;
    top: 0;
    right: 0;
    z-index: 110;
    transform: translateX(100%);
    transition: transform .6s cubic-bezier(.03,1,1,1);
}
.active .nav-container {
    transform: translateX(0%);
}
.active .hamburger-icon {
    background: #fff0;
}
.active .hamburger-icon::before {
    transform: translateY(0px) rotate(45deg);
}
.active .hamburger-icon::after {
    transform: translateY(0px) rotate(-45deg);
}

/* スワイパー共通 */
[class*=swiper]:focus {
    outline: none;
}
.swiper-button-prev,
.swiper-button-next {
    width: var(--swiper--button--radius);
    height: var(--swiper--button--radius);
    margin: auto;
    display: grid;
    place-content: center;
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    cursor: pointer;
    transition: var(--transition);
}
.swiper-button-prev {
    left: var(--swiper--button--translate);
}
.swiper-button-next {
    right: var(--swiper--button--translate);
}
.swiper-button-prev::before, .swiper-button-next::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    border-radius: 50%;
    background: var(--white_2);
}
.swiper-button-prev::after, .swiper-button-next::after {
    color: var(--black_1);
    font-size: var(--swiper--button--size);
    font-family: "swiper-icons";
    position: relative;
}
.swiper-button-prev::after {
    content: "prev";
    margin-right: var(--swiper--button--translate);
}
.swiper-button-next::after {
    content: "next";
    margin-left: var(--swiper--button--translate);
}
.swiper-button-disabled {
    pointer-events: none;
    opacity: 0;
}
.swiper-button-disabled {
    pointer-events: none;
    opacity: .5;
}
.swiper-pagination {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    gap: 12px;
}
.swiper-pagination-bullet {
    width: 16px;
    height: 3px;
    background: var(--black_3);
    display: block;
    cursor: pointer;
    transition: var(--transition);
}
.swiper-pagination-bullet-active {
    width: 48px;
    background: var(--theme_sub);
}
[class*=swiper]:not(.swiper-initialized) > .swiper-wrapper ~ * {
    display: none;
}
.swiper-container {
    padding: 30px var(--container--column--padding);
    overflow: hidden;
}
.swiper-wrapper {
    display: flex !important;
    margin-bottom: 0 !important;
    gap: 0 !important;
}
.swiper-fade .swiper-slide {
    transition-property: opacity !important;
    pointer-events: none;
}
.swiper-fade .swiper-slide-active {
    pointer-events: auto;
}

/* バナースワイパー */
.swiper-banner {
    position: relative;
}
.swiper-banner .swiper-pagination {
    margin: auto;
    flex-flow: column;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
}
.swiper-banner .swiper-slide {
    width: var(--swiper--banner--width);
    height: var(--swiper--banner--height);
    overflow: hidden;
}
.swiper-banner .swiper-slide img {
    animation: transImage 8s ease-out;
}
.swiper-banner .swiper-slide[data-text]::before {
    content: attr(data-text);
    width: 80vw;
    height: auto;
    color: var(--theme_main);
    font-size: clamp(14px, var(--clamp_1) * (32 - 14) + 14px, 32px);
    font-weight: normal;
    font-family: serif;
    text-align: right;
    line-height: 1.2;
    position: absolute;
    right: 2.5%;
    bottom: 10%;
    z-index: 1;
}
@keyframes transImage {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.15);
    }
}
.swiper-banner .swiper-slide-prev[data-text]::before,
.swiper-banner .swiper-slide-active[data-text]::before,
.swiper-banner .swiper-slide-duplicate-active[data-text]::before {
    animation: fadeInText 4s .5s var(--easing) both;
}
@keyframes fadeInText {
    0% {
        filter: blur(300px);
    }
    100% {
        filter: blur(0);
    }
}

/* ガールスワイパー */
.swiper-girl {
    margin: 0 auto;
    padding: 0;
    position: relative;
}
.swiper-girl:not(.swiper-initialized) .swiper-wrapper {
    gap: 20px var(--swiper--girl--column--gap) !important;
}
.swiper-girl .swiper-slide {
    flex: 0 1;
    transition: var(--transition), opacity 1s;
}
.swiper-girl .swiper-slide .collection-image {
    width: var(--swiper--girl--width);
    height: var(--swiper--girl--height);
}
.swiper-girl .swiper-slide .collection-body {
    width: var(--swiper--girl--width);
    height: calc(var(--swiper--girl--height) / 6);
}
.swiper-girl .swiper-slide:not(.swiper-slide-visible) {
    opacity: .3 !important;
}
.swiper-girl:not(.swiper-initialized) .swiper-slide {
    opacity: 1 !important;
}

/* イベントスワイパー */
.swiper-event {
    margin: 0 auto;
    padding: 0;
    position: relative;
    overflow: hidden;
}
.swiper-event:not(.swiper-initialized) .swiper-wrapper {
    gap: 20px var(--swiper--event--column--gap) !important;
}
.swiper-event .swiper-slide {
    flex: 0 1;
    overflow: visible;
}
.swiper-event .swiper-slide .thumb {
    width: var(--swiper--event--width);
    height: var(--swiper--event--height);
}
.swiper-event .swiper-slide .body {
    display: none;
}

/* ビデオスワイパー */
.swiper-video {
    margin: 0 auto;
    padding: 0;
    overflow: hidden;
    position: relative;
}
.swiper-video:not(.swiper-initialized) .swiper-wrapper {
    gap: 20px var(--swiper--video--column--gap) !important;
}
.swiper-video .swiper-slide {
    flex: 0 1;
}
.swiper-video .swiper-slide figure,
.swiper-video .swiper-slide video,
.swiper-video .swiper-slide iframe {
    width: var(--swiper--video--width);
    height: var(--swiper--video--height);
}
.swiper-video .swiper-slide .body {
    display: none;
}
.swiper-video + .btn-def {
    margin-top: 44px;
}

/* プロフィールスワイパー */
.profile-container {
    padding: 0 !important;
    display: grid;
    grid-template-columns: repeat(var(--profile--container--column), 1fr);
    gap: 40px var(--profile--container--column--gap);
}
.profile-content {
    width: min(100%, var(--content--max--width));
    height: var(--swiper--profile--orig--height);
    margin: 0 auto;
    display: flex;
    justify-content: center;
}
.swiper-profile {
    overflow: hidden;
    position: relative;
}
.swiper-profile.-orig {
    width: var(--swiper--profile--orig--width);
}
.swiper-profile.-thumb {

    display: none;

    @media (width > 896px) {
        margin-left: 10px;
        display: block;
    }
}
.swiper-profile .swiper-slide {
    position: relative;
    opacity: .4;
    transition: opacity .5s;
}
.swiper-profile .swiper-slide:not(.swiper-slide-visible) {
    opacity: 0 !important;
}
.swiper-profile .swiper-slide.swiper-slide-thumb-active {
    opacity: 1;
}
.swiper-profile.-orig .swiper-slide {
    border: solid var(--swiper--profile--orig--border-width) var(--theme_marking);
    border-image: linear-gradient(125deg, var(--theme_sub), var(--theme_main)) 1;
}
.swiper-profile.-orig .swiper-button-prev,
.swiper-profile.-orig .swiper-button-next {
    width: var(--swiper--button--radius--small);
    height: var(--swiper--button--radius--small);

    @media (width > 896px) {
        display: none;
    }
}
.swiper-profile.-orig .swiper-button-prev {
    left: var(--swiper--button--translate--small);
}
.swiper-profile.-orig .swiper-button-next {
    right: var(--swiper--button--translate--small);
}
.swiper-profile.-orig .swiper-button-prev::after,
.swiper-profile.-orig .swiper-button-next::after {
    font-size: var(--swiper--button--size--small);
}
.swiper-profile.-orig .swiper-button-prev::after {
    margin-right: var(--swiper--button--translate--small);
}
.swiper-profile.-orig .swiper-button-next::after {
    margin-left: var(--swiper--button--translate--small);
}
.swiper-profile.-thumb .swiper-wrapper {
    gap: var(--swiper--profile--thumb--column--gap) !important;
    flex-direction: column;
    flex-wrap: wrap;
}
.swiper-profile.-thumb .swiper-slide {
    width: var(--swiper--profile--thumb--width) !important;
    height: var(--swiper--profile--thumb--height);
    border: solid var(--swiper--profile--thumb--border-width) var(--theme_transparent);
    cursor: pointer;
}
.swiper-profile.-thumb .swiper-slide.swiper-slide-thumb-active {
    border-color: var(--theme_sub);
}

/* スフィア */
.sphere {
    position: absolute;
    top: clamp(-100px, var(--clamp_1) * (-100 + 45) - 45px, -45px);
    left: 10px;
    z-index: 10;
    width: clamp(90px, var(--clamp_1) * (200 - 90) + 90px, 200px);
    height: clamp(90px, var(--clamp_1) * (200 - 90) + 90px, 200px);
    background: var(--white_0);
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--black_3);
    box-shadow: var(--shadow_1), inset -1px -1px 20px var(--black_3);
    display: none;
}
.sphere a {
    width: 100%;
    height: 100%;
}
.sphere figure {
    width: 100%;
    height: 100%;
    padding: 5px;
}
.posts-flex .sphere,
.video-playback .sphere {
    width: 60px;
    height: 60px;
    top: auto;
    left: auto;
    right: 0;
    bottom: -10px;
}
.video-playback .sphere {
    bottom: calc(100% - 10px);
}
.posts-flex .sphere figure,
.video-playback .sphere figure {
    width: 100%;
    height: 100%;
    padding: 0;
}
.sphere img {
    border-radius: 50%;
    object-fit: contain;
}


/************************/
/* main
/************************/

/* ラッパー */
.main {
    margin-top: 80px;
}

/* h1ヘッダー画像 */
.global-header {
    position: relative;
}
.global-header h1 {
    width: 100%;
    height: calc(100% - 33px);
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    z-index: 2;
    color: var(--white_0);
    font-size: 1.2rem;
    font-family: var(--family_mincho_1);
    /* text-shadow: 0px 1px 2px var(--theme_transparent); */
    line-height: 1.4;
}
.global-header figure {
    height: 140px;
    position: relative;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
}
.global-header figure::after {
    content: "";
    width: 100%;
    height: 100%;
    margin: 0;
    background: var(--theme_main);
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: 1;
    opacity: .2;
}
.global-header figure img {
    position: absolute;
}
.global-header figure img:nth-of-type(1) {
    width: min(100%, 200px);
    height: auto;
    opacity: 0.3;
    z-index: 1;
    filter: sepia(50%);
    display: none;
}
.global-header figure img:nth-of-type(2) {
    transform: scale(1.2);
    filter: blur(3px);
}
.global-header .date {
    position: absolute;
    bottom: 33px;
    right: 0;
    width: 100%;
}
.global-header .date span {
    width: min(100%, var(--content--max--width));
    margin: 0 auto;
    padding: 0 10px;
    color: var(--white_0);
    font-size: .9rem;
    text-align: right;
    display: block;
}

/* パンくず */
.breadcrumb {
    margin-top: 10px;
}
.inner-breadcrumb {
    padding: 0 20px;
    display: flex;
}
.inner-breadcrumb li {
    width: auto;
    color: var(--theme_accent);
    font-size: .8rem;
    position: relative;
    white-space: nowrap;
}
.inner-breadcrumb li:last-child {
    overflow: hidden;
}
.inner-breadcrumb li::before {
    color: var(--theme_marking);
    margin: 0 8px;
}
.inner-breadcrumb li a {
    color: var(--theme_marking);
}

/* 見出し帯 */
.home-header h1 {
    height: 60px;
    font-size: 3.5vw;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Cinzel', serif;
    overflow: hidden;

    @media (width > 480px) {
        font-size: 3vw;
    }

    @media (width > 896px) {
        font-size: 1.5rem;
    }
}

/* 構造関連 */
.container {
    padding: 30px var(--container--column--padding);
    overflow: hidden;
}
.container.attach {
    background-size: cover;
    background-color: var(--white_1);
    background-blend-mode: screen;
    background-repeat: no-repeat;
}
.container:nth-of-type(even) {
    background: var(--theme_translucent);
}
.flex-col {
    display: flex;
    flex-flow: column;
}
.grad-1 {
    background: var(--gradation_color_1);
}
.grad-2 {
    background: var(--gradation_color_2);
}
.grad-3 {
    background: var(--gradation_color_3);
}
.content {
    padding: 0 0 40px;
}

/* 見出し */
.headline {
    font-size: 1.2rem;
    margin-bottom: 20px;
    letter-spacing: 2px;
    line-height: 1;
    font-weight: bold;
    -webkit-text-stroke: 1px #fff;
    padding: 25px 10px;
    text-align: center;
    position: relative;
    z-index: 1;
}
.headline::after {
    content: attr(data-text);
    display: block;
    font-size: .8rem;
    margin-top: 10px;
    -webkit-text-stroke: .4px #fff;
}
.headline figure {
    width: 80px;
    height: 80px;
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    z-index: -1;
    opacity: .3;
}
.headline i {
    margin: 0 5px;
}

/* リンクボタン */
.btn-def {
    width: min(100%, 300px);
    margin: 20px auto 0;
    padding: 10px;
    border: 1px solid var(--theme_sub);
    background: var(--white_1);
    color: var(--theme_sub);
    font-weight: 600;
    overflow: hidden;
    text-align: center;
    display: block;
    position: relative;
    transition: .2s;
}
.btn-def::before {
    background: var(--theme_main);
    content: "";
    display: block;
    position: absolute;
    top: -100%;
    left: 0;
    width: 30px;
    height: 100%;
    opacity: 0;
    transition: cubic-bezier(0.32, 0, 0.67, 0);
}
.btn-def:hover::before {
    animation: kiran 0.5s linear 1;
}
@keyframes kiran {
    0% {
        transform: scale(2) rotate(45deg);
        opacity: 0;
    }
    20% {
        transform: scale(20) rotate(45deg);
        opacity: 0.6;
    }
    40% {
        transform: scale(30) rotate(45deg);
        opacity: 0.4;
    }
    80% {
        transform: scale(45) rotate(45deg);
        opacity: 0.2;
    }
    100% {
        transform: scale(50) rotate(45deg);
        opacity: 0;
    }
}
.btn-def::after {
    content: "";
    position: absolute;
    display: block;
    border-top: 3px solid var(--theme_sub);
    border-right: 3px solid var(--theme_sub);
    transform: scale(1) rotate(45deg);
    top: 50%;
    right: 25px;
    width: 7px;
    height: 7px;
    margin-top: -4px;
    transition: .2s;
}
.btn-def.left::after {
    right: auto;
    left: 25px;
    transform: scale(1) rotate(225deg);
}

/* ページネーション */
.pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 40px 0;
    position: relative;
    font-size: 12px;
}
.pagination span,
.pagination a {
    display: block;
    width: auto;
    height: 32px;
    margin: 4px;
    padding: 7px;
    border: 1px solid #a39d7d99;
    background: #fff;
    color: #a39d7d99;
    text-decoration: none;
    text-align: center;
    line-height: 16px;
    box-sizing: border-box;
    border-radius: 5px;
    outline: none;
    transition: all .8s ease;
}
/* ページ番号 */
.pagination .pager{
    width: 32px;
    border-radius: 50%;
}
/* ホバー時 & 現在のページ */
.pagination a:hover,
.pagination .current  {
    color: #fff;
    border-color: #a39d7d;
    background-color: #a39d7d;
}
/* Page x / y */
.pagination span.page_num {
    display: none;
}

/* ベルト -新着- */
.news-belt {
    position: relative;
    width: 100%;
    height: 40px;
    display: flex;
    align-items: stretch;
    justify-content: center;
    flex-wrap: wrap;
    text-align: center;
    overflow: hidden;
}
.news-belt h2 {
    width: 70px;
    height: 40px;
    margin-left: -10px;
    color: var(--theme_accent);
    font-size: .8rem;
    font-weight: 400;
    background: #fff;
    line-height: 40px;
    position: absolute;
    left: 0;
    z-index: 1;
}
.news-belt h2::after {
    position: absolute;
    content: "";
    right: 5px;
    top: 50%;
    margin-top: -5px;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 5px 0 5px 5px;
    border-color: transparent transparent transparent var(--theme_sub);
}
.news-belt p {
    padding-left: var(--vw);
    line-height: 40px;
    white-space: nowrap;
    animation: scrollNews 15s linear infinite;
    transition: 1s;
}
@keyframes scrollNews {
    0% {transform: translate(0%);}
    100% {transform: translate(-100%);}
}
.news-belt:hover {
    color: var(--theme_main);
}

/* フロントページ */
.home {

    .header-bar {
        padding-right: 10px;

        @media (width > 896px) {
            padding-right: 0;
        }
    }
    .header-contact {
        @media (width > 896px) {
            right: 10px;
        }
    }
    .container {
        padding: 0;
    }
    .content {
        width: 100%;
        padding: 20px 10px;
        display: block;
        position: relative;

        @media (width > 896px) {
            height: calc(100vw / 3 * 5);
        }
    }
    .post-image {
        width: var(--vw);
        height: auto;
        margin: 0;
        position: absolute;
        z-index: -1;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;

        img {
            object-fit: cover;
            object-position: center 28%;
        }

        /* @media (width > 896px) {
            overflow: hidden;
            border-radius: 3px;
            padding: 20px 0;
            position: static;

            img {
                border-radius: 3px;
            }
        } */
    }
    .post-body {
        > p {
            margin-bottom: 10px;
            color: var(--theme_main);
            font-size: .9rem;
            text-align: center;
            font-weight: bold;
        }

        @media (width > 896px) {
            margin: auto;
            padding: 0;
            position: absolute;
            bottom: 2%;
            left: 0;
            right: 0;
        }
    }
    .footer {
        margin-top: 0;
    }
    .btn-def {
        margin: 50px auto 20px;
        border-color: var(--white_0);
        background: var(--theme_main);
        color: var(--white_0);
        font-size: 1.2rem;
        font-weight: 900;
        letter-spacing: 2px;

        &::before {
            background: var(--theme_sub);
        }
        &::after {
            border-color: var(--white_0);
        }
    }
    .under {
        display: flex;
        flex-flow: column;
        align-items: center;
        background: var(--white_2);
        margin: 0 -10px;
        padding: 20px;

        figure {
            width: 100px;
            height: 100%;

            svg {
                width: 100%;
                height: 100%;
                fill: var(--theme_marking);
            }
        }
        p {
            margin: 0;
            font-size: .8rem;
            text-align: justify;
            color: var(--black_1);
            padding: 10px 0 0;
            line-height: 2;

            &:empty {
                display: none;
            }
            a {
                color: var(--theme_accent);
                font-weight: 600;
            }
        }

        @media (width > 480px) {
            flex-flow: row;

            p {
                padding: 10px 5px 10px 20px;
            }
        }

        @media (width > 896px) {
            margin: 0;
        }
    }
}

/* 女の子一覧 */
.girls-collection {
    margin-bottom: 20px;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(var(--girls--collection--column), 1fr);
    gap: 10px var(--girls--collection--column--gap);
}
.collection-list {
    height: max-content;
    position: relative;
}
.collection-list a {
    color: var(--white_0);
    overflow: hidden;
    position: relative;
    display: block;
}
.collection-list .collection-image {
    width: var(--girls--collection--width);
    height: var(--girls--collection--height);
    position: relative;
}
.collection-list.pickup .collection-image::before {
    content: "";
    width: 0;
    height: 15px;
    border-width: 10px 15px;
    border-style: solid;
    border-color: var(--theme_main) var(--theme_main) transparent var(--theme_main);
    color: var(--white_0);
    font-weight: normal;
    font-family: Cinzel, serif;
    font-size: .7rem;
    text-align: center;
    position: absolute;
    left: 5px;
    z-index: 1;
    white-space: pre;
}
.collection-list .collection-image img {
    transition: .2s;
    transform: scale(1);
}
.collection-list .collection-body {
    width: var(--girls--collection--width);
    height: calc(var(--girls--collection--height) / 6);
    padding: 2px 5px;
    background: var(--black_2);
    text-align: center;
    overflow: hidden;
    display: flex;
    flex-flow: column;
    justify-content: center;
    position: absolute;
    bottom: 0;
}
.collection-list .collection-body h3 {
    margin-bottom: 0px;
    padding-bottom: 0;
    color: var(--theme_main);
    line-height: 1;
    font-size: clamp(12px, var(--clamp_1) * (18 - 12) + 12px, 18px);
}
.collection-list.newface .collection-body h3::before {
    content: "NEW";
    font-size: clamp(10px, var(--clamp_1) * (16 - 10) + 10px, 16px);
    font-weight: 400;
    font-style: italic;
    margin-right: 5px;
    color: var(--theme_main);
    text-shadow: none;
    display: inline-block;
    position: relative;
    right: 3px;
    animation: flash 1s ease infinite;
}
.collection-list .collection-body h3 span,
.collection-list .collection-body p {
    margin-bottom: 0;
    line-height: 1.4;
    font-size: clamp(10px, var(--clamp_1) * (16 - 10) + 10px, 16px);
}
.collection-list .collection-body .figure {
    background: #fff8;
    border-radius: 30px;
}
.collection-list .collection-body .appeal {
    background: linear-gradient(to right, #ff5ea0 0, #ff8f92 100%);
    padding: 0px 5px;
    color: var(--white_0);
    border-radius: 30px;
    overflow-x: scroll;
    white-space: nowrap;
}
.collection-list .collection-body .figure:empty,
.collection-list .collection-body .appeal:empty,
.collection-list .collection-body .figure,
.collection-list .collection-body .appeal,
.collection-list .collection-body .icon,
.collection-list .collection-body .schedule {
    display: none;
}
.collection-list:hover .collection-image img {
    transform: scale(1.2);
}
.ranking-number {
    position: relative;
    width: 50px;
    height: 50px;
}
.collection-list .ranking-number {
    position: absolute;
    top: 0;
    right: 5px;
    filter: drop-shadow(1px 2px 1px #0003);
}
.ranking-number::after {
    content: attr(data-ranking);
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 80%;
    font-size: 1.5rem;
    margin: 0px;
    font-family: serif;
    font-weight: bold;
    top: 20%;
    text-shadow: 1px 1px 0 #fff, -1px 1px 0 #fff, 1px -1px 0 #fff, -1px -1px 0 #fff;
    color: #ff7742;
}
.ranking-number svg {
    position: absolute;
}
.ranking-number-1 svg {
    fill: #fbd651;
}
.ranking-number-2 svg {
    fill: #dddde0;
}
.ranking-number-3 svg {
    fill: #ca7c10;
}
.ranking-number-4 svg {
    fill: #afe8dc;
}
.ranking-number-5 svg {
    fill: #6aa2ff;
}
.collection-list .wpulike {
    position: absolute;
    bottom: 0;
    right: 0;
}

/* 動画一覧 */
.archive-grid.video-grid {
    grid-template-columns: repeat(var(--video--grid--column), 1fr);
    gap: 20px var(--video--grid--column--gap);
}
.video-single figure,
.video-single iframe,
.video-single video {
    width: 100%;
    height: 100%;
}
.video-playback figure,
.video-playback iframe,
.video-playback video {
    width: var(--video--grid--width);
    height: var(--video--grid--height);
    display: block;
}
.video-playback .body {
    position: relative;
}
.video-playback h3 {
    padding: 8px 3px 5px;
    color: var(--theme_sub);
    font-weight: 600;
    line-height: 1.5;
    text-align: justify;
}
.video-playback span {
    font-size: 0.8rem;
    background: var(--theme_sub);
    color: #fff;
    border-radius: 3px;
    padding: 8px 10px;
}
.video-playback .profile {
    display: none;
}
.video {
	display: block;
	position: relative;
	overflow: hidden;
}
.video::before {
	content: "Tap to Play";
    color: #fff;
    background: rgba(0, 0, 0, 0.6);
	text-align: center;
	font-size: 22px;
	font-weight: bold;
	display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
	transition: all 0.3s;
}
.video:hover::before {
	background: rgba(0, 0, 0, 0.7);
	cursor: pointer;
	transition: all 0.3s;
}

/* スケジュール */
.panel-radios {
    display: none;
}
#tabs-list {
    margin: 30px auto;
    display: flex;
    justify-content: center;
    gap: 0 10px;
}
#tabs-list .panel-li {
    position: relative;
}
#li-for-panel-5,
#li-for-panel-6,
#li-for-panel-7 {
    display: none;
}
#panel-ctrl-1:checked ~ #tabs-list #li-for-panel-1,
#panel-ctrl-2:checked ~ #tabs-list #li-for-panel-2,
#panel-ctrl-3:checked ~ #tabs-list #li-for-panel-3,
#panel-ctrl-4:checked ~ #tabs-list #li-for-panel-4,
#panel-ctrl-5:checked ~ #tabs-list #li-for-panel-5,
#panel-ctrl-6:checked ~ #tabs-list #li-for-panel-6,
#panel-ctrl-7:checked ~ #tabs-list #li-for-panel-7 {
    pointer-events: none;
    cursor: default;
    transform: scale(1.01);
	z-index: 1;
}
#tabs-list .panel-label {
    width: 60px;
    height: 60px;
    padding: 24px 0;
    border-radius: 50%;
    background: var(--theme_sub);
    color: var(--white_1);
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    overflow: hidden;
    box-shadow: var(--shadow_2);
    cursor: pointer;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
    gap: 3px;
    transition: all .4s ease;
}
#tabs-list .panel-label:hover {
    color: var(--black_2);
    box-shadow: var(--shadow_hover_2);
}
#panel-ctrl-1:checked ~ #tabs-list #li-for-panel-1 .panel-label,
#panel-ctrl-2:checked ~ #tabs-list #li-for-panel-2 .panel-label,
#panel-ctrl-3:checked ~ #tabs-list #li-for-panel-3 .panel-label,
#panel-ctrl-4:checked ~ #tabs-list #li-for-panel-4 .panel-label,
#panel-ctrl-5:checked ~ #tabs-list #li-for-panel-5 .panel-label,
#panel-ctrl-6:checked ~ #tabs-list #li-for-panel-6 .panel-label,
#panel-ctrl-7:checked ~ #tabs-list #li-for-panel-7 .panel-label {
    background: var(--theme_main);
    color: var(--theme_marking);
}
#tabs-list .panel-label span {
    margin-top: 4px
}
#tabs-list .panel-label em {
    display: inline-block;
    font-style: normal;
}
#panels .panel-container {
    width: auto;
    margin: 0;
}
#panels .panel-inner {
    height: 0;
    overflow-y: hidden;
    opacity: 0;
    transition: all .6s ease;
}
#panel-ctrl-1:checked ~ #panels #panel-1,
#panel-ctrl-2:checked ~ #panels #panel-2,
#panel-ctrl-3:checked ~ #panels #panel-3,
#panel-ctrl-4:checked ~ #panels #panel-4,
#panel-ctrl-5:checked ~ #panels #panel-5,
#panel-ctrl-6:checked ~ #panels #panel-6,
#panel-ctrl-7:checked ~ #panels #panel-7 {
    height: initial;
    opacity: 1;
}

/* 投稿一覧 -ブログ- */
.posts-flex {
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: repeat(var(--posts--flex--column), 1fr);
    gap: var(--posts--flex--column--gap);
}
.posts-flex li {
    background: var(--white_2);
}
.posts-flex a {
    display: flex;
    flex-flow: column;
    position: relative;
}
.posts-flex .thumb {
    width: var(--posts--flex--width);
    height: var(--posts--flex--height);
    overflow: hidden;
    position: relative;
}
.posts-flex .thumb img {
    transform: scale(1);
    transition: .2s;
}
.posts-flex .body {
    background: var(--white_2);
    color: var(--theme_main);
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
    padding: 10px;
}
.posts-flex .title,
.posts-flex .excerpt {
    line-height: 1.4;
    text-align: justify;
    word-break: break-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    transition: 0.2s;
}
.posts-flex .title {
    margin-bottom: 5px;
    font-size: 1rem;
    -webkit-line-clamp: 2;
}
.posts-flex .excerpt {
    margin-bottom: 25px;
    font-size: .8rem;
    -webkit-line-clamp: 1;
}
.posts-flex .date,
.posts-flex .tag {
    font-weight: bold;
    position: absolute;
    bottom: 0;
}
.posts-flex .date {
    font-size: .8rem;
    left: 10px;
}
.posts-flex .tag {
    font-size: .9rem;
    background: var(--theme_main);
    color: var(--white_0);
    padding: 0 5px;
    right: 0;
}
.posts-flex a:hover .thumb img {
    transform: scale(1.2);
}
.posts-flex a:hover .title {
    color: var(--theme_sub);
}
.posts-flex .else {
    width: var(--content--960--width);
    margin: 0 auto;
	grid-column: 1/3;
}

/* 固定ページ -コンタクト・アンケート- */
.layer {
    width: 100%;
    margin: 0 auto 5px;
    padding: 15px 25px;
    line-height: 1.5;
    box-sizing: border-box;
    overflow: hidden;
    position: relative;
}
.layer:last-child {
    margin: 0 auto;
}
.layer p {
    font-size: .9rem;
    text-align: justify;
}
.layer p a span {
    font-weight: bold;
    border-bottom: 1px solid var(--theme_main);
}
/* フォーム */
.form-control .item,
.form-control input,
.form-control textarea,
.form-control select {
    color: var(--black_1);
    font-size: 1rem;
    cursor: pointer;
    outline: none;
}
.form-control input {
    width: max-content;
    margin: 0;
    padding: 0;
    -webkit-appearance: none;
    appearance: none;
}
.form-control input[type="text"],
.form-control input[type="tel"],
.form-control input[type="email"],
.form-control input[type="url"],
.form-control input[type="password"],
.form-control input[type="number"],
.form-control textarea,
.form-control select {
    width: 100%;
    padding: 8px 15px !important;
    background: none;
    border: 2px solid var(--theme_accent);
}
.form-control input::placeholder,
.form-control textarea::placeholder,
.form-control select:invalid {
    color: var(--black_3);
}
.form-control .required input,
.form-control .required textarea,
.form-control .required select {
    background: var(--theme_translucent);
    border: 2px solid var(--theme_main);
}
.form-control input:focus,
.form-control textarea:focus,
.form-control select:focus,
.form-control .column select:focus {
    border: 2px solid var(--blue_2);
}
.form-control textarea {
    height: 200px;
}
.form-control .item {
    margin: 20px auto 0;
    font-weight: bold;
    line-height: 1.5rem;
    display: block;
    position: relative;
}
.form-control .item:first-child {
    margin: 0 auto;
}
.form-control .item > p,
.form-control .item > span {
    height: 1.5rem;
    margin-bottom: 5px;
    display: inline-block;
}
.form-control .hidden {
    display: none;
}
/* セレクトボックス */
.form-control .select div {
    text-align: center;
    overflow: hidden;
    position: relative;
}
.form-control .select div::before {
    content: "";
    margin: auto;
    padding: 0;
    border-width: 15px 10px 10px;
    border-style: solid;
    border-color: var(--theme_main) transparent transparent transparent;
    position: absolute;
    top: 32%;
    right: 10px;
}
.form-control .select select {
    width: 100%;
    height: 40px;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
}
/* チェックボックス */
input[type="checkbox"],
input[type="radio"] {
    position: absolute;
    z-index: -1;
    opacity: 0;
}
.control {
    display: flex;
    align-items: center;
    position: relative;
    padding-left: 30px;
}
.indicator {
    position: absolute;
    top: auto;
    left: 0;
    height: 20px;
    width: 20px;
    background: #e6e6e6;
    border: 2px solid var(--theme_accent);
    border-radius: 3px;
    transition: .2s ease;
}
.control input[type="radio"] ~ .indicator {
    border-radius: 50%;
}
.control:hover input ~ .indicator,
.control input:focus ~ .indicator {
    background: #ccc;
}
.control:hover input:not([disabled]):checked ~ .indicator,
.control input:checked:focus ~ .indicator {
    background: var(--theme_sub);
}
.control input:disabled ~ .indicator {
    background: #e6e6e6;
    opacity: 0.6;
    pointer-events: none;
}
.indicator:after {
    content: '';
    position: absolute;
    display: none;
}
.control input:checked ~ .indicator:after {
    display: block;
}
.control input[type="checkbox"] ~ .indicator:after {
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid var(--theme_accent);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.control input[type="checkbox"]:disabled ~ .indicator:after {
    border-color: #7b7b7b;
}
.control input[type="radio"] ~ .indicator:after {
    left: 5px;
    top: 5px;
    height: 6px;
    width: 6px;
    border-radius: 50%;
    background: var(--theme_accent);
}
.control input[type="radio"]:disabled ~ .indicator:after {
    background: #7b7b7b;
}
/* 必須と任意の調整 */
.item span::before {
    content: "任意";
    margin-right: 10px;
    padding: 4px 5px;
    background: var(--theme_accent);
    color: var(--white_0);
    font-size: .8em;
    position: relative;
    top: -1px;
}
.item.required span::before {
    content: "必須";
    background: var(--theme_main);
}
/* ブロック */
.item-block {
    padding: 10px 15px;
    border: 2px solid var(--theme_accent);
    display: flex;
    flex-flow: column;
    gap: 15px 0;
}
.form-control .select .item-block::before {
    content: none;
}
.item-block .column {
    text-align: left;
}
.item-block .column select {
    width: auto;
    height: auto;
    padding: 2px 8px;
    margin-left: 10px;
}
/* スパムチェック */
.spam {
    margin-top: 10px;
    display: flex;
    align-items: center;
}
.spam p {
    font-size: .8rem;
}
.spam p span {
    display: inline-block;
}
.spam input {
    width: auto;
    margin-top: 0;
    margin-bottom: 0;
}
/* 送信ボタンのデザイン変更 */
.form-submit input {
    width: min(100%, 400px);
    height: 40px;
    margin: 30px auto;
    background: var(--theme_marking);
    color: var(--white_0);
    border: solid 2px var(--theme_accent);
    font-size: 18px;
    font-weight: bold;
    line-height: 1;
    display: block;
    transition: .2s ease;
    transition-property: color, background;
    cursor: pointer;
}
.form-submit input:hover {
    background: var(--white_0);
    color: var(--theme_main);
    border-color: var(--theme_main);
}

/* リキャプチャ */
.grecaptcha-substitute {
    width: max-content !important;
    max-width: 100%;
    margin: 0 auto;
    color: var(--theme_transparent);
    text-align: justify;
    font-size: .8rem !important;
    letter-spacing: -1px;
}
.grecaptcha-badge {
    visibility: hidden;
}

/* 固定ページ -システム- */
.layer .title {
    width: var(--layer--960--width);
    margin: 0 auto;
    padding: 0 5px;
    color: var(--white_1);
    font-weight: normal;
    font-size: .9rem;
    text-align: right;
}
.table .credit dd {
    display: grid !important;
    grid-template-columns: repeat(auto-fit,minmax(60px, auto));
}
.table .people dd::after {
    content: "名";
}
.table .seats dd::after {
    content: "席";
}
.table .station dd {
    font-size: clamp(10px, var(--clamp_1) * (16 - 10) + 10px, 16px) !important;
    white-space: nowrap;
    overflow-x: scroll;
}
.table .money dd::after {
    content: "円";
}

/* マップ */
.access {
    margin-bottom: 20px;
    background: var(--theme_accent);
    color: #fff;
    font-size: .9rem;
    border-radius: 3px;
    line-height: 1.4;
    display: flex;
    flex-flow: column;
    transform: translateY(0px);
    transition: .8s ease;
    filter: drop-shadow(6px 8px 8px #3330);
}
.access:hover {
    transform: translateY(3px);
    filter: drop-shadow(6px 8px 8px #3336);
}
.access .address,
.access .google {
    width: 100%;
    height: 300px;
    margin: 0 auto;
    border-radius: 5px 5px 0 0;
    display: block;
    flex-grow: 1;
    overflow: hidden;
    position: relative;
    cursor: pointer;
}
.access .address {
    font-style: normal;
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
}
.access .address h3 {
    color: #fff;
    font-size: 1.2rem;
}
.access .google svg {
    width: var(--map--google--svg--width);
    height: var(--map--google--svg--height);
    position: absolute;
    right: 0;
    bottom: 0;
    fill: var(--theme_main);
    animation: tapHere 1.6s ease-in infinite;
}
@keyframes tapHere {
    0% { transform: translate(-1px,-1px); }
    60% { transform: translate(1px,2px) scale(.98); fill: var(--theme_sub) }
    100% { transform: translate(-1px,-1px); }
}
.access,
.access + .directions {
    width: var(--content--960--width);
    margin: 0 auto;
}

/* カード */
.content.related {
    padding: 0;
}
.archive-grid {
    display: grid;
    grid-template-columns: repeat(var(--cards--grid--column), 1fr);
    gap: 10px var(--cards--grid--column--gap);
}
.cards {
    box-shadow: var(--shadow_6);
    overflow: hidden;
    position: relative;
    z-index: 1;
}
.cards figure {
    width: var(--cards--grid--width);
    height: var(--cards--grid--height);
    overflow: hidden;
    position: relative;
    background: var(--white_2);
}
.cards .body {
    height: 120px;
    padding: 10px 8px;
    background: var(--white_3);
    line-height: 1.4;
    display: flex;
    flex-flow: column;
}
.cards .title {
    width: 100%;
    font-size: .9rem;
    margin-bottom: auto;
    color: var(--theme_main);
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    transition: .2s ease;
    letter-spacing: -.2px;
}
.cards:hover .title {
    color: var(--theme_main);
}
.cards .excerpt {
    font-size: .8rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.cards .cat {
    width: max-content;
    font-size: .8rem;
    background: var(--theme_sub);
    color: var(--black_1);
    border-radius: 3px;
    padding: 8px 10px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
}
.cards .meta {
    margin-top: 5px;
    font-size: .8rem;
    color: var(--theme_sub);
}
.cards .meta time::before,
.cards .meta span::before {
    margin-right: 2px;
}
.cards .meta span {
    margin-left: 12px;
    color: var(--theme_main);
}
.post-body .archive-grid {
    margin: 20px 0;
    padding: 0;
    display: block;
    list-style: none;
}
.post-body .cards {
    width: min(100%, 380px);
    margin: 0;
}
.post-body .cards figure {
    width: var(--post--cards--grid--width);
    height: var(--post--cards--grid--height);
}
.post-body .cards .excerpt {
    line-height: 1.2;
    font-size: .8rem;
    color: var(--theme_accent);
    margin: 0 0 5px;
    padding: 0 3px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}
.remark-bar::after {
    content: "";
    display: block;
    width: 0%;
    height: 3px;
    border-radius: 3px;
    position: absolute;
    bottom: -1px;
    background: var(--theme_sub);
    transition: .2s ease;
}
.remark-bar:hover::after {
    width: 100%;
}
.cover-fit figure img {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: .2s ease;
}
.cover-fit:hover figure img {
    transform: translate(-50%, -50%) scale(1.1);
}

/* 404 */
.error404 .global-header h1 {
    flex-flow: column;
    font-size: 1rem;
}
.error404 .global-header h1 strong {
    font-size: 50px;
    margin-right: 10px;
    color: #ff4677;
    background: var(--gradation_color_1);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.error404 .global-header h1 p:nth-of-type(2) {
    color: var(--error_1);
    text-shadow: 2px 1px 2px #0009;
}
.error404 .content {
    padding-top: 10px;
}
.error404 .content p {
    text-align: center;
    margin-top: 20px;
}

/************************/
/* single
/************************/

/* 投稿者見出し */
.blogger {
    font-size: 1.2rem;
    padding: 10px 10px 5px;
    border-bottom: 6px solid #a78f54;
    line-height: 1;
    margin: 0 auto 20px;
    position: relative;
}
.blogger::before {
    position: absolute;
    bottom: -6px;
    left: 0;
    width: 20%;
    height: 6px;
    content: "";
    background: #eccb78;
}

/* 投稿アイキャッチ */
.post-image {
    width: var(--content--960--width);
    height: 100%;
    margin: 0 auto;
    display: block;
}

/* 投稿本文 */
.post-body {
    width: var(--content--960--width);
    margin: 0 auto;
    padding: 20px 0px;
    position: relative;
}

/* 前後の投稿 */
.nav-single {
    width: var(--content--960--width);
    margin: 30px auto 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    justify-content: center;
}
.nav-single li {
    height: 100%;
    align-self: center;
    border: 1px solid var(--theme_sub);
    color: var(--theme_sub);
}
.nav-single li::before {
    content: none;
}
.nav-single .nav-prev {
    grid-column: 1/2;
}
.nav-single .nav-next {
    grid-column: 2/3;
}
.nav-single a {
    padding: 5px 10px;
    display: flex;
    height: 100%;
    align-items: center;
    justify-content: center;
    transition: .2s ease;
}
.nav-single a:hover {
    opacity: .6;
}
.nav-single figure {
    width: 50px;
    height: 50px;
    margin-right: 10px;
    background: var(--white_2);
}
.nav-single span {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-height: 1.4;
    overflow: hidden;
    text-align: center;
    flex: 1;
}

/* 投稿 -女の子- */
.girls-header {
    position: relative;
}
.girls-header .wpulike {
    position: absolute;
    bottom: 0;
    right: var(--wpulike--girls--header--right);
    z-index: 10;
}
.girls-header .breadcrumb {
    position: absolute;
    left: 0;
    right: 0;
    top: 10px;
}
.girls-header h1 {
    width: var(--girls--header--width);
    margin: 0 auto 10px;
    padding: 50px 0 5px;
    position: relative;
    display: block;
    font-family: Verdana, "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", "ＭＳ Ｐゴシック", sans-serif;
    font-size: 1.5rem;
    text-align: center;
}
.girls-header h1 em {
    padding: 0 10px;
    display: block;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}
.girls-header .newface em::before {
    content: "NEW";
    font-size: 1rem;
    font-weight: 400;
    margin-right: 5px;
    color: var(--theme_main);
	text-shadow: none;
	display: inline-block;
    position: relative;
    right: 5px;
	animation: flash 1s ease infinite;
}
@keyframes flash {
	0% {opacity: 1;}
	50% {opacity: .3;}
}
.girls-header .appeal {
    width: min(100%, 800px);
    margin: 0 auto;
    padding: 0 20px;
    color: var(--theme_main);
    font-size: 1.2rem;
	display: none;
}
.single-girls .container {
    padding: 0;
}
.single-girls .content {
    padding: 0 10px 20px;
}
.layer .headline {
    margin-bottom: 0;
}
.layer .table,
.layer > p,
.layer > form {
    width: var(--layer--960--width);
    margin: 0 auto;
}
.layer .table dl {
	border-bottom: 1px solid var(--theme_main);
	display: flex;
    gap: 10px;
}
.layer .table dl:first-of-type {
	border-top: 1px solid var(--theme_main);
}
.layer .table dt,
.layer .table dd {
    font-size: 1rem;
    display: flex;
    align-items: center;
}
.layer .table dt {
    width: 40%;
    padding: 5px 0 5px 10px;
    color: var(--theme_accent);
    text-align: left;
    justify-content: flex-start;
    overflow: hidden;
    white-space: nowrap;
}
.layer .table dd {
    padding: 5px 10px 5px 0;
    margin-left: auto;
    text-align: right;
    position: relative;
}
.layer .table dd a {
    text-align: right;
}
.layer .table dd a::before {
    margin-right: 3px;
}
.layer .table dd a span {
    font-weight: 400;
}
.layer .table .kana,
.layer .table .appealto {
	display: none;
}
.layer .table .age dd::after {
	content: "歳";
}
.layer .table .size dd::after,
.layer .table .bust dd::after,
.layer .table .waist dd::after,
.layer .table .hip dd::after {
    content: "cm";
}
.layer .table .bracup dd::after {
	content: "カップ";
}
.layer .table .myself,
.layer .table .comment,
.layer .table .job {
    padding-bottom: 10px;
	display: block;
}
.layer .table .myself dt,
.layer .table .comment dt,
.layer .table .job dt {
	width: max-content;
    background: transparent;
    padding: 5px 0 0;
    margin-left: 10px;
}
.layer .table .myself dd,
.layer .table .comment dd,
.layer .table .job dd {
	width: 100%;
    padding: 5px 10px;
	text-align: justify;
}
.layer .keywords {
    width: var(--layer--960--width);
    margin: 0 auto 20px;
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 10px;
}
.layer .keywords li {
    border-radius: 3px;
    font-size: clamp(10px, var(--clamp_1) * (14 - 10) + 10px, 14px);
    line-height: 1.5;
    text-align: justify;
    padding: 3px;
    display: flex;
    justify-content: center;
    align-items: center;
}
.layer .keywords .on {
    color: var(--black_0);
    background: var(--theme_main);
    border: 1px solid var(--theme_sub);
}
.layer .keywords .off {
    color: var(--white_2);
    border: 1px dotted var(--white_2);
}

/* 投稿 -キャンペーン- */
.campaign .layer {
    width: var(--layer--960--width);
    margin: 0 auto 20px;
    padding: 20px 10px 30px;
    border: 10px solid var(--theme_main);
}
.campaign.-re .post-image,
.campaign.-re .layer {
    position: relative;
}
.campaign.-re .post-image::before,
.campaign.-re .layer::before {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: var(--black_3);
}
.campaign.-re .post-image::after {
    content: "開催\A終了";
    margin: auto;
    border: double var(--theme_main);
    border-width: clamp(30px, var(--clamp_1) * (48 - 30) + 30px, 48px);
    border-radius: 50%;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(50vw, 480px);
    height: min(50vw, 480px);
    font-size: clamp(48px, var(--clamp_1) * (120 - 48) + 48px, 120px);
    font-weight: 900;
    text-align: center;
    line-height: 1;
    color: var(--theme_main);
    white-space: pre;
}
.campaign .layer .period {
    color: var(--theme_accent);
    font-size: clamp(14px, var(--clamp_2) * (16 - 14) + 14px, 16px);
    margin-bottom: 10px;
}
.campaign .layer .subtitle {
    margin-bottom: 10px;
    padding: 0 5px;
    border-bottom: 6px double var(--theme_sub);
    font-size: clamp(16px, var(--clamp_2) * (32 - 16) + 16px, 32px);
    font-weight: bold;
    color: var(--theme_sub);
    text-align: center;
}
.campaign .layer .amount {
    width: max-content;
    margin: 0 5%;
    letter-spacing: -1px;
    font-family: serif;
}
.campaign .layer .amount.old {
    padding-top: 10px;
    position: relative;
    display: inline-block;
    color: var(--black_2);
}
.campaign .layer .amount.old::after {
    content: "";
    border-top: 2px solid var(--black_2);
    border-bottom: 2px solid var(--black_2);
    position: absolute;
    left: -2px;
    right: -2px;
    height: 6px;
    display: block;
    top: calc(50% + 2px);
}
.campaign .layer .amount.new {
    padding-bottom: 10px;
}
.campaign .layer .amount.old span {
    font-size: clamp(14px, var(--clamp_2) * (32 - 14) + 14px, 32px);
}
.campaign .layer .amount.new span {
    font-size: clamp(24px, var(--clamp_2) * (64 - 24) + 24px, 64px);
    color: var(--theme_sub);
}
.campaign .layer .amount span:first-of-type::after {
    content: "分";
    margin-right: 5px;
}
.campaign .layer .amount span:last-of-type::after {
    content: "円";
}
.campaign .layer .amount.new span::after {
    font-size: clamp(14px, var(--clamp_2) * (32 - 14) + 14px, 32px);
    color: var(--black_2);
}
.campaign .layer .except {
    padding: 10px;
    border-top: solid 2px var(--theme_accent);
    font-size: clamp(14px, var(--clamp_2) * (16 - 14) + 14px, 16px);
    color: var(--black_2);
}
.campaign .layer .condition {
    border: double 3px var(--theme_sub);
    padding: 3px 7px;
    font-size: clamp(14px, var(--clamp_2) * (16 - 14) + 14px, 16px);
    font-weight: 600;
}
.campaign .layer .condition::before {
    content: "利用条件";
    border-right: 1px solid var(--theme_sub);
    padding-right: 5px;
    margin-right: 5px;
}

/* 投稿 -動画- */
.video-playback.-s figure,
.video-playback.-s iframe,
.video-playback.-s video {
    width: var(--content--960--width);
    height: 100%;
    margin: 0 auto;
}

/* 追加テキスト */
.add-description {
    margin-top: 60px;
    font-size: .9rem;
    color: var(--black_3);
}

/* コメント */
.comments-list,
.comment-respond {
    width: var(--content--960--width);
    margin: 0 auto;
    padding: 0 10px;
}
.comments-list .comment {
    border: 1px solid var(--white_1);
    padding: 20px;
}
.comments-list .comment + .comment {
    margin-top: 20px;
}
.comments-list .comment-body {
    position: relative;
}
.comments-list .comment-meta {
    font-size: .8rem;
    position: relative;
}
.comments-list .comment-meta .comment-author.vcard {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 0 10px;
}
.comments-list .comment-meta .fn {
    line-height: 1.2;
}
.comments-list .comment-meta .says {
    display: none;
}
.comments-list .comment-meta .comment-metadata {
    position: absolute;
    bottom: 0;
    left: 42px;
    line-height: 1;
}
.comments-list .comment-content {
    margin-top: 25px;
}
.comments-list .reply {
    position: absolute;
    font-size: .8rem;
    top: 0;
    right: 0;
}
.comments-list .comment-reply-link {
    display: flex;
    line-height: 1;
    border-bottom: 1px solid var(--white_2);
}
.comments-list .comment-reply-link::before {
    content: "▷";
    font-size: 10px;
    margin-right: 5px;
    line-height: 1;
}
.comments-list .children {
    margin-top: 20px;
}
.comment-respond {
    margin-top: 30px;
}
.comment-respond .comment-form {
    border: 1px solid var(--white_1);
    padding: 30px 20px 0;
    display: flex;
    flex-flow: column;
    gap: 10px;
}
.comment-respond .comment-form .comment-form-comment {
    margin-top: 20px;
}
.comment-respond .comment-form .comment-form-comment,
.comment-respond .comment-form .form-submit {
    order: 1;
}
.comment-respond .comment-form textarea,
.comment-respond .comment-form input[type="text"],
.comment-respond .comment-form input[type="email"] {
    display: block;
    font-size: 1rem;
    background: transparent;
    color: var(--white_0);
    appearance: none;
    border: 2px solid var(--white_0);
    width: 100%;
    padding: 5px 12px;
}
.comment-respond .comment-form label {
    font-size: .8rem;
    font-weight: 600;
}

/************************/
/* sidebar
/************************/

/************************/
/* footer
/************************/

.footer .container {
    padding: 30px var(--container--column--padding);
}

/* バナーリンク */
.grid {
    width: fit-content;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(var(--banner--grid--column), 1fr);

    li {
        width: var(--banner--grid--width);
        height: var(--banner--grid--height);
    }

    &.flat-banner {
        padding-bottom: 20px;
        grid-template-columns: repeat(var(--flat--banner--grid--column), 1fr);
        gap: var(--flat--banner--grid--gap);

        @media (width > 480px) {
            &:has(> :nth-child(-n+1):last-child) {
                --flat--banner--grid--column: 1;
            }
        }

        @media (width > 896px) {
            &:has(> :nth-child(-n+3):last-child) {
                --flat--banner--grid--column: 3;
            }
            &:has(> :nth-child(-n+2):last-child) {
                --flat--banner--grid--column: 2;
            }
            &:has(> :nth-child(-n+1):last-child) {
                --flat--banner--grid--column: 1;
            }
        }

        li {
            width: var(--flat--banner--grid--width);
            height: var(--flat--banner--grid--height);

            a {
                display: block;
                transition: .2s;

                &:hover {
                    opacity: .8;
                }
            }
        }
    }
}

/* コンテンツメニュー */
.footer .perm {
    margin-bottom: 30px;
}

/* コンセプト */
.concept {
    padding: 30px 10px;
    border-top: solid 1px var(--theme_main);
    text-align: center;
}
.concept .footer-inner {
    width: var(--content--960--width);
    padding: 2% 3% 4%;
    background-color: rgba(240, 226, 227, 0.8);
    box-shadow: 1px 1px 1px rgba(235, 194, 200, 0.3);
    border-radius: 5px;
}
.concept .title {
    margin-bottom: 20px;
    font-size: 2rem;
    font-weight: bold;
    font-family: cursive;
    color: #fff;
}
.concept .info {
    font-size: 10px;
    color: var(--black_2);
}

/* 客引き */
.caution {
    position: relative;
    height: 80px;
}
.caution:before {
    width: 100%;
    height: 80px;
    padding: 15px;
    font-size: 60px;
    box-sizing: border-box;
    color: #0004;
    background: #ff0;
    border-top: 4px dashed #000a;
    border-bottom: 4px dashed #000a;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 0;
    z-index: 0;
}
.caution div {
    color: var(--error_1);
    position: relative;
    text-align: center;
    padding: 5px;
    line-height: 1.2;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-flow: column;
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: -1px;
}
.caution div p:first-of-type {
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0px;
}

/* エンドポイント */
.endpoint .footer-inner {
    padding: 40px 3% 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: nowrap;
    flex-flow: column;
}
.footer-bubble {
    width: min(100%, 400px);
    margin-top: 30px;
    margin-bottom: 30px;
    padding: 20px;
    background: var(--gradation_color_6);
    border-radius: 5px;
    box-shadow: var(--shadow_1);
    text-align: center;
    font-size: .8rem;
    color: var(--black_1);
    position: relative;
}
.footer-bubble figure:not(.frame_1) {
    width: var(--footer--bubble--logo--width);
    height: var(--footer--bubble--logo--height);
    margin: 0 auto;
    filter: brightness(1.15);
}
.footer-bubble .frame_1 {
    background-repeat: no-repeat;
    background-size: cover;
    width: var(--footer--bubble--frame--width);
    height: var(--footer--bubble--frame--height);
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
}
.footer-bubble .frame_1.normal {
    top: calc(-1 * var(--footer--bubble--frame--height));
}
.footer-bubble .frame_1.reverse {
    bottom: calc(-1 * var(--footer--bubble--frame--height));
    transform: rotate(180deg);
}
.footer-bubble address > div[class*="fa-"] {
    color: var(--white_0);
    font-size: 1rem;
    width: 60%;
    margin: 0 auto;
    background: #3b3b3b;
    border: 1px solid #fffb;
    border-radius: 5px;
    position: relative;
}
.footer-bubble address > div[class*="fa-"]::after {
    content: "";
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    position: absolute;
    top: 2px;
    left: 2px;
    right: 0;
    bottom: 0;
    border: 1px solid #fff8;
    border-radius: 3px;
}
.footer-bubble address > div[class*="fa-"] span {
    margin-left: 5px;
}
.directions {
    width: min(100%, 400px);
    text-align: center;
}
.directions a {
    width: 100%;
    height: 40px;
    margin: 10px auto 15px;
    padding: 5px 5px 5px 50px;
    border: 1px solid var(--theme_accent);
    border-radius: 3px;
    color: var(--theme_accent);
    background: var(--white_0);
    box-shadow: var(--shadow_1);
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.directions a::before {
    font-size: 1.2rem;
    width: 40px;
    height: 40px;
    position: absolute;
    color: var(--white_0);
    background: var(--theme_accent);
    top: 0;
    left: -2px;
    z-index: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
.directions p {
    margin-top: 5px;
    font-size: .8rem;
}
.directions em {
    margin-top: 20px;
    font-size: 1.2rem;
    font-style: normal;
    color: var(--theme_sub);
    line-height: 1.4;
    display: block;
    letter-spacing: 1px;
    font-family: 'Cinzel', serif;
    word-break: keep-all;
}
.perm {
    margin: 0 auto;
    width: var(--footer--perm--width);
    height: var(--footer--perm--height);
}

/* フッターメニュー */
.footer-nav {
    margin: 0 auto;
    font-size: .8rem;
    text-align: center;
    color: var(--theme_accent);
}
.footer-nav .footer-inner {
    width: min(100%, 800px);
}
.footer-nav ul {
    padding: 10px 20px;
    display: flex;
    justify-content: flex-end;
}
.footer-nav ul li {
    position: relative;
}
.footer-nav ul li:not(:nth-of-type(1)) {
    padding-left: 20px;
}
.footer-nav ul li:not(:nth-of-type(1))::before {
    content: "";
    border-left: 1px solid var(--theme_marking);
    position: absolute;
    top: 20%;
    left: 10px;
    width: 10px;
    height: 60%;
}
.footer-nav ul li a {
    text-decoration: underline;
}
.footer-nav ul li a:hover {
    text-decoration: none;
}
.footer-nav .signin {
    margin: 10px auto;
    display: block;
}

/* コピーライト */
.copyright {
    font-size: 1rem;
    text-align: center;
    padding-bottom: 30px;
}

/* ボトムナビ */
.bottom-nav {
    padding-bottom: 65px;
    padding-bottom: calc(env(safe-area-inset-bottom) + 65px);
    position: relative;
    right: 0;
    z-index: 200;
}
.bottom-nav-inner {
    width: 100%;
    height: 65px;
    height: calc(env(safe-area-inset-bottom) + 65px);
    margin: 0 auto;
    color: #fff;
    position: fixed;
    bottom: 0;
    right: 0;
    text-align: center;
    box-sizing: border-box;
    transition: transform .8s ease;
    transform: translateY(100%);
}
.bottom-nav-inner > p {
    overflow: hidden;
    height: 15px;
    background: #ccbd99;
    line-height: 15px;
    font-size: 10px;
    color: var(--black_1);
    border-bottom: 1px solid #fff;
}
.bottom-nav-inner nav,
.bottom-nav-inner nav > a,
.bottom-nav-inner .menu-trigger,
.bottom-nav-inner .bottom-menu a {
    height: 50px;
    height: calc(env(safe-area-inset-bottom) + 50px);
}
.bottom-nav-inner nav {
    display: grid;
    grid-template-columns: 50px 1fr 50px;
    position: relative;
}
.bottom-nav-inner nav > a,
.bottom-nav-inner nav .menu-trigger {
    color: #ccbd99;
    background: var(--gradation_color_3);
}
.bottom-nav-inner nav > a::before {
    font-size: 34px;
    display: flex;
    height: 38px;
    justify-content: center;
    align-items: flex-end;
}
.bottom-nav-inner nav > a span {
    font-size: 8px;
    display: block;
    line-height: 1;
}
.bottom-nav-inner .bottom-menu {
    display: flex;
}
.bottom-nav-inner .bottom-menu li {
    width: 100%;
    border-right: 1px solid #fff;
}
.bottom-nav-inner .bottom-menu li:nth-of-type(1) {
    border-left: 1px solid #fff;
}
.bottom-nav-inner .bottom-menu a {
    background: var(--gradation_color_1);
    background-size: var(--gradation_size_1);
    display: flex;
    justify-content: center;
    line-height: 1;
    padding: 1.1rem;
    transition: background-position .4s;
}
.bottom-nav-inner .bottom-menu a:hover {
    background-position: var(--gradation_position_hover_1);
}
.bottom-nav-inner .bottom-menu span {
    margin-left: 5px;
}
.bottom-nav .menu-trigger {
    width: 50px;
    top: 0;
}
.bottom-nav .menu-trigger::after {
    bottom: calc(env(safe-area-inset-bottom) + 6px);
}
.bottom-nav .hamburger-icon {
    margin-bottom: env(safe-area-inset-bottom);
}
.scroll .bottom-nav-inner {
    transform: translateY(0%);
}
.active .bottom-nav {
    right: -30%;
}
.active .bottom-nav .menu-trigger {
    right: 0;
}

/* ページトップ */
.page-top {
    width: 60px;
    height: 60px;
    border-radius: 20px;
    font-size: 2rem;
    background: var(--black_3);
    color: var(--white_0);
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    bottom: 85px;
    right: 20px;
    z-index: 1;
    opacity: 0;
    transition: opacity 2s ease;
}
.scroll .page-top {
    opacity: 1;
}

/* ポップアップ */
.popup {
    position: fixed;
    background: #fff9;
    top: 0;
    left: 0;
    z-index: 9999;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 1s, visibility 0s ease 1s;
    opacity: 0;
    visibility: hidden;
}
.popup.is-show {
    transition-delay: 0s;
    opacity: 1;
    visibility: visible;
}


/*------------------------------------------------------------ */
/*                                                             */
/* Media queries レスポンシブ スマホ タブレット                     */
/*                                                             */
/*------------------------------------------------------------ */

@media screen and (min-width: 481px) {


    /************************/
    /* header
    /************************/

    /************************/
    /* main
    /************************/

    /* 見出し */
    .headline {
        font-size: 4.3vw;
    }
    .headline::after {
        font-size: 1rem;
    }

    /* フロントページ */

    /* 女の子一覧 */
    .girls-collection {
        margin-bottom: 40px;
    }
    .collection-list .collection-body .figure {
        display: block;
    }

    /* スケジュール */
    #li-for-panel-5,
    #li-for-panel-6,
    #li-for-panel-7 {
        display: list-item;
    }

    /************************/
	/* single
	/************************/

    /************************/
    /* footer
    /************************/

    /* コンセプト */
    .concept .info {
        font-size: .8rem;
        color: var(--black_2);
    }

}



/*------------------------------------------------------------ */
/*                                                             */
/* Media queries レスポンシブ PC タブレット                        */
/*                                                             */
/*------------------------------------------------------------ */

@media screen and (min-width: 897px) {

    .flex-col {
        display: flex;
        flex-flow: row;
    }

	/************************/
	/* header
    /************************/

    /* ヘッダー */

    /* sns */
    .header-contact {
        display: block;
        position: absolute;
        right: 56px;
    }
    .header-contact address {
        font-style: normal;
    }
    .header-contact address > a {
        width: auto;
    }
    .header-contact address > a::before {
        font-size: 1.5rem;
        margin-right: 5px;
    }
    .header-contact address > a span,
    .header-contact p {
        display: block;
        line-height: 1.4;
    }
    .header-contact address > a span {
        font-size: 2rem;
    }
    .header-contact p {
        font-size: .9rem;
        text-align: right;
    }

    /* スワイパー共通 */
    .swiper-container {
        overflow: visible;
    }
    .swiper-container .content {
        overflow: hidden;
    }

    /************************/
    /* main
    /************************/

    /* h1ヘッダー画像 */
    .global-header h1 {
        font-size: 1.5rem;
    }
    .global-header figure {
        height: 240px;
    }
    .global-header figure img:nth-of-type(1) {
        width: 300px;
    }

    /* 投稿アイキャッチ */
    .post-image {
        height: var(--post--image--height);
    }
    .post-image:empty {
        display: none;
    }
    .post-image img {
        object-fit: contain;
    }

    /* 見出し */
    .headline {
        font-size: 2.4rem;
    }
    .headline figure {
        width: 100px;
        height: 100px;
    }

    /* ベルト -新着- */
    .news-belt h2 {
        width: 90px;
        font-size: 1rem;
    }

    /* フロントページ */

    /* 投稿一覧 - ブログ- */
    .posts-flex .excerpt {
        -webkit-line-clamp: 3;
    }
    
    /* マップ */
    .access {
        flex-flow: row;
    }
    .access .address,
    .access iframe {
        border-radius: 5px 0 0 5px;
    }

    /* 求人 */
    .layer .table .job {
        padding-bottom: 0;
        display: flex;
    }
    .layer .table .job dt {
        width: 30%;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: 0;
    }
    .layer .table .job dd {
        width: 70%;
    }
    .layer .keywords {
        grid-template-columns: repeat(4, 1fr);
    }

    /* 404 */
    .error404 .global-header h1 {
        font-size: 1.5rem;
    }

    /************************/
    /* single
    /************************/

    /* 投稿 -女の子- */
    .girls-header .appeal {
        display: block;
        position: absolute;
        right: 0;
        top: -100%;
        line-height: 3;
        text-shadow: none;
	}

    /* 投稿 -動画- */
    .video-playback.-s figure,
    .video-playback.-s iframe,
    .video-playback.-s video {
        height: var(--post--image--height);
    }

    /************************/
    /* sidebar
    /************************/

    /* 投稿本文 */
    .post-body {
        padding: 20px 10px;
    }

    /************************/
	/* footer
	/************************/
	
	/* コンテンツメニュー */
	.global-nav-menu {
		grid-template-columns: repeat(6, 1fr);
    }

    /* エンドポイント */
    .endpoint .footer-inner {
        flex-flow: row;
    }
    .directions {
        margin-left: 30px;
    }

    /* フッターメニュー */
    .footer-nav {
        font-size: .9rem;
        margin-top: -20px;
    }
    .footer-nav ul {
        padding-top: 0;
    }

    /* ボトムナビ */
    .bottom-nav {
        display: none;
    }
}


/*------------------------------------------------------------ */
/*                                                             */
/* Media queries レスポンシブ PC (最大width)                      */
/*                                                             */
/*------------------------------------------------------------ */

@media screen and (min-width: 1200px) {


    .related .archive-grid {
        padding: 0;
    }

    .posts-flex .excerpt {
        -webkit-line-clamp: 3;
    }
}
