@charset "utf-8";

/*
* ベースカラーの設定 *
ヒアリングシートのベースカラーはここに設定してください
*/
:root {
	--color01: #1c9bc4;
	--color02: #069f2b;
	--color03: #d4e6e4;
	--color04: #e8f2f1;
	--color05: #fcac00;
}
/*
Theme Name: portals_responsive
Author: portals
*/
/*==================================
* reset
* html5doctor.com Reset Stylesheet
* v1.6.1
* Last Updated: 2010-09-17
* Author: Richard Clark - http://richclarkdesign.com
* Twitter: @rich_clark
==================================*/
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;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

ol,
ul {
	list-style: none;
}

img {
	vertical-align: top;
	line-height: 0;
}

blockquote,
q {
	quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none;
}

a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

ins {
	background-color: #ff9;
	color: #000;
	text-decoration: none;
}

mark {
	background-color: #ff9;
	color: #000;
	font-style: italic;
	font-weight: bold;
}

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 #cccccc;
	margin: 1em 0;
	padding: 0;
}

input,
select {
	vertical-align: middle;
}

address {
	font-style: normal;
}

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
/*==================================
base
==================================*/
.html {
	overflow-x: hidden;
}
.clear {
	clear: both;
}

.right {
	text-align: right;
}

.left {
	text-align: left;
}

.center {
	text-align: center;
}

.img_left,
.img_right {
	margin: 0 auto 16px;
}

.img_center {
	display: block;
	margin: 0 auto 16px;
}

.only_pc {
	display: none;
}

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

.home a:link {
	color: #fff;
}

.home a:visited {
	color: #fff;
}

.home a:hover {
	color: #1c9bc4;
}
.home a:active {
	color: #1c9bc4;
}

body {
	overflow-x: hidden;
	background: #fff;
	color: #4d4d4d;
	font-size: 14px;
	line-height: 1.5;
	font-family: "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
	margin-top: 0;
}
html,
body {
	overflow-x: hidden;
}
@media screen and (min-width: 480px) {

	.img_left,
	.img_right {
		width: 40%;
	}

	.img_left {
		float: left;
		margin: 0 16px 16px 0;
	}

	.img_right {
		float: right;
		margin: 0 0 16px 16px;
	}
}

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

	.img_left,
	.img_right {
		width: 40%;
	}

	.img_left {
		margin: 0 24px 24px 0;
	}

	.img_right {
		margin: 0 0 24px 24px;
	}

	.only_sp {
		display: none !important;
	}

	.only_pc {
		display: block;
	}

	a:hover img,
	a:active img {
		-webkit-opacity: 0.7;
		opacity: 0.7;
	}

	body {
		width: 100%;
		font-size: 16px;
		line-height: 1.6;
		overflow: visible;
	}
}

@media screen and (min-width: 1364px) {
	body {
		min-width: 1364px;
	}
}

/*==================================
layout
==================================*/
#main_contents,
#contents {
	width: 100%;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

.inner {
	margin: 0 calc(50% - 50vw);
	padding: 3em calc(50vw - 48%);
}

.conts {
	margin: 16px 12px;
}

.conts:after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: "";
	clear: both;
	height: 0;
}

.conts .conts_inner {
	overflow: hidden;
}

.conts p:not([class]) {
	margin-bottom: 8px;
}

.bnr {
	margin: clamp(16px, 5vw, 56px) auto;
}

.ttl {
	margin: clamp(20px, 4.5vw, 56px) auto;
}

/*色のみ変更すればチェックの色を変更可能*/
.bg01 {
	background-color: #f1f7e3;
	background-image:
		linear-gradient(rgba(0, 0, 0, 0.09) 1px, transparent 0),
		linear-gradient(90deg, rgba(0, 0, 0, 0.09) 1px, transparent 0);
	background-size: 10px 10px;
}

/*iframeレスポンシブ*/
.access_gmap,
.youtube {
	margin-top: 1em;
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.access_gmap iframe,
.youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

@media screen and (min-width: 680px) {
	.inner {
		padding: 5em calc(50vw - 48%);
	}

	.conts {
		margin: 24px;
	}

	.bnr {
		margin: clamp(16px, 10vw, 56px) auto;
	}

	.ttl {
		margin: clamp(20px, 9vw, 56px) auto;
	}
}

.no_toppadding {
	padding-top: 0;
}

.no_topmargin {
	margin-top: 0;
}

.no_bottommargin {
	margin-bottom: 0;
}

/*==================================
Header
==================================*/
#header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999999;
	border-top: solid 12px transparent;
	border-image-source: linear-gradient(90deg,
		rgb(23, 142, 196),
		rgb(86, 170, 173) 49%,
		rgb(141, 209, 211));
	border-image-slice: 1;
	background: #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.silhouette-header .h_inner {
	max-width: 1500px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 8px;
	background-color: #fff;
}

.h_logo_wrap {
	display: flex;
	align-items: center;
}

.silhouette-header .h_logo img.responsive_img {
	max-width: clamp(120px, 17vw, 190px);
	height: auto;
	display: block;
}

.header_info_right,
.header_info_left {
	margin-left: 8px;
	font-size: clamp(12px, 2vw, 16px);
}

.header_info_right span {
	display: block;
	margin: 0;
	white-space: nowrap;
}

.header_info_left {
	font-weight: bold;
	text-align: center;
	color: #f23a16;
	border: 2px solid #f23a16;
	border-radius: 2px;
	padding: 3px;
}

@media screen and (min-width: 680px) {
	#header {
		border-top: none;
		border-bottom: none;
		display: block;
		padding: 8px 0 0;
	}

	#header>* {
		width: auto;
	}

	.silhouette-header .h_inner {
		padding: 16px;
	}

	.header_info_right,
	.header_info_left {
		margin-left: 16px;
	}
}

/*==================================
ハンバーガーメニュー
==================================*/
.input-hidden {
	display: none;
}

/* label */
.hamburger_switch {
	cursor: pointer;
	position: absolute;
	right: -6px;
	top: -40px;
	z-index: 9999;
	width: 56px;
	height: 56px;
	display: flex;
	align-items: center;
	justify-content: center;
}

#hamburger:checked~.hamburger_switch {
	position: fixed;
}

.hamburger_icon {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
	width: 28px;
	height: 22px;
}

.hamburger_icon span {
	display: block;
	height: 3px;
	background: #4d4d4d;
	width: 100%;
	border-radius: 1px;
	transition: 0.3s ease;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(1) {
	transform: rotate(45deg) translate(23px, 28px);
	background: #fff;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(2) {
	opacity: 0;
}

#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(3) {
	transform: rotate(-45deg) translate(-15px, 10px);
	background: #fff;
}

.hamburger_menuwrap {
	position: fixed;
	height: 100%;
	background: rgba(23, 142, 196, 0.8);
	padding: 3em 3% 2em;
	z-index: 9998;
	transition: 0.3s;
	overflow-y: scroll;
	top: 0;
	left: 100%;
	width: 70%;
}

.hamburger_menulist {
	margin-right: 3%;
	padding-left: 5%;
	list-style: none;
}

.hamburger_menulist li a {
	text-decoration: none;
	color: #ffffff;
	display: block;
	padding: 0.5em 0;
}
.hamburger_menulist li > a:hover {
	color: #ffffff!important;
}
.contact_conts.nav_menu {
	width: 90%;
}

#hamburger:checked~.hamburger_menuwrap {
	left: 30%;
}

#hamburger:checked~.hamburger_cover {
	position: fixed;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	z-index: 9997;
	background: rgba(3, 3, 3, 0.5);
	display: block;
}

.hamburger_menubox {
	position: relative;
}

.nav_bt {
	width: 90%;
}

.nav_bt_tel,
.nav_bt_line {
	margin: 16px;
}

.nav_bt_tel p {
	color: #fff;
}

.nav_bt_line p {
	color: #fff;
	text-align: center;
	font-weight: bold;
}
.hamburger_menuwrap .side_fixed_menu {
	margin: 16px;
	width: 100%;
	max-width: 222px;
}
.hamburger_menuwrap .widget_nav_menu a,
.hamburger_menuwrap .widget_categories a,
.hamburger_menuwrap .widget_recent_entries a,
.hamburger_menuwrap .widget_nav_menu a:hover,
.hamburger_menuwrap .widget_categories a:hover,
.hamburger_menuwrap .widget_recent_entries a:hover
{
	color: #fff;
}

