@charset "utf-8";
/*
　※ margin は top と left のみ指定すること
　※ iconの場合のみ margin-right で指定可能
　※ 共通スタイルは class名の頭に「c--」を付けること

  1.基本フレーム
    アットルール / カスタムプロパティ（CSS変数） / 共通スタイル / ベース / ヘッダー / ショップヘッダー / キャストインフォ / フッター

  2.基本ディテール
    フォント / 改行 / スペーサー / アイコン / ボタン / 絞り込み

  3.UIコンポーネント
    フロート / モーダルダイアログ / 横スクロール / スワイパー / タブ / アコーディオン / フルスクリーン / トースト

  4.コンテンツコンポーネント
    絞り込み検索 / 広告 / ページネーション / パンくず / 送信完了アニメーション

*/
/*#########################################################################################

　1.基本フレーム
   アットルール / カスタムプロパティ（CSS変数） / ベース / 共通スタイル

#########################################################################################*/

/*--------------------------------------

　アットルール,追加リセット

---------------------------------------*/
* {
    overflow-wrap: break-word;
    transition: all .2s ease-out;
}
html {
    font-family: var(--font-jp);
    font-size: var(--font-size-base);
    -webkit-tap-highlight-color: rgba(195, 120, 220, .1);
}
::-webkit-selection {
    background-color: #9A80E3;
    text-shadow: none;
}
::-moz-selection {
    background-color: #9A80E3;
    text-shadow: none;
}
::selection {
    background-color: #9A80E3;
    text-shadow: none;
}
a,
dialog {
    outline: none;
}
a {
    cursor: pointer;
}
a:hover {
    transform: scale(1.05);
}
a:active {
    transform: scale(1);
}
i {
    font-style: normal;
}
p.text {
    line-height: var(--line-l);
    color: var(--color-text);
    font-size: var(--font-size-paragraph);
}
img,
video {
    max-width: 100%;
    height: auto;
    /* PCの右クリック禁止 */
    pointer-events: none;
    /* SPの長押し禁止 */
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-touch-callout: none;
    -moz-user-select: none;
    user-select: none;
}
body {
    height: 100%;
    padding-bottom: 113px;
    overflow-y: auto;
    font-family: var(--font-jp);
    font-weight: normal;
    /*親要素にこれがないと position:sticky; が効きません*/
}
html:has(dialog[open]) {
    overflow: hidden;
}
body:has(dialog[open]) {
    overflow: hidden;
    scrollbar-gutter: stable;
}
.hidden {
    /* Googleと消し方にしてあります */
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    margin: 0;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
    z-index: -1000;
    user-select: none;
}
.datetime {
    display: block;
    color: var(--color-text-sub);
    font-family: var(--font-num);
    font-size: var(--font-size-paragraph);
}

