@charset "utf-8";

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{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}body{width:100%;min-width:320px;min-height:800px;overflow-x:hidden;text-align:center;-webkit-text-size-adjust:100%;font-feature-settings:"palt"}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,main{display:block}h1,h2,h3,h4,h5,h6,th{font-weight:400}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}a{color:#3e4349;margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;text-decoration:none}p{max-height:999999px}ins{background-color:#ff9;color:#3e4349;text-decoration:none}mark{background-color:#ff9;color:#3e4349;font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:bottom}input,select{vertical-align:middle}

/****************************************

 common (共通スタイル)

****************************************/
:root {
	--color-main1: #78CE29;
	--color-main2: #3EA438;
	--color-main3: #F89C1E;
	--color-main4: #F46882;
	--color-main5: #ffff60;

	--black: #3e4940;
	--white: #FAFAFA;
	--gray1: #ccc;

	--grad-color1: #99ed99 0%, #f9f157 100%;

	--bg-color1: #F1FCE5;
	--bg-color2: #C9E89B;

	--border-color1: #C9E89B;
	--border-color2: #fcd99d;

	--filter-white: invert(98%) sepia(8%) saturate(7%) hue-rotate(212deg) brightness(100%) contrast(103%);

	--font-family1: "Caprasimo", serif;
}
body {
	-webkit-animation: fadeIn 2s ease 0s 1 normal;
	animation: fadeIn 2s ease 0s 1 normal;
	color: var(--black);
	background: url(../images/bg_body.webp) center top / 75% repeat fixed ,#f2fbe4;
	font-size: 0.875rem;
	font-weight: 400;
	/*font-family: Garamond , "Times New Roman", "游明朝" , "Yu Mincho" , "游明朝体" , "YuMincho" , "ヒラギノ明朝 Pro W3" , "Hiragino Mincho Pro" , "HiraMinProN-W3" , "HGS明朝E" , "ＭＳ Ｐ明朝" , "MS PMincho" , serif;*/
	/* カンプ（ヒラギノ角ゴ）に合わせてヒラギノを優先 */
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Hiragino Kaku Gothic ProN", "Helvetica Neue", Helvetica, Arial, Roboto, "Droid Sans", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "Meiryo UI", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
	line-height: 1.75;/* 変更 */
}
@keyframes fadeIn {
	0% { opacity: 0.1;}
	100% { opacity: 1;}
}
@-webkit-keyframes fadeIn {
	0% { opacity: 0.1;}
	100% { opacity: 1;}
}

/*PC版769pxまでSP版786px〜*/
@media screen and (min-width: 769px) {
	.sp{
		display: none !important;
	}
}
@media screen and (max-width: 768px) {
	.pc{
		display: none !important;
	}
}

.inner {
	width: 95%;
	max-width: 1000px;
	margin: 0 auto;
}
.inner1200{
	width: 95%;
	max-width: 1200px;
	margin: 0 auto;
}
.inner1080{
	width: 95%;
	max-width: 1080px;
	margin: 0 auto;
}
.inner800{
	width: 95%;
	max-width: 800px;
	margin: 0 auto;
}
.inner640{
	width: 95%;
	max-width: 640px;
	margin: 0 auto;
}
/*imgタグに下記クラスを付けることで、はみ出し防止！！！*/
.inner_img{
	max-width: 100%;
}
a, a:hover{
	color: #3e4349;
}
main{
	margin: 0 auto;
	max-width: 1920px;
	width: 100%;
	overflow-x: hidden;
}
img{
	max-width: 100%;
	height: auto;
}
/* h1{
	font-size: 11px;
}
h2 {
	margin-bottom: 10px;
}
h3{
	text-align: left;
	font-weight: 700;
	font-size: 16px;
	background: var(--white);
	padding-left: 10px;
	border-left: 4px solid #999;
	margin-bottom: 10px;
} */

/* フォーカスイン*/
.focusin{
	opacity: 0;transform : translate(0, 100px);
	transition : all 1.5s;
}
.focusin.on {
	opacity : 1;
	transform : translate(0, 0);
}

/*********** 文字色 ***********/
.atten_01, .atten_01 a{color: #fd496b;}
.atten_02, .atten_02 a{color: #ffff00;}
.atten_03, .atten_03 a{color: #0000ff;}
.atten_04, .atten_04 a{color: #ff0000;}

/*********** 背景色 ***********/
.bg_01{
	background:#ffff00;
	display: inline;
	padding: 3px 5px;
}
.bg_02{
	background:#00d8d1;
	display: inline;
	padding: 3px 5px;
}
.bg_03{
	background:#333333;
	color: #999;
	display: inline;
	padding: 3px 5px;
}

/*********** マージン ***********/
.mb_10{margin-bottom: 10px;}
.mb_16{margin-bottom: 16px;}
.mb_20{margin-bottom: 20px;}
.mb_24{margin-bottom: 24px;}
.mb_30{margin-bottom: 30px;}
.mb_40{margin-bottom: 40px;}
.mb_64{margin-bottom: 64px;}

/*********** 文字寄せ ***********/
.center{text-align: center;}
.left{text-align: left;}
.right{text-align: right;}

/*********** フォントサイズ ***********/
.fs_ss{font-size: 0.75em;}
.fs_s{font-size: 0.85em;}
.fs_13em{font-size: 1.3em;}
.fs_15em{font-size: 1.5em;}

/*********** フォントウエイト ***********/
.fw_bold{font-weight: 900;}

/*********** スクリーンリーダー用 ***********/
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border-width: 0;
}

/*********** リンクhoverアクション ***********/
.link_act_01{
	opacity: 1;
	transition: filter 0.4s ease;
}
.link_act_01:hover{
	filter: brightness(1.1);
}

/*********** table設定 ***********/
/*table01*/
.table_01 {
	width: 100%;
	border-spacing: 0;
	text-align: left;
}
.table_01 th, .table_01 td {
	padding: 8px 5px;
	border-bottom: 1px dashed var(--border-color1);
}
.table_01 th {
	width: 35%;
	color: var(--color-main2);
	font-weight: bold;
	vertical-align: middle;
}
@media screen and (max-width: 768px) {
	.table_01 th, .table_01 td {
		display: block;
		width: 100%;
	}
	.table_01 td {
		border-bottom: none;
	}
}

/*table02*/
.table_02 {
	width: 100%;
	border-left: 1px solid #eee;
	border-top: 1px solid #eee;
	border-spacing: 0;
	text-align: left;
}
.table_02 th, .table_02 td {
	padding: 5px;
	border: 1px solid #eee;
}
.table_02 th {
	background: #999;
	color: var(--white);
	vertical-align: top;
	font-size: 12px;
	text-align: center;
}
.table_02 td {
	text-align: center;
}

/*table_form*/
.table_form{
	width: 100%;
	margin-inline: auto;
	margin-bottom: 40px;
}
.table_form th,
.table_form td{
	display: block;
	width: 100%;
	padding: 0 4px 16px;
	text-align: left;
	border-bottom: 1px dashed var(--border-color1);
}
.table_form th {
	padding-top: 16px;
	border: none;
	font-size: 1rem;
	font-weight: bold;
	color: var(--color-main2);
	line-height: 1.5;
}

/* テキストボックス */
.txt_box_01 {
	padding: clamp(24px, 4vw, 40px);
	background: var(--white);
	border: 2px solid var(--border-color1);
	border-radius: 24px;
}

/* ページネーション設定 */
.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}
.pagination li a {
  display: flex;
	justify-content: center;
	align-items: center;
  width: 40px;
  height: 40px;
	border-radius: 100px;
  text-align: center;
  vertical-align: middle;
	border: 1px solid;
	background: var(--white);
	color: var(--color-main2);
}
.pagination li.active a {
  background: var(--color-main2);
	border-color: var(--color-main2);
	color: var(--white);
}
.pagination .btn {
	position: relative;
	width: 100px;
	padding: 0.5em;
	margin: 0;
}
.pagination .btn::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	width: 12px;
	height: 10px;
	background: url(../images/icon_arrow.svg) center center / contain no-repeat;
	filter: var(--filter-white);
}
.pagination .btn.next::after {
	right: 10px;
}
.pagination .btn.prev::after {
	left: 10px;
	rotate: 180deg;
}

/* リンクボックス */
.list_link_box {
	display: flex;
	justify-content: center;
	flex-direction: row;
	align-items: center;
	flex-wrap: wrap;
	width: min(100%, 840px);
	margin: 0 auto;
}
.list_link_box:empty {
	display: none;
}
.list_link_box li {
	margin: 10px;
	display: inline-block;
	font-size: 11px;
}
.list_link_box img {
	width: 100%;
	height: auto;
}

/*********** ボタン設定 ***********/
.btn_area {
	margin-top: 40px;
}
.btn {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 4px;
	width: fit-content;
	min-width: 240px;
	margin-inline: auto;
	padding: 12px 32px;
	background: var(--color-main2);
	border-radius: 1000px;
	color: var(--white);
	font-size: 1rem;
	transition: filter 0.4s ease;
}

.btn_more{
	display: block;
	width: fit-content;
	min-width: 240px;
	margin-inline: auto;
	margin-top: 40px;
	padding: 16px 32px;
	background: var(--color-main4);
	border-radius: 1000px;
	color: var(--white);
	font-size: 1rem;
	line-height: normal;
	transition: filter 0.4s ease;
}
.btn:hover,
.btn_more:hover{
	filter: brightness(1.1);
	color: var(--white);
}

/* Prev・Next */
.btn_page_list {
	display: flex;
	justify-content: center;
	gap: 16px;
}
.btn.prev, .btn.next {
	position: relative;
	margin: 0;
	padding: 8px 24px;
	min-width: 120px;
	background: var(--color-main2);
	border: 1px solid;
	color: var(--white);
	letter-spacing: 0.05em;
}
.btn.prev::before, .btn.next::before {
	content: '';
	position: absolute;
	width: 6px;
	height: 6px;
	border-bottom: 2px solid var(--white);
	border-right: 2px solid var(--white);
}
.btn.prev::before {
	left: 16px;
	rotate: 135deg;
}
.btn.next::before {
	right: 16px;
	rotate: -45deg;
}

/* 求人ページ応募方法のボタン */
.btn_recruit {
	display: flex;
	gap: 8px;
	flex-direction: column;
	flex-wrap: wrap;
	margin-top: 10px;
}
.btn_recruit a {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 5px;
	width: 100%;
	max-width: 250px;
	height: 50px;
	padding: 10px;
	border-radius: 50px;
	color: var(--white);
	background: #000;
}
.btn_recruit a::before {
	content: "";
	width: 14px;
	height: 14px;
	background: var(--white);
}
.btn_recruit .btn_tel {
	background: var(--color-main4);
}
.btn_recruit .btn_tel::before {
	-webkit-mask: url(../images/icon_tel.svg) center / contain no-repeat;
	mask: url(../images/icon_tel.svg) center / contain no-repeat;
}
.btn_recruit .btn_mail {
	background: var(--color-main2);
}
.btn_recruit .btn_mail::before {
	-webkit-mask: url(../images/icon_mail.svg) center / contain no-repeat;
	mask: url(../images/icon_mail.svg) center / contain no-repeat;
}
.btn_recruit .btn_entry {
	background: var(--color-main3);
}
.btn_recruit .btn_entry::before {
	-webkit-mask: url(../images/icon_list.svg) center / contain no-repeat;
	mask: url(../images/icon_list.svg) center / contain no-repeat;
}

/* フォームのボタン */
.btn_form {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px;
}
input[type="submit"],
input[type="button"] {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	max-width: 260px;
	height: 56px;
	border: none;
	border-radius: 100px;
	cursor: pointer;
	font-size: 1rem;
	transition: filter 0.4s ease;
}
.btn_form .btn_send {
	background: var(--color-main2);
	color: var(--white);
}
.btn_form input[type="button"].btn_back {
	border: 1px solid;
	color: var(--color-main2);
	background: var(--white);
}
.btn_form .btn_reset {
	padding: 0;
	background: none;
	border: none;
	border-bottom: 1px solid #aaa;
	color: #aaa;
	cursor: pointer;
	font-size: 0.85rem;
}

/* 言語選択プルダウン（日本語ページ） */
.select_lang_wrap {
	/* display: block; */
	display: none;
	width: 74px;
	height: 30px;
	position: fixed;
	top: 80px;
	right: 20px;
	z-index: 999;
}
.select_lang_wrap::before {
	content: '';
	position: absolute;
	top: 25%;
	left: 8px;
	display: block;
	width: 14px;
	height: 14px;
	background: url(../images/icon_lang.png) center center / cover no-repeat;
}
.select_lang_wrap:after {
  content: '';
	position: absolute;
	right: 8px;
	top: 14px;
	width: 6px;
	height: 6px;
	border-top: 1px solid #3e4349;
	border-left: 1px solid #3e4349;
	transform: translateY(-50%) rotate(-135deg);
}
.select_lang {
	-webkit-appearance: none;
	-moz-appearance: none;
			 appearance: none;
	margin: 0;
	border-radius: 0;
	outline: none;
	cursor: pointer;
	width: 100%;
	height: 100%;
	border: 1px solid #3e4349;
	padding: 8px 8px 8px 26px;
    background: var(--white);
    color: #3e4349;
	font-family: sans-serif;
	font-size: 12px;
	line-height: 1;
}
@media screen and (max-width: 768px) {
	.select_lang_wrap {
        top: 25px;
        right: 85px;
	}
}

/* 言語選択プルダウン（英語ページ） */
.select_lang_wrap_en {
	/* display: block; */
	display: none;
	width: 74px;
	height: 30px;
	position: fixed;
	top: 25px;
	right: 20px;
	z-index: 999;
}
.select_lang_wrap_en::before {
	content: '';
	position: absolute;
	top: 25%;
	left: 8px;
	display: block;
	width: 14px;
	height: 14px;
	background: url(../images/icon_lang.png) center center / cover no-repeat;
}
.select_lang_wrap_en:after {
  content: '';
	position: absolute;
	right: 8px;
	top: 14px;
	width: 6px;
	height: 6px;
	border-top: 1px solid #3e4349;
	border-left: 1px solid #3e4349;
	transform: translateY(-50%) rotate(-135deg);
}
.select_lang_en {
	-webkit-appearance: none;
	-moz-appearance: none;
			 appearance: none;
	margin: 0;
	border-radius: 0;
	outline: none;
	cursor: pointer;
	width: 100%;
	height: 100%;
	border: 1px solid #3e4349;
	padding: 8px 8px 8px 26px;
    background: var(--white);
    color: #3e4349;
	font-family: sans-serif;
	font-size: 12px;
	line-height: 1;
}

/******************************
form共通設定
******************************/
/*formのデフォルトスタイルの削除・リセット*/
form input[type="text"],
form input[type="email"],
form button,
form textarea,
form select {
	-webkit-appearance: none;
		 -moz-appearance: none;
					appearance: none;
	margin: 0;
	padding: 0;
	border: none;
	border-radius: 0;
	outline: none;
}
/* 項目名の前の三角（▼） */
.caret_down::before {
	content: "";
	display: inline-block;
	width: 0.75em;
	height: 0.375em;
	margin-right: 0.5em;
	vertical-align: middle;
	background: currentColor;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
/*フォームのスタイルを設定*/
form input[type="text"],
form input[type="email"],
form textarea,
form select {
	width: 100%;
	border: 1px solid var(--gray1);
	-webkit-transition: all .3s;/*フォーカスしたときにふわっと表示させる用*/
					transition: all .3s;/*フォーカスしたときにふわっと表示させる用*/
	padding: 0.75em;
	border-radius: 4px;
	background: var(--white);
	vertical-align: baseline;
	font-size: 0.875rem;
}
form input[type="text"],
form input[type="email"],
form textarea {
	width: 100%;
}
form textarea {
	resize: vertical;
	field-sizing: content;
	min-block-size: calc(5 * 1lh + 0.75em * 2);
  max-block-size: calc(15 * 1lh + 0.75em * 2);
}
form .form_txt {
	margin-top: 5px;
}
form input[type="text"].form_short {
	max-width: 100px;
}
form input[type="text"].form_middle {
	max-width: 160px;
}
form input[type="radio"],
form input[type="checkbox"] {
	margin: 0 4px;
	vertical-align: baseline;
	accent-color: var(--color-main2);
}
form .form_list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	row-gap: 4px;
}
.select_wrap_flex,
.label_wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
form :is(.time, .day) select {
	width: 100px;
	margin-right: 4px;
}
.select_wrap select {
	background: url('../images/icon_arrow_gray.svg') right 8px center no-repeat,
							var(--white);
	background-size: 13px 8px;
}
.select_wrap_flex {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.select_wrap_flex .day {
	width: calc((100% - 16px) / 3);	
}
.select_wrap_flex .day select {
	width: 100%;
}
form input::placeholder,
form textarea::placeholder {
	color: #bbb;
}
@media screen and (max-width: 768px) {
	form input[type="text"],
	form input[type="email"],
	form textarea {
		font-size: 1rem;
	}
	form .form_list {
		grid-template-columns: 1fr;
	}
	form .form_list02 {
		gap: 10px 20px;
	}
}
.icon_required {
	display: inline-block;
	padding: 4px 8px;
	font-size: 0.75em;
	line-height: 1;
	border-radius: 20px;
	color: #fff;
	font-weight: normal;
	background: var(--color-main4);
}

/******************************
セラピスト共通設定
******************************/
section:not(#section_covergirl,#section_newface,#section_top_ranking_01,#section_ranking_01,#section_ranking_02) .cast_box {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	max-width: 800px;
	margin-inline: auto;
}

/* カード */
.cast_box .cast_box_list{
	position: relative;
	background: var(--white);
	border: 2px solid var(--border-color1);
	border-radius: 24px;
	padding: 10px;
}
.cast_box .cast_box_list > a {
	display: block;
	height: 100%;
	color: #3a3a3a;
}
.cast_box .cast_box_list .img_box {
	width: 100%;
	height: auto;
	aspect-ratio: 315 / 473;
	position: relative;
	border-radius: 16px;
	overflow: hidden;
}
.cast_box .cast_box_list .img_box .img_cast{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 新人アイコン */
.cast_box .cast_box_list .icon_new{
	width: 64px;
	position: absolute;
	top: 0;
	left: 0;
}
/* ランキングアイコン */
.cast_box .cast_box_list .icon_ranking {
	position: absolute;
	top: 0;
	left: 0;
	width: 100px;
	line-height: 0;
}
/* SNSアイコン */
.cast_box .cast_box_list .icon_box {
	position: absolute;
	bottom: 10px;
	right: 10px;
	display: flex;
	flex-wrap: wrap-reverse;
	justify-content: flex-end;
	gap: 4px;
	width: calc(100% - 20px);
}
.cast_box .cast_box_list .icon_box img{
	width: 30px;
}
/* SNSアイコン（画像の下に表示する場合） */
.cast_box .cast_box_list .icon_box.off {
	position: static;
	display: flex;
	justify-content: center;
	margin: 10px 0;
}
.cast_box .cast_box_list .icon_box.off img{
	width: 30px;
	margin: 0 4px;
}
/* 画像フレーム */
.cast_box .cast_box_list .frame{
	position: absolute;
	top:0;
	left: 0;
	right: 0;
	bottom: 0;
}
.cast_box .cast_box_list .frame img{
	width: 100%;
}

/* テキスト */
.cast_box .cast_box_list .txt_box {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding-top: 10px;
	line-height: normal;
}
/* 一言コメント（横にループして流れる） */
.cast_box .cast_box_list .txt_box .comment {
	padding: 4px 0;
	background: var(--color-main2);
	color: var(--white);
	font-size: 0.75rem;
	font-weight: bold;
	white-space: nowrap;
	overflow: hidden;
}
.cast_box .cast_box_list .txt_box .comment .comment_inner {
	display: inline-flex;
	/* 短い文でも途中で空白ができないよう、テキスト1つ分を枠の幅以上にする */
	min-width: 200%;
	/* 2つ並べたテキストの1つ分（-50%）だけ動かして先頭に戻すと、つなぎ目なくループする */
	animation: comment_marquee calc(var(--len, 15) * 0.4s + 3s) linear infinite;
}
.cast_box .cast_box_list .txt_box .comment .comment_inner > span {
	flex: 1 0 auto;
	padding: 0 2em;
	text-align: left;
}
@keyframes comment_marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.cast_box .cast_box_list .txt_box .comment {
		text-overflow: ellipsis;
	}
	.cast_box .cast_box_list .txt_box .comment .comment_inner {
		display: inline;
		animation: none;
	}
	.cast_box .cast_box_list .txt_box .comment .comment_inner > span[aria-hidden] {
		display: none;
	}
}
.cast_box .cast_box_list .txt_box .name {
	font-size: 1.125rem;
}
.cast_box .cast_box_list .txt_box .size {
	margin-top: -10px;
	font-size: 0.875rem;
}
.cast_box .cast_box_list .txt_box .size span:not(:last-of-type) {
	margin-right: 0.5em;
	padding-right: 0.5em;
	border-right: 1px solid var(--color-main1);
}
/* チェックアイコン */
.cast_box .cast_box_list .txt_box .icon{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 5px;
}
.cast_box .cast_box_list .txt_box .icon img {
	width: 100%;
}
/* 出勤時間 */
.cast_box .cast_box_list .txt_box .time{
	color: var(--color-main3);
	font-size: 1rem;
	font-weight: bold;
}
/* 自由項目 */
.cast_box .cast_box_list .txt_box .free_text{
	margin-top: -5px;
	font-size: 0.75rem;
}
/* 出勤店舗（該当店舗がないときは枠ごと詰める） */
.cast_box .cast_box_list .txt_box .icon_shop_wrap:not(:has(.icon_shop)){
	display: none;
}
.cast_box .cast_box_list .txt_box .icon_shop{
	background: #6c96a5;
	color: var(--white);
	margin-bottom: 2px;
}
/* 予約状況 */
.cast_box .cast_box_list .txt_box .sch_info{
	background: var(--color-main2);
	color: var(--white);
	padding: 4px;
}


@media screen and (max-width: 768px){
	.cast_box .cast_box_list {
		border-width: 1px;
		border-radius: 12px;
		padding: 5px;
	}
	.cast_box .cast_box_list .img_box {
		border-radius: 8px;
	}
	.cast_box .cast_box_list .icon_new {
		width: 50px;
	}
	.cast_box .cast_box_list .icon_ranking {
		width: 60px;
	}
	.cast_box .cast_box_list .icon_box {
		right: 8px;
	}
	.cast_box .cast_box_list .txt_box {
		gap: 5px;
		padding-top: 5px;
	}
	.cast_box .cast_box_list .txt_box .comment {
		padding: 2px 0;
		font-size: 0.625rem;
	}
	.cast_box .cast_box_list .txt_box .name {
		font-size: 0.875rem;
	}
	.cast_box .cast_box_list .txt_box .size {
		margin-top: -5px;
		font-size: 0.75rem;
	}
	.cast_box .cast_box_list .txt_box .time {
		padding: 4px 0;
	}
}
@media screen and (max-width: 520px){
	section:not(#section_covergirl,#section_newface,#section_top_ranking_01,#section_ranking_01,#section_ranking_02) .cast_box {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}



/****************************************

headerヘッダー設定

****************************************/
header {
	width: 100%;
	height: 68px;
	padding: 10px max(10px, calc((100% - 1080px) / 2));
	background: var(--color-main1);
	z-index: 999;
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
header .logo {
	flex-shrink: 0;
	line-height: 0;
}
header .logo img{
	width: 104px;
}

/*グローバルナビ*/
header nav ul{
	display: flex;
	align-items: baseline;
	gap: 16px;
}
header nav ul li a{
	display: flex;
	flex-direction: column;
	align-items: center;
	color: var(--white);
	font-weight: bold;
	line-height: normal;
	white-space: nowrap;
	transition: color 0.4s ease;
}
header nav ul li a:hover{
	color: var(--color-main5);
}
header nav ul li a .en{
	font-size: 0.875rem;
	text-transform: uppercase;
}
header nav ul li a .ja{
	font-size: 0.6875rem;
}
@media screen and (max-width: 1100px) {
	header nav ul{
		gap: 10px;
	}
	header nav ul li a .en{
		font-size: 0.75rem;
	}
	header nav ul li a .ja{
		font-size: 0.625rem;
	}
}

/* ↓↓↓↓↓↓↓↓ SP用メニュー設定 ↓↓↓↓↓↓↓↓ */
/*ハンバーガーメニューを作る*/
.btn_toggle {
	width: 60px;
	height: 60px;
	background: var(--color-main1);
	border: none;
	border-radius: 50%;
	padding: 0;
	position: fixed;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 999;
}
.btn_toggle:hover{
	cursor: pointer;
}
.btn_toggle span{
	display: inline-block;
	background: var(--white);
	height: 2px;
	width: 28px;
	position: relative;
}
.btn_toggle span:before{
	content: "";
	display: inline-block;
	background: var(--white);
	height: 2px;
	width: 28px;
	position: absolute;
	top: 10px;
	left: 0;
}
.btn_toggle span:after{
	content: "";
	display: inline-block;
	background: var(--white);
	height: 2px;
	width: 28px;
	position: absolute;
	top: -10px;
	left: 0;
}
#btn_open.active span{
	background: transparent;
}
#btn_open.active span:before{
	transform: rotate(45deg);
	top: 0;
}
#btn_open.active span:after{
	transform: rotate(-45deg);
	top: 0;
}

/*メニュー内設定*/
.nav_menu{
	height: 100vh;
	background: var(--bg-color1);
	margin: 0;
	padding: 80px 40px 40px;
	width: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 99;
	overflow-y: auto;
	/* フェードで開閉する */
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s, visibility 0.3s;
}
#sp_nav.open{
	opacity: 1;
	visibility: visible;
}
.nav_menu .nav_list{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
	max-width: 295px;
	margin: 0 auto;
}
.nav_menu .nav_list a{
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding-block: 16px;
	border-bottom: 1px solid var(--border-color1);
	color: var(--color-main2);
	font-weight: bold;
	line-height: normal;
	text-decoration: none;
}
.nav_menu .nav_list a:hover{
	color: var(--color-main2);
}
.nav_menu .nav_list .en{
	font-size: 1rem;
	text-transform: uppercase;
}
.nav_menu .nav_list .ja{
	font-size: 0.6875rem;
}
.nav_menu .info_box{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	max-width: 295px;
	margin: 20px auto 0;
	font-weight: bold;
	line-height: normal;
}
.nav_menu a.btn_nav_tel{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	padding: 16px;
	background: var(--color-main3);
	border-radius: 12px;
	color: var(--white);
	font-size: 1.25rem;
	text-decoration: none;
}
.nav_menu a.btn_nav_tel::before{
	content: "";
	width: 20px;
	height: 20px;
	background: currentColor;
	-webkit-mask: url(../images/icon_tel.svg) center / contain no-repeat;
	mask: url(../images/icon_tel.svg) center / contain no-repeat;
}
.nav_menu .nav_open{
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--color-main2);
}
.nav_menu .nav_open::before{
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url(../images/icon_clock.svg) center / contain no-repeat;
	mask: url(../images/icon_clock.svg) center / contain no-repeat;
	transform: scaleX(-1);
}

/* アイコン */
.nav_menu .icon_box{
	display: flex;
	justify-content: center;
	margin: 20px auto 20px;
}
.nav_menu .icon_box a{
	padding: 0;
	border-bottom: 0px solid #eee;
}
.nav_menu .icon_box img {
	width: 30px;
	margin: 0 4px;
}

/*タブレットサイズ*/
@media screen and (max-width: 768px) {
	header {
		height: auto;
		padding: 10px 10px 0;
		background: transparent;
		position: fixed;
	}
	header .logo img{
		width: 130px;
	}
}

/****************************************

footerフッター設定

****************************************/
footer {
	margin-top: 0;
	background: linear-gradient(to bottom, #f2f6ae, #cff69e);
	border-radius: 64px 64px 0 0;
	font-size: 0.75rem;
	padding: 80px 0 0;
	color: var(--color-main2);
}
footer > .inner800 {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
	max-width: 1080px;
	margin-bottom: 40px;
}
footer .logo{
	line-height: 0;
}
footer .logo img{
	width: 320px;
}
/* テキストメニュー */
footer .nav{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: baseline;
	gap: 16px;
}
footer .nav li a{
	display: flex;
	flex-direction: column;
	align-items: center;
	color: var(--color-main2);
	font-weight: bold;
	line-height: normal;
	white-space: nowrap;
}
footer .nav li a .en{
	font-size: 0.875rem;
	text-transform: uppercase;
}
footer .nav li a .ja{
	font-size: 0.6875rem;
}
/* 電話番号&営業時間 */
footer .info_box {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	font-size: 1.125rem;
	font-weight: bold;
	line-height: normal;
}
footer .info_box li,
footer .info_box li a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--color-main2);
}
footer .info_box li::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url(../images/icon_tel.svg) center / contain no-repeat;
	mask: url(../images/icon_tel.svg) center / contain no-repeat;
}
footer .info_box li.tel::before {
	display: none;
}
footer .info_box li.tel a::before {
	content: "";
	width: 18px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url(../images/icon_tel.svg) center / contain no-repeat;
	mask: url(../images/icon_tel.svg) center / contain no-repeat;
}
footer .info_box li.open::before {
	-webkit-mask-image: url(../images/icon_clock.svg);
	mask-image: url(../images/icon_clock.svg);
	transform: scaleX(-1);
}
/* 日本語版へボタンの三角（◀） */
.multiLanguage_btn.jp_btn::before {
	content: "";
	display: inline-block;
	width: 0.375em;
	height: 0.75em;
	margin-right: 0.5em;
	background: currentColor;
	clip-path: polygon(100% 0, 0 50%, 100% 100%);
}
footer .copyright {
	font-size: 0.75rem;
	line-height: normal;
}
/* アイコン */
footer .icon_box{
	display: flex;
	justify-content: center;
}
footer .icon_box img {
	width: 30px;
	margin: 0 4px;
}