@media screen and (min-width: 680px) {
	.nav_bt {
		width: 50%;
		max-width: 360px;
		margin-left: 2rem;
	}

	.nav_bt_tel,
	.nav_bt_line {
		margin: 30px 0;
	}

	.nav_bt_line p {
		font-size: 1.2rem;
	}

	.hamburger_switch {
		right: 0px;
	}

	.hamburger_icon {
		width: 36px;
		height: 28px;
		gap: 8px;
	}

	.hamburger_icon span {
		height: 4px;
	}

	#hamburger:checked~.hamburger_switch .hamburger_icon span:nth-child(1) {
		transform: rotate(45deg) translate(28px, 32px);
	}
	.hamburger_menuwrap .side_fixed_menu {
		margin: 0;
		max-width: 360px;
	}
}

/*==================================
下部固定CTAボタン共通
==================================*/

/* モーダルを開くbuttonの初期スタイルを解除 */
.modal_tel_open,
.modal_line_open {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
	font: inherit;
	line-height: 1;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}

/* button内の画像 */
.modal_tel_open img,
.modal_line_open img {
	display: block;
	height: auto;
}


/*==================================
スマホ下部固定ボタン
==================================*/
.silhouette-header .sp_fix_bt {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 999999;
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	background: #ebf9f7;
	box-sizing: border-box;
	box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
}

.sp_fix_head {
	width: 100%;
	margin: 0 0 4px;
	padding: 0;
	line-height: 0;
}

.sp_fix_head img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	margin: 0;
}

.sp_fix_btns {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: end;
	width: 100%;
	list-style: none;
	box-sizing: border-box;
}

.sp_fix_btns li {
	display: block;
	min-width: 0;
	margin: 0;
	padding: 0;
	line-height: 0;
}

/* a・button共通 */
.sp_fix_btns li a,
.sp_fix_btns li button {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	font: inherit;
	line-height: 0;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	box-sizing: border-box;
}

/* ボタン画像 */
.sp_fix_btns li img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	margin: 0;
}


/*==================================
PC下部固定ボタン
==================================*/

.pc_fix_bt {
	display: none;
}

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

	.silhouette-header .sp_fix_bt {
		display: none !important;
	}

	.pc_fix_bt {
		position: fixed;
		right: 58px;
		bottom: 0;
		z-index: 99999;

		display: flex;
		flex-direction: row;
		align-items: flex-end;
		justify-content: flex-end;
		gap: 8px;

		width: auto;
		margin: 0;
		padding: 0;
	}

	.pc_fix_bt a,
	.pc_fix_bt button,
	.pc_fix_bt .modal_tel_open,
	.pc_fix_bt .modal_line_open {
		display: block;
		flex: 0 0 auto;

		width: auto;
		height: auto;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;

		transition:
			opacity 0.3s ease,
			transform 0.3s ease;
	}

	.pc_fix_bt img,
	.pc_fix_bt .modal_tel_open img,
	.pc_fix_bt .modal_line_open img {
		display: block;
		width: 200px;
		max-width: none;
		height: auto;
		margin: 0;
	}

	.pc_fix_bt a:hover,
	.pc_fix_bt button:hover,
	.pc_fix_bt .modal_tel_open:hover,
	.pc_fix_bt .modal_line_open:hover {
		opacity: 0.85;
		transform: translateY(-3px);
	}
}

/*モーダルの指定*/
.modal_tel_container,
.modal_line_container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	background: rgba(0, 0, 0, 50%);
	padding: 40px 20px;
	overflow: auto;
	opacity: 0;
	visibility: hidden;
	transition: 0.3s;
	box-sizing: border-box;
	z-index: 999999;
}

.modal_tel_container.active,
.modal_line_container.active {
	opacity: 1;
	visibility: visible;
}

.modal_body {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: block;
	max-width: 500px;
	width: 90%;
}

.modal_close {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 0;
	right: 0;
	width: 40px;
	height: 40px;
	transform: translate(0, -100%);
	font-size: 40px;
	color: #fff;
	cursor: pointer;
}

.modal_content {
	background: #fff;
	padding: 30px;
	transform: rotate(0.03deg);
}

.modal_contact_list {
	display: flex;
	flex-direction: column;
	gap: 1em;
}

.modal_access_list li {
	width: 100%;
	padding: 0;
}

.modal_contact_list li a {
	display: block;
	margin: 0.1em auto 0.6em;
	max-width: 16em;
	padding: 0.5em;
	text-decoration: none;
	color: #fff;
	background: #3db8eb;
	text-align: center;
	font-weight: bold;
	font-size: clamp(18px, 3vw, 24px);
	border-radius: 8px;
}

.modal_contact_list li a span {
	display: inline-block;
}

.modal_contact_list_telbtn li a {
	background: #c2272c;
}

.modal_contact_list_linebtn li a {
	background: #3cd03c;
}

.modal_contact_list_txt {
	font-weight: bold;
}

.modal_contact_list_txt::before,
.modal_contact_list_txt::after {
	display: inline-block;
}

.modal_contact_list_txt::before {
	content: "＼";
	margin-right: 0.5em;
}

.modal_contact_list_txt::after {
	content: "／";
	margin-left: 0.5em;
}

.modal_contact_list_ttl {
	font-size: 20px;
	font-weight: 600;
	border-bottom: 1px solid #000;
	padding-bottom: 6px;
	margin-bottom: 22px;
}


/*==================================
openバナー
==================================*/
.open_bnr {
	width: 100%;
	max-width: 100%;
}

.open-bnr_lead {
	position: relative;
	background: #d4f739;
	color: #fc689e;
	text-align: center;
	font-weight: 700;
	line-height: 1.2;
	padding: 10px 16px;
	font-size: clamp(14px, 2.8vw, 22px);
}

.open-bnr_lead::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -9px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-top: 10px solid #d4f739;
	z-index: 2;
}

.open-bnr_lead span {
	font-size: 0.8em;
	margin-right: 0.3em;
}

.open-bnr_lead strong {
	font-size: 1.3em;
	font-weight: 800;
}

.open-bnr_main {
	background: url(../image/top/open_bnr_imazu.png) center / calc(100% - 40px) auto no-repeat;
	background-color: #fc689e;
	height: 120px;
	width: 100%;
	position: relative;
}

.open-bnr_img-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@media screen and (min-width: 680px) {
	.open-bnr_main {
		background: url("image/open_bnr_imazu.png") center / calc(100% - 40px) contain no-repeat;
	}

	.open-bnr_lead {
		font-size: 26px;
		padding: 18px 20px 12px;
	}

	.open-bnr_main {
		height: 140px;
		background-size: auto 120px;
	}

	.open-bnr_lead::after {
		bottom: -14px;
		border-left: 26px solid transparent;
		border-right: 26px solid transparent;
		border-top: 16px solid #d4f739;
	}
}

/*==================================
mainimg
==================================*/
.mainvisual_wrapper {
	background: #fff;
}

.main_visual {
	position: relative;
	display: block;
	width: 100%;
	margin: 0 auto 1em;
	padding-top: 90px;
	z-index: 1;
	box-sizing: border-box;
}

.main_img {
	display: block;
	width: 100%;
	height: auto;
}

.campaign_banner {
	position: static;
	width: 95%;
	max-width: none;
	margin: -24px auto 0;
	transform: none;
	z-index: 10;
}

@media screen and (min-width: 680px) {
	.mainvisual_wrapper {
		background: #1b2830;
	}

	.main_visual {
		padding-top: 91px;
	}

	.campaign_banner {
		position: absolute;
		bottom: 6px;
		left: 45%;
		width: 31%;
		margin: 0;
		transform: translateX(-96%);
	}
}

/*==================================
heading
==================================*/
/*h2*/
.heading_01 {
	/* padding: 0.5em calc(50vw - 49%) 0; */
	text-align: center;
	font-size: clamp(58px, 7vw, 98px);
	font-family: adobe-caslon-pro, serif;
	font-style: normal;
	font-weight: 600;
}

.heading_ba {
	text-align: center;
	font-size: clamp(48px, 7vw, 110px);
	font-family: adobe-caslon-pro, serif;
	font-style: normal;
	font-weight: 600;
}

.section_ttl {
	margin: 0 calc(50% - 50vw) clamp(24px, 10vw, 100px);
	padding: 0.5em calc(50vw - 49%);
	text-align: center;
}

.em_01 {
	color: #1c9bc4;
}

.em_02 {
	color: #56aaad;
}

.em_03 {
	color: #1c9bc4;
	font-size: 2rem;
}

p.h2_sub_ttl {
	font-size: clamp(15px, 2vw, 30px);
	font-weight: bold;
	margin-top: -10px;
}