/*--------------------------------------

　カスタムプロパティ（CSS変数）

---------------------------------------*/
:root {
    /*カラースキーム
    color-scheme: light dark;*/
    /* fonts */
    --font-jp: "Noto Sans JP";
    --font-num: Lato;
    --font-en: "Lilita One";
    --font-maru: "Zen Maru Gothic";
    /* font sizes */
    --font-size-title-llll: 64px;
    --font-size-title-lll: 48px;
    --font-size-title-ll: 32px;
    --font-size-title-l: 28px;
    --font-size-title-lm: 24px;
    --font-size-title-mm: 20px;
    --font-size-title-m: 18px;
    --font-size-title-sub: 16px;
    --font-size-base: 15px;
    --font-size-paragraph: 12px;
    --font-size-caption: 10px;
    --font-size-price: 40px;
    --font-size-price_l: 56px;
    /* colors theme */
    --color-primary: #FF46A1;
    --color-primary-sub: #FFA1CC;
    --color-secondary: #9EDCFF;
    --color-link: #3990E0;
    --color-accent: #FFF45E;
    --color-text: #363636;
    --color-text-sub: #898989;
    --color-bg: #FFF;
    /* colors neutral */
    --color-CR1200: #363636;
    --color-CR350: #898989;
    --color-CR160: #CCC;
    --color-CR100: #FFF;
    /* colors fix */
    --color-price: #D10303;
    --color-disable: #D9D9D9;
    --color-checkbox: #75C409;
    --color-radiobutton: #1A73E8;
    --color-text-Sat: #4862C0;
    --color-bg-Sat: #D9E1FF;
    --color-text-Sun: #D058CB;
    --color-bg-Sun: #FDE1FC;
    --color-ok: #52D39D;
    --color-error: #EF6666;
    --color-goldmedal: #ECCB16;
    --color-silvermedal: #C1BFAF;
    --color-bronzmedal: #E08634;
    /* line-height */
    --line-ss: 0.7;
    --line-1: 1;
    --line-s: 1.3;
    --line-m: 1.6;
    --line-l: 2.4;
    /* border-radius */
    --round-s: 8px;
    --round-sm: 16px;
    --round-m: 20px;
    --round-l: 27px;
    --round-ll: 40px;
    --round-50: 50%;
    /* shadow */
    --shadow-float: 0 2px 6px rgba(17, 17, 17, .15);
    --shadow-float-bottom: 0 -2px 6px rgba(17, 17, 17, .15);
    --shadow-text: 0 1px 1px rgba(17, 17, 17, .3);
    /* background */
    --background-top: url(/images/job/top-bg.webp);
    --background-job: repeating-linear-gradient(135deg, #ffedfc, #ffedfc 15px, #ffe5f9 15px, #ffe5f9 30px);
    --background-top-sales: url(/images/index/top-sales-bg.webp);
}

/*--------------------------------------

　営業ページ,プロフィールページ共通スタイル

---------------------------------------*/
/*レイアウト*/
.body-wrapper {
    height: 100%;
    padding-bottom: 96px;
    overflow-y: auto;
    font-family: var(--font-jp);
    font-weight: normal;
}
/* PC表示 */
@media screen and (min-width: 865px) {
.body-wrapper {
    padding-bottom: 0;
}
}
/*　ヘッダー　*/
.s-header {
    position: sticky;
    top: 0;
    width: 100%;
    height: 60px;
    z-index: 1000;
    box-shadow: 0 0 10px rgba(0, 0, 0, .3);
}
.logo a {
    display: block;
}
.logo img {
    width: 70px;
}
.shop_link {
    display: flex;
    border-radius: var(--round-s);
}
.shop_link li a {
    height: 32px;
    line-height: var(--line-1);
    padding: 4px 12px;
    border: solid 1px var(--color-CR160);
    color: var(--color-CR350);
    font-size: var(--font-size-caption);
}
.shop_link li:nth-child(1) a {
    border-radius: var(--round-s) 0 0 var(--round-s);
    border-right: none;
}
.shop_link li:nth-last-child(1) a {
    border-radius: 0 var(--round-s) var(--round-s) 0;
    border-left: none;
}
.shop_link li a.current {
    border: solid 1px var(--color-primary);
    background: var(--color-primary);
    color: var(--color-CR100);
}
/* フッター */
#footer {
    width: 100%;
    background: var(--color-CR1200);
    text-align: center;
}
#footer .footer_content {
    width: min(100%, 1000px);
    margin: 0 auto;
    padding: 40px 24px;
}
#footer .footer_content .logo img {
    width: 90px;
}
#footer .footer_content .logo + .c--bt-link {
    margin-top: 24px;
}
#footer .footer_content .footer_sns {
    margin-top: 24px;
}
#footer .footer_content .footer_sns a {
    display: inline-block;
}
#footer .footer_content .footer_sns a + a {
    margin-left: 24px;
}
#footer .footer_content small {
    display: inline-block;
    margin-top: 32px;
    padding: 0px;
    color: var(--color-CR100);
    line-height: var(--line-1);
}
#footer .footer-btn {
    position: fixed;
    bottom: 0%;
    z-index: 1;
    width: 100%;
    margin: 0 auto;
    padding: 24px 0;
    background-color: rgba(54, 54, 54, .9);
}
/* PC表示 */
@media screen and (min-width: 865px) {
#footer .footer-content {
    width: min(100%, 1000px);
    margin: 0 auto;
    padding: 40px 24px;
}
#footer .footer-btn {
    display: none;
}
}
/* PC表示 */
@media screen and (min-width: 1000px) {
.footer-content {
    width: min(100%, 1000px);
    margin: 0 auto;
    padding: 40px 0px;
}
}
/* 見出し */
.s-ttl-b {
    position: relative;
    color: var(--color-primary);
    font-family: var(--font-en);
    font-size: var(--font-size-title-ll);
    font-weight: bold;
    -webkit-text-stroke: 6px var(--color-CR1200);
    line-height:var(--line-1);
}
.s-ttl-b.crw {
    position: relative;
    color: var(--color-primary);
    font-family: var(--font-en);
    font-size: var(--font-size-title-ll);
    font-weight: bold;
    -webkit-text-stroke: 6px var(--color-CR100);
    line-height: var(--line-1);
}
.s-ttl-b.cry {
    position: relative;
    color: var(--color-accent);
    font-family: var(--font-en);
    font-size: var(--font-size-title-ll);
    font-weight: bold;
    -webkit-text-stroke: 6px var(--color-CR1200);
    line-height: var(--line-1);
}
.not-text-stroke {
    position: absolute;
    top: 0;
    left: 50%;
    width:100%;
    transform: translateX(-50%);
    -webkit-text-stroke: 0px;
    z-index: 1;
}
.s-ttl-sub {
    display: inline-block;
    margin-top: 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-primary);
    font-family: var(--font-jp);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    line-height: var(--line-1);
}
.s-ttl-sub.prf {
    display: inline-block;
    margin-left:0;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-primary);
    font-family: var(--font-jp);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    line-height: var(--line-1);
}
.p-ttl-sub {
    display: inline-block;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-primary);
    font-family: var(--font-jp);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    line-height: var(--line-1);
}
.s-topic {
    text-align: center;
}