.footer_link {
	padding: 10px 0;
	background: var(--color-main2);
	text-align: center;
	font-size: 0.75rem;
	color: var(--white);
	line-height: normal;
}
.footer_link a {
	color: var(--white);
	text-decoration: underline;
}
.footer_txt{
	margin: 10px;
	color: var(--white);
}

/* フリースペース */
.free_link_box img {
	margin-right: 10px;
	margin-bottom: 10px;
	height: 100% !important;
	max-width: 100% !important;
}

/* SP下部固定ボタン */
#bottom_btn {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 4px;
	padding: 5px;
	position: fixed;
	left: 0;
	bottom: 0;
	width: 100%;
	z-index: 98;
}
#bottom_btn a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
	height: 50px;
	border-radius: 8px;
	color: var(--white);
	font-size: 0.875rem;
	font-weight: bold;
	line-height: 1;
}
#bottom_btn a::before {
	content: "";
	width: 14px;
	height: 14px;
	background: var(--white);
	-webkit-mask: url(../images/icon_tel.svg) center / contain no-repeat;
	mask: url(../images/icon_tel.svg) center / contain no-repeat;
}
#bottom_btn .bottom_tel {
	background: var(--color-main3);
}
#bottom_btn .bottom_recruit {
	background: var(--color-main4);
}
#bottom_btn .bottom_recruit::before {
	width: 16px;
	-webkit-mask-image: url(../images/icon_heart.svg);
	mask-image: url(../images/icon_heart.svg);
}
#bottom_btn .bottom_reserve {
	background: #26b5e0;
}
#bottom_btn .bottom_reserve::before {
	-webkit-mask-image: url(../images/icon_reserve.svg);
	mask-image: url(../images/icon_reserve.svg);
}