.heading_02 {
	position: relative;
	margin: 0 calc(50% - 50vw);
	padding: 0.5em calc(50vw - 49%);
	background: var(--color01);
	text-align: center;
	font-size: clamp(27px, 4.3vw, 48px);
	font-weight: bold;
	color: #fff;
}

.heading_02::after {
	content: "";
	position: absolute;
	top: 98%;
	left: 50%;
	transform: translateX(-50%);
	border-top: clamp(10px, 3vw, 35px) solid var(--color01);
	border-left: clamp(17px, 5vw, 60px) solid transparent;
	border-right: clamp(17px, 5vw, 60px) solid transparent;
}

.heading_03 {
	position: relative;
	text-align: center;
	font-size: clamp(20px, 4.3vw, 46px);
	font-weight: bold;
	color: rgb(255, 255, 255);
	margin: 0px calc(50% - 50vw);
	padding: 0.5em calc(-49% + 47vw);
	background: var(--color01);
}

/*h3用　文字サイズ・色*/
.heading02 {
	position: relative;
	margin: 2em auto;
	padding: 0.5em 0.5em 1em;
	text-align: center;
	font-size: clamp(18px, 4vw, 47px);
}

.heading02::after {
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	display: block;
	content: "";
	width: 3em;
	height: 5px;
	background-size: 4px 4px;
	background-image: linear-gradient(-45deg,
		#ec6941 25%,
		transparent 25%,
		transparent 50%,
		#ec6941 50%,
		#ec6941 75%,
		transparent 75%,
		transparent);
}

/*問い合わせh4*/
.heading03_naruo {
	margin: 0 auto 0.5em;
	padding-left: 0.4em;
	font-size: clamp(18px, 3vw, 36px);
	border-left: solid 0.4em #178ec4;
	display: flex;
	align-items: flex-end;
	gap: 1rem;
}

.heading03_imazu {
	margin: 0 auto 0.5em;
	padding-left: 0.4em;
	font-size: clamp(18px, 3vw, 36px);
	border-left: solid 0.4em #7ac2c3;
	display: flex;
	align-items: flex-end;
	gap: 1rem;
}

h4.heading03_naruo img {
	width: 45%;
}

h4.heading03_imazu img {
	width: 45%;
}

img.contact_logo {
	margin: 0;
}

/*==================================
オファーバナー
==================================*/
.offer_bnr {
	padding: 0 8px;
}

.offer_bnr ul {
	margin-bottom: 8px;
}

@media screen and (min-width: 680px) {
	.offer_bnr {
		display: flex;
		align-items: center;
		width: 98%;
		margin: 0 auto;
		gap: 24px;
	}
}

.offer_bnr.offer_bnr_second {
	margin-top: 32px;
}

@media screen and (min-width: 680px) {
	.offer_bnr.offer_bnr_second {
		margin-top: 56px;
	}
}

/*==================================
店舗バナー
==================================*/
.shop_bnr {
	display: flex;
	margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
	.shop_bnr {
		display: flex;
		margin: 1rem 0 3rem;
		justify-content: center;
		gap: 40px;
	}
}
/*==================================
Google口コミ
==================================*/
.kuchikomi_ttl {
	width: 75%;
}

@media screen and (min-width: 680px) {
	.kuchikomi_ttl {
	width: 90%;
}
}

/*==================================
無料トリプルキャンペーン
==================================*/
.anchor-adjust {
	height: 92px;
	/* ヘッダーの高さと同じに */
	margin-top: -92px;
}

#campaign {
	background-image: linear-gradient(90deg,
		rgb(23, 142, 196),
		rgb(86, 170, 173) 49%,
		rgb(141, 209, 211));
}

.campaign_conts {
	padding: 24px 8px;
}

h2.campaign_ttl {
	color: #fff;
	font-size: clamp(20px, 4vw, 50px);
	font-weight: bold;
	text-align: center;
	padding-bottom: 16px;
}

.campaign_catch_text {
	font-size: clamp(25px, 4vw, 70px);
}

.dots {
	background-image: radial-gradient(circle at center,
		#fff 20%,
		transparent 20%);
	background-position: top right;
	background-repeat: repeat-x;
	background-size: 1em 0.3em;
	padding-top: 0.4em;
}

.benefits {
	display: flex;
	width: 100%;
	gap: 8px;
	margin: 0 auto;
}

.benefit {
	margin: 16px auto;
}

.lowest_price {
	background-color: #d7ff20;
	text-align: center;
	padding: 0.5rem;
}

.lowest_price_catch {
	font-size: clamp(22px, 4vw, 34px);
	font-weight: 600;
}

.campaign_terms {
	color: #fff;
	display: flex;
	margin: 1rem 0 0;
}

.terms {
	width: 130px;
	height: 50px;
	border-radius: 50%;
	border: 1px solid #fff;
}

.terms p {
	text-align: center;
	line-height: 50px;
}

.terms_list li {
	text-indent: -1em;
	padding-left: 1em;
}

.terms_list li::before {
	content: "・";
}
@media screen and (min-width: 680px) {
	.benefits {
		max-width: 1090px;
		gap: 16px;
		margin: 0 auto;
	}

	.campaign_conts {
		padding: 4rem;
	}

	.campaign_terms {
		justify-content: center;
	}

	.lowest_price {
		max-width: 1100px;
		margin: 0 auto;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 18px;
	}
}

/*==================================
安心の3つの特徴
==================================*/
.feature_sec {
	padding: 48px 18px;
	background: #fff;
}

.feature_inner {
	max-width: 760px;
	margin: 0 auto;
}

.feature_ttl {
	width: min(100%, 360px);
	margin: 0 auto 28px;
	text-align: center;
}

.feature_ttl img {
	display: block;
	width: 100%;
	height: auto;
}

.feature_list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.feature_item {
	display: grid;
	grid-template-columns: 64px 1fr;
	grid-template-areas:
		"num title"
		"icon text";
	align-items: center;
	gap: 14px 16px;
	padding: 20px 18px;
	background: #effbfc;
	border: 1.8px solid #1c9bc4;
	border-radius: 10px;
}

.feature_num {
	grid-area: num;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding-right: 12px;
	border-right: 2px solid #1c9bc4;
	line-height: 1.2;
}

.feature_num span {
	font-size: 14px;
	font-weight: 700;
}

.feature_num strong {
	font-size: 30px;
	font-weight: 800;
	color: #1c9bc4;
}

.feature_item_ttl {
	grid-area: title;
	margin: 0;
	font-size: 22px;
	line-height: 1.4;
	color: #1c9bc4;
}

.feature_img {
	grid-area: icon;
	text-align: center;
}

.feature_img img {
	display: block;
	width: 48px;
	height: auto;
	margin: 0 auto;
}

.feature_text {
	grid-area: text;
}

.feature_text p {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.8;
}

@media screen and (min-width: 768px) {
	.feature_sec {
		padding: 70px 20px 64px;
	}

	.feature_ttl {
		width: 560px;
		margin-bottom: 36px;
	}

	.feature_list {
		gap: 18px;
	}

	.feature_item {
		grid-template-columns: 96px 96px 1fr;
		grid-template-areas:
			"num icon title"
			"num icon text";
		gap: 0 22px;
		padding: 22px 30px;
		border-width: 2px;
		border-radius: 10px;
	}

	.feature_num {
		padding-right: 20px;
	}

	.feature_num span {
		font-size: 16px;
	}

	.feature_num strong {
		font-size: 36px;
	}

	.feature_img img {
		width: 68px;
	}

	.feature_item_ttl {
		margin: 0 0 8px;
		font-size: 22px;
	}

	.feature_text p {
		font-size: 13px;
		line-height: 1.7;
	}
}

@media screen and (max-width: 390px) {
	.feature_sec {
		padding-inline: 14px;
	}

	.feature_item {
		grid-template-columns: 58px 1fr;
		grid-template-areas:
			"num title"
			"icon text";
		gap: 12px 14px;
		padding: 18px 14px;
	}

	.feature_num {
		padding-right: 10px;
	}

	.feature_num span {
		font-size: 13px;
	}

	.feature_num strong {
		font-size: 36px;
	}

	.feature_img img {
		width: 44px;
	}

	.feature_item_ttl {
		font-size: 22px;
	}

	.feature_text p {
		font-size: 13px;
		line-height: 1.75;
	}
}

/*==================================
パーソナル初心者さんがほとんど
==================================*/
.beginner_sec {
	position: relative;
	margin: 0 calc(50% - 50vw);
	padding: 48px 18px;
	background: url("../image/top/bg_img_beginner.jpg") no-repeat center center / cover;
	overflow: hidden;
}