.p-topic {
    text-align: center;
}

/* PC表示 */
@media screen and (min-width: 865px) {
.s-ttl-b {
    color: var(--color-primary);
    font-family: var(--font-en);
    font-size: var(--font-size-title-llll);
    font-weight: bold;
    -webkit-text-stroke: 8px var(--color-CR1200);
}
.s-ttl-b.crw {
    color: var(--color-primary);
    font-family: var(--font-en);
    font-size: var(--font-size-title-llll);
    font-weight: bold;
    -webkit-text-stroke: 8px var(--color-CR100);
}
.s-ttl-b.cry {
    color: var(--color-accent);
    font-family: var(--font-en);
    font-size: var(--font-size-title-llll);
    font-weight: bold;
    -webkit-text-stroke: 8px var(--color-CR1200);
}
.s-topic {
    display: flex;
    align-items: end;
    max-width: 1000px;
    margin: 0 auto;
    text-align: left;
}
.s-ttl-sub {
    margin-left: 16px;
}
.p-ttl-sub {
    display: inline-block;
    margin-top:16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--color-primary);
    font-family: var(--font-jp);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
}
}
/* テーブルイベント */
.s--table_event {
    position:absolute;
    top:0;
    width: 100%;
    height:100%;
    table-layout: auto;
    padding: 0 8px;
    border: solid 1px var(--color-text);
    border-collapse: separate;
    border-spacing: 0 8px;
    background: var(--color-primary);
    color: var(--color-text);
    font-family: var(--font-jp);
    font-weight: normal;
    font-size: var(--font-size-paragraph);
}
.s-table-box {
    position:relative;
    height: 440px;
    margin-top: 24px;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
}
.s--table_event th {
    width: 32%;
    padding: 8px 16px;
    border: solid 1px var(--color-text);
    color: var(--color-CR1200);
    font-weight: normal;
    vertical-align: middle;
    font-size: var(--font-size-paragraph);
    text-align: center;
    line-height:var(--line-1);
}
.s--table_event td {
    border: solid 1px var(--color-text);
    border-left: none;
    background: var(--color-CR100);
    color: var(--color-CR1200);
    font-size: var(--font-size-title-sub);
    vertical-align: middle;
    line-height:var(--line-1);
}
.s--table_event td a {
    display:block;
    padding:16px;
}
.s--table_event td a:nth-child(2){
    border-top:dotted 1px var(--color-CR1200);
}
.s--table_event td a:hover {
    transform: none;
}
.th-saturday {
    background:var(--color-secondary);
}
.th-sunday {
    background: var(--color-primary-sub);
}
.th-weekdays {
    background: var(--color-CR160);
}

/* PC表示 */
@media screen and (min-width: 865px) {
.s-table-box {
    width: 100%;
    height: 500px;
    margin: 0 0 0 24px;
}
.s--table_event th {
    width: 32%;
    padding: 8px 16px;
    border: solid 1px var(--color-text);
    color: var(--color-CR1200);
    font-weight: normal;
    vertical-align: middle;
    font-size: var(--font-size-base);
    text-align: center;
}
.th-weekdays {
    background: var(--color-CR160);
    font-size:var(--font-size-base);
}
.th-saturday {
    background: var(--color-secondary);
    font-size: var(--font-size-base);
}
.th-sunday {
    background: var(--color-primary-sub);
    font-size: var(--font-size-base);
}
}