@media screen and (max-width: 768px) {
	footer {
		padding-top: 40px;
		border-radius: 32px 32px 0 0;
		font-size: 0.625rem;
	}
	footer > .inner800 {
		gap: 20px;
		margin-bottom: 20px;
	}
	footer .logo img{
		width: 240px;
	}
	footer .info_box {
		gap: 4px;
		font-size: 1rem;
	}
	footer .info_box li,
	footer .info_box li a {
		gap: 5px;
	}
	footer .info_box li::before,
	footer .info_box li.tel a::before {
		width: 16px;
		height: 16px;
	}
	footer .copyright {
		font-size: 0.625rem;
	}
	.footer_link {
		padding: 5px 0 60px;
		font-size: 0.5625rem;
	}
}


/****************************************
mainvisualメインビジュアル
****************************************/
#mainvisual {
	position: relative;
	margin-top: 68px;	/* 固定ヘッダーの高さ */
	line-height: 0;
}
#mainvisual img {
	width: 100%;
	height: auto;
	aspect-ratio: 1440 / 810;
	object-fit: cover;
}
/* 画像の中央に重ねる文字（en / cn） */
#mainvisual .mv_inner {
	width: 100%;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
}
#mainvisual .mv_inner img{
	width: 100%;
	max-width: 220px;
}
#mainvisual .mv_inner p{
	font-size: 2.4rem;
	line-height: 1.4em;
	font-weight: bold;
	margin: 0 20px;
}
#mainvisual .mv_inner p span{
	font-weight: normal;
}
@media screen and (max-width: 768px){
	#mainvisual {
		margin-top: 0;
	}
	#mainvisual img {
		aspect-ratio: 750 / 1300;
	}
	#mainvisual .mv_inner p{
		font-size: 1.8rem;
	}
}
@media screen and (max-width: 520px){
	#mainvisual .mv_inner p{
		font-size: 1.2rem;
	}
}
/* flexslider.cssを上書き */
.flexslider{
	margin-bottom: 0;
	background: unset;
	border: none;
}


/* トップページ 営業時間＆電話番号 */
#top_info {
	background: var(--color-main2);
	padding: 10px 20px;
}
#top_info .info_box {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 0 20px;
	font-size: 1.25rem;
	font-weight: bold;
	line-height: normal;
}
#top_info .info_box li,
#top_info .info_box li a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--white);
}
#top_info .info_box li.open::before,
#top_info .info_box li.tel a::before {
	content: "";
	width: 20px;
	height: 20px;
	background: var(--white);
	-webkit-mask: url(../images/icon_clock.svg) center / contain no-repeat;
	mask: url(../images/icon_clock.svg) center / contain no-repeat;
}
#top_info .info_box li.open::before {
	transform: scaleX(-1);
}
#top_info .info_box li.tel a::before {
	-webkit-mask-image: url(../images/icon_tel.svg);
	mask-image: url(../images/icon_tel.svg);
}

@media screen and (max-width: 768px) {
	#top_info {
		padding: 8px 10px;
	}
	#top_info .info_box {
		gap: 0 8px;
		font-size: 1rem;
	}
	#top_info .info_box li,
	#top_info .info_box li a {
		gap: 4px;
	}
	#top_info .info_box li.open::before,
	#top_info .info_box li.tel a::before {
		width: 16px;
		height: 16px;
	}
}

/* ヘッドライン */
#headline {
	padding: 10px 0;
}
#headline .inner1080 {
	display: flex;
	align-items: center;
	gap: 10px;
}
#headline .news_title {
	flex-shrink: 0;
	color: var(--color-main2);
	font-size: 1rem;
	font-weight: bold;
}
#headline .swiper {
	flex: 1;
	min-width: 0;
	margin: 0;
	text-align: left;
	font-size: 0.875rem;
}

/*タブレットサイズ*/
@media screen and (max-width: 768px) {
	#headline {
		padding: 8px 0;
	}
	#headline .inner1080 {
		flex-direction: column;
		gap: 5px;
	}
	#headline .swiper {
		width: 100%;
		text-align: center;
		font-size: 0.75rem;
	}
}

/* パンくずリスト */
.breadcrumbs {
	margin-bottom: 0;
	padding-block: 5px;
	border-top: 1px solid var(--border-color1);
	border-bottom: 1px solid var(--border-color1);
	background: var(--white);
	text-align: left;
}
.breadcrumbs ol {
	max-width: 1080px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 10px;
}
.breadcrumbs ol li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: #3a3a3a;
	font-size: 0.75rem;
	text-transform: uppercase;
}
/* 区切りの矢印（1つ目の前には出さない） */
.breadcrumbs ol li + li::before {
	content: "";
	width: 8px;
	height: 8px;
	background: url(../images/icon_arrow.svg) center / contain no-repeat;
}
.breadcrumbs ol li a {
	color: #3a3a3a;
}


/******************************
認証ページ
******************************/
#entry_body header{
	background: none;
	box-shadow: none;
	position: unset;
	height: auto;
	padding-block: 5px;
	background: var(--color-main1);
	font-size: 0.75rem;
	color: var(--white);
}
#entry_body #contents{
	padding-block: 40px;
}
/* メインビジュアル（トップと同じ画像） */
#entry_mv {
	--wave-h: 100px;	/* 波の高さ */
	--wave-w: 1200px;	/* 波1周期の幅 */
	--wave-front: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 60C150 20 450 20 600 60S1050 100 1200 60V0H0Z'/%3E%3C/svg%3E");
	--wave-back: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 30C200 0 400 0 600 30S1000 60 1200 30V0H0Z'/%3E%3Cpath d='M0 30C200 0 400 0 600 30S1000 60 1200 30V100H0Z' fill-opacity='.4'/%3E%3C/svg%3E");
	line-height: 0;
	/* 下端を本日の出勤と同じ2枚の波で切り抜く
		1層目：波より上を全面表示 / 2層目：手前の波（ここより下は非表示）/ 3層目：奥の波（ここより下は半透明）
		2層目と3層目は重なった部分だけ残す（intersect）ので、奥の波と手前の波の間が半透明になる */
	-webkit-mask:
		linear-gradient(#000, #000) no-repeat 0 0 / 100% calc(100% - var(--wave-h) + 1px),
		var(--wave-front) repeat-x 0 100% / var(--wave-w) var(--wave-h),
		var(--wave-back) repeat-x 0 100% / var(--wave-w) var(--wave-h);
	-webkit-mask-composite: source-over, source-in;
	mask:
		linear-gradient(#000, #000) no-repeat 0 0 / 100% calc(100% - var(--wave-h) + 1px),
		var(--wave-front) repeat-x 0 100% / var(--wave-w) var(--wave-h),
		var(--wave-back) repeat-x 0 100% / var(--wave-w) var(--wave-h);
	mask-composite: add, intersect;
	animation: entry_mv_wave 56s linear infinite;
}
#entry_mv img {
	width: 100%;
	height: auto;
	aspect-ratio: 1440 / 810;
	object-fit: cover;
}
/* 手前の波は右へ1周期（8s）、奥の波は左へ1周期（14s）。両方を1つのアニメーションで動かすため、56s で手前7周期・奥4周期ぶん動かす */
@keyframes entry_mv_wave {
	from {
		-webkit-mask-position: 0 0, 0 100%, 0 100%;
		mask-position: 0 0, 0 100%, 0 100%;
	}
	to {
		-webkit-mask-position: 0 0, calc(var(--wave-w) * 7) 100%, calc(var(--wave-w) * -4) 100%;
		mask-position: 0 0, calc(var(--wave-w) * 7) 100%, calc(var(--wave-w) * -4) 100%;
	}
}
@media (prefers-reduced-motion: reduce) {
	#entry_mv {
		animation: none;
	}
}
#entry_body #contents .info_box {
	width: fit-content;
	margin-inline: auto;
	margin-bottom: 40px;
}
#entry_body #contents .info_box li,
#entry_body #contents .info_box li a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--color-main2);
	font-size: 1.25rem;
	font-weight: bold;
	line-height: normal;
}
#entry_body #contents .info_box li.open::before,
#entry_body #contents .info_box li.tel a::before {
	content: "";
	width: 20px;
	height: 20px;
	background: var(--color-main2);
	-webkit-mask: url(../images/icon_clock.svg) center / contain no-repeat;
	mask: url(../images/icon_clock.svg) center / contain no-repeat;
}
#entry_body #contents .info_box li.open::before {
	transform: scaleX(-1);
}
#entry_body #contents .info_box li.tel a::before {
	-webkit-mask-image: url(../images/icon_tel.svg);
	mask-image: url(../images/icon_tel.svg);
}
/* ENTER or EXITボタン */
#entry_body .btn_list {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-bottom: 24px;
}
.btn_enter,
.btn_exit {
	min-width: 280px;
	margin: unset;
	font-size: 1rem;
	text-transform: uppercase;
	transition: filter 0.4s ease;
}
.btn_exit {
	background: #999;
}
#entry_body h2{
	margin-bottom: 8px;
	font-size: 1.125rem;
	font-weight: bold;
	color: var(--color-main2);
}
#entry_body .list_link_box img,
#contents_link .list_link_box img {
	width: auto;
	max-width: 100%;
	height: auto;
}
#entry_body .txt_box_01 div + div {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px dashed var(--border-color1);
}
@media screen and (max-width: 768px) {
	#entry_mv {
		--wave-h: 50px;
		--wave-w: 600px;
	}
	#entry_mv img {
		aspect-ratio: 750 / 1300;
	}
	#entry_body .btn_list {
		flex-direction: column;
	}
	.btn_enter, .btn_exit { width: 100%;}
}