.beginner_inner {
	position: relative;
	z-index: 1;
	max-width: 960px;
	margin: 0 auto;
	padding: 32px 20px;
	background: rgba(255, 255, 255, 0.7);
}

.beginner_content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 26px;
}

.beginner_ttl {
	width: min(100%, 330px);
}

.beginner_ttl img {
	display: block;
	width: 100%;
	height: auto;
}

.beginner_chart {
	width: 100%;
	text-align: center;
}

.beginner_chart img {
	display: block;
	width: 85%;
	height: auto;
	margin: 0 auto;
}

.beginner_text_area {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.beginner_txt {
	margin: 22px 0 0;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.9;
}

@media screen and (min-width: 768px) {
	.beginner_sec {
		padding: 70px 20px;
	}

	.beginner_inner {
		max-width: 920px;
		padding: 46px 64px;
	}

	.beginner_content {
		flex-direction: row;
		justify-content: center;
		align-items: center;
		gap: 70px;
	}

	.beginner_text_area {
		width: 380px;
	}

	.beginner_ttl {
		width: 100%;
	}

	.beginner_chart {
		width: 340px;
	}

	.beginner_chart img {
		width: 100%;
	}
}

@media screen and (min-width: 1100px) {
	.beginner_inner {
		max-width: 1000px;
	}

	.beginner_ttl {
		width: 420px;
	}

	.beginner_chart {
		width: 370px;
	}
}

/*==================================
ギャラリー
==================================*/
.gallery {
	margin: 0 calc(50% - 50vw)!important;
}
.gallery_swiper {
	margin-top: 40px;
	padding-bottom: 50px;
	position: relative;
}

.swiper-slide {
	width: 200px;
	display: flex;
	justify-content: center;
}

.swiper-slide img {
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: 8px;
}

.swiper-button-prev,
.swiper-button-next {
	color: #1c9bc4;
}

.swiper-button-prev:hover,
.swiper-button-next:hover {
	opacity: 0.7;
}

.swiper-pagination-bullet {
	background: #ccc;
	opacity: 1;
}

.swiper-pagination-bullet-active {
	background: #1c9bc4;
}

/*==================================
コンセプト
==================================*/
.concept {
	background-image: url(../image/top/bg_img_concept.webp);
	background-size: cover;
	background-position: center;
	position: relative;
	overflow: hidden;
}

.concept_ttl,
.concept_txt {
	color: #fff;
}

.concept_txt {
	max-width: 820px;
	margin: 0 auto;
	text-align: left;
	line-height: 1.8;
}

.concept_txt p {
	margin-bottom: 1.5rem;
	text-align: justify;
}

.concept_lead_sub {
	font-size: clamp(18px, 3vw, 28px);
}

.concept_lead_main {
	font-size: clamp(23px, 3vw, 36px);
	font-weight: bold;
}

@media screen and (min-width: 680px) {
	p.concept_lead_sub {
		margin-bottom: 3rem;
	}

	p.concept_lead_main {
		margin: 4rem 0;
	}
}

/*==================================
ライトパーソナルとは？
==================================*/
.concept_more {
	overflow: hidden;
	background-color: #e7f1f0;
}

.concept_more,
.concept_more * {
	box-sizing: border-box;
}

.more_ttl {
	margin-bottom: 10px;
	font-size: clamp(18px, 2vw, 28px);
	font-weight: bold;
	text-align: center;
}

.concept_more_ttl {
	margin-bottom: 2rem;
}

.concept_more_items {
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 100%;
	margin: 0;
	padding: 0;
}

.concept_more_item {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr);
	align-items: center;
	gap: 14px;
	width: 100%;
	max-width: 100%;
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.45);
	border-radius: 14px;
}

.concept_more_item img {
	display: block;
	width: 82px;
	max-width: 100%;
	height: auto;
	margin: 0;
}

.concept_more_items p {
	min-width: 0;
	margin: 0;
	font-size: 13px;
	line-height: 1.75;
	text-align: left;
	overflow-wrap: break-word;
}

@media screen and (min-width: 680px) {
	.concept_more {
		overflow: visible;
	}

	.concept_more_ttl {
		margin-bottom: 3rem;
	}

	.concept_more_ttl p {
		text-align: center;
	}

	.concept_more_items {
		flex-direction: row;
		justify-content: space-between;
		align-items: flex-start;
		gap: 2rem;
	}

	.concept_more_item {
		display: block;
		width: calc((100% - 4rem) / 3);
		max-width: 360px;
		padding: 0;
		background: transparent;
		border-radius: 0;
	}

	.concept_more_item img {
		width: 100%;
		margin: 0 auto;
	}

	.concept_more_items p {
		margin: 0.5rem 1rem 2.5rem;
		font-size: inherit;
		line-height: inherit;
	}
}

/*==================================
シルエットが選ばれる理由
==================================*/
.inner.point {
	padding: 3em calc(50vw - 48%) 0;
}

.point_item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: 60px;
	text-align: left;
}

.point_item .point_text {
	width: 100%;
	text-align: justify;
}

.point_item .point_pic {
	width: 100%;
}

.point_item img {
	width: 100%;
	height: auto;
}

.point_sub_ttl {
	font-size: clamp(24px, 3vw, 33px);
	margin: 6px 3px 16px;
	font-weight: bold;
}

.animate-left,
.animate-right {
	opacity: 0;
	transition:
		opacity 0.6s ease-out,
		transform 0.6s ease-out;
}

.animate-left {
	transform: translateX(-30px);
}

.animate-right {
	transform: translateX(30px);
}

.animate-left.in-view,
.animate-right.in-view {
	opacity: 1;
	transform: translateX(0);
}

@media screen and (min-width: 680px) {
	.point_item {
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 7rem;
		gap: 40px;
	}

	.point_item:nth-child(even) {
		flex-direction: row-reverse;
	}

	.point_item .point_text {
		flex: 1;
		min-width: 300px;
	}

	.point_item .point_pic {
		width: 46%;
		min-width: 280px;
	}
}

/*==================================
さらに
==================================*/
.point_more {
	background: var(--color03);
}

.inner.point_more {
	padding-top: 0;
}

.point_more_ttl {
	margin: 2rem 0.5rem 1rem;
}

.point_more_text {
	border: 8px solid var(--color01);
	background: #fff;
	padding: 16px;
	text-align: justify;
}

p.more_text_read {
	font-weight: bold;
}

@media screen and (min-width: 680px) {
	.point_more_ttl {
		margin-top: 4rem;
	}

	.point_more_text {
		padding: 40px;
		max-width: 900px;
		margin: 0 auto;
	}

	.point_more_text p {
		margin-bottom: 1rem;
	}

	p.more_text_read {
		font-size: 20px;
	}
}

/*==================================
他ジムとの違い
==================================*/
h2.comparison_heading {
	font-size: clamp(55px, 8vw, 95px);
}

p.comparison_ttl {
	margin-top: 0px;
}

@media screen and (min-width: 680px) {
	.difference_table {
		margin: 0 auto;
		width: 80%;
	}
}

/*==================================
料金表
==================================*/
.price_sec {
	background: #fff;
}

.price_inner {
	padding-top: 3em;
}

.price_main_ttl {
	margin: 0;
}

.price_block {
	margin-bottom: 44px;
}