/* テーブルプロフィール */
.p--table_schedule {
    width: 100%;
    table-layout: auto;
    border-collapse: separate;
    border-spacing: 0 8px;
    color: var(--color-text);
    font-family: var(--font-jp);
    font-weight: normal;
    font-size: var(--font-size-paragraph);
}
.p--table_schedule th {
    width: 32%;
    padding: 8px 16px;
    border: solid 1px var(--color-text);
    color: var(--color-CR1200);
    font-weight: normal;
    vertical-align: middle;
    text-align: center;
    line-height:var(--line-1);
}
.p--table_schedule td {
    padding: 16px;
    border: solid 1px var(--color-text);
    border-left: none;
    background: var(--color-CR100);
    color: var(--color-CR1200);
    font-size: var(--font-size-title-sub);
    vertical-align: middle;
    line-height:var(--line-1);
}
/* PC表示 */
@media screen and (min-width: 865px) {
.p--table_schedule {
    width: 100%;
    max-width: 865px;
    table-layout: auto;
    margin: 24px auto 0;
    border-collapse: separate;
    border-spacing: 0 8px;
    color: var(--color-text);
    font-family: var(--font-jp);
    font-weight: normal;
    font-size: var(--font-size-paragraph);
}
}

/*ボタン*/
.c--bt_cv {
    width: 258px;
    max-width: 100%;
    display: inline-block;
    padding: 16px 0;
    border: solid 1px var(--color-CR160);
    border-radius: var(--round-s);
    background: var(--color-CR100);
    font-size: var(--font-size-paragraph);
    line-height: var(--line-1);
}
.c--bt {
    display: block;
    width: 100%;
    max-width: 180px;
    margin: 16px auto 0;
    padding: 16px 0;
    border: solid 1px var(--color-CR160);
    border-radius: var(--round-s);
    background: var(--color-CR100);
    font-size: var(--font-size-paragraph);
    text-align: center;
    line-height: var(--line-1);
}
.c--bt.modal-close {
    position: static;
    width:100%;
    background:var(--color-CR100);
}
.c--bt-link {
    display: inline-block;
    width: 318px;
    max-width: 100%;
    padding: 16px 0;
    border: solid 1px var(--color-CR1200);
    border-radius: var(--round-s);
    background: var(--color-CR100);
    font-size: var(--font-size-paragraph);
    text-align: center;
    line-height: var(--line-1);
}
.c--bt-link.share {
    border: solid 1px var(--color-CR100);
    background: var(--color-primary);
    color: var(--color-CR100);
}
.c--bt-link.inquiry {
    width: 200px;
    max-width: 100%;
    border: solid 2px var(--color-accent);
    border-radius: var(--round-ll);
    background: var(--color-link);
    color: var(--color-CR100);
}
.c--bt_container {
    text-align: center;
    padding-top: 16px;
}
.c--bt_container_more {
    max-width:318px;
    margin:32px auto 0 auto;
    text-align:center;
}
.s--bt_container {
    text-align: center;
}
.c--bt_lead {
    display: inline-block;
    padding: 8px 56px 10px;
    border: solid 2px var(--color-text);
    border-radius: var(--round-ll);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: var(--font-size-base);
    font-weight: bold;
}
.c--bt_lead:hover {
    opacity: 1.0;
}
.c--bt-box {
    position: relative;
    width: 270px;
    margin: 0 auto;
    opacity: 1.0;
    z-index: 1;
}
.c--bt_lead2 {
    display: inline-block;
    position: absolute;
    bottom: -6%;
    left: 2%;
    padding: 8px 56px 10px;
    border: solid 2px var(--color-text);
    border-radius: var(--round-ll);
    background: linear-gradient(90deg, #97D9FF, #BC98FC, #FF93E7);
    z-index: -1;
}
.c--bt_lead span {
    display: block;
    color: var(--color-primary);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    text-decoration: underline;
    /* 下線 */
    text-decoration-thickness: 5px;
    /* 線の太さ */
    text-decoration-color: var(--color-accent);
    /* 線の色 */
    text-underline-offset: -0.2em;
    /* 線の位置。テキストに重なるようにやや上部にする */
    text-decoration-skip-ink: none;
    /* 下線と文字列が重なる部分でも下線が省略されない（線が途切れない） */
}
.c--bt_lead span::after {
    content: "夜3,000円～";
    display: inline-block;
    margin-left: 8px;
    color: var(--color-primary);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    text-decoration: underline;
    /* 下線 */
    text-decoration-thickness: 5px;
    /* 線の太さ */
    text-decoration-color: var(--color-accent);
    /* 線の色 */
    text-underline-offset: -0.2em;
    /* 線の位置。テキストに重なるようにやや上部にする */
    text-decoration-skip-ink: none;
    /* 下線と文字列が重なる部分でも下線が省略されない（線が途切れない） */
}
.c--bt_lead2 span {
    display: block;
    color: var(--color-primary);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    text-decoration: underline;
    /* 下線 */
    text-decoration-thickness: 5px;
    /* 線の太さ */
    text-decoration-color: var(--color-accent);
    /* 線の色 */
    text-underline-offset: -0.2em;
    /* 線の位置。テキストに重なるようにやや上部にする */
    text-decoration-skip-ink: none;
    /* 下線と文字列が重なる部分でも下線が省略されない（線が途切れない） */
}
.c--bt_lead2 span::after {
    content: "夜3,000円～";
    display: inline-block;
    margin-left: 8px;
    color: var(--color-primary);
    font-size: var(--font-size-paragraph);
    font-weight: bold;
    text-decoration: underline;
    /* 下線 */
    text-decoration-thickness: 5px;
    /* 線の太さ */
    text-decoration-color: var(--color-accent);
    /* 線の色 */
    text-underline-offset: -0.2em;
    /* 線の位置。テキストに重なるようにやや上部にする */
    text-decoration-skip-ink: none;
    /* 下線と文字列が重なる部分でも下線が省略されない（線が途切れない） */
}

/*吹き出し*/
.c-ttl {
    position: relative;
    display: inline-block;
    padding: 0;
    border: solid 2px var(--color-text);
    border-radius: var(--round-m);
    background: var(--color-accent);
    font-weight: bold;
}
.c-ttl h2 {
    position: relative;
    top: -3px;
    left: -3px;
    padding: 16px 24px 18px 16px;
    border: solid 2px var(--color-text);
    border-radius: var(--round-m);
    background: var(--color-bg);
    font-size: var(--font-size-title-m);
    z-index: 1;
}
/*吹き出し*/
.c-ttl:before,
.c-ttl:after,
.c-ttl h2:before,
.c-ttl h2:after {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    border: solid transparent;
}
.c-ttl:before,
.c-ttl h2::before {
    top: 100%;
    right: 30px;
    border-top-width: 10px;
    border-bottom-width: 10px;
    border-left-width: 7px;
    border-right-width: 7px;
    border-top-color: var(--color-text);
}
.c-ttl:after,
.c-ttl h2:after {
    top: calc(100% - 2px);
    right: 31px;
    border-top-width: 10px;
    border-bottom-width: 10px;
    border-left-width: 6px;
    border-right-width: 6px;
    border-top-color: var(--color-accent);
}
.c-ttl h2:after {
    border-top-color: var(--color-bg);
}
.c-ttl h2 i {
    display: block;
    color: var(--color-primary);
    font-family: var(--font-en);
    font-size: var(--font-size-title-sub);
    font-style: normal;
    font-weight: normal;
    line-height:var(--line-1);
}
.c-ttl h2 i + span {
    display: block;
    margin-top: 4px;
    line-height: var(--line-1);
}

/*--------------------------------------

 404エラー

---------------------------------------*/
.error_wrapper {
    padding: 0;
    height: 50vh;
    min-height: 500px;
    position: relative;
    background: #f7e2ed;
}
.error_wrapper > div {
    width: 100%;
    max-width: 600px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    border-radius: 8px;
    padding: 24px;
}
.error_wrapper > div a {
    width: 100%;
    margin: 48px 0 0 0;
    max-width: 600px;
}
.error_wrapper h1 + p {
    margin-top: 24px;
}
@media(min-width: 865px) {
.error_wrapper h1 + p {
    margin-top: 24px;
}
}

/*--------------------------------------

　ベース

---------------------------------------*/
body {
    line-height: var(--line-m);
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    background: var(--color-text);
    color: var(--color-text);
    font-size: var(--font-size-base-sp);
}

/* タブレット表示 */
@media screen and (min-width: 600px) {
body {
    font-size: var(--font-size-base);
}
}

@keyframes Opacity1 {
from {
    opacity: 0;
    margin-bottom: -26px;
}
to {
    opacity: 1;
    margin-bottom: -16px;
}
}

@keyframes Opacity0 {
from {
    opacity: inherit;
    margin-bottom: -16px;
}
to {
    opacity: 0;
    margin-bottom: -26px;
    z-index: -1;
}
}
.sns {
    width: 100%;
    background: var(--color-text);
    color: var(--color-bg);
    padding: 24px 24px 0;
    text-align: center;
}
.sns .bt_share {
    display: inline-block;
    width: min(60%, 120px);
    margin-left: 16px;
    padding: 4px 8px;
    border: solid 1px var(--color-line);
    border-radius: var(--round-s);
    background: var(--color-bg);
    color: var(--color-text-sub);
    font-size: var(--font-size-paragraph);
    text-align: center;
}
.sns .bt_share .icon_svg {
    margin: -3px 0 0 -5px;
    width: 16px;
    height: 16px;
}
.sns .bt_share .icon_svg svg {
    fill: var(--color-text-sub);
}
.sns .modal-harf,
.sns.modal-harf {
    text-align: left;
}
.sns .modal-bt-container {
    margin: 0;
}
.way {
    display: flex;
    width: 100%;
}
.way li {
    flex: 1 0 auto;
    flex-basis: 25%;
    font-size: var(--font-size-caption);
    text-align: center;
}
.way li .icon_svg,
.way li .icon_img {
    width: 48px;
    height: 48px;
}

/*#########################################################################################

  2.基本ディテール
    フォント / 改行 / スペーサー / アイコン / 絞り込み / テキスト / ラインハイト

#########################################################################################*/
/*--------------------------------------

　アイコン

---------------------------------------*/
.svg_sprite {
    display: none;
}
svg {
    width: 100%;
    height: 100%;
}
.logo_svg {
    display: inline-block;
    width: 8rem;
    height: 1.875rem;
    vertical-align: middle;
}
.icon_svg,
.icon_img {
    position: relative;
    display: inline-block;
    line-height: var(--line-1);
    width: 64px;
    height: 64px;
    vertical-align: middle;
}
.icon_img img {
    width: 100%;
    height: auto;
}
.icon_css {
    position: relative;
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: middle;
}

/*テキスト*/
.c--title-l {
    color: var(--color-CR100);
    font-size: var(--font-size-base);
    font-weight: bold;
    line-height: var(--line-s);
    text-align: center;
    text-shadow: 2px 2px 4px rgba(54, 54, 54, .8);
}

/* PC表示 */
@media screen and (min-width: 865px) {
.c--title-l {
    color: var(--color-CR100);
    font-size: var(--font-size-title-l);
    font-weight: bold;
    line-height: var(--line-s);
    text-align: center;
    text-shadow: 4px 4px 5px rgba(54, 54, 54, .8);
    }
}

.c--title-m {
/*地方トップ、店舗トップなどダッシュボード系のぺージは .c--title-m を使ってください*/
    font-family: var(--font-jp);
    font-size: var(--font-size-title-m);
    font-weight: bold;
    line-height: var(--line-m);
}
.c--title-s {
    font-size: var(--font-size-paragraph);
    font-weight: bold;
}
.c--title-ss {
    font-size: var(--font-size-paragraph);
    font-weight: normal;
}
.c--text + * {
    margin-top: 24px;
}
.c--text2 + * {
    margin-top: 16px;
}
.c--text3 + * {
    margin-top: 32px;
}
.c--text4 + * {
    margin-top: 8px;
}
.c--font-jp {
    font-family: var(--font-jp);
}
.c--font-en {
    font-family: var(--font-en);
}
.c--font-num {
    font-family: var(--font-num);
}

/*ラインハイト*/
.c--height-1 {
    line-height:var(--line-1);
}
.c--height-s {
    line-height:var(--line-s);
}
.c--height-m {
    line-height:var(--line-m);
}


/*#########################################################################################

  3.UIコンポーネント
    フロート / モーダルダイアログ / 横スクロール / スワイパー / アコーディオン / トースト

#########################################################################################*/


/*--------------------------------------

　モーダルダイアログ（画面中央・ハーフモーダル・フルスクリーン）

---------------------------------------*/
.modal,
.modal::backdrop {
    transition: all .3s ease-out;
}
.modal {
    width: clamp(248px, calc(100% - 48px), 480px);
    padding: 0;
    border-radius: 4px;
    background: var(--color-CR100);
    color: var(--color-text);
    box-shadow: 0 4px 24px 0 rgba(0, 0, 0, .4);
    scrollbar-width: none;
}
.modalInner {
    position: relative;
    padding: 24px;
}
.modal::-webkit-scrollbar {
    display: none;
}
.modal::backdrop {
    background: rgba(17, 17, 17, .8);
    backdrop-filter: blur(3px);
}
.modal .modal-bt-container {
    display: flex;
    gap: 16px;
}

/*アニメーション*/
.modal.hideStyle-open {
    transform: translate(0, 16px);
    opacity: 0;
}
.modal.hideStyle-open::backdrop {
    opacity: 0;
}
.modal.hideStyle-close {
    transform: translate(0, 0) scale(1.02);
    opacity: 0;
}
.modal.hideStyle-close::backdrop {
    opacity: 0;
}

/*アイコン用上書き*/
.modal-harf {
    inset: auto 0 0;
    width: 100%;
    max-width: 100%;
    margin: 0;
    border-radius: 16px 16px 0 0;
}
.modal-harf::before,
.modal-harf::after {
    content: "";
    display: block;
    width: 100%;
    height: 32px;
    position: sticky;
    position: -webkit-sticky;
    top: 0;
    left: 0;
    background:var(--color-CR100);
    z-index: 1;
}
.modal-harf::after {
    top: auto;
    bottom: 0;
    height: 56px;
    background: linear-gradient(to bottom, rgba(255,255,255, 0) 0, rgba(255,255,255, 1) 70%);
}
.modal-harf.modal-comment {
    width: 100%;
    max-width: 100%;
    height: 96vh;
    max-height: 96vh;
    padding: 0 0 56px 0;
}
.modal-harf.modal-comment::after {
    height: 0;
}
.modal-harf .close-icon {
    top: -8px; /*上下のグラデーション分 (=16px*) 引く*/
}
.modal-harf .modalInner {
    position: relative;
    padding: 0 24px; /*（検索など）高さが100％ある場合は、内包されるものに padding-bottom: 80px; を付与し下部スペースが合計で(120px-16px)になるようにする*/
}
.modal-harf.hideStyle-close {
    transform: translate(0, 16px) scale(1);
    opacity: 0;
}
.modal-harf-subttl {
    font-size: var(--font-size-base)
}
.modal-harf .close-icon {
    position: absolute;
    top: -32px;
    left: 0;
    display: inline-block;
    width: 100%;
    height: 32px;
    margin: 0;
    border: none;
}
.modal-harf .close-icon::after {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    content: "";
    width: 80px;
    height: 4px;
    background: var(--color-text-sub);
    border-radius: 4px;
    z-index: 1;
    transform: translate(-50%,-50%);
}

/* モーダルアプライ */
#modal_apply h3 {
    text-align:center;
}
#modal_apply .modal-discription {
    margin-top: 8px;
    font-size: var(--font-size-paragraph);
    text-align:center;
}
#modal_apply ul {
    padding: 0 16px;
}
#modal_apply ul li a:not(.c--bt_cv) {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    max-width: 300px;
    margin: 24px auto 0 auto;
    height: 60px;
}
#modal_apply ul li a .icon_svg-m {
    width: 40px;
}
.apply-box {
    margin-left: 16px;
}
.apply-box p {
    color: var(--color-link);
    font-size: var(--font-size-title-m);
    font-weight: bold;
}
.apply-box.mail p {
    font-size: var(--font-size-paragraph);
}