/******************************
トップページ
******************************/
/*トップページ共通*/
#section_event,
#section_covergirl,
#section_schedule_today,
#section_topics,
#section_movie,
#section_top_ranking_01,
#section_top_bnr{
	padding: 80px 0;
}
@media screen and (max-width: 768px){
	#section_event,
	#section_covergirl,
	#section_schedule_today,
	#section_topics,
	#section_movie,
	#section_top_ranking_01,
	#section_top_bnr{
		padding: 40px 0;
	}
}
/*トップページ　2カラム*/
.column{
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	background: var(--white);
}
.column section{
	width: 50%;
	max-width: 600px;
	}
.column .cast_box .cast_box_list .frame img{
	width: 280px;
}
@media screen and (max-width: 768px){
	.column section{
		width: 100%;
	}
	.column .cast_box .cast_box_list .frame img{
		width: 200px;
	}
}

/* 見出し */
section h2.title {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 40px;
	font-family: var(--font-family1);
	font-size: 4rem;
	font-weight: normal;
	line-height: 1.2;
	background: linear-gradient(to bottom, #189712, var(--color-main1));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(2px 2px 0 rgba(255, 255, 255, 0.5));
}
section h2.title span {
	display: block;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	font-size: 1rem;
	font-weight: bold;
	line-height: normal;
	color: var(--color-main2);
	-webkit-text-fill-color: var(--color-main2);
}
section h2.title.orange {
	background-image: linear-gradient(to bottom, #ff9d00, #ffd117);
}
section h2.title.orange span {
	color: var(--color-main3);
	-webkit-text-fill-color: var(--color-main3);
}

@media screen and (max-width: 768px) {
	section h2.title {
		margin-bottom: 20px;
		font-size: 2.5rem;
		line-height: 1;
	}
	section h2.title span {
		margin-top: 4px;
		font-size: 0.875rem;
	}
}

/* もっと見るボタン */
/* .page_top .btn_more {
	display: inline-block;
	width: auto;
	height: auto;
	margin: 40px auto 0;
	padding: 16px 80px;
	background: var(--color-main4);
	border-radius: 1000px;
	color: var(--white);
	font-size: 1rem;
	line-height: normal;
} */

/* イベント＆PICK UP（2カラム）
	 カンプ（幅1080px：イベント640px／間40px／PICK UP 400px）の比率を保って画面幅に合わせて伸縮させる */
.page_top .column {
	max-width: 1080px;
	width: 95%;
	margin: 0 auto;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 3.7%;	/* 40 / 1080 */
	background: transparent;
}
.page_top .column section {
	width: auto;
	max-width: none;
}
@media screen and (max-width: 768px) {
	.page_top .column {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		width: 100%;
	}
}
/* イベント */
#section_event {
	flex: 1;
	min-width: 0;
	padding: 80px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 40px;
}
#section_event .swiper {
	width: 100%;
	padding-bottom: 30px;
}
#section_event .swiper-wrapper .swiper-slide {
	padding: 0;
	line-height: 0;
}
#section_event img {
	width: 100%;
	max-width: none;
}
/* 片方の画像しかないスライドは、表示しない幅では隠す（my.js で取り除くまでのちらつき防止） */
@media screen and (min-width: 481px) {
	#section_event .swiper-slide.only_sp {
		display: none;
	}
}
@media screen and (max-width: 480px) {
	#section_event .swiper-slide.only_pc {
		display: none;
	}
}
#section_event .swiper-pagination {
	bottom: 0;
	line-height: 0;
}
#section_event .swiper-pagination-bullet {
	width: 10px;
	height: 10px;
	margin: 0 6px 0 0;
	background: var(--white);
	opacity: 1;
}
#section_event .swiper-pagination-bullet-active {
	background: var(--color-main1);
}
#section_event .bnr_credit {
	width: 75%;	/* 480 / 640 */
	line-height: 0;
}
@media screen and (max-width: 768px) {
	#section_event {
		padding: 40px 10px;
		gap: 20px;
	}
	#section_event .swiper {
		padding-bottom: 30px;
	}
	#section_event .bnr_credit {
		width: 100%;
	}
}
/* カバーガール */
/* #section_covergirl .swiper{
	width: 300px;
	margin: 0 auto;
}
@media screen and (max-width: 768px){
	#section_covergirl .swiper{
		width: 220px;
		margin: 0 auto;
	}
} */
#section_covergirl {
	--title: min(8.796vw, 6.25rem);
	flex: 0 0 37.04%;	/* 400 / 1080 */
	min-width: 300px;
	padding: 80px calc(var(--title) - 16px) 80px 0;	/* 右余白 64 / 1080（% は .column の幅が基準） */
	position: relative;
	display: flex;
	justify-content: flex-end;
}
#section_covergirl h2.vertical_title {
	position: absolute;
	top: 80px;
	right: 0;
	writing-mode: vertical-rl;
	font-family: var(--font-family1);
	font-size: var(--title);	/* 並びの幅（95vw、最大1080px）に比例。1080px のとき 100px */
	line-height: 1;
	white-space: nowrap;
	background: linear-gradient(to left, var(--grad-color1));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
#section_covergirl .swiper {
	width: 83.33%;	/* 280 / 336（PICK UP の幅から右余白を引いた幅） */
	min-width: 240px;
	margin: 0;
}
@media screen and (max-width: 768px) {
	#section_covergirl {
		flex: none;
		min-width: 0;
		width: 100%;
		padding: 0 0 40px;
		justify-content: center;
	}
	#section_covergirl h2.vertical_title {
		top: 0;
		left: calc(50% + 100px);
		right: auto;
		font-size: 5rem;
		line-height: 69px;
	}
	#section_covergirl .swiper {
		width: 215px;
		min-width: 0;
	}
}

/* 本日の出勤情報　*/
#section_schedule_today {
	--wave-h: 100px;	/* 波の高さ */
	--wave-w: 1200px;	/* 波1周期の幅 */
	position: relative;
	isolation: isolate;
	margin: 0;
	padding: calc(var(--wave-h) + 20px) 0 80px;
}
/* 上部の波アニメーション：背景を2枚重ね、それぞれ別の波で切り抜いて流す */
#section_schedule_today::before,
#section_schedule_today::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url(../images/bg_schedule.webp) center top / cover no-repeat;
	/* 1層目：横にリピートする波 / 2層目：波より下を全面表示 */
	-webkit-mask:
		var(--wave) repeat-x 0 0 / var(--wave-w) var(--wave-h),
		linear-gradient(#000, #000) no-repeat 0 100% / 100% calc(100% - var(--wave-h) + 1px);
	mask:
		var(--wave) repeat-x 0 0 / var(--wave-w) var(--wave-h),
		linear-gradient(#000, #000) no-repeat 0 100% / 100% calc(100% - var(--wave-h) + 1px);
}
/* 奥の波（半透明・逆方向・ゆっくり） */
#section_schedule_today::before {
	--wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 30C200 0 400 0 600 30S1000 60 1200 30V100H0Z'/%3E%3C/svg%3E");
	opacity: .6;
	animation: schedule_wave_back 14s linear infinite;
}
/* 手前の波 */
#section_schedule_today::after {
	--wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 60C150 20 450 20 600 60S1050 100 1200 60V100H0Z'/%3E%3C/svg%3E");
	animation: schedule_wave_front 8s linear infinite;
}
@keyframes schedule_wave_front {
	to {
		-webkit-mask-position: var(--wave-w) 0, 0 100%;
		mask-position: var(--wave-w) 0, 0 100%;
	}
}
@keyframes schedule_wave_back {
	from {
		-webkit-mask-position: var(--wave-w) 0, 0 100%;
		mask-position: var(--wave-w) 0, 0 100%;
	}
	to {
		-webkit-mask-position: 0 0, 0 100%;
		mask-position: 0 0, 0 100%;
	}
}
@media (prefers-reduced-motion: reduce) {
	#section_schedule_today::before,
	#section_schedule_today::after {
		animation: none;
	}
}
#section_schedule_today .cast_box .no_data {
	grid-column: 1 / -1;
	font-weight: bold;
}
@media screen and (max-width: 768px) {
	#section_schedule_today {
		--wave-h: 50px;
		--wave-w: 600px;
		padding: calc(var(--wave-h) + 10px) 0 40px;
	}
	#section_schedule_today .inner {
		width: 100%;
		padding: 0 10px;
	}
	#section_schedule_today .cast_box {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}

/* SNS＆新着情報 */
#section_topics .inner {
	max-width: 640px;
}
#section_topics .sns_box {
	margin-bottom: 120px;
	background: var(--white);
}
#section_topics #info_box {
	position: relative;
	height: 450px;
	overflow: visible;
	padding: 24px 40px;
	background: var(--white);
	border: 2px solid var(--border-color1);
	border-radius: 24px;
	text-align: left;
}
/* 記事一覧：ボックス内でスクロール */
#section_topics #info_box .article_list {
	height: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
	-ms-overflow-style: none;
	scrollbar-width: none;
	/* scrollbar-color: var(--border-color1) transparent; */
}
#section_topics #info_box .article_list::-webkit-scrollbar {
	display: none;
}
/* 記事のスタイルは「新着情報の記事」（.topics_article）と共通。ここでは余白だけ変える */
#section_topics #info_box .topics_article .article_title {
	padding-top: 20px;
}
#section_topics #info_box .topics_article .article_txt {
	padding: 20px 20px 40px;
}
#section_topics #info_box .deco {
	position: absolute;
	z-index: 2;
	pointer-events: none;
	/* 上下にふわふわ動かす（2つで周期と開始をずらして揃わないようにする） */
	animation: topics_deco_float 3.2s ease-in-out infinite;
}
#section_topics #info_box .deco_melon {
	animation-duration: 3.8s;
	animation-delay: -1.5s;
}
@keyframes topics_deco_float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-8px); }
}
@media (prefers-reduced-motion: reduce) {
	#section_topics #info_box .deco {
		animation: none;
	}
}
#section_topics #info_box .deco_leaf {
	width: 64px;
	top: -46px;
	left: 17px;
	rotate: -15deg;
}
#section_topics #info_box .deco_melon {
	width: 72px;
	right: 10px;
	bottom: -60px;
	rotate: -15deg;
}
@media screen and (max-width: 768px) {
	#section_topics .sns_box {
		margin-bottom: 60px;
	}
	#section_topics #info_box {
		padding: 10px 0 10px 20px;
		border-radius: 12px;
	}
	#section_topics #info_box .article_list {
		padding-right: 20px;
	}
	#section_topics #info_box .topics_article .article_title {
		padding-top: 10px;
	}
	#section_topics #info_box .topics_article .article_txt {
		padding: 10px 10px 20px;
	}
	#section_topics #info_box .deco_leaf {
		width: 50px;
		top: -40px;
		left: 5px;
	}
	#section_topics #info_box .deco_melon {
		width: 55px;
		right: 0;
		bottom: -44px;
	}
}
/* 新着情報の記事（トップの新着情報・新着情報ページ共通） */
.topics_article {
	text-align: left;
}
.topics_article .article_title {
	display: flex;
	flex-direction: column;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--border-color1);
	font-weight: bold;
	line-height: normal;
}
.topics_article time {
	color: var(--color-main2);
	font-size: 0.875rem;
}
.topics_article h3 {
	font-size: 1.125rem;
	font-weight: bold;
}
.topics_article .article_txt {
	padding: 16px 16px 0;
	font-size: 0.875rem;
	line-height: 1.5;
	word-break: break-word;
}
.topics_article .article_txt img {
	max-width: 100%;
	height: auto !important;
}
.topics_article .article_txt a {
	color: var(--color-main2);
	text-decoration: underline;
}
.topics_article .article_txt strong {
	font-weight: bold;
}
@media screen and (max-width: 768px) {
	.topics_article time {
		font-size: 0.6875rem;
	}
	.topics_article h3 {
		font-size: 1rem;
	}
	.topics_article .article_txt {
		padding: 10px 10px 0;
		font-size: 0.75rem;
	}
}