.price_bar_ttl {
	width: min(100%, 980px);
	margin: 0 auto 18px;
	padding: 10px 16px;
	background: linear-gradient(180deg, #1c9bc4 0%, #8bd3cf 100%);
	color: #fff;
	font-size: 20px;
	font-weight: 800;
	text-align: center;
	letter-spacing: 0.08em;
	box-sizing: border-box;
}

.price_detail_list,
.price_plan_wrap {
	max-width: 950px;
	margin-left: auto;
	margin-right: auto;
}

/* 料金詳細 */
.price_detail_list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.price_detail_item {
	padding: 14px 16px;
	background: #fff;
	border: 2px solid #1c9bc4;
	text-align: center;
}

.price_detail_label {
	margin: 0 0 6px;
	padding-bottom: 3px;
	border-bottom: 1px solid #7aa8bd;
	color: #005a9c;
	font-size: 18px;
	font-weight: 800;
}

.price_detail_num {
	margin: 0;
	font-family: 'Noto Sans JP';
	font-size: 30px;
	font-weight: 800;
	line-height: 1.2;
}

.price_detail_num span {
	margin-left: 2px;
	font-size: 15px;
}

.price_plan_wrap {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.price_plan_imgbox {
	background: #dff2f2;
	padding: 0;
}

.price_plan_imgbox img {
	display: block;
	width: 100%;
	height: auto;
}

@media screen and (min-width: 680px) {
	.price_inner {
		padding-top: 5em;
	}

	.price_block {
		max-width: 980px;
		margin: 0 auto 90px;
	}

	.price_bar_ttl {
		margin-bottom: 20px;
		padding: 12px 16px;
		font-size: 26px;
	}

	.price_detail_list {
		flex-direction: row;
		justify-content: center;
		gap: 28px;
	}

	.price_detail_item {
		width: calc((100% - 56px) / 3);
		padding: 14px 18px;
	}

	.price_detail_label {
		font-size: 20px;
	}

	.price_detail_num {
		font-size: 34px;
	}

	.price_detail_num span {
		font-size: 16px;
	}

	.price_plan_wrap {
		flex-direction: row;
		justify-content: center;
		align-items: flex-start;
		gap: 18px;
	}

	.price_plan_imgbox {
		width: calc((100% - 18px) / 2);
	}
}

@media screen and (max-width: 679px) {
	.price_detail_list {
		gap: 8px;
	}

	.price_detail_item {
		padding: 10px 14px;
	}

	.price_detail_label {
		margin-bottom: 4px;
		padding-bottom: 3px;
		font-size: 14px;
	}

	.price_detail_num {
		font-size: 26px;
		line-height: 1.1;
	}

	.price_detail_num span {
		font-size: 13px;
	}
}

/*==================================
トレーナー紹介
==================================*/
.top_inner.trainer {
	background: var(--color04);
}

p.greet_message {
	margin: 1rem auto;
	text-align: justify;
}

.greet_pic01 {
	margin-bottom: 4rem;
	border-bottom: dotted;
}

.greet_pic01 img {
	width: 80%;
	margin-bottom: 2rem;
}

.greet_pic02 img {
	width: 80%;
	margin-bottom: 2rem;
}

.greet_message span {
	font-weight: bold;
}

@media screen and (min-width: 680px) {
	.greet_pic01 {
		display: flex;
		gap: 60px;
	}

	.greet_pic02 {
		display: flex;
		gap: 60px;
	}

	p.greet_message {
		margin-top: 3rem;
		line-height: 1.8;
		max-width: 560px;
	}
}

/*==================================
コースについて
==================================*/
#course {
	padding-top: 90px;
	margin-top: -90px;
}

.course-list {
	display: flex;
	flex-direction: column;
	gap: 30px;
}

.course-card {
	border: 1px solid #4d4d4d;
	width: 100%;
	padding: 20px;
	box-sizing: border-box;
}

.course-img {
	width: 100%;
	height: auto;
	margin-bottom: 16px;
}

.course-title {
	font-size: 1.4rem;
	font-weight: bold;
	text-align: center;
	margin: 10px 0 10px;
	border-bottom: 10px solid transparent;
	border-image-source: linear-gradient(90deg,
		rgb(23, 142, 196),
		rgb(86, 170, 173) 49%,
		rgb(141, 209, 211));
	border-image-slice: 1;
	padding-bottom: 8px;
}

.course-check {
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 10px;
	margin-bottom: 10px;
}

.course-check span {
	position: relative;
	padding-left: 28px;
	font-weight: bold;
	color: #444;
	font-size: 1.1rem;
}

.course-check span::before {
	content: "";
	position: absolute;
	left: 0;
	top: 2px;
	width: 20px;
	height: 20px;
	background-image: url(../image/top/check_icon.png);
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.course-text {
	font-size: 0.95rem;
	color: #333;
	line-height: 1.8;
	text-align: justify;
}

@media screen and (min-width: 680px) {
	.course-list {
		flex-direction: row;
		flex-wrap: wrap;
		gap: 40px;
		justify-content: center;
	}

	.course-card {
		max-width: 500px;
	}
}

/*==================================
トレーニングメニューの特徴
==================================*/
.features {
	padding-bottom: 3em;
}

.training_features .section_ttl {
	text-align: center;
	margin-bottom: 28px;
}

.training_features_main_ttl {
	margin: 0;
}

.training_features_pic {
	order: 1;
	width: min(70%, 360px);
	margin: 0 auto 34px;
}

.training_features_pic img {
	display: block;
	width: 100%;
	height: auto;
}

.training_features_top {
	display: flex;
	flex-direction: column;
}

.training_features_text {
	order: 2;
	text-align: center;
}

.training_features_ttl01 {
	width: min(100%, 440px);
	margin: 0 auto 26px;
}

.training_features_ttl01 img {
	display: block;
	width: 100%;
	height: auto;
}

.training_features_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	max-width: 360px;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.training_features_list li {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: calc((100% - 30px) / 4);
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: linear-gradient(135deg, #1596c8 0%, #76c8c2 100%);
	color: #fff;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.25;
	text-align: center;
}

.training_features_list li span {
	display: block;
	margin-bottom: 2px;
	font-size: 13px;
	line-height: 1;
}

.training_features_arrow {
	width: 180px;
	margin: 36px auto 26px;
}

.training_features_arrow img {
	display: block;
	width: 100%;
	height: auto;
}

.training_features_result {
	max-width: 520px;
	margin: 0 auto;
	padding: 26px 20px 24px;
	text-align: center;
	background: #fff;
	border: 8px solid #1c9bc4;
}

.training_features_ttl02 {
	width: min(100%, 420px);
	margin: 0 auto 14px;
}

.training_features_ttl02 img {
	display: block;
	width: 100%;
	height: auto;
}

.training_features_result p {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
}

@media screen and (min-width: 768px) {
	.features {
		padding-bottom: 5em;
	}

	.training_features .section_ttl {
		margin-bottom: 60px;
	}

	.training_features_inner {
		max-width: 1040px;
	}

	.training_features_top {
		display: grid;
		grid-template-columns: 1fr 430px;
		align-items: center;
		gap: 56px;
	}

	.training_features_pic {
		order: initial;
		width: 100%;
		margin: 0;
	}

	.training_features_text {
		order: initial;
	}

	.training_features_ttl01 {
		width: 470px;
		margin-bottom: 30px;
	}

	.training_features_list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 14px;
		max-width: 490px;
		margin: 0 auto;
	}

	.training_features_list li {
		width: 108px;
		height: 108px;
		flex: 0 0 108px;
		font-size: 21px;
		letter-spacing: 0;
	}

	.training_features_list li span {
		font-size: 20px;
	}

	.training_features_list li:nth-child(5) {
		grid-column: 1 / 2;
		margin-left: 58px;
	}

	.training_features_arrow {
		width: 230px;
		margin: 58px auto 30px;
	}

	.training_features_result {
		max-width: 560px;
		padding: 30px 34px 28px;
		border-width: 9px;
	}

	.training_features_ttl02 {
		width: 460px;
		margin-bottom: 16px;
	}

	.training_features_result p {
		font-size: 13px;
	}
}

@media screen and (min-width: 1100px) {
	.training_features_top {
		grid-template-columns: 1fr 470px;
		gap: 64px;
	}

	.training_features_list {
		max-width: 504px;
	}

	.training_features_list li {
		width: 112px;
		height: 112px;
		flex-basis: 112px;
	}
}

@media screen and (max-width: 390px) {
	.training_features {
		padding: 48px 14px;
	}

	.training_features_list {
		gap: 8px;
		max-width: 340px;
	}

	.training_features_list li {
		width: calc((100% - 24px) / 4);
		font-size: 15px;
	}

	.training_features_list li span {
		font-size: 15px;
	}

	.training_features_result {
		padding: 22px 16px 20px;
		border-width: 8px;
	}

	.training_features_arrow {
		width: 160px;
	}
}

/*==================================
無料トレーニングまでの流れ
==================================*/
.inner.flow {
	background: var(--color04);
}

.flow_inner {
	position: relative;
	background-color: #fff;
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 40px;
	/* flex-wrap: wrap; */
	margin-bottom: 2rem;
}

.flow_left {
	position: relative;
	display: flex;
	flex-direction: column;
	padding-left: 60px;
}

.flow_badge {
	position: absolute;
	top: -20px;
	left: -20px;
	max-width: 75px;
	height: auto;
	z-index: 2;
}

.flow_text {
	margin: 0 8px;
}

.flow_desc {
	text-align: justify;
}

.flow_desc span {
	color: #1c9bc4;
	font-size: clamp(19px, calc(16.5px + 0.625vw), 24px);
	font-weight: bold;
}

.flow .small_text {
	font-size: 14px;
}

.flow_title {
	font-size: clamp(21px, 2vw, 36px);
	font-weight: bold;
	margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
	.flow_inner {
		flex-direction: row;
		justify-content: space-between;
		gap: 40px;
		padding: 0 20px 20px;
		align-items: center;
		margin-bottom: 4rem;
		height: 390px;
		box-sizing: border-box;
	}

	.flow_left {
		flex-direction: row;
		align-items: flex-start;
		padding-left: 0;
		height: 280px;
	}

	img.flow_badge {
		width: 16%;
		position: relative;
		left: -20px;
		top: -45px;
		max-width: none;
	}

	.flow_text {
		max-width: 520px;
	}

	.flow_desc {
		margin-top: 10px;
	}

	.flow_image img {
		width: 100%;
		height: auto;
		display: block;
	}
}

@media screen and (min-width: 880px) {
	.desc01 {
		min-width: 440px;
	}
}

/*==================================
こんな方から選ばれています
==================================*/
.inner.who {
	background-color: #effaf9;
}

.who_title {
	margin-bottom: 2rem;
}

@media screen and (min-width: 680px) {
	.who_title {
		margin-bottom: 4rem;
	}
}

/*==================================
Q＆A
==================================*/
#qa {
	padding-top: 90px;
	margin-top: -90px;
}

.qa {
	background-image: url(../image/top/qa_bg.png);
}

.qa_ttl {
	color: #fff;
}

.cp_qa03 .cp_actab {
	position: relative;
	width: 100%;
	margin-bottom: 2rem;
	color: #4d4d4d;
}

.cp_qa03 .cp_actab input {
	display: none;
}

.cp_qa03 .cp_actab label {
	font-weight: bold;
	line-height: 1.6em;
	position: relative;
	display: block;
	margin: 0 0 0 0;
	padding: 1em 3em 1em 2.5em;
	text-indent: 1em;
	color: #fff;
	background: #1c9bc4;
}

.cp_qa03 .cp_actab label::before {
	content: "Q";
	font-family: serif;
	font-size: 1.5em;
	margin-left: -2em;
	padding-right: 0.5em;
}

.cp_qa03 .cp_actab label:hover {
	color: #fff;
	transition: all 0.3s;
}

.cp_qa03 .cp_actab label::after {
	width: 20px;
	height: 20px;
	background: url(../image/top/qa_icon.png) no-repeat center center;
	background-size: contain;
	font-size: 1.7em;
	font-weight: bold;
	line-height: 2em;
	display: inline-block;
	position: absolute;
	top: 8px;
	right: 7px;
	content: "";
	transition: transform 0.3s;
}

.cp_qa03 .cp_actab .cp_actab-content {
	position: relative;
	overflow: hidden;
	max-height: 0;
	padding: 0 0 0 2.5em;
	transition: max-height 0.2s;
}

.cp_qa03 .cp_actab .cp_actab-content::before {
	position: absolute;
	content: "A";
	font-family: serif;
	font-size: 1.5em;
	color: #56aaad;
	margin-left: -1.3em;
	padding-right: 0.5em;
}

.cp_qa03 .cp_actab .cp_actab-content p {
	margin: 2em 1em 1em 0;
}

.cp_qa03 .cp_actab input:checked~.cp_actab-content {
	max-height: 40em;
	/* border: 10px solid rgba(27,37,56,0.1); */
	background-color: #fff;
}

.cp_qa03 .cp_actab input[type="checkbox"]:checked+label::after {
	transform: rotateZ(180deg);
	transform-origin: 50% 50%;
}

@media screen and (min-width: 480px) {
	.recommend .img_left {
		width: 40%;
	}
}

@media screen and (min-width: 680px) {
	.recommend_txt {
		margin-top: 0;
	}

	.cp_qa03 .cp_actab label::after {
		top: 20px;
	}
}

@media screen and (min-width: 1240px) {
	.recommend_txt {
		overflow: hidden;
	}
}

/*==================================
ビフォーアフター
==================================*/
.inner.ba,
.inner.information {
	background: var(--color04);
}

.ba_img {
	margin-bottom: 3rem;
}

/*==================================
料金のご案内
==================================*/
.inner.price-list {
	padding-top: 10px;
}

.fee-info-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 20px;
	margin-bottom: 50px;
}