/* ハンバーガーメニュー */
.s-header-content {
    width: 100%;
    height: 60px;
    background-color: var(--color-bg);
    padding: 16px;
    display: flex;
    /*justify-content: space-between;*/
    align-items: center;
    column-gap: 16px;
    position: relative;
}
.gnavi__pc-style {
    margin: 0 0 0 auto;
}
.gnavi__pc-style ul {
    display: flex;
    justify-content: space-between;
}
.gnavi__pc-style ul li:not(:first-of-type) {
    margin-left: 10px;
}
.gnavi__pc-style ul li a {
    display: inline-block;
    font-size: var(--font-size-caption);
    line-height: var(--line-1);
}
.cast-btn {
    margin-right: 8px;
    font-weight: bold;
    color: var(--color-primary);
}
.cast-btn:hover {
    transform: scale(1.05);
}

/*ここから下がハンバーガーメニューのスタイル*/
.gnavi__sp-style {
    display: none;
}
.s-nav-wrapper {
    display: none;
}

/* PC表示 */
@media screen and (max-width: 1280px) {
.gnavi__pc-style {
    display: none;
}
.gnavi__sp-style {
    display: block;
}
.s-nav-wrapper {
    display: block;
}

/*メニューボタン　展開前*/
.menu-btn {
    display: block;
    position: fixed;
    z-index: 3;
    right: 16px;
    top: 10px;
    width: 40px;
    height: 40px;
    padding: 8px;
    border-radius: var(--round-50);
    background: var(--color-bg);
    cursor: pointer;
    text-align: center;
}
.menu-btn span {
    display: block;
    position: absolute;
    width: 20px;
    height: 2px;
    background: var(--color-CR1200);
    transition: 0.3s ease-in-out;
}
.menu-btn span:nth-of-type(1) {
    top: 10px;
}
.menu-btn span:nth-of-type(2) {
    top: 20px;
}
.menu-btn span:nth-of-type(3) {
    top: 30px;
}

/*メニューボタン　展開後*/
.menu-btn.active span:nth-child(1) {
    top: 50%;
    left:25%;
    background: var(--color-CR1200);
    transform: rotate(-45deg);
}

.menu-btn.active span:nth-child(2),
.menu-btn.active span:nth-child(3) {
    top: 50%;
    left: 25%;
    background: var(--color-CR1200);
    transform: rotate(45deg);
}

/*スマホ用のメニュー*/
.s-nav-wrapper {
    position: fixed;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100vh;
    background-color: rgba(54,54,54,0.7);
    transition: opacity .6s ease, visibility .6s ease;
    z-index: 1;
}
.gnavi__sp-style {
    display: flex;
    position: fixed;
    top: 0;
    left: -100%;
    width: 60%;
    height: 100vh;
    background-color: var(--color-primary-sub);
    color: var(--color-CR1200);
    text-align: center;
    z-index: 2;
}
.gnavi__sp-style ul {
    width: 100%;
    max-height:100vh;
    margin: 0 auto;
    padding: 32px;
    text-align:center;
    overflow-y:scroll;
}
.gnavi__sp-style ul li {
    width: 100%;
    padding: 0;
    transition: .2s all;
    list-style-type: none;
    line-height:15px;
}
.gnavi__sp-style ul li:last-of-type {
    padding-bottom: 0;
}
.gnavi__sp-style ul li:active:nth-child(-n+12) {
    color: var(--color-CR100);
}
.gnavi__sp-style ul li a {
    display: inline-block;
    position:relative;
    font-weight: normal;
    text-decoration: none;
}
.gnavi__sp-style.active {
    left: 0;
    opacity: 1;
}
.s-nav-wrapper.active {
    left: 0;
    opacity: 1;
}
.nav--items_last_btn{
    margin-bottom:32px;
}
.cast-btn-sp {
    display: inline-block;
    padding: 8px 16px;
    border-radius: var(--round-m);
    background: var(--color-primary);
    color: var(--color-CR100);
}
.cast-btn-sp:hover {
    display:inline-block;
    padding: 8px 16px;
    border-radius: var(--round-m);
    background: var(--color-CR1200);
    color: var(--color-primary);
}
}