/* ランキング */
#section_top_ranking_01 {
	background: url(../images/bg_ranking.webp) center / cover no-repeat;
}
#section_top_ranking_01 .cast_box {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	max-width: 800px;
	margin: 0 auto;
}
#section_top_ranking_01 .cast_box .cast_box_list {
	width: calc((100% - 40px) / 3);
	margin: 0;
}
@media screen and (max-width: 768px) {
	#section_top_ranking_01 .cast_box .cast_box_list {
		width: calc((100% - 10px) / 2);
	}
	/* 1位は1段目に単独で中央表示 */
	#section_top_ranking_01 .cast_box .cast_box_list:first-child {
		margin: 0 calc((100% - 10px) / 4);
	}
}

/* 体験動画 */
#section_movie .inner {
	position: relative;
	max-width: 720px;
	padding-top: 100px;
}
#section_movie h2 {
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--font-family1);
	font-size: 7.5rem;
	line-height: 120px;
	background: linear-gradient(to bottom, var(--grad-color1));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
#section_movie video {
	position: relative;
	display: block;
	width: 100%;
	height: auto;
	/* aspect-ratio: 16 / 9; */
	background: #000;
}
@media screen and (max-width: 768px) {
	#section_movie .inner {
		padding-top: 50px;
	}
	#section_movie h2 {
		font-size: 3.75rem;
		line-height: 60px;
	}
}

/* バナー */
#section_top_bnr {
	padding-top: 0;
}
#section_top_bnr ul {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
#section_top_bnr li a {
	display: block;
	line-height: 0;
}
@media screen and (max-width: 768px) {
	#section_top_bnr ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
}

/* BLOG-RSS */
/* #section_blog{
	max-width: 600px;
	margin-bottom: 20px;
}
#section_blog .blog_box{
	height: 460px;
	overflow-y: scroll;
	background: var(--white);
}
#section_blog .blog_box li{
	padding-bottom: 18px;
}
#section_blog .blog_inbox {
	padding-top: 18px;
}
#section_blog .blog_title{
	font-size: 1.2rem;
	font-weight: normal;
	background: #4a4a4a;
	color: var(--white);
	padding: 0 10px;
	border-left: none;
	margin-bottom: 0;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	-webkit-text-overflow: ellipsis;
	-o-text-overflow: ellipsis;
}
#section_blog .blog_txt .comment {
	text-align: left;
	overflow: hidden;
	overflow-wrap: break-word;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
} */


/****************************************

英語ページ(en.html)

****************************************/
/*共通部分*/
#contents_multiLanguage #section_concept,
#contents_multiLanguage #section_schedule_today,
#contents_multiLanguage #contents_system,
#contents_multiLanguage #contents_access,
#contents_multiLanguage #contents_attention{
	padding: 80px 0;
}
.wrap_box {
	max-width: min(100%, 800px);
	margin: 0 auto 40px;
	padding: 40px 40px;
	background: #eee;
}
.wrap_box:last-child {
	margin: 0 auto;
}
/* コンセプト */
#contents_multiLanguage #section_concept {
	text-align: left;
}
#contents_multiLanguage #section_concept h2 {
	line-height: 1.5;
	letter-spacing: 0.1em;
}
#contents_multiLanguage #section_concept p {
	margin-bottom: 1rem;
}
/*本日の出勤情報 タブ*/
#contents_multiLanguage #section_schedule_today{
	min-height: 500px;
}
#contents_multiLanguage .schedule_select .schedule_tab_list li {
	cursor: pointer;
	padding: 10px;
	display: block;
	font-size: 12px;
	background: #999;
	-webkit-transition: 0.4s ease;
	-moz-transition: 0.4s ease;
	transition: 0.4s ease;
}
#contents_multiLanguage .schedule_select .schedule_tab_list li:hover {
	opacity: 0.6;
}
#contents_multiLanguage .schedule_day_wrap .schedule_day_box {
	display: none;
}
#contents_multiLanguage .schedule_day_wrap .schedule_day_box.active {
	display: block;
	animation: fadeIn 1s ease-out forwards;
}
#contents_multiLanguage .schedule_nav li.active {
	background: #000;
	color: var(--white);
}
#contents_multiLanguage .schedule_nav li.active:hover{
	opacity: 1;
}
/*本日の出勤情報 セラピ*/
#contents_multiLanguage .cast_box {
  grid-template-columns: repeat(3, minmax(0, 1fr))!important;
}
#contents_multiLanguage .cast_box .cast_box_list .img_box {
  aspect-ratio: 1 / 1;
}
#contents_multiLanguage .cast_box .cast_box_list .img_box:before { 
  display: none;
}
#contents_multiLanguage .img_box .img_cast{
	aspect-ratio: 2 / 3;
	position: absolute;
}
#contents_multiLanguage .img_box .img_cast:nth-child(1){
	width: 66.6%;
	height: auto;
	top: 0;
	left: 0;
	bottom: auto;
	right: auto;
}
#contents_multiLanguage .img_box .img_cast:nth-child(2){
	width: 33.3%;
	height: auto;
	top: 0;
	left: auto;
	bottom: auto;
	right: 0;
	padding: 0 0 2.5px 5px;
}
#contents_multiLanguage .img_box .img_cast:nth-child(3){
	width: 33.3%;
	height: auto;
	top: auto;
	left: auto;
	bottom: 0;
	right: 0;
	padding: 2.5px 0 0 5px;
}
#contents_multiLanguage .img_box .img_box_frame{
	width: 66.6%;
	height: auto;
	position: absolute;
	top: 0;
	left: 0;
	bottom: auto;
	right: auto;
}
#contents_multiLanguage .img_box .icon_new{
	position: absolute;		
	right: 36%;
	bottom: 5px;
}
/*料金*/
#contents_multiLanguage #contents_system .system_text_caution li {
    padding-left: 1em;
    text-indent: -1em;
    text-align: left;
}
/*料金*/
#contents_multiLanguage #contents_access .access_ol {
    display: flex;
    flex-wrap: wrap;
}
/*海外のお客様向け注意文*/
#contents_multiLanguage #contents_attention {
	position: relative;
	padding: 60px 20px;
}
#contents_multiLanguage #contents_attention .wrap_box div {
	text-align: justify;
}
#contents_multiLanguage #contents_attention .wrap_box ul li {
	padding-left: 0.5em;
  text-indent: -0.5em;
}
@media screen and (max-width: 768px){
	#contents_multiLanguage #section_concept,
	#contents_multiLanguage #section_schedule_today,
	#contents_multiLanguage #contents_system,
	#contents_multiLanguage #contents_access,
	#contents_multiLanguage #contents_attention{
		padding: 40px 0;
	}
	#contents_multiLanguage #section_concept {
		font-size: 12px;
	}
	#contents_multiLanguage .cast_box {
		grid-template-columns: repeat(2, minmax(0, 1fr))!important;
	}
}
@media screen and (max-width: 520px){
	.wrap_box {
		margin-bottom: 20px;
		padding: 20px 20px;
	}
	#contents_multiLanguage .cast_box {
		grid-template-columns: repeat(1, minmax(0, 1fr))!important;
	}
}
/****************************************

下層ページ

****************************************/
/*下層ページ共通設定*/
#contents_topics,
#contents_system,
#contents_play,
#contents_cast,
#contents_profile,
#contents_schedule,
#contents_hotel,
#contents_recruit,
#contents_entry,
#contents_impressions,
#contents_contact,
#contents_enquete,
#contents_reserve,
#contents_link,
#contents_err{
	padding-block: 80px;
}
/* サブビジュアル（固定ヘッダーの高さ 68px 分を空ける） */
.subvisual{
	width: 100%;
	height: 240px;
	margin-top: 68px;
	background: url(../images/bg_subvisual.webp) center / cover no-repeat;
	display: flex;
	justify-content: center;
	align-items: center;
}
/* 見出し（トップの h2.title と同じ見た目） */
.subvisual h2{
	display: flex;
	flex-direction: column;
	align-items: center;
	font-family: var(--font-family1);
	font-size: 4rem;
	line-height: 1.2;
	text-transform: uppercase;
	background: linear-gradient(to bottom, #189712, var(--color-main1));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	filter: drop-shadow(2px 2px 0 rgba(255, 255, 255, 0.5));
}
.subvisual h2 span{
	display: block;
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "游ゴシック", "Yu Gothic", YuGothic, Meiryo, sans-serif;
	font-size: 1rem;
	font-weight: bold;
	line-height: normal;
	text-transform: none;
	color: var(--color-main2);
	-webkit-text-fill-color: var(--color-main2);
}
@media screen and (max-width: 768px) {
	#contents_topics,
	#contents_system,
	#contents_play,
	#contents_cast,
	#contents_profile,
	#contents_schedule,
	#contents_hotel,
	#contents_recruit,
	#contents_entry,
	#contents_impressions,
	#contents_contact,
	#contents_enquete,
	#contents_reserve,
	#contents_link,
	#contents_err{
		padding-block: 40px;
	}
	.subvisual{
		/* SP のヘッダーは背景が透明なので、ロゴと重ならないよう上を空ける */
		height: 200px;
		margin-top: 0;
		padding-top: 70px;
	}
	.subvisual h2{
		font-size: 2.5rem;
	}
	.subvisual h2 span{
		font-size: 0.875rem;
	}
}

/* 見出し */
.subtitle {
	margin-bottom: 16px;
	padding-block: 0.5em;
	background: linear-gradient(-45deg, #ff9d00, #ffd117);
	border-radius: 50px;
	color: var(--white);
	text-align: center;
	font-size: clamp(1.25rem, 3vw, 1.5rem);
	font-weight: bold;
}


/****************************************
女の子一覧ページ & スケジュールページ
****************************************/
/* 週間スケジュール */
.schedule_nav {
	margin: 0 auto 40px;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	max-width: 1000px;
	gap: 8px;
}
.schedule_nav li {
	width: calc((100% - 8px) / 2);
}
.schedule_nav li a {
	padding: 10px;
	display: block;
	font-size: 0.75rem;
	background: var(--white);
	border-radius: 8px;
	border: 1px solid var(--color-main2);
	transition: 0.4s ease;
}
.schedule_nav li a:hover {
	opacity: 0.6;
}
.schedule_nav li.active a,
.en .schedule_nav li.active a {
	background: var(--color-main2);
	color: var(--white);
}
.schedule_nav li.active a:hover,
.en .schedule_nav li.active a:hover{
	opacity: 1;
}
@media screen and (max-width: 768px) {
	.schedule_nav li:first-child{
		width: 100%;
	}
}

/* ナビゲーションボタン 上書き*/
.sch_nav_btn.swiper-button-prev, 
.sch_nav_btn.swiper-button-next {
	margin-top: 0;
	width: auto;
	height: 32px;
	background: var(--white);
	border: 1px solid #d8d8d8;
	color: #3c3c3c;
	transition: ease 0.3s;
}
.sch_nav_btn.swiper-button-prev:after, 
.sch_nav_btn.swiper-button-next:after {
	display: none;
}
/* 矢印（＜ ＞） */
.sch_nav_btn.swiper-button-prev::before,
.sch_nav_btn.swiper-button-next::before {
	content: "";
	width: 6px;
	height: 10px;
	background: currentColor;
	-webkit-mask: url(../images/icon_arrow.svg) center / contain no-repeat;
	mask: url(../images/icon_arrow.svg) center / contain no-repeat;
}
.sch_nav_btn.swiper-button-prev::before {
	margin-right: 8px;
	transform: scaleX(-1);
}
.sch_nav_btn.swiper-button-next::before {
	order: 1;	/* 文字の後ろに出す */
	margin-left: 8px;
}
.sch_nav_btn.swiper-button-prev {
	top: 0;
	left: 0;
	padding: 0 16px 0 8px;
}
.sch_nav_btn.swiper-button-next {
	top: 0;
	right: 0;
	padding: 0 8px 0 16px;
}
.sch_nav_btn.swiper-button-prev.swiper-button-disabled,
.sch_nav_btn.swiper-button-next.swiper-button-disabled {
 opacity: 0;
}

@media screen and (min-width: 768px) {
	.schedule_nav li,
	.schedule_nav li:first-child {
		width: calc((100% - 48px)/ 7 );
	}
}


/****************************************
週間スケジュールページ
****************************************/
#contents_schedule .schedule_box{
	text-align: left;
}
#contents_schedule .schedule_box li{
	padding: 10px;
	background: #e0e0e0;
	grid-template-columns: 10% auto;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: start;
	display: -ms-grid;
	display: grid;
	margin-bottom: 20px;
}
#contents_schedule .schedule_box .name{
	width: 100%;
	font-size: 15px;
}
#contents_schedule .schedule_box table{
	width: 100%;
	height: 80px;
	font-size: 10px;
	text-align: center;
}
/*以下のサイズはサイトに合わせてください*/
#contents_schedule .schedule_box .img_box{
	width: 100%;
    padding-right: 20px;
}
/*以下のサイズはサイトに合わせてください*/
#contents_schedule .schedule_box .img_box img{
	max-width: 100%;
}
@media screen and (max-width: 768px) {
	#contents_schedule .schedule_box li{
		grid-template-columns: auto;
	}
	#contents_schedule .schedule_box .img_box{
        width: 50%;
        padding-right: 0px;
        margin: 0 auto 10px;
	}
}