.fee-item {
	background: #e8f2f1;
	padding: 20px 30px;
}

.fee-label {
	color: #328fa5;
	font-weight: bold;
	font-size: 1rem;
	text-align: center;
}

.fee-price {
	font-size: 1.4rem;
	font-weight: bold;
}

.fee-price span {
	font-size: 0.9rem;
}

/* コース共通 */
.course-group {
	margin-bottom: 20px;
}

.course-label {
	text-align: center;
}

.course-list-title {
	font-size: 1.6rem;
	font-weight: bold;
	text-align: center;
	margin: 3px auto 8px;
	border-bottom: 10px solid transparent;
	border-image-source: linear-gradient(90deg,
		rgb(23, 142, 196),
		rgb(86, 170, 173) 49%,
		rgb(141, 209, 211));
	border-image-slice: 1;
	padding-bottom: 8px;
	width: 350px;
}

.course-time {
	text-align: center;
}

.course-boxes {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-evenly;
}

.course-box {
	background: #fff;
	padding: 20px;
	width: 100%;
	max-width: 400px;
}

.course-type {
	background: #1c9bc4;
	text-align: center;
	color: #fff;
	padding: 6px;
	/* font-size: 1.2rem; */
	margin-bottom: 12px;
}

.course-price {
	font-size: 1.6rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.1;
}

.course-price span {
	font-size: 0.9rem;
}

@media screen and (min-width: 680px) {
	.fee-info-box {
		flex-wrap: nowrap;
	}

	.course-box {
		width: calc(33.333% - 20px);
	}
}

/*==================================
監修者について
==================================*/
.inner.sv {
	background: repeating-linear-gradient(135deg,
		#eee 0,
		#eee 6px,
		#ffffff 6px,
		#ffffff 8px);
}

.sv_inner {
	position: relative;
	background-color: #fff;
	max-width: 1200px;
	margin: 0 auto;
	padding: 40px 20px;
	display: flex;
	flex-direction: column-reverse;
	gap: 40px;
	/* flex-wrap: wrap; */
	margin-bottom: 2rem;
}

.sv_left {
	position: relative;
	display: flex;
	flex-direction: column;
}

.sv_badge {
	position: absolute;
	top: -20px;
	left: -20px;
	max-width: 75px;
	height: auto;
	z-index: 2;
}

.sv_text {
	margin: 0 8px;
}

.sv_desc {
	text-align: justify;
}

.sv_desc span {
	color: #1c9bc4;
	font-size: clamp(19px, calc(16.5px + 0.625vw), 24px);
	font-weight: bold;
}

.sv_shikaku {
	font-weight: bold;
}

.sv_name {
	font-size: clamp(21px, 2vw, 36px);
	font-weight: bold;
	margin: 0 0 1rem;
}

@media screen and (min-width: 680px) {
	.sv_inner {
		flex-direction: row;
		justify-content: space-between;
		gap: 40px;
		align-items: center;
		margin-bottom: 4rem;
		box-sizing: border-box;
	}

	.sv_left {
		flex-direction: row;
		align-items: flex-start;
		padding-left: 0;
		height: 280px;
	}

	img.sv_badge {
		width: 16%;
		position: relative;
		left: -20px;
		top: -45px;
		max-width: none;
	}

	.sv_text {
		max-width: 520px;
	}

	.sv_desc {
		margin-top: 10px;
	}

	.sv_image img {
		width: 100%;
		height: auto;
		display: block;
	}
}

@media screen and (min-width: 880px) {
	.desc01 {
		min-width: 440px;
	}
}

/*==================================
店舗情報
==================================*/
#access {
/* 	padding-top: 90px;
	margin-top: -90px; */
}

img.access_logo {
	width: 60%;
	margin-bottom: 1.2rem;
}

p.access_bt_tel {
	margin-bottom: 1rem;
}

@media screen and (min-width: 680px) {
	#access {
		max-width: 1090px;
		margin: 0 auto;
	}
	.access_conts {
		display: flex;
		align-items: flex-start;
		gap: 2rem;
	}

	.access_text {
		flex: 2;
		margin: 2rem auto;
	}

	.access_gmap {
		flex: 3;
	}

	img.access_logo {
		margin-bottom: 2.5rem;
	}

	p.access_bt_tel {
		margin-bottom: 2rem;
	}
}