/* カレント表示 */
.gnavi__pc-style ul li.current a,
.gnavi__pc-style ul li a:hover {
    color: var(--color-primary);
    font-weight: bold;
}

/* スワイパ― */
.swiper-wrapper {
    display: flex;
    padding-bottom: 48px;
}
.Swiper--openingcast .swiper-slide {
    height: auto;
    padding: 16px 32px 24px;
    border: solid 2px var(--color-text);
    border-radius: var(--round-m);
    background: var(--color-bg);
}
.swiper-wrapper .swiper-slide a {
    display: block;
    height: 100%;
}
.Swiper--openingcast .swiper-slide img {
    display: block;
    width: 160px;
    margin: 0 auto;
}
.swiper-slide_inner {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* スワイパ― ぺージネーション*/
.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    left: 50%;
    display: inline-block;
    width: 100%;
    padding: 4px 8px;
    border-radius: var(--round-sm);
    color: var(--color-CR160);
    font-family: var(--font-num);
    font-size: var(--font-size-paragraph);
    font-weight: normal;
}
#cast.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    position: absolute;
    left: 50%;
    display: inline-block;
    width: 100%;
    padding: 4px 8px;
    border-radius: var(--round-sm);
    color: var(--color-CR160);
    font-family: var(--font-num);
    font-size: var(--font-size-paragraph);
    font-weight: normal;
    transform: translateX(-50%);
}
span.swiper-pagination-bullet {
    background-color: var(--color-primary);
}