/****************************************
プロフィールページ
****************************************/
#contents_profile .inner {
	max-width: 1040px;
	display: flex;
	flex-direction: column;
	gap: 40px;
}
/* 左：写真 / 右：プロフィール */
#contents_profile .profile_outer {
	width: 100%;
	max-width: 800px;
	margin-inline: auto;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	gap: 40px;
}
#contents_profile .profile_box_left {
	width: 300px;
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 20px;
}
#contents_profile .profile_box_left .img_box {
	position: relative;
	width: 100%;
	aspect-ratio: 2 / 3;
	border-radius: 16px;
	overflow: hidden;
}
#contents_profile .profile_box_left .img_box > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* 新人アイコン */
#contents_profile .profile_box_left .img_box .icon_new {
	width: 64px;
	height: auto;
	position: absolute;
	top: 0;
	left: 0;
}
/* サムネイル */
#contents_profile .profile_box_left .thumb_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}
#contents_profile .profile_box_left .thumb_list img {
	display: block;
	width: 60px;
	height: 90px;
	object-fit: cover;
}

/* 右：白い枠のボックス */
#contents_profile .profile_box_right {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding: 24px;
	background: var(--white);
	border: 2px solid var(--border-color1);
	border-radius: 24px;
	word-break: break-word;
}
#contents_profile .profile_box_right .txt_box_03 {
	display: flex;
	flex-direction: column;
	gap: 16px;
	text-align: center;
}
/* 一言コメント */
#contents_profile .profile_box_right .short_comment {
	padding-block: 4px;
	background: var(--color-main2);
	color: var(--white);
	font-size: 0.75rem;
	font-weight: bold;
}
/* 名前・年齢・身長・カップ */
#contents_profile .profile_box_right .name {
	font-size: 1.5rem;
}
#contents_profile .profile_box_right .size span:not(:last-of-type) {
	margin-right: 0.5em;
	padding-right: 0.5em;
	border-right: 1px solid var(--color-main1);
}
/* チェックアイコン */
#contents_profile .profile_box_right .icon {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 5px;
}
#contents_profile .profile_box_right .icon img {
	display: block;
	width: 100%;
	height: auto;
}
/* SNSアイコン（登録がなければ余白も出さない） */
#contents_profile .profile_box_right .icon_box {
	display: flex;
	justify-content: center;
	gap: 8px;
}
#contents_profile .profile_box_right .icon_box:not(:has(a)) {
	display: none;
}
#contents_profile .profile_box_right .icon_box img {
	display: block;
	width: 30px;
	height: auto;
}
/* 見出し（共通の .subtitle を上書き） */
#contents_profile .subtitle {
	margin: 0;
	padding: 16px 0 0;
	background: none;
	border-bottom: 1px solid var(--border-color2);
	border-radius: 0;
	color: var(--color-main3);
	font-size: 1.375rem;
}
/* 女の子に質問 */
#contents_profile .table_01 {
	font-size: 0.875rem;
}
/* 動画 */
#contents_profile .profile_box_right video {
	display: block;
	width: 100%;
	height: auto;
}
/* コメント */
#contents_profile .profile_box_right .long_comment {
	font-size: 0.875rem;
	text-align: left;
}
@media screen and (max-width: 768px) {
	#contents_profile .inner {
		width: calc(100% - 40px);
	}
	#contents_profile .profile_outer {
		flex-direction: column;
		align-items: center;
	}
	#contents_profile .profile_box_right {
		flex: none;
		width: 100%;
	}
	#contents_profile .table_01 tr {
		flex-direction: column;
		align-items: flex-start;
		gap: 5px;
	}
}

/*出勤タイムライン設定*/
ul.timeline-head,
ul.timeline {
	display:table;
	table-layout:fixed;
	width:100%;
	font-size: 0.5em;
}
ul.timeline-head li,
ul.timeline li {
	display:table-cell;
	text-align:center;
}
ul.timeline-head li:first-child {
	border-left:none;
}
ul.timeline li {
	text-indent:-600px;
	overflow:hidden;
	border-top:1px solid #CCC;
}
ul.timeline li:first-child {
	border-left:none;
}
ul.timeline li.ui-selected {
	background:#000b84;
}


/* ↓↓ レスポンシブ用スケジュール ↓↓ */
.profile_box_schedule .profile_sch_box {
	width: 100%;
	display: flex;
	box-sizing: border-box;
	border: 1px solid var(--gray1);
	margin: 40px 0;
}
.profile_box_schedule .profile_sch_box .profile_sch_variable {
	flex-grow: 1;
	background: var(--white);
	border-left: 1px solid var(--gray1);
}
.profile_box_schedule .profile_sch_box .profile_sch_variable:nth-of-type(1) {
	border-left: none;
}
/* .profile_box_schedule .profile_sch_box div:nth-of-type(1).profile_sch_variable .profile_sch_date,
.profile_box_schedule .profile_sch_box div:nth-of-type(1).profile_sch_variable .profile_sch_check{
	border-left: none;
} */
.profile_box_schedule .profile_sch_box .profile_sch_variable .profile_sch_date {
	padding: 5px;
	/* border-left: 1px solid var(--gray1); */
	border-bottom: 1px solid var(--gray1);
	background: var(--bg-color2);
}
.profile_box_schedule .profile_sch_box .profile_sch_variable .profile_sch_check {
	padding: 5px;
	/* border-left: 1px solid var(--gray1); */
	background: var(--white);
}
.profile_box_schedule .profile_sch_box .profile_sch_variable .profile_sch_check .icon_shop_chart {
    padding: 5px 20px;
}
@media (max-width: 767px) {
	.profile_box_schedule .profile_sch_box {
		display: block;
	}
	.profile_box_schedule .profile_sch_box .profile_sch_variable {
		flex-grow: unset;
		display: flex;
		border-left: none;
	}
	.profile_box_schedule .profile_sch_box .profile_sch_variable .profile_sch_date {
		flex-basis: 50%;
	}
	.profile_box_schedule .profile_sch_box .profile_sch_variable .profile_sch_check {
		flex-basis: 50%;
		border-left: 1px solid var(--gray1);
		border-bottom: 1px solid var(--gray1);
	}
	/* .profile_box_schedule .profile_sch_box div:nth-of-type(1).profile_sch_variable .profile_sch_check{
		border-left: 1px solid var(--gray1);
	} */
	.profile_box_schedule .profile_sch_box .profile_sch_variable:last-of-type :where(.profile_sch_date, .profile_sch_check) {
		border-bottom: none;
	}

}
/* ↑↑ ここまで レスポンシブ用スケジュール */


/****************************************
新着情報ページ
****************************************/
#contents_topics .topics_article {
	max-width: 640px;
	margin-inline: auto;
}
#contents_topics .topics_article:not(:last-of-type) { margin-bottom: 20px;}

#contents_topics .no_data {
	font-size: 0.875rem;
}
@media screen and (max-width: 768px) {
	#contents_topics {
		padding-block: 40px;
	}
	#contents_topics .topics_list {
		gap: 16px;
	}
	#contents_topics .topics_article {
		padding: 20px;
		border-radius: 12px;
	}
}

/****************************************
料金システムページ
****************************************/
#contents_system .system_box {
	text-align: left;
	font-size: 0.875rem;
}
/* 大見出し */
#contents_system .system_title {
	margin-bottom: 24px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--border-color1);
	color: var(--color-main2);
	font-size: 1.5rem;
	font-weight: bold;
	line-height: 1.4;
}
/* 小見出し（共通の h3 の背景・余白を打ち消す） */
#contents_system .course_name,
#contents_system .system_subtitle {
	margin-bottom: 8px;
	font-size: 1.125rem;
	font-weight: bold;
}
#contents_system .course_name {
	color: var(--color-main3);
}
#contents_system .system_subtitle {
	color: var(--color-main2);
}
#contents_system .system_subtitle:not(:first-of-type) {
	margin-top: 32px;
}
/* コース */
#contents_system .course + .course {
	margin-top: 40px;
}
#contents_system .course_catch {
	margin-bottom: 12px;
	color: var(--color-main2);
}

/* 料金表 */
#contents_system .table_system {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
}
#contents_system .table_system + .table_system {
	margin-top: 24px;
}
#contents_system .table_system th,
#contents_system .table_system td {
	padding: 12px 8px;
	border-bottom: 1px solid var(--border-color1);
	text-align: center;
	vertical-align: middle;
}
#contents_system .table_system thead th {
	background: var(--bg-color2);
	color: #3a3a3a;
	font-size: 0.875rem;
	font-weight: bold;
}
#contents_system .table_system tbody th {
	font-weight: bold;
}

#contents_system .table_course th,
#contents_system .table_course td {
	width: calc(100% / 3);
}
#contents_system .table_course .price_normal {
	color: #777;
}
#contents_system .table_course .price_event {
	color: var(--color-main4);
	font-size: 1.125rem;
	font-weight: bold;
}
/* 2列の表（オプション・交通費）：左が料金・項目、右が内容 */
#contents_system .table_list th {
	width: 30%;
	color: var(--color-main2);
	white-space: nowrap;
}
#contents_system .table_list td {
	font-size: 0.875rem;
	text-align: left;
}

/* 注記 */
#contents_system .system_note {
	margin-top: 12px;
	font-size: 0.8125rem;
}

/* 禁止事項 */
#contents_system .list_prohibited {
	margin-block: 16px;
}
#contents_system .list_prohibited li {
	position: relative;
	padding-block: 4px;
	padding-left: 1.4em;
}
#contents_system .list_prohibited li::before {
	content: "●";
	position: absolute;
	left: 0;
	color: var(--color-main1);
}

@media screen and (max-width: 768px) {
	#contents_system .inner {
		gap: 24px;
	}
	#contents_system .system_title {
		margin-bottom: 16px;
		font-size: 1.25rem;
	}
	#contents_system .course_name,
	#contents_system .system_subtitle {
		font-size: 1rem;
	}
	#contents_system .course + .course {
		margin-top: 32px;
	}
	#contents_system .table_system th,
	#contents_system .table_system td {
		padding: 10px 4px;
	}
	#contents_system .table_system thead th {
		font-size: 0.75rem;
	}
	#contents_system .table_course .price_event {
		font-size: 1rem;
	}
	#contents_system .table_list th {
		width: 35%;
	}
}


/****************************************
プレイ内容ページ
****************************************/
/* プレイの流れ */
#contents_play .play_flow {
	display: grid;
	gap: 48px;
	margin-bottom: 64px;
}
/* 枠線・背景は共通の .txt_box_01 を使う */
#contents_play .play_item {
	position: relative;
	display: grid;
	grid-template-columns: 400px 1fr;
	grid-template-rows: auto 1fr;
	grid-template-areas:
		"img title"
		"img txt";
	column-gap: 32px;
	text-align: left;
}
#contents_play .play_img {
	grid-area: img;
}
#contents_play .play_txt {
	grid-area: txt;
}
/* 次のステップへの下向き矢印 */
#contents_play .play_item + .play_item::before {
	content: "";
	position: absolute;
	top: -32px;
	left: 50%;
	border-top: 14px solid var(--color-main1);
	border-right: 18px solid transparent;
	border-left: 18px solid transparent;
	transform: translateX(-50%);
}
#contents_play .play_img img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}
#contents_play .play_title {
	grid-area: title;
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 12px;
	border-bottom: 1px dashed var(--border-color1);
	color: var(--color-main2);
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 1.5;
}
#contents_play .play_num {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--color-main3);
	color: var(--white);
	font-family: var(--font-family1);
	font-size: 1.625rem;
	line-height: 1;
}
#contents_play .play_txt p + p {
	margin-top: 1em;
}
#contents_play .play_note {
	color: var(--color-main4);
	font-size: 0.875rem;
	font-weight: bold;
}
/* プレイ終了後のご案内 */
#contents_play .play_after {
	text-align: left;
}
#contents_play .play_after p + p {
	margin-top: 1em;
}
@media screen and (max-width: 768px) {
	#contents_play .play_flow {
		gap: 40px;
		margin-bottom: 48px;
	}
	/* SP は見出し・画像・テキストの順に縦に並べる */
	#contents_play .play_item {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto;
		grid-template-areas:
			"title"
			"img"
			"txt";
		row-gap: 20px;
	}
	#contents_play .play_title {
		margin-bottom: 0;
	}
	#contents_play .play_item + .play_item::before {
		top: -28px;
		border-top-width: 12px;
		border-right-width: 15px;
		border-left-width: 15px;
	}
	#contents_play .play_img {
		text-align: center;
	}
	#contents_play .play_img img {
		max-width: 400px;
	}
	#contents_play .play_title {
		font-size: 1.0625rem;
	}
	#contents_play .play_num {
		width: 38px;
		height: 38px;
		font-size: 1.375rem;
	}
}