/*複数院用*/
.contact_multiple>li {
	margin-top: 2em;
}

.contact_uketsuke_txt {
	margin-top: 1em;
	font-size: clamp(15px, 2vw, 20px);
	line-height: 1.4;
}

.contact_uketsuke_txt>p:first-child {
	margin: 0 auto 0.5em;
	padding: 0 1.5em 0.1em;
	display: inline-block;
	background: #4d4d4d;
	color: #fff;
}

.contact_multiple .contact_add {
	margin-top: 0.5em;
	padding-top: 0.5em;
	border-top: dotted 1px #7c6754;
	font-size: clamp(15px, 2vw, 20px);
	line-height: 1.2;
}

.contact_gmap {
	margin-top: 1em;
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}

.contact_gmap iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

@media screen and (min-width: 680px) {
	.contact_multiple>li {
		margin-top: 2.5em;
	}

	.contact_multiple {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
	}

	.contact_multiple>* {
		width: 48%;
		max-width: 554px;
	}

	.contact_multiple .contact_add {
		margin-top: 1em;
		padding-top: 1em;
	}
}

@media screen and (min-width: 1240px) {
	.contact_multiple {
		margin: 0 -80px;
	}

	.contact_multiple .contact_bt li a {
		max-width: 554px;
	}

	.contact_uketsuke_txt {
		margin-top: 1em;
	}
}

/*==================================
お問い合わせ
==================================*/
.contact {
	background-image: url(../image/top/bg_img_contact.jpg);
	background-size: cover;
	background-position: -76%;
}

.contact_ttl {
	color: #fff;
}

.contact_bt_tel,
.contact_bt_line,
.contact_bt_hpb {
	margin: 2rem 1rem;
}

.contact_bt_tel,
.contact_bt_line,
.contact_bt_hpb p {
	text-align: center;
	color: #fff;
}

.info_bt_tel,
.info_bt_line {
	margin: 2rem 1rem;
}

@media screen and (min-width: 680px) {
	.contact_conts {
		display: flex;
		gap: 2rem;
		margin: 1rem 0 2rem;
	}

	.contact {
		background-position: center;
	}

	.contact_bt_tel,
	.contact_bt_line {
		flex: 1;
		margin: 0;
	}

	.contact_bt_tel img,
	.contact_bt_line img {
		display: block;
		width: 100%;
		height: auto;
	}

	.contact_bt_hpb {
		width: calc((100% - 2rem) / 2);
		margin: 2rem 0 0;
	}

	.contact_bt_hpb img {
		display: block;
		width: 100%;
		height: auto;
	}

	.contact_bt_hpb p {
		text-align: center;
	}
}

/*==================================
お問合せ
==================================*/
/*共通*/
/*お問合せボタン共通スタイル*/
.contact_tel,
.contact_line,
.contact_net {
	color: inherit;
	text-decoration: none;
	border-radius: 10px;
	box-sizing: border-box;
}

.contact_tel a,
.contact_line a,
.contact_net a {
	color: inherit;
	text-decoration: none;
	text-align: center;
	font-weight: bold;
}

.contact_tel {
	border: solid 1px #413028;
	background: #fff;
	box-shadow: 0 5px 0 #413028;
}

.contact_line {
	color: #fff;
	background: #3cab00;
	box-shadow: 0 5px 0 #2c7d00;
}

.contact_net {
	color: #fff;
	background: var(--color01);
	box-shadow: 0 5px 0 #cc5000;
}

.contact_tel a::before,
.contact_line a::before,
.contact_net a::before {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	display: inline-block;
}

.contact_tel a::before {
	content: "\f095";
	margin-right: 4px;
	width: 2em;
	height: 2em;
	line-height: 2em;
	font-size: 80%;
	color: #fff;
	background: var(--color01);
	border-radius: 50%;
}

.contact_line a::before {
	margin-right: 0.5em;
	padding-top: 0.1em;
	content: "\f075";
	transform: scale(-1, 1);
}

.contact_net a::before {
	margin-right: 0.5em;
	padding-top: 0.1em;
	content: "\f0e0";
}

.contact_store_name01 {
	color: #fff;
	font-size: 1.5rem;
	padding: 0.5em 0.7em;
	border-left: 0.4em solid #178ec4;
}

.contact_store_name02 {
	color: #fff;
	font-size: 1.5rem;
	padding: 0.5em 0.7em;
	border-left: 0.4em solid #7ac2c3;
}

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

	.contact_tel:hover,
	.contact_line:hover,
	.contact_net:hover {
		opacity: 0.7;
	}
}

.offer_contact_bt {
	margin: 1.5em auto;
}

.offer_contact_bt li {
	margin: 12px auto;
}

.offer_contact_bt .contact_tel,
.offer_contact_bt .contact_line,
.offer_contact_bt .contact_net {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 8px;
	font-size: 24px;
}

.offer_contact_bt .contact_tel a,
.offer_contact_bt .contact_line a,
.offer_contact_bt .contact_net a {
	display: flex;
	justify-content: center;
	align-items: center;
	text-decoration: none;
}

@media screen and (min-width: 480px) {
	.offer_contact_bt {
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}

	.offer_contact_bt li {
		margin: 8px 0.5%;
		width: 32%;
		min-width: 190px;
	}
}

@media screen and (min-width: 480px) {
	.offer_contact_bt .contact_tel {
		font-size: clamp(19px, 2.6vw, 35px);
	}

	.offer_contact_bt .contact_line {
		font-size: clamp(22px, 3.2vw, 42px);
	}

	.offer_contact_bt .contact_net {
		font-size: clamp(22px, 3.2vw, 42px);
	}
}

/*ボタン*/
.contact_bt {
	margin: 1em auto 0;
	max-width: 500px;
	width: 98%;
}

.contact_bt li {
	position: relative;
	display: block;
	margin: 8px auto;
	text-decoration: none;
	text-align: center;
}

.contact_bt li a::before {
	position: absolute;
	left: 0.5em;
	top: 50%;
	transform: translateY(-50%);
	display: block;
	text-align: center;
	font-size: clamp(32px, 10vw, 52px);
}

/*電話ボタン*/
.contact_bt .contact_tel {
	padding: 0.3em 0.1em 0.3em 1.7em;
	font-size: clamp(32px, 10vw, 52px);
	line-height: 1;
}

.contact_bt .contact_tel a::before {
	left: 0.3em;
	font-size: clamp(18px, 8vw, 36px);
}

.contact_bt .contact_tel a span {
	display: block;
	font-size: 52%;
}

/*LINEボタン*/
.contact_bt .contact_line {
	padding: 0.2em 0.1em 0.2em 1.5em;
	font-size: clamp(32px, 8vw, 39px);
	line-height: 1;
}

.contact_bt .contact_line a::before {
	transform: translateY(-50%) scale(-1, 1);
}

/*Web予約ボタン*/
.contact_bt .contact_net {
	padding: 0.2em 0.1em 0.2em 1.5em;
	font-size: clamp(32px, 8vw, 39px);
	line-height: 1;
}

@media screen and (min-width: 680px) {
	.contact_bt li a::before {
		font-size: clamp(18px, 5vw, 52px);
	}

	/*電話ボタン*/
	.contact_bt .contact_tel {
		font-size: clamp(18px, 5vw, 52px);
	}

	.contact_bt .contact_tel a::before {
		font-size: 70%;
	}

	/*LINEボタン*/
	.contact_bt .contact_line {
		font-size: clamp(18px, 4vw, 39px);
	}

	/*Web予約ボタン*/
	.contact_bt .contact_net {
		font-size: clamp(18px, 4vw, 39px);
	}
}

@media screen and (min-width: 1240px) {
	.contact_bt li.contact_tel a::before {
		left: 0.5em;
	}

	.contact_bt li:not(.contact_bt_d):not(.contact_tel) a::before {
		left: 0.8em;
	}
}