/****************************************
ホテルページ
****************************************/
/* ご利用の流れ */
#contents_hotel .hotel_box {
	text-align: left;
	font-size: 0.875rem;
}
/* 番号付きの手順 */
#contents_hotel .hotel_flow {
	counter-reset: flow;
}
#contents_hotel .hotel_flow > li {
	position: relative;
	padding-block: 16px;
	padding-left: 44px;
	counter-increment: flow;
}
#contents_hotel .hotel_flow > li + li {
	border-top: 1px dashed var(--border-color1);
}
#contents_hotel .hotel_flow > li::before {
	content: counter(flow);
	position: absolute;
	top: 14px;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--color-main3);
	color: var(--white);
	font-family: var(--font-family1);
	font-size: 1.25rem;
	font-weight: bold;
}
#contents_hotel .flow_title {
	margin-bottom: 8px;
	color: var(--color-main2);
	font-size: 1rem;
	font-weight: bold;
}
#contents_hotel .list_dot {
	margin-bottom: 8px;
}
#contents_hotel .list_dot li {
	position: relative;
	padding-left: 1.2em;
}
#contents_hotel .list_dot li::before {
	content: "・";
	position: absolute;
	left: 0;
	color: var(--color-main1);
}
#contents_hotel .hotel_btn {
	margin: 16px 0 0;
	transition: filter 0.4s ease;
}
/* 電話・営業時間 */
#contents_hotel .hotel_tel {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 16px;
	align-items: center;
	margin-top: 16px;
	padding: 16px 24px;
	background: var(--bg-color1);
	border-radius: 12px;
}
#contents_hotel .hotel_tel dt {
	color: var(--color-main2);
	font-weight: bold;
}
#contents_hotel .hotel_tel dd a {
	color: var(--color-main4);
	font-size: 1.5rem;
	font-weight: bold;
}
#contents_hotel .hotel_note {
	margin-top: 12px;
	font-size: 0.8125rem;
}
/* ホテルリストの見出し：固定ヘッダー（68px）に隠れないよう、ジャンプ先の上に余白をとる */
#contents_hotel #hotel_list {
	scroll-margin-top: 88px;
}
/* ホテルリスト：エリアへのアンカーリンク */
#contents_hotel .hotel_area_nav {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	margin-bottom: 24px;
}
#contents_hotel .hotel_area_nav a {
	position: relative;
	display: block;
	padding: 10px 24px 10px 12px;
	background: var(--white);
	border: 1px solid var(--color-main2);
	border-radius: 1000px;
	color: var(--color-main2);
	text-align: center;
	font-weight: bold;
	transition: background 0.4s ease, color 0.4s ease;
}
/* 下向きの矢印 */
#contents_hotel .hotel_area_nav a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 16px;
	width: 6px;
	height: 6px;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: translateY(-75%) rotate(45deg);
}
#contents_hotel .hotel_area_nav a:hover {
	background: var(--color-main2);
	color: var(--white);
}
/* ホテルリスト */
#contents_hotel .hotel_list_title {
	/* 固定ヘッダー（68px）に隠れないよう、ジャンプ先の上に余白をとる */
	scroll-margin-top: 88px;
	margin-bottom: 8px;
	color: var(--color-main3);
	font-size: 1.125rem;
	font-weight: bold;
}
#contents_hotel .table_hotel + .hotel_list_title {
	margin-top: 40px;
}
#contents_hotel .table_hotel {
	width: 100%;
	border-collapse: collapse;
}
#contents_hotel .table_hotel th,
#contents_hotel .table_hotel td {
	padding: 10px 8px;
	border-bottom: 1px solid var(--border-color1);
	text-align: left;
	vertical-align: middle;
}
#contents_hotel .table_hotel thead th {
	background: var(--bg-color2);
	color: #3a3a3a;
	font-size: 0.8125rem;
	font-weight: bold;
}
#contents_hotel .table_hotel td:first-child {
	width: 36%;
	font-weight: bold;
}
#contents_hotel .table_hotel td:nth-child(2) {
	width: 18%;
	white-space: nowrap;
}
#contents_hotel .table_hotel a {
	color: var(--color-main2);
	text-decoration: underline;
}
#contents_hotel .table_hotel a:hover {
	opacity: 0.6;
}
@media screen and (max-width: 768px) {
	#contents_hotel .hotel_area_nav {
		grid-template-columns: repeat(2, 1fr);
	}
	#contents_hotel .hotel_area_nav a {
		padding-block: 8px;
		font-size: 0.875rem;
	}
	/* SP は1件ずつ縦に並べる */
	#contents_hotel .hotel_list_title {
		font-size: 1rem;
	}
	#contents_hotel .table_hotel + .hotel_list_title {
		margin-top: 32px;
	}
	#contents_hotel .table_hotel thead {
		display: none;
	}
	#contents_hotel .table_hotel tr,
	#contents_hotel .table_hotel td {
		display: block;
	}
	#contents_hotel .table_hotel tr {
		padding-block: 10px;
		border-bottom: 1px solid var(--border-color1);
	}
	#contents_hotel .table_hotel td {
		padding: 2px 0;
		border-bottom: none;
		font-size: 0.8125rem;
	}
	#contents_hotel .table_hotel td:first-child,
	#contents_hotel .table_hotel td:nth-child(2) {
		width: auto;
	}
	#contents_hotel .table_hotel td:first-child {
		font-size: 0.875rem;
	}
	#contents_hotel .hotel_flow > li {
		padding-left: 36px;
	}
	#contents_hotel .hotel_flow > li::before {
		width: 26px;
		height: 26px;
		font-size: 0.875rem;
	}
	#contents_hotel .flow_title {
		font-size: 0.9375rem;
	}
	#contents_hotel .hotel_btn {
		margin-inline: auto;
	}
	#contents_hotel .hotel_tel {
		padding: 12px 16px;
	}
	#contents_hotel .hotel_tel dd a {
		font-size: 1.25rem;
	}
}


/****************************************
求人情報ページ
****************************************/
#contents_recruit + #contents_entry {
	padding-top: 0;
	scroll-margin-top: 88px;
}
/* メッセージ */
.recruit_message p:not(:last-child) {
	margin-bottom: 1em;
}
.recruit_message .recruit_catch {
	color: var(--color-main2);
	text-align: center;
	font-size: clamp(1.125rem, 2.5vw, 1.375rem);
	font-weight: bold;
	line-height: 1.6;
}
.recruit_message .recruit_heading {
	margin: 32px 0 16px;
	padding-bottom: 8px;
	border-bottom: 2px dashed var(--border-color1);
	color: var(--color-main2);
	font-size: clamp(1.0625rem, 2.2vw, 1.25rem);
	font-weight: bold;
}
.recruit_message .recruit_point {
	margin-bottom: 16px;
	padding: 16px 20px;
	background: var(--bg-color1);
	border-radius: 16px;
}
.recruit_message .recruit_point h5 {
	margin-bottom: 4px;
	color: var(--color-main4);
	font-size: 1rem;
	font-weight: bold;
}
.recruit_message .recruit_point p {
	margin-bottom: 0;
}


/****************************************
WEB予約ページ
****************************************/



/****************************************
アンケートページ
****************************************/



/****************************************
体験漫画ページ
****************************************/



/****************************************
リンクページ
****************************************/
#contents_link .free_link_box img {
	max-width: 100%!important;
	height: auto!important;
}


/****************************************
404ページ
****************************************/
#contents_err h3 {
	font-size: clamp(2rem, 6vw, 2.5rem);
	color: var(--color-main2);
	line-height: 1;
}
#contents_err h3 span {
	font-size: 0.85rem;
}

/****************************************
ブログページ
****************************************/
.blog_page .inner,
.profile_blog_box .inner {
	max-width: 640px;
}

.blog_page .list_wrap {
	margin-bottom: 30px;
}
.blog_therapist_list,
.blog_cat_list,
.blog_tags_list {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	list-style: none;
	padding: 0;
}
.blog_tags_list {
	gap: 10px;
}
.blog_therapist_list a,
.blog_cat_list a {
	display: flex;
	align-items: center;
	padding: 4px 10px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: var(--white);
	position: relative;
}
.blog_tags_list a {
	display: flex;
	align-items: center;
	padding: 4px;
	position: relative;
	border-bottom: 1px dashed #ddd;
}
.blog_cat_list a::before {
	content: "";
	width: 12px;
	height: 10px;
	margin-right: 5px;
	background: url(../images/icon_category.png) center / cover no-repeat;
	filter: brightness(0) saturate(100%) invert(70%) sepia(8%) saturate(7%) hue-rotate(12deg) brightness(87%) contrast(87%);
}
.blog_tags_list a::before {
	content: "#";
	color: #999;
}
.blog_therapist_list .cnt,
.blog_cat_list .cnt,
.blog_tags_list .cnt {
	display: flex;
	justify-content: center;
	align-items: center;
	background: #eee;
	font-size: 12px;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	margin-left: 5px;
	padding-bottom: 1px;
}
.blog_articlebox ul,
.blog_latest ul {
	list-style: none;
	padding: 0;
}
.blog_articlebox article a,
.profile_blog_list a {
	display: block;
	text-decoration: none;
}

.blog_list li {
	padding: 18px 0;
	border-bottom: 1px solid #e5e5e5;
}
.blog_inbox {
	display: flex;
	gap: 18px;
}
.blog_thum img {
	width: 100px;
	height: 100px;
	object-fit: cover;
}
.blog_noimage {
	width: 100px;
	height: 100px;
	background: #e5e5e5;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #777;
	font-size: 12px;
}
.blog_txt {
	flex: 1;
	min-width: 0;
	line-height: 1.4;
}
.blog_title {
	font-size: 1rem;
	text-align: left;
	margin-bottom: 8px;
	overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.blog_txt .day,
.blog_detail_day {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}
.blog_txt .day .blog_name,
.blog_detail_day .blog_name {
	color: #555;
	background: #dfdfdf;
	padding: 2px 6px 1px;
	font-size: 11px;
	text-align: left;
	line-height: 1.2;
	border-radius: 10px;
}
.blog_txt .day time,
.blog_detail_day time {
	color: #b1b1b1;
	font-size: 11px;
	font-weight: normal;
	line-height: 1.2;
	text-align: left;
}

.blog_tax {
	margin-top: 8px;
}
.blog_detail_tax {
	margin-bottom: 20px;
}
.blog_tax,
.blog_tax div,
.blog_detail_tax,
.blog_detail_tax div {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 8px;
}
.blog_tags span,
.blog_tags a {
	display: inline-block;
	padding: 2px;
	border-bottom: 1px dashed #ddd;
	color: #555;
	font-size: 0.7rem;
	line-height: 1.5;
	text-decoration: none;
	white-space: nowrap;
}
.blog_tags span::before,
.blog_tags a::before {
	content: "#";
	color: #999;
}
.blog_cat span,
.blog_cat a {
	display: inline-block;
	padding: 4px 6px 2px;
	border: 1px solid #ddd;
	border-radius: 4px;
	background: var(--white);
	color: #555;
	font-size: 11px;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}
.blog_cat span::before,
.blog_cat a::before {
	display: inline-block;
	content: "";
	width: 12px;
	height: 10px;
	margin-right: 5px;
	background: url(../images/icon_category.png) center / cover no-repeat;
	filter: brightness(0) saturate(100%) invert(70%) sepia(8%) saturate(7%) hue-rotate(12deg) brightness(87%) contrast(87%);
}

.blog_txt .comment {
	text-align: left;
	overflow: hidden;
	overflow-wrap: break-word;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	line-clamp: 2;
}

.blog_page .txt_editor {
	background: var(--white);
	padding: 20px;
}
.blog_page .txt_editor img {
	max-width: 100%;
	height: auto !important;
}

.subvisual.blog_detail_title {
	background: #eee;
}
.subvisual.blog_detail_title h1 {
	font-size: clamp(1.3rem,3vw,2rem);
	font-weight: 700;
	letter-spacing: 2px;
	padding-top: 80px;
	line-height: 1.2;
}

/* 目次 */
.blog_toc {
	padding: 20px;
	background: #eee;
}
.blog_toc_title {
	font-size: 1rem;
	font-weight: bold;
	border-bottom: solid 1px var(--gray1);
	padding-bottom: 10px;
	margin-bottom: 20px;
	position: relative;
}
.blog_toc_title::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 12px;
	background: #3e4349;
	mask: url("../images/icon_toc.svg") center / contain no-repeat;
	-webkit-mask: url("../images/icon_toc.svg") center / contain no-repeat;
	margin-right: 8px;
}
.blog_toc ol {
	counter-reset: toc-level2;
}
.blog_toc ol li {
	display: flex;
	align-items: center;
	text-align: left;
	position: relative;
	margin-bottom: 5px;
	line-height: 1.2;
}
.blog_toc ol li a {
	display: block;
	width: 100%;
	border-bottom: dashed 1px var(--gray1);
	padding: 5px 0;
}
.blog_toc .toc_level_2 {
	font-weight: bold;
	font-size: 1rem;
	padding-left: 36px;
	counter-increment: toc-level2;
}
.blog_toc .toc_level_3 {
	margin-left: 2.4rem;
}
.blog_toc .toc_level_4 {
	margin-left: 3.2rem;
}
.blog_toc .toc_level_2::before {
	content: counter(toc-level2, decimal-leading-zero) " ";
	color: var(--white);
	font-weight: normal;
	font-size: 0.8rem;
	margin-right: 5px;
	background: #999;
	border-radius: 50%;
	width: 26px;
	height: 26px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
}
.blog_toc .toc_level_3::before,
.blog_toc .toc_level_4::before {
	content: "-";
	margin-right: 5px;
}