/*予約ボタン横並び*/
.contact_bt {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.contact_bt_s {
	width: 100%;
}

.contact_bt_d {
	width: 49%;
}

.contact_bt li.contact_bt_d a::before {
	left: 0.3em;
	width: 1.2em;
	height: 0.95em;
	font-size: clamp(28px, 8vw, 40px);
}

/*LINEボタン*/
.contact_bt li.contact_bt_d.contact_line {
	font-size: clamp(22px, 7vw, 38px);
}

/*Web予約ボタン*/
.contact_bt li.contact_bt_d.contact_net {
	font-size: clamp(22px, 7vw, 38px);
}

@media screen and (min-width: 680px) {
	.contact_bt li.contact_bt_d a::before {
		font-size: clamp(28px, 4vw, 40px);
	}

	/*LINEボタン*/
	.contact_bt li.contact_bt_d.contact_line {
		font-size: clamp(22px, 3.5vw, 36px);
	}

	/*Web予約ボタン*/
	.contact_bt li.contact_bt_d.contact_net {
		font-size: clamp(22px, 3.5vw, 36px);
	}
}

/*1院用*/
.contact_single_add {
	margin: 1em auto;
}

@media screen and (min-width: 480px) {
	.contact_single_add br {
		display: none;
	}
}

@media screen and (min-width: 680px) {
	.contact_single {
		display: flex;
		justify-content: space-between;
		align-items: center;
	}

	.contact_single>* {
		width: 48%;
	}

	.contact_single .contact_bt {
		display: flex;
		flex-direction: column;
		justify-content: center;
		margin: 0 auto;
	}

	.contact_single ul.contact_bt li:first-child a {
		margin-top: 0;
	}

	.contact_single_add {
		margin: 2em auto;
		font-size: 20px;
		line-height: 1.4;
	}
}

/*==================================
問い合わせフォーム
==================================*/
#form_contact {
	padding-top: 90px;
	margin-top: -90px;
}

fieldset {
	margin-top: 1rem;
}

.form_contact {
	background-color: #e5f9fa;
}

label {
	margin: 8px 0;
}

.required {
	background: red;
	color: white;
	padding: 0.2em 0.5em;
	border-radius: 4px;
	font-weight: bold;
	margin-right: 0.5em;
	display: inline-block;
}

.price-note {
	color: red;
	font-weight: bold;
	display: block;
	margin-top: 0.2em;
	margin-left: 1.5em;
}

.campaign {
	font-weight: bold;
}

#course-select {
	margin-top: 2em;
}

.course-hidden {
	display: none;
}

.date-row p {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	text-align: left;
	gap: 0.5em;
	margin-bottom: 1.5em;
}

.date-row label {
	display: block;
	width: 100%;
	margin-bottom: 0.3em;
	font-weight: bold;
}

.date-row input[type="date"],
.date-row select {
	padding: 0.6em 0.8em;
	height: 48px;
	line-height: 1.2;
	border: 2px solid #1c9bc4;
	font-size: 1em;
	width: 100%;
	box-sizing: border-box;
	appearance: none;
	border-radius: 0;
	background-color: #fff;
}

.form-group {
	margin-bottom: 2em;
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}
.form-group span {
	margin: 8px 0;
}
.wpcf7-form-control-wrap {
	width: 100%;
}
select,
input[type="date"],
.form-group input[type="text"],
.form-group input[type="tel"],
.form-group input[type="email"] {
	padding: 0.6em 0.8em;
	height: 48px;
	font-size: 1em;
	border: 2px solid #1c9bc4;
	width: 100%;
	box-sizing: border-box;
	appearance: none;
	border-radius: 0;
	background-color: #fff;
}

.form-group textarea {
	padding: 0.8em 1em;
	font-size: 1em;
	border: 2px solid #1c9bc4;
	width: 100% !important;
	height: 180px !important;
	box-sizing: border-box;
	appearance: none;
	border-radius: 0;
	resize: vertical;
	background-color: #fff;
}

.privacy-box {
	border: 2px solid #1c9bc4;
	padding: 1em;
	background-color: #fff;
	height: 180px;
	overflow-y: scroll;
	overflow-x: auto;
	margin-bottom: 3rem;
	box-sizing: border-box;
}

.privacy-box::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

.privacy-box::-webkit-scrollbar-thumb {
	background: #999;
	border-radius: 4px;
}

button#submitBtn {
	background: none;
	border: none;
}

.submit_btn {
	text-align: center;
}

input[type="date"].mfp_element_date {
	text-align: left !important;
}

select option[disabled] {
	color: #aaa;
}
.wpcf7-form p {
	margin: 0;
}
/* CF7ラジオボタンを縦並びに */
.wpcf7-radio .wpcf7-list-item {
	margin: 0;
	display: block;
}
.form-group .note {
	font-weight: 700;
	color: red;
}
/*メールフォームプロ修正用*/
#mfp_loading,
#mfp_loading_screen,
#mfp_overlay_background,
#mfp_overlay,
#mfp_hidden {
	display: none !important;
}
.submit_btn .wpcf7-submit {
	display: block;
	margin: 0 auto;
	width: 100%;
	height: 70px;
	background: url("../image/top/submit-btn.png") no-repeat center / contain;
	border: none;
	color: transparent;
	cursor: pointer;
}

.submit_btn .wpcf7-submit:hover {
	opacity: 0.85;
}

@media screen and (min-width: 680px) {
	.date-row p {
		display: flex;
		flex-direction: row;
		align-items: center;
		gap: 1em;
	}

	.date-row label {
		width: 100px;
		margin-bottom: 0;
	}

	.date-row input[type="date"],
	.date-row select {
		width: 220px;
	}

	.submit_btn img {
		width: 70%;
	}
	.wpcf7-form-control-wrap {
		width: 24%;
	}
}

/*==================================
プライバシーポリシーページ
==================================*/
h2.heading_policy {
	font-size: clamp(21px, 2vw, 36px);
	padding-top: 40px;
	margin-bottom: 2rem;
}

h2.heading_page_policy {
	font-size: clamp(21px, 2vw, 36px);
	margin-top: 40px;
}

.policy-items {
	margin: 2rem 0;
}

.policy-items p:first-child {
	font-weight: bold;
	border-bottom: 1px solid #4d4d4d;
	display: inline-block;
}

ul.policy-list {
	list-style-type: disc;
	margin: 0 2rem;
}

ol.policy-list_number {
	list-style-type: decimal;
	margin: 0 2rem;
}

.about-company {
	margin: 4rem 0;
}

@media screen and (min-width: 680px) {
	h2.heading_page {
		padding-top: 0;
	}
}

/*==================================
会社概要ページ
==================================*/
h2.heading_company {
	font-size: clamp(40px, 5vw, 55px);
	font-family: adobe-caslon-pro, serif;
	font-weight: 600;
	padding-top: 40px;
	margin-bottom: 2rem;
}

.company_item h3 {
	border-bottom: 5px solid #1c9bc4;
	display: inline-block;
	width: 88px;
	text-align: center;
}

.company_item {
	display: flex;
	justify-content: space-evenly;
	text-align: center;
	align-items: flex-end;
	margin-bottom: 2rem;
}

.company_item p {
	width: 190px;
	text-align: left;
}

.company_item a:link {
	color: #1c9bc4;
}

@media screen and (min-width: 680px) {
	h2.heading_company {
		padding-top: 0;
	}

	.company_item h3 {
		width: 120px;
	}

	.company_item p {
		width: 450px;
	}
}

/*==================================
サンクスページ
==================================*/
.thanks_text {
	text-align: center;
}

.thanks_text p {
	margin-bottom: 1rem;
}


/*==================================
Footer
==================================*/
#footer {
	background-color: #4d4d4d;
	padding: 32px 0 100px;
}

.footer_link {
	color: #fff;
	text-align: center;
}

.footer_link p {
	padding-bottom: 1rem;
}

.footer_link a {
	text-decoration: none;
}
.footer_link a:visited,
.footer_link a:link
{
	color: #fff;
}
.silhouette-footer .copyright {
	color: #fff;
	text-align: center;
	margin: 0;
}

.silhouette-footer .copyright small {
	font-size: 1rem;
	font-size: 10px;
}

@media screen and (min-width: 680px) {
	#footer {
		padding: 32px 0 0;
		height: 150px;
	}

	.footer_link {
		margin-bottom: 3rem;
	}

	.silhouette-footer .copyright {
		padding: 8px 0;
		margin: 0;
	}

	.silhouette-footer .copyright small {
		font-size: 14px;
	}

	.footer_link a:hover {
		color: var(--color01);
	}
}
.silhouette-contents > .block_wrapper {
	margin-bottom: 0 !important;
}
.block_wrapper .inner {
	margin: 0 calc(50% - 50vw);
	padding: min(10vw, 80px) calc(50vw - 48%);
}
.block_wrapper section {
	margin: 0;
}
.block_wrapper .point_more {
	padding: 0 calc(50vw - 48%) min(10vw, 80px);
}
.silhouette-contents {
	margin: 0 auto;
	width: 100%;
	max-width: 1090px;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}
@media screen and (min-width: 960px) {
	.silhouette-contents {
		margin: 0 auto;
	}
}