/* 開閉 */
.blog_toc .blog_toc_contents {
	position: relative;
	max-height: 200px;
	overflow: hidden;
	transition: max-height 0.5s ease-in-out;
}
.blog_toc .blog_toc_fade {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 50px;
	background: linear-gradient(to bottom, #eeeeee00, #eeeeeeff);
	opacity: 1;
	transition: opacity 0.3s ease;
	pointer-events: none;
}
.blog_toc .blog_toc_contents.selected {
	max-height: var(--max-height, 1000px);
}
.blog_toc .blog_toc_contents.selected .blog_toc_fade {
	opacity: 0;
}
.blog_toc .blog_toc_toggle {
	display: inline-block;
	width: 180px;
	height: 40px;
	line-height: 40px;
	margin: 20px auto 0;
	border: solid 1px #999;
	border-radius: 50px;
	cursor: pointer;
	transition: opacity 0.4s ease;
	position: relative;
}
.blog_toc .blog_toc_toggle:hover {
	opacity: 0.6;
}

/* ライタープロフィール */
.blog_author {
	padding: 20px;
	background: var(--white);
	border: solid 1px #e5e5e5;
}
.blog_author_box,
.blog_author_btn {
	max-width: 500px;
	margin: 0 auto;
}
.blog_author_box {
	display: flex;
	align-items: center;
	gap: 20px;
	
}
.blog_author_btn {
	border-top: solid 1px #e5e5e5;
	margin-top: 10px;
}
.blog_author_img img {
	width: 100px;
	height: 100px;
	object-fit: cover;
	border-radius: 50%;
}
.blog_author_txt {
	flex: 1;
	text-align: left;
	line-height: 1.4;
}
.blog_author_name {
	font-size: 1rem;
	font-weight: bold;
	margin-bottom: 5px;
}
.profile_blog_list li {
	margin-bottom: 12px;
}
.profile_blog_list a {
	display: flex;
	align-items: center;
	gap: 12px;
}
.blog_author .btn_more {
	margin: 10px auto 0;
}
.blog_share {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin-top: 10px;
}
.blog_share img {
	width: 30px;
}

/* 次へ・前へ */
.btn_blog {
	display: flex;
	justify-content: center;
	gap: 20px;
	margin: 30px 0;
}
.btn_blog li a {
	display: block;
	position: relative;
}
.btn_blog .prev a {
	padding-left: 15px;
}
.btn_blog .next a {
	padding-right: 15px;
}
.btn_blog .prev a::after,
.btn_blog .next a::after {
	content: '';
	position: absolute;
	top: 50%;
	width: 6px;
	height: 6px;
	border-top: 1px solid #3e4349;
	border-left: 1px solid #3e4349;
}
.btn_blog .prev a::after {
	left: 2px;
	transform: translateY(-50%) rotate(-45deg);
}
.btn_blog .next a::after {
	right: 2px;
	transform: translateY(-50%) rotate(135deg);
}

#contents_blog_detail .btn_blog {
	width: calc(100% - 40px);
	max-width: 450px;
	margin: 30px auto;
}
#contents_blog_detail .btn_blog li {
	width: 50%;
}
#contents_blog_detail .btn_blog li a {
	border-bottom: 1px dashed #ddd;
	line-height: 1.4;
	padding: 10px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	-webkit-text-overflow: ellipsis;
}
#contents_blog_detail .btn_blog li a span {
	display: block;
	font-size: 11px;
	color: #b1b1b1;
}
#contents_blog_detail .btn_blog .prev a {
	padding-left: 20px;
	text-align: left;
}
#contents_blog_detail .btn_blog .next a {
	padding-right: 20px;
	text-align: right;
}

/* 共有ボタン */
.blog_page .social_post {
	display: flex;
	justify-content: center;
	gap: 10px;
}
.blog_page .x-post-btn,
.blog_page .line-share-btn {
	display: block;
	width: 100px;
	color: var(--white);
	border-radius: 20px;
	font-size: 12px;
	padding: 1px 0;
}
.blog_page .x-post-btn {
	background: #0f1419;
}
.blog_page .line-share-btn {
	background: #06c755;
}
.blog_page .x-post-btn img,
.blog_page .line-share-btn img {
	vertical-align: baseline;
	filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(93deg) brightness(103%) contrast(103%);
}

/* ------------------------------------------
 エディター設定 
------------------------------------------ */
#contents_blog_detail .txt_editor {
	text-align: left;
}
/* --- 見出し --- */
/* リセット */
#contents_blog_detail .txt_editor .blog-heading-1 {
	font-size: 1rem;
	font-weight: normal;
	text-transform: none;
	line-height: 1;
	margin-bottom: 0;
}
#contents_blog_detail .txt_editor .blog-heading-2 {
	font-weight: normal;
	font-size: 1rem;
	background: none;
	padding-left: 0;
	border-left: none;
	margin-bottom: 0;
}
/* 設定 */
#contents_blog_detail .txt_editor .blog-heading-1 {
	font-size: 1.4rem;
	font-weight: bold;
	padding: 10px;
	background: #4a4a4a;
	color: var(--white);
	line-height: 1.2;
}
#contents_blog_detail .txt_editor .blog-heading-2 {
	font-size: 1.2rem;
	font-weight: bold;
	padding: 10px;
	background: #f2f2f2;
	color: #333;
	line-height: 1.2;
	border-left: solid 5px #999;
}
#contents_blog_detail .txt_editor .blog-heading-3 {
	font-size: 1rem;
	font-weight: bold;
	padding: 10px 10px 10px 0;
	color: #333;
	line-height: 1.2;
	border-bottom: solid 3px #f2f2f2;
	position: relative;
}
#contents_blog_detail .txt_editor .blog-heading-3::after {
	display: block;
	content: " ";
	position: absolute;
  bottom: -3px;
	left: 0;
  width: 20%;
  border-bottom: solid 3px #999;
}
#contents_blog_detail .txt_editor .blog-heading-4 {
	font-size: 1rem;
	font-weight: bold;
	padding: 10px 10px 10px 0;
	color: #333;
	line-height: 1.2;
	border-bottom: dashed 1px #999;
}
#contents_blog_detail .txt_editor .blog-heading-5 {
	font-size: 0.8rem;
	font-weight: bold;
	color: #333;
	line-height: 1.2;
	margin-bottom: 10px;
}
#contents_blog_detail .txt_editor [id^="heading-"] {
  scroll-margin-top: 100px;
}

/* --- リスト --- */
#contents_blog_detail .txt_editor ol {
	list-style-type: decimal;
	margin-left: 1rem;
}
#contents_blog_detail .txt_editor ol li::marker {
	color: #999;
	font-size: 1rem;
}
#contents_blog_detail .txt_editor ul {
	list-style-type: disc;
	margin-left: 1rem;
}
#contents_blog_detail .txt_editor ul li::marker {
	color: #999;
	font-size: 1.2rem;
	line-height: 1.2;
}
/* --- 引用 --- */
#contents_blog_detail .txt_editor blockquote {
	max-width: 500px;
	padding: 10px 20px;
	margin: 10px 20px;
	color: #333;
	border-left: solid 4px #f2f2f2;
}
/* --- 書式付き --- */
#contents_blog_detail .txt_editor pre {
	display: inline-block;
	color: #333;
	background: #f2f2f2;
	padding: 10px;
	line-height: 1.2;
}
/* --- リンク --- */
#contents_blog_detail .txt_editor a {
	color: #ff007e;
	transition: opacity 0.4s ease;
}
#contents_blog_detail .txt_editor a:hover {
	opacity: 0.5;
}
/* --- テーブル --- */
#contents_blog_detail .txt_editor table {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100% !important;
  text-align: center;
	line-height: 1.2;
}
#contents_blog_detail .txt_editor table th,
#contents_blog_detail .txt_editor table td {
  border: solid 1px #999;
  padding: 5px;
	vertical-align: middle;
}
#contents_blog_detail .txt_editor table thead th {
  background: #4a4a4a;
  color: var(--white);
  border: solid 1px #999;
  border-right: solid 1px var(--white);
}
#contents_blog_detail .txt_editor table thead th:last-of-type {
  border-right: solid 1px #999;
}
#contents_blog_detail .txt_editor table tbody th {
  color: #333;
  font-weight: bold;
  text-align: center;
}

/* 店舗ブログとは独立した写メ日記（diary） */
.photodiary_list .blog_thum img,
.photodiary_section .blog_thum img {
  width: 100%;
  height: auto;
  object-fit: cover;
}
.photodiary_list video {
  display: block;
  width: 100%;
  max-width: 640px;
  height: auto;
  margin-top: 15px;
}
.content_diaryinfo {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.content_diaryinfo details,
.content_diaryinfo summary { list-style: none; }
.content_diaryinfo summary::-webkit-details-marker { display: none; }
.content_diaryinfo .modal-open-button { cursor: pointer; }
.content_diaryinfo .diary_box {
  height: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  background: var(--white);
  box-sizing: border-box;
}
.content_diaryinfo .article_image img,
.content_diaryinfo .article_image video {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  height: auto;
  object-fit: cover;
}
.content_diaryinfo .article_txt { padding-top: 8px; text-align: center; }
.content_diaryinfo .article_txt p { margin: 0; }
.content_diaryinfo .article_txt .diary_title { font-weight: bold; }
.content_diaryinfo .article_txt .pd_date { font-size: 12px; }
.content_diaryinfo .modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, .85);
}
.content_diaryinfo details[open] .modal-overlay { display: block; }
.content_diaryinfo .modal-wrapper {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1001;
  width: min(560px, 92vw);
  max-height: 90vh;
  overflow-y: auto;
  transform: translate(-50%, -50%);
  background: var(--white);
  color: #333;
}
.content_diaryinfo details[open] .modal-wrapper { display: block; }
.content_diaryinfo .modal-close {
  display: none;
  position: fixed;
  top: 2vh;
  right: 3vw;
  z-index: 1002;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--white);
  font-size: 48px;
  line-height: 1;
  cursor: pointer;
}
.content_diaryinfo details[open] .modal-close { display: block; }
.content_diaryinfo .modal-content { padding: 20px; }
.content_diaryinfo .phd_popup_img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 65vh;
  object-fit: contain;
}
.content_diaryinfo .phd_popup_cast { display: flex; align-items: center; gap: 12px; padding: 15px 0; }
.content_diaryinfo .phd_popup_cast_img { width: 64px; height: 64px; flex: 0 0 64px; overflow: hidden; border-radius: 50%; }
.content_diaryinfo .phd_popup_cast_img img { width: 100%; height: 100%; object-fit: cover; }
.content_diaryinfo .phd_popup_cast_name { font-weight: bold; }
.content_diaryinfo .phd_popup_title { margin-bottom: 10px; font-size: 18px; }
.content_diaryinfo .phd_popup_text { overflow-wrap: anywhere; }
.content_diaryinfo .phd_popup_text img { max-width: 100% !important; height: auto !important; }
.content_diaryinfo .btn_area { display: grid; gap: 10px; margin-top: 20px; }
.content_diaryinfo .btn_area a { text-align: center; }
html.photodiary-modal-open { overflow: hidden; }
@media screen and (max-width: 767px) {
  .content_diaryinfo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .content_diaryinfo .modal-content { padding: 15px; }
}
