@charset "UTF-8";

/*
Theme Name: 岩手リオン補聴器センター
Description: Created 2024.9.4, LastUpdate 2026.3.11
Author: 株式会社岩手リオン補聴器センター
Author URI: http://iwaterion.co.jp/
Version: 1.1.3
Text Domain: iwaterion
*/

/* -------------------------------------------------------------------------- */

/*	Root
/* -------------------------------------------------------------------------- */

/* カラーマネジメント
/* ---------------------------------------- */
:root {
	--main-color-1: #FF6E1C; /* コーポレートカラー */
	--sub-color-1: #E60012;
	--sub-color-2: #004099;
	--sub-color-3: #009B63;
	--base-color-1: #F8F9F4;
	--base-color-2: #F2F5E8;
	--base-color-3: #05B6F1;
	--base-color-4: #fff4ea;
	--base-color-5: #ffefef; 
	--white: #ffffff; 
	--gray-5: #f5f5f5;
	--gray-10: #e6e6e6;
	--gray-20: #cccccc;
	--gray-30: #b3b3b3;
	--gray-40: #999999;
	--gray-50: #808080;
	--gray-60: #666666;
	--gray-70: #4d4d4d;
	--gray-80: #333333;
	--gray-90: #1a1a1a;
    --black: #000000;
	--red: #ea5550;
	--yellow: #ffdc00;
	--blue: #0075c2;
	--green: #00a960;
	--hover-color-1: #ffff33;
	--caution-color: #ff0000;
}

/* -------------------------------------------------------------------------- */

/*	Font
/* -------------------------------------------------------------------------- */

/* Zen Old Mincho
/* ---------------------------------------- */
@font-face {
    font-family: "Zen Old Mincho";
    font-style: normal;
	font-display: swap;
	font-weight: 900;
	src: url(./assets/fonts/Zen_Old_Mincho/ZenOldMincho-Black.ttf) format('truetype'); /* Safari, Android, iOS */
}
@font-face {
    font-family: "Zen Old Mincho";
    font-style: normal;
	font-display: swap;
	font-weight: 700;
	src: url(./assets/fonts/Zen_Old_Mincho/ZenOldMincho-Bold.ttf) format('truetype'); /* Safari, Android, iOS */
}
@font-face {
    font-family: "Zen Old Mincho";
    font-style: normal;
	font-display: swap;
	font-weight: 600;
	src: url(./assets/fonts/Zen_Old_Mincho/ZenOldMincho-SemiBold.ttf) format('truetype'); /* Safari, Android, iOS */
}

/* Font Awesome
/* ---------------------------------------- */
@font-face {
    font-family: "Font Awesome";
    font-style: normal;
	font-display: swap;
	font-weight: 400;
	src:
		url(./assets/fonts/FontAwesome/6.6.0/fa-brands-400.woff2) format('woff2'), /* Super Modern Browsers */
		url(./assets/fonts/FontAwesome/6.6.0/fa-brands-400.ttf) format('truetype'); /* Safari, Android, iOS */

}

/* -------------------------------------------------------------------------- */

/*	Document Setup
/* -------------------------------------------------------------------------- */

html {
	font-size: 62.5%; /* 1rem = 10px */
	scroll-padding-top: 20px;
}

body {
	box-sizing: border-box;
	color: var(--black);
	font-family: "Zen Old Mincho", "游明朝体", "Yu Mincho", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 1.4rem;
	font-weight: 600;
	font-display: swap;
	text-align: left;
	background-color: var(--base-color-1);
}
@media screen and ( min-width: 768px ) {
	body {
		font-size: 1.5rem;
	}
}
@media screen and ( min-width: 1024px ) {
	body {
		font-size: 1.6rem;
	}
}

*,
*::before,
*::after {
	font-family: inherit;
	box-sizing: border-box;
	word-break: break-word;
	word-wrap: break-word;
}

/* Base Transitions
/* ---------------------------------------- */
a,
path {
	transition-property: all;
	transition-duration: 0.3s;
}

/* レスポンシブ対応
/* ---------------------------------------- */
@media screen and ( min-width: 768px ) {
	.only-sp {
		display: none;
	}
}

@media screen and ( max-width: 767px ) {
	.only-pc {
		display: none;
	}
}

/* iPhone Tel Link
/* ---------------------------------------- */
.disable-auto-tel a[href^="tel:"] {
	color: inherit;
	text-decoration: none;
}

/* Selected Text
/* ---------------------------------------- */
::selection {
	background: lightgray;
}

/* -------------------------------------------------------------------------- */

/*	Element Base
/* -------------------------------------------------------------------------- */

header,
main,
footer,
article,
section,
nav,
aside {
	display: block;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: 900;
	letter-spacing: 0.02em;
	line-height: 1.5;
}

p {
	margin-bottom: 1em;
	line-height: 1.9;
	letter-spacing: 0.01em;
}

p:last-of-type {
	margin-bottom: 0;
}

em,
i,
q,
dfn {
	font-style: italic;
}

em em,
em i,
i em,
i i,
cite em,
cite i {
	font-weight: bolder;
}

big {
	font-size: 1.2em;
}

small {
	font-size: 0.8em;
}

b,
strong {
	font-weight: 900;
}

mark {
	color: inherit;
	background: linear-gradient(transparent 0, yellow 0%);
}

ins {
	text-decoration: underline;
}

sub,
sup {
	position: relative;
	font-size: 75%;
	line-height: 0;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

abbr,
acronym {
	cursor: help;
}

address {
	margin: 0 0 2rem 0;
	line-height: 1.5;
}

hr {
	margin: 4rem 0;
	border-style: solid;
	border-width: 0.1rem 0 0 0;
	border-color: lightgray;
}

ruby {
	ruby-align: center;

}

rt {
	font-size: 1rem;
	text-align: center;
}

/* Link
/* ---------------------------------------- */

a {
	color: var(--black);
	text-decoration: underline;
}

a:hover,
a:focus {
	text-decoration: none;
}

/* List
/* ---------------------------------------- */

ul,
ol,
dl {
	margin: 0 0 1em 2em;
	padding: 1em 0;
}

ul {
	list-style: disc;
}

ul ul {
	list-style: circle;

}

ul ul ul {
	list-style: square;
}

ol {
	list-style: decimal;
}

ol ol {
	list-style: lower-alpha;
}

ol ol ol {
	list-style: lower-roman;
}

li {
	margin: 0 0 0 1em;
	line-height: 1.8;
}

li > ul,
li > ol {
	margin: 1em 0 1em 1em;
}

dt,
dd {
	line-height: 1.5;
}

dt {
	font-weight: 700;
}

dt + dd {
	margin-top: 0.5em;
}

dd + dt {
	margin-top: 1.5em;
}

/* Quotes 
/* ---------------------------------------- */

blockquote {
	margin: 4rem 0;
	padding: 0.5rem 0 0.5rem 2rem;	/*rtl:ignore*/
	color: inherit;
	font-size: 1em;
	border-color: var(--black);
	border-style: solid;
	border-width: 0 0 0 0.3rem;	/*rtl:ignore*/
}

cite {
	color: var(--gray-20);
	font-style: normal;
	line-height: 1.25;
}

blockquote cite {
	display: block;
	margin: 2rem 0 0 0;
}

blockquote p:last-child {
	margin: 0;
}

/* Code
/* ---------------------------------------- */

code,
kbd,
pre,
samp {
	padding: 0.4rem 0.6rem;
	font-family: monospace;
}

code,
kbd,
samp {
	background: var(--gray-5);
	border-radius: 0.3rem;
}

pre {
	margin: 4rem 0;
	padding: 3rem 2rem;
	overflow: auto;
	text-align: left;
	line-height: 1.5;
	border: 0.1rem solid var(--gray-20);
}

pre code {
	padding: 0;
	background: transparent;
}

/* Inputs
/* ---------------------------------------- */

fieldset {
	padding: 2rem;
	border: 0.1rem solid var(--gray-20);
}

legend {
	font-size: 0.85em;
	font-weight: 500;
}

label {
	display: block;
}

input[type="checkbox"] + label {
	display: inline;
	margin-left: 0.5rem;
	font-weight: 700;
}

input[type="checkbox"],
input[type="radio"] {
	position: relative;
	display: inline-block;
	margin: 0;
	width: 1.5rem;
	min-width: 1.5rem;
	height: 1.5rem;
	background: var(--white);
	border-radius: 0;
	border-style: solid;
	border-width: 0.1rem;
	border-color: var(--gray-20);
	box-shadow: none;
	cursor: pointer;
	appearance: auto;
}

input[type="checkbox"] + *,
input[type="radio"] + * {	
	margin-left: 0.2em;
}

input,
textarea,
button {
	line-height: 1;
}

input,
textarea {
	color: var(--black);
	border-color: var(--gray-20);
}

code,
input[type="url"],
input[type="email"],
input[type="tel"] {
	direction: ltr;
}

input[type="text"],
input[type="password"],
input[type="email"],
input[type="url"],
input[type="date"],
input[type="month"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="week"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="color"],
textarea,
select {
	display: block;
	margin: 0 0 1rem;
	width: 100%;
	max-width: 100%;
	padding: 1em;
	font-size: 1.6rem;
	letter-spacing: 0.01em;
	background: var(--white);
	border-radius: 0.5em;
	border-style: solid;
	border-width: 0.1rem;
	border-color: var(--gray-20);
}

select {
	cursor: pointer;
}

textarea {	
	width: 100%;
	line-height: 1.5;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0 4rem;
	height: 5rem;
	overflow: hidden;
	color: var(--white);
	font-size: 1em;
	text-decoration: none;
	background-color: var(--main-color-1);
	border-radius: 10rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	transition: 0.5s ease;
}
@media screen and ( min-width: 768px ) {
	button,
	input[type="button"],
	input[type="reset"],
	input[type="submit"] {
		height: 6rem;
		padding: 0 5rem;
	}
}

button:focus,
button:hover,
input[type="button"]:focus,
input[type="button"]:hover,
input[type="reset"]:focus,
input[type="reset"]:hover,
input[type="submit"]:focus,
input[type="submit"]:hover {	
	opacity: 0.6;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
	border-color: currentColor;
}

input[type="search"]:focus {
	outline: thin dotted;
	outline-offset: -4px;
}

input[type="submit"]:disabled,
input[type="button"]:disabled {
	background: var(--gray-20);
}

input[type="submit"]:not(:disabled):hover,
input[type="button"]:not(:disabled):hover {
	opacity: 0.6;
}

::placeholder {
	color: var(--gray-20);
	font-weight: 700;
}

/* Media
/* ---------------------------------------- */

.wp-caption {
	margin-top: 2em;
	margin-bottom: 2em;
	max-width: 100%;
}

figure {
	display: block;
	margin: 0;
}

iframe {
	display: block;
	width: 100%;
	max-width: 100%;
	border-radius: 0.5rem;
}

video {
	display: block;
}

svg,
img,
embed,
object {
	display: inline-block;
	height: auto;
    width: auto;
	max-width: 100%;
}

figcaption,
.wp-caption-text {
	margin-top: 0.5rem;
	color: var(--gray-20);
	font-size: 0.8em;
	line-height: 1.2;
}

figcaption a,
.wp-caption-text a {
	color: inherit;
	text-decoration: underline;
}

/* Screen Reader
/* ---------------------------------------- */

.screen-reader-text {	
	position: absolute !important;
	margin: -1px;
	padding: 0;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	word-wrap: normal !important;
	border: 0;
}

.screen-reader-text:focus {
	position: relative;
	z-index: 100000;
	top: 5px;
	left: 5px;
	display: block;
	padding: 15px 23px 14px;
	width: auto;
	height: auto;
	clip: auto !important;
	clip-path: none;
	font-size: 1em;
	color: #444;
	line-height: normal;
	text-decoration: none;
	background-color: #eee;
}

/* -------------------------------------------------------------------------- */

/*	Post Content
/* -------------------------------------------------------------------------- */

.post-content {
	overflow: hidden;
}

.post-content h1 {
	font-size: 1.8em;
	color: var(--main-color-1);
}

.post-content h2 {
	padding: 0.5em 0.5em 0.5em 0.7em;
	font-size: 1.3em;
	background-color: var(--base-color-4);
	border-left: 0.7rem solid var(--main-color-1);
	border-radius: 0.5rem;
}

.post-content h3 {
	padding: 0 0.4em 0.4em 0.4em;
	font-size: 1.2em;
	border-bottom: 0.2rem solid var(--main-color-1);
}

.post-content h4 {
	font-size: 1.1em;
}

.post-content h5 {
	font-size: 1.1em;
}

.post-content h6 {
	font-size: 1.1em;
}

.post-content :is(h1, h2, h3, h4, h5, h6) + * {
	margin-top: 2em;
}

/* Image
/* ---------------------------------------- */

.post-content img {
	border-radius: 0.5rem;
}

/* Alignment Classes
/* ---------------------------------------- */

.post-content .has-text-align-center {
	text-align: center;
}

.post-content .has-text-align-left {
	text-align: left;
}

.post-content .has-text-align-right {	
	text-align: right;
}

.post-content .alignleft,
.post-content .alignright {
	margin-top: 1rem;
	margin-bottom: 1rem;
	margin-right: auto;
	margin-left: auto;
}

/* Center */
.post-content .aligncenter,
.post-content .aligncenter img {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* Left and right */
.post-content .alignleft,
.post-content .alignright {
	max-width: 50%;
}

.post-content .alignleft {
	margin: 0 2em 2em 2em;
	float: left;
}

.post-content .alignright {
	margin: 0 2em 2em 2em;
	float: right;
}

/* Tables
/* ---------------------------------------- */

.post-content table {
	width: 100% !important;
	min-width: 50rem;
	height: auto !important;
	margin: 0 !important;
	font-size: 0.9em !important;
	line-height: 1.6 !important;
	border: 0.1rem solid var(--gray-40) !important;
}

.post-content tr,
.post-content th,
.post-content td {
	width: auto !important;
	height: auto !important;
	vertical-align: middle;
	word-break: keep-all;
}

.post-content th,
.post-content td {
	padding: 0.5em 0.75em !important;
	white-space: normal !important;
	border: 0.1rem solid var(--gray-40) !important;
}

.post-content thead {
	font-size: 0.9em !important;
}

.post-content thead th,
.post-content thead td {
	color: var(--white) !important;
	text-align: center !important;
}

.post-content table p {
	margin-bottom: 0.5em;
}

.post-content table ul:last-of-type,
.post-content table ol:last-of-type {
	margin-bottom: 0;
}

/* YouTube埋め込み対応
/* ---------------------------------------- */

.post-content iframe[src*="youtube"] {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
	aspect-ratio: 16 / 9;
}

/* PDFファイル対応
/* ---------------------------------------- */

a[href$=".pdf"] {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	padding: 1rem 1.5rem;
	width: 25rem;
	color: var(--black);
	font-size: 0;
	text-decoration: none;
	line-height: 1;
	background-color: var(--white);
	border: 0.1rem solid var(--black);
	border-radius: 10rem;
	transition: all 0.3s ease;
}

a[href$=".pdf"]::before {	
	margin-right: 1rem;
	color: inherit;
	font-size: 3.2rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	content: "\e415";
}

a[href$=".pdf"]::after {	
	font-size: 1.4rem;
	content: "PDFファイルを開く";
}

a[href$=".pdf"]:hover,
a[href$=".pdf"]:focus {	
	color: var(--white);
	background-color: var(--black);
}

/* -------------------------------------------------------------------------- */

/*	ローディングアニメーション
/* -------------------------------------------------------------------------- */

.splash {
	display: none;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--white);
}

.splash__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}

.splash__img-wrapper {
	position: relative;
}

.splash__img {
	width: 25rem;
	height: auto;
}
@media screen and ( min-width: 768px ) {
	.splash__img {		
		width: 35rem;
	}
}

.splash__typo {
	color: var(--white);
	font-size: 2em;
	font-weight: 900;
}

/* -------------------------------------------------------------------------- */

/*	画面遷移アニメーション
/* -------------------------------------------------------------------------- */

.splash-bg {
	display: none;
	position: fixed;
	z-index: 9999;
	top: 0;
	left: 0;
	width: 100%;
	height: 100svh;
	transform: scaleY(0);
	background-color: var(--main-color-1);
	content: "";
	animation-name: PageAnime;
	animation-duration: 1.2s;
	animation-timing-function: ease-in-out;
	animation-fill-mode: forwards;
}
@keyframes PageAnime{
	0% {
	  transform-origin: top;
	  transform: scaleY(0);
	}
	50% {
	  transform-origin: top;
	  transform: scaleY(1);
	}
	50.001% {
	  transform-origin: bottom;
	}
	100% {
	  transform-origin: bottom;
	  transform: scaleY(0);
	}
}

.appear .splash-bg {
	display: block;
}

/* -------------------------------------------------------------------------- */

/*	スクロールアニメーション
/* -------------------------------------------------------------------------- */

/* フェード系
/* ---------------------------------------- */

.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger {	
	opacity: 0;
}

.fadeIn,
.fadeUp,
.fadeDown,
.fadeLeft,
.fadeRight {
	opacity: 0;
    animation-duration: 1s;
    animation-fill-mode: forwards;
}

.fadeIn {	
	animation-name: fadeInAnime;
}
@keyframes fadeInAnime {
    from {
		opacity: 0;
    }
    to {
		opacity: 1;
    }
}

.fadeUp {
	animation-name: fadeUpAnime;
}
@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(10rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fadeDown {
	animation-name: fadeDownAnime;
}
@keyframes fadeDownAnime {
    from {
        opacity: 0;
        transform: translateY(-10rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.fadeLeft {
    animation-name: fadeLeftAnime;
}
@keyframes fadeLeftAnime {
    from {
		opacity: 0;
		transform: translateX(-10rem);
    }
    to {
		opacity: 1;
		transform: translateX(0);
    }
}

.fadeRight {
    animation-name: fadeRightAnime;
}
@keyframes fadeRightAnime {
    from {
		opacity: 0;
		transform: translateX(10rem);
    }
    to {
		opacity: 1;
		transform: translateX(0);
    }
}

/* -------------------------------------------------------------------------- */

/*	ボタン関連
/* -------------------------------------------------------------------------- */

/* 一覧ボタン
/* ---------------------------------------- */

.list-btn {
	display: flex;
}

.list-btn__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	color: var(--main-color-1);
	font-size: 1em;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-decoration: none;
}
@media screen and ( min-width: 768px ) {
	.list-btn__link {		
		font-size: 1.1em;
	}
}

.list-btn__link.--front-hero-bottom,
.list-btn__link.--front-reservation {	
	color: var(--white);
}

.list-btn__txt {
	position: relative;
	padding: 0.5rem 0;
}

.list-btn__txt::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background-color: var(--main-color-1);
	content: "";
	transform: scale(0, 1);
	transform-origin: right top;
	transition-property: transform;
	transition-duration: 0.5s;
}

.list-btn__txt.--front-hero-bottom::after,
.list-btn__txt.--front-reservation::after {
	background-color: var(--white);
}

.list-btn__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	width: 4.4rem;
	margin: 0 0 0 1em;
	padding: 0;
	aspect-ratio: 25 / 23;
	font-size: inherit;
	background-color: var(--main-color-1);
	border-radius: 50%;
}
@media screen and ( min-width: 768px ) {
	.list-btn__icon {		
		width: 5rem;
	}
}

.list-btn__icon.--front-hero-bottom,
.list-btn__icon.--front-reservation {
	background-color: var(--white);
}

.list-btn__icon::before {
	position: relative;
	z-index: 2;
	color: var(--white);
	font-size: 1.8rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	line-height: 1;
	content: "\f1df";
}
@media screen and ( min-width: 768px ) {
	.list-btn__icon::before {
		font-size: 2rem;
	}
}

.list-btn__icon.--front-hero-bottom::before {	
	color: var(--main-color-1);
}

.list-btn__icon.--front-reservation::before {	
	color: var(--base-color-3);
}

.list-btn__link:hover .list-btn__txt::after,
.list-btn__link:focus .list-btn__txt::after {
	transform: scale(1, 1);
	transform-origin: left top;
}

.list-btn__link:hover .list-btn__icon::before {	
	animation-name: listButtonArrow;
	animation-duration: 0.5s;
	animation-timing-function: ease;
	animation-fill-mode: forwards;
}
@keyframes listButtonArrow {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(1.5rem, 0);
		opacity: 0;
	}
	66.66% {
		transform: translate(-1.5rem, 0);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* もっと見る
/* ---------------------------------------- */

.more-btn {
	display: flex;
}

.more-btn__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	color: var(--main-color-1);
	font-size: 1em;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.more-btn__txt {
	position: relative;
	padding: 0.5rem 0;
	transform: translateY(-0.05em);
}

.more-btn__txt::after {	
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background-color: var(--main-color-1);
	content: "";
	transform: scale(0, 1);
	transform-origin: right top;
	transition-property: transform;
	transition-duration: 0.5s;
}

.more-btn__icon {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	margin: 0 0 0 1em;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	font-size: inherit;
	transition-property: all;
	transition-duration: 0.4s;
}

.more-btn__icon::before {
	position: relative;
	z-index: 2;
	color: var(--main-color-1);
	font-size: 1.6rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	line-height: 1;
	content: "\f1df";
}
@media screen and ( min-width: 768px ) {
	.more-btn__icon::before {		
		font-size: 1.8rem;
	}
}

.more-btn__link:hover .more-btn__txt::after,
.more-btn__link:focus .more-btn__txt::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

.more-btn__link:hover .more-btn__icon::before,
.more-btn__link:focus .more-btn__icon::before {	
	color: var(--main-color-1);
}

.more-btn__link:hover .more-btn__icon::before {
	font-variation-settings: 'FILL' 1, 'wght' 300;
	animation-name: moreButtonArrow;
	animation-duration: 0.5s;
	animation-timing-function: ease;
	animation-fill-mode: forwards;
}
@keyframes moreButtonArrow {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(1.5rem, 0);
		opacity: 0;
	}
	66.66% {
		transform: translate(-1.5rem, 0);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* CTA
/* ---------------------------------------- */

.cta-btn {
	display: flex;
}

.cta-btn__link {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	padding: 1.5rem 3.5rem;
	color: var(--white);
	font-size: 1em;
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: 0.02em;
	text-decoration: none;
	background-color: var(--main-color-1);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	border-radius: 10rem;
}

.cta-btn__txt {
	position: relative;
	transform: translateY(-0.05em);
}

.cta-btn__icon {
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	margin: 0 0 0 1em;
	padding: 0;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: inherit;
	transition-property: all;
	transition-duration: 0.5s;
}

.cta-btn__icon::before {
	margin: 0;
	padding: 0;
	z-index: 2;
	color: var(--white);
	font-size: 1.6rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	line-height: 1;
	content: "\f1df";
}
@media screen and ( min-width: 768px ) {
	.cta-btn__icon::before {
		font-size: 1.8rem;
	}
}

.cta-btn__link:hover,
.cta-btn__link:focus {	
	opacity: 0.7;
}

.cta-btn__link:hover .cta-btn__icon::before {
	font-variation-settings: 'FILL' 1, 'wght' 300;
	animation-name: moreButtonArrow;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes moreButtonArrow {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(1.5rem, 0);
		opacity: 0;
	}
	66.66% {
		transform: translate(-1.5rem, 0);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Side scroll
/* -------------------------------------------------------------------------- */

.side-scroll {
	overflow-x: auto;
	white-space: nowrap;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch; 
}

.side-scroll::-webkit-scrollbar {
	display: none;
}

/* -------------------------------------------------------------------------- */

/* Pagination
/* -------------------------------------------------------------------------- */

.pagination ul {
	display: flex;
	justify-content: center;
    align-items: center;
	margin: 6rem 0 0;
    padding: 0;
	list-style: none;
}

.pagination li {
	margin: 0 1rem 0 0;
}

.pagination li:last-child {
	margin-right: 0;
}

.pagination li .page-numbers {
	display: flex;
    justify-content: center;
    align-items: center;
	width: 4.4rem;
	aspect-ratio: 25 / 23;
	color: var(--main-color-1);
    text-decoration: none;
    font-size: 0.9em;
	line-height: 1;
	background-color: var(--white);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	border: 0.1rem solid transparent;
	border-radius: 50%;
	transition: 0.3s;
}

.pagination li .page-numbers.current {
	border-color: var(--main-color-1);
}

.pagination .prev::before,
.pagination .next::after  {
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	font-size: 1.6rem;
	content: "";
}

.pagination .prev::before {
	content: '\f1e6';
}

.pagination .next::after {
	content: '\f1df';
}

/* Hover animation */
.pagination li a.page-numbers:hover,
.pagination li a.page-numbers:focus {
	border-color: var(--main-color-1);
}

/* -------------------------------------------------------------------------- */

/* Breadcrumb
/* -------------------------------------------------------------------------- */

.breadcrumb {
	width: 100%;
	position: relative;
	padding: 1.5rem 0;
}

.breadcrumb__inner {
	color: var(--gray-80);
	font-size: 0.9em;
	width: calc(100% - 3rem);
	max-width: 120rem;
	margin: 0 auto;
	display: flex-start;
	justify-content: center;
}


.breadcrumb a {
	color: inherit;
}

.aioseo-breadcrumb:last-of-type {
	margin: 0 1.5rem 0 0;
}

.aioseo-breadcrumb-separator {
	display: inline-block;
	padding: 0 0.8em;
}

/* -------------------------------------------------------------------------- */

/* Sort
/* -------------------------------------------------------------------------- */

.sort-nav {
	width: 100%;
	max-width: 120rem;
	margin: 5rem auto 0;
	padding: 0;
}

.sort-nav__inner {
	width: 100%;
	margin: 0 ;
	padding: 0;
}

.sort-nav__btn-wrapper ul {
	display: flex;
	align-items: center;
	grid-gap: 2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media screen and ( min-width: 1024px ) {
	.sort-nav__btn-wrapper ul {
		grid-gap: 3rem;
	}
}

.sort-nav__btn-wrapper ul li {
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

.sort-nav__btn-wrapper ul li:first-of-type {
	padding-left: 1.5rem;
}

.sort-nav__btn-wrapper ul li:last-of-type {
	padding-right: 1.5rem;
}

.sort-nav__btn-wrapper ul li a {
	display: inline-block;
	margin: 0;
	padding: 0.5em 0;
	position: relative;
	font-size: 1.1em;
	font-weight: 900;
	text-decoration: none;
	text-align: center;
}

.sort-nav__btn-wrapper ul li a::before {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.3rem;
	content: "";
	background-color: transparent;
}

.sort-nav__btn-wrapper ul li a:hover::after,
.sort-nav__btn-wrapper ul li a:focus::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

.sort-nav__btn-wrapper ul li a::after {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.3rem;
	content: "";
	background-color: var(--main-color-1);
	transform: scale(0, 1);
	transform-origin: right top;
	transition-property: transform;
	transition-duration: 0.3s;
}

.sort-nav__btn-wrapper ul li.current-cat a::before {
	background-color: var(--main-color-1);
}

/* -------------------------------------------------------------------------- */

/* Table of Contens
/* -------------------------------------------------------------------------- */

.toc-wrapper,
.modal-toc-wrapper {
	position: relative;
}

.modal-toc-wrapper {
	display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100svh;
    z-index: 9999;
    background-color: rgba(0, 0, 0, 0.5);
	padding: 1.5rem;
	overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
}

.modal-toc__body::-webkit-scrollbar {
    display: none;
}

.modal-toc-wrapper.is-active {
    display: block;
}

.modal-toc-active {
	overflow-y: hidden;
}

.toc,
.modal-toc {
	margin: 0;
	padding: 3rem;
	background-color: var(--gray-5);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	border-radius: 0.5rem;
}
@media screen and ( min-width: 768px ) {
	.toc,
	.modal-toc {
		padding: 4rem;
	}
}

.toc {
	position: sticky;
	top: 2rem;
}

.toc__header,
.modal-toc__header {
	position: relative;
	color: var(--main-color-1);
	font-size: 1.5em;
}

.toc__title-en,
.modal-toc__title-en {
	font-weight: 900;
}

.toc__title-ja,
.modal-toc__title-ja {
	font-size: 0.65em;
	margin-top: 0.5em;
}

.toc__body,
.modal-toc__body {
	margin-top: 4rem;
}

.toc ul,
.modal-toc ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.toc li,
.modal-toc li {
	font-size: 1em;
	line-height: 1.6;
	position: relative;
	margin-left: 0;
	padding-left: 2em;
}

.toc li span,
.modal-toc li span {
	font-size: 1.1em;
	font-weight: 900;
	letter-spacing: 0.05em;
	position: absolute;
	left: 0;
	top: 0;
	transform: translateY(-0.1em);
}

.toc li + li,
.modal-toc li + li {
	margin-top: 1em;
}

.toc a,
.modal-toc a {
	text-decoration: none;
	word-break: keep-all;
}

.toc a:hover,
.modal-toc a:hover,
.toc a:focus,
.modal-toc a:focus {
	text-decoration: underline;
}

.modal-toc__close {
	margin: 4rem 0 0;
	color: var(--main-color-1);
    font-size: 1em;
	text-align: center;
	cursor: pointer;
}

/* Button
/* ---------------------------------------- */

.modal-toc-btn-wrapper {
	opacity: 0;
    position: fixed;
    right: 1rem;
    bottom: 11rem;
    z-index: 102;
	display: flex;
	justify-content: center;
}
@media screen and ( min-width: 768px ) {
	.modal-toc-btn-wrapper {
		bottom: 12rem;
	}
}
@media screen and ( min-width: 1366px ) {
	.modal-toc-btn-wrapper {
		display: none;
	}
}

.modal-toc-btn {
	display: block;
	text-decoration: none;
	width: 4.4rem;
	aspect-ratio: 25 / 23;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: var(--main-color-1);
	overflow: hidden;
	box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.3);
	cursor: pointer;
}
@media screen and ( min-width: 768px ) {
	.modal-toc-btn {
		width: 5rem;
	}
}

.modal-toc-btn__txt {
	color: var(--white);
	font-size: 1.2rem;
}
@media screen and ( min-width: 768px ) {
	.modal-toc-btn__txt {
		font-size: 1.4rem;
	}
}

.appear .modal-toc-btn-wrapper.visible {
	animation-name: modalTocBtnVisible;
	animation-delay: 0.5s;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes modalTocBtnVisible {
    from {
        opacity: 0;
        transform: translateY(15rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.appear .modal-toc-btn-wrapper.hidden {
	animation-name: modalTocBtnHidden;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes modalTocBtnHidden {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(15rem);
    }
}

.modal-toc-btn:hover .modal-toc-btn__txt {
	animation-name: modalTocBtnAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	color: var(--white);
}
@keyframes modalTocBtnAnime {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(0, -1.5rem);
		opacity: 0;
	}
	66.66% {
		transform: translate(0, 1.5rem);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Swiper
/* -------------------------------------------------------------------------- */

.swiper-arrow-wrapper {
	position: relative;
	z-index: 10;
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 0;
}

.swiper-arrow-wrapper.top {
	margin-bottom: 2em;
}

.swiper-arrow-wrapper.bottom {
	margin-top: 2em;
}

.swiper-arrow-wrapper .swiper-button-prev,
.swiper-arrow-wrapper .swiper-button-next {
	width: 4.4rem;
	height: auto;
	aspect-ratio: 25 / 23;
	margin: 0;
	padding: 0;
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	z-index: 1;
	transform: translate(0, 0);
	font-size: inherit;
	line-height: 1;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
	border: 0.1rem solid transparent;
	border-radius: 50%;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}

.swiper-arrow-wrapper .swiper-button-prev.swiper-button-disabled,
.swiper-arrow-wrapper .swiper-button-next.swiper-button-disabled {
	box-shadow: none;
	opacity: 0.1;
}

.swiper-arrow-wrapper .swiper-button-prev.swiper-button-disabled::after,
.swiper-arrow-wrapper .swiper-button-next.swiper-button-disabled::after {
    color: var(--gray-20);
}

.swiper-arrow-wrapper .swiper-button-prev {
	margin-right: 1.5em;
}

.swiper-arrow-wrapper .swiper-button-prev::after,
.swiper-arrow-wrapper .swiper-button-next::after {
	content: "";
	color: var(--main-color-1);
	font-size: 1.6rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	margin: 0;
	padding: 0;
	position: absolute;
	z-index: 2;
}
@media screen and ( min-width: 768px ) {
	.swiper-arrow-wrapper .swiper-button-prev::after,
	.swiper-arrow-wrapper .swiper-button-next::after {
		font-size: 1.8rem;
	}
}

.swiper-arrow-wrapper .swiper-button-prev::after {
	content: "\f1e6";
}

.swiper-arrow-wrapper .swiper-button-next::after {
	content: "\f1df";
}

.swiper-arrow-wrapper .swiper-button-prev:hover,
.swiper-arrow-wrapper .swiper-button-prev:focus,
.swiper-arrow-wrapper .swiper-button-next:hover,
.swiper-arrow-wrapper .swiper-button-next:focus {
	border-color: var(--main-color-1);
}

.swiper-arrow-wrapper .swiper-button-next:not(.swiper-button-disabled):hover::after {
	animation-name: buttonNextAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes buttonNextAnime {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(1.5rem, 0);
		opacity: 0;
	}
	66.66% {
		transform: translate(-1.5rem, 0);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

.swiper-arrow-wrapper .swiper-button-prev:not(.slick-disabled):hover::after {
	animation-name: buttonPrevAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes buttonPrevAnime {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(-1.5rem, 0);
		opacity: 0;
	}
	66.66% {
		transform: translate(1.5rem, 0);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Container
/* -------------------------------------------------------------------------- */

.site-container {
	opacity: 0;  
	position: relative;
	z-index: 1;
}

.appear .site-container {
	opacity: 0;
	animation-name: PageAnimeAppear;
	animation-delay: 0.5s;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes PageAnimeAppear {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Site Description
/* -------------------------------------------------------------------------- */

.site-description {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 2.5rem;
	color: var(--white);
	font-family: sans-serif;
	font-size: 1rem;
	text-align: center;
	white-space: nowrap;
	background-color: var(--base-color-3);
}
@media screen and ( min-width: 768px ) {
	.site-description {
		height: 3rem;
		font-size: 1.2rem;
		letter-spacing: 0.05em;
	}
}
@media screen and ( min-width: 1024px ) {
	.site-description {
		font-size: 1.4rem;
	}
}

/* -------------------------------------------------------------------------- */

/*	Header
/* -------------------------------------------------------------------------- */

.site-header {
	width: 100%;
	height: 10rem;
	padding: 0 1.5rem;
	position: relative;
	z-index: 8;
	top: 0;
	display: flex;
	align-items: center;
	justify-content: space-between;
	grid-gap: 3rem;
	transition: 0.3s;
	background-color: var(--white);
}
@media screen and ( min-width: 768px ) {
	.site-header {
		height: 12rem;
		padding: 0 2rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.site-header {
		height: 15rem;
		padding: 0 3rem;
		grid-gap: 6rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.site-header {
		padding: 0 4rem;
	}
}

.site-header__ttl {
	position: relative;
	margin: 0;
	padding: 0;
	flex-shrink: 0;
}

.site-header__ttl-link {
	color: var(--white);
	text-decoration: none;
}

.site-header__typo {
	font-size: 1.2em;
	letter-spacing: -0.01em;
	color: var(--black);
}
@media screen and ( min-width: 1024px ) {
	.site-header__typo {
		font-size: 1.5em;
	}
}

.site-header__logo-wrapper {
	position: relative;
}

.site-header__logo {
	width: auto;
	max-height: 5rem;
	transition: 0.3s;
	mix-blend-mode: multiply;
}
@media screen and ( min-width: 768px ) {
	.site-header__logo {
		max-height: 6rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.site-header__logo {
		max-width: 30rem;
		max-height: 6rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.site-header__logo {
		max-height: 7rem;
	}
}

/* Horizontal Menu
/* ---------------------------------------- */

.horizontal-menu-wrapper {
	display: none;
}
@media screen and ( min-width: 1024px ) {
	.horizontal-menu-wrapper {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		grid-gap: 1rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.horizontal-menu-wrapper {
		grid-gap: 1.5rem;
	}
}

.horizontal-menu {
	display:flex;
	flex-wrap: wrap;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
	grid-gap: 0.5rem 2.5rem;
}

.horizontal-menu__item {
	position: relative;
	margin: 0;
	padding: 0;
	line-height: 1;
}

.horizontal-menu__link {
	display: inline-block;
	padding: 0.5em 0;
	font-size: 0.95em;
	color: var(--black);
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
	transition: 0.3s;
}
@media screen and ( min-width: 1367px ) {
	.horizontal-menu__link {
		font-size: 1em;
	}
}
@media screen and ( min-width: 1500px ) {
	.horizontal-menu__link {
		font-size: 1.1em;
	}
}

.horizontal-menu__link::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.3rem;
	background-color: transparent;
}

.horizontal-menu__link:hover::after,
.horizontal-menu__link:focus::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

.horizontal-menu__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.3rem;
	background-color: var(--main-color-1);
	transform: scale(0, 1);
	transform-origin: right top;
	transition-property: transform;
	transition-duration: 0.3s;
}

.horizontal-menu__link.current::before {
	background-color: var(--main-color-1);
}

/* Primary Menu
/* ---------------------------------------- */

.primary-menu {
	display: flex;
	padding: 1rem 2rem;
	background-color: var(--yellow);
	border-radius: 0.5rem;
}

.primary-menu__item {
	position: relative;
}

.primary-menu__item + .primary-menu__item {
	border-left: 0.1rem solid var(--white);
	margin-left: 2rem;
	padding-left: 2rem;
}

.primary-menu__link {
	display: block;
	color: var(--sub-color-2);
	font-size: 0.9em;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
}
@media ( min-width: 1367px ) {
	.primary-menu__link {
		font-size: 1em;
	}
}

.primary-menu__link:hover,
.primary-menu__link:focus {
	color: var(--gray-30);
}

.primary-menu__txt {
	display: inline-block;
	transform: translateY(-0.15em);
}

.primary-menu__txt.--regular-consultation::before {
	content: "\e0c8";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.2em);
}

.primary-menu__txt.--reservation::before {
	content: "\e32c";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.2em);
}

.primary-menu__txt.--contact::before {
	content: "\e158";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.2em);
}

/* -------------------------------------------------------------------------- */

/*	Front Menu
/* -------------------------------------------------------------------------- */

.main-menu-card-container {
	margin: 0;
	padding: 3rem 0;
	overflow: hidden;
	background-color: var(--base-color-3);
	border-top: 0.1rem solid var(--white);
	border-bottom: 0.1rem solid var(--white);
}
@media ( min-width: 768px ) {
	.main-menu-card-container {
		padding: 6rem 0;
	}
}
@media ( min-width: 1024px ) {
	.main-menu-card-container {
		padding: 10rem 0;
	}
}

.main-menu-card-wrapper {
	width: calc(100% - 3rem);
	max-width: 120rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 1rem;
}
@media ( min-width: 768px ) {
	.main-menu-card-wrapper {
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 1.5rem;
	}
}
@media ( min-width: 1024px ) {
	.main-menu-card-wrapper {
		grid-template-columns: repeat(3, 1fr);
		grid-gap: 2rem;
	}
}

.main-menu-card {
	margin: 0;
	padding: 0;
}

.main-menu-card__link {
	position: relative;
	text-decoration: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	aspect-ratio: 2 / 1;
	border-radius: 0.5rem;
	overflow: hidden;
}
@media ( min-width: 1024px ) {
	.main-menu-card__link {
		aspect-ratio: 16 / 9;
	}
}

.main-menu-card__img-wrapper {
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow: hidden;
	transition: 8s linear;
}

.main-menu-card__img-wrapper::after {
	content: "";
	display: block;
	position: absolute;
	z-index: 1;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.5);
}

.main-menu-card__img {
	width: 100%;
    height: 100%;
	object-fit: cover;
}

.main-menu-card__bg {
	position: absolute;
	z-index: 2;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: var(--white);
	transition: 0.3s;
}

.main-menu-card__txt-wrapper {
	position: absolute;
	z-index: 3;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	margin: 0;
	padding: 1.5rem;
}
@media ( min-width: 768px ) {
	.main-menu-card__txt-wrapper {
		padding: 2rem;
	}
}

.main-menu-card__ttl {
	color: var(--black);
	font-size: 1.1em;
	line-height: 1.7;
	margin: 0;
	padding: 0;
}
@media ( min-width: 1024px ) {
	.main-menu-card__ttl {
		font-size: 1.2em;
	}
}
@media ( min-width: 1367px ) {
	.main-menu-card__ttl {
		font-size: 1.3em;
	}
}

.main-menu-card__icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 3rem;
	aspect-ratio: 25 / 23;
	background-color: var(--base-color-3);
	color: var(--white);
	line-height: 1;
	border: 0.1rem solid transparent;
	border-radius: 50%;
	position: absolute;
	left: 1.5rem;
	bottom: 1.5rem;
	z-index: 3;
	transition: all 0.3s ease;
}
@media ( min-width: 768px ) {
	.main-menu-card__icon {
		width: 4rem;
		left: 2rem;
		bottom: 2rem;
	}
}

.main-menu-card__icon::before {
	content: "\f1df";
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	display: inline-block;
	font-size: 1.4rem;
}
@media screen and ( min-width: 768px ) {
	.main-menu-card__icon::before {
		font-size: 1.6rem;
	}
}

.main-menu-card__link:hover .main-menu-card__bg,
.main-menu-card__link:focus .main-menu-card__bg {
	opacity: 0;
}


.main-menu-card__link:hover .main-menu-card__ttl,
.main-menu-card__link:focus .main-menu-card__ttl {
	color: var(--white);
}

.main-menu-card__link:hover .main-menu-card__icon,
.main-menu-card__link:focus .main-menu-card__icon {
	background-color: transparent;
	color: var(--white);
	border-color: var(--white);
}

.main-menu-card__link:hover .main-menu-card__img-wrapper,
.main-menu-card__link:focus .main-menu-card__img-wrapper {
	transform: scale(1.2);
}

/* -------------------------------------------------------------------------- */

/*	Fixed Menu
/* -------------------------------------------------------------------------- */

.fixed-menu-wrapper {
	position: fixed;
	z-index: 2;
	bottom: 0.5rem;
	width: 100%;
	padding: 0 0.5rem;
	opacity: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu-wrapper {
		top: 0;
		right: 0;
		padding: 0;
		width: auto;
		height: 100svh;
	}
}

.appear .fixed-menu-wrapper.visible {
	animation-name: bottomMenuUpAnime;
	animation-delay: 0.5s;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes bottomMenuUpAnime {
    from {
        opacity: 0;
        transform: translateY(15rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media screen and ( min-width: 1367px ) {
	@keyframes bottomMenuUpAnime {
		from {
			opacity: 0;
			transform: translateX(15rem);
		}
		to {
			opacity: 1;
			transform: translateX(0);
		}
	}
}

.appear .fixed-menu-wrapper.hidden {
	animation-name: fixedMenuAnime;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes fixedMenuAnime{
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(15rem);
    }
}
@media screen and ( min-width: 1367px ) {
	@keyframes fixedMenuAnime{
		from {
			opacity: 1;
			transform: translateX(0);
		}
		to {
			opacity: 0;
			transform: translateX(15rem);
		}
	}
}

.fixed-menu {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	justify-content: center;
	padding: 1.5rem 0;
	width: 100%;
	background-color: var(--yellow);
	box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1);
	border-radius: 0.5rem;
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu {
		display: flex;
		justify-content: center;
		flex-direction: column;
		padding: 3rem 1.5rem;
		border-radius: 0.5rem 0 0 0.5rem;
	}
}

.fixed-menu__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fixed-menu__item + .fixed-menu__item {
	margin: 0;
	padding: 0;
	border-width: 0 0 0 0.1rem;
	border-color: var(--white);
	border-style: solid;
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__item + .fixed-menu__item {
		margin: 3rem 0 0 0;
		padding: 3rem 0 0 0;
		border-width: 0.1rem 0 0 0;
	}
}

.fixed-menu__link {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	position: relative;
	color: var(--sub-color-2);
	font-size: 1em;
	font-weight: 900;
	letter-spacing: 0.005em;
}
@media screen and ( min-width: 768px ) {
	.fixed-menu__link {
		font-size: 1.1em;
	}
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__link {
		writing-mode: vertical-rl;
	}
}

.fixed-menu__txt {
	transform: translate(0, -0.15em);
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__txt {
		transform: translate(0, 0);
	}
}

.fixed-menu__txt.--regular-consultation::before {
	content: "\e0c8";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__txt.--regular-consultation::before {
		margin-right: 0;
		margin-bottom: 0.3em;
		transform: translateY(0);
	}
}

.fixed-menu__txt.--reservation::before {
	content: "\e32c";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__txt.--reservation::before {
		margin-right: 0;
		margin-bottom: 0.3em;
		transform: translateY(0);
	}
}

.fixed-menu__txt.--contact::before {
	content: "\e158";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}
@media screen and ( min-width: 1367px ) {
	.fixed-menu__txt.--contact::before {
		margin-right: 0;
		margin-bottom: 0.3em;
		transform: translateY(0);
	}
}

.fixed-menu__link:hover,
.fixed-menu__link:focus {
	color: var(--gray-30);
}

/* -------------------------------------------------------------------------- */

/*	Related Banner
/* -------------------------------------------------------------------------- */

.related-banner {
	position: relative;
	margin: 0;
	padding: 5rem 0;
	background-color: var(--base-color-4);
	overflow: hidden;
}
@media screen and ( min-width: 768px ) {
	.related-banner {
		padding: 7rem 0;
	}
}

.related-banner__header {
	position: relative;
	width: calc(100% - 3rem);
	margin: 0 auto;
	color: var(--main-color-1);
	font-size: 1.1em;
	font-weight: 900;
	text-align: center;
}

.related-banner__title-en {
	font-size: 2em;
}

.related-banner__title-ja {
	margin: 0.5em;
}

.related-banner__body {
	width: calc(100% - 3rem);
	max-width: 126rem;
	margin: 3rem auto 0;
}

.related-banner__item-wrapper {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	grid-gap: 1.5rem;
}
@media screen and ( min-width: 1024px ) {
	.related-banner__item-wrapper {
		grid-gap: 3rem;
	}
}

.related-banner__item {
	position: relative;
	display: flex;
	justify-content: center;
}

.related-banner__link {
	text-decoration: none;
}

.related-banner__img-wrapper {
	position: relative;
	aspect-ratio: 20 / 9;
	background-color: var(--white);
	overflow: hidden;
	border-radius: 1rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	max-width: 30rem;
}

.related-banner__img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.related-banner__link:hover,
.related-banner__link:focus {
	opacity: 0.6;
}

/* -------------------------------------------------------------------------- */

/*	Footer
/* -------------------------------------------------------------------------- */

.site-footer {
	margin: 0;
	padding: 0 0 6rem;
	position: relative;
	z-index: 2;
	background-color: var(--white);
}
@media screen and ( min-width: 1024px ) {
	.site-footer {
		padding-bottom: 0;
	}
}

/* Sitemap
/* ---------------------------------------- */

/* Sitemap Block */

.sitemap-wrapper {
	width: calc(100% - 3rem);
	max-width: 120rem;
	color: var(--black);
	margin: 0 auto;
	padding: 10rem 0;
}

.sitemap {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 8rem;
}
@media screen and ( min-width: 1024px ) {
	.sitemap {
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 6rem;
	}
}

/* Copyright
/* ---------------------------------------- */

.footer-copyright {
	font-size: 0.9em;
	font-weight: 700;
	line-height: 1.5;
	width: 100%;
	margin: 0;
	padding: 1em;
	display: flex;
	flex-direction: column;
	align-items: center;
}
@media screen and ( min-width: 768px ) {
	.footer-copyright {
		flex-direction: row;
		align-items: center;
		justify-content: center;
	}
}

.footer-copyright__content {
	position: relative;
}

.footer-copyright__link {
	margin-left: 1.5em;
}

/* Pagetop
/* ---------------------------------------- */

.page-top {
	opacity: 0;
    position: fixed;
    right: 1rem;
    bottom: 6.5rem;
    z-index: 102;
	display: flex;
	justify-content: center;
}
@media screen and ( min-width: 768px ) {
	.page-top {
		bottom: 7rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.page-top {
		right: 1.5rem;
		bottom: 1.5rem;
	}
}

.page-top__link {
	display: block;
	text-decoration: none;
	width: 4.4rem;
	aspect-ratio: 25 / 23;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background-color: var(--main-color-1);
	overflow: hidden;
	box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.3);
}
@media screen and ( min-width: 768px ) {
	.page-top__link {
		width: 5rem;
	}
}

.page-top__link::before {
	content: "\f1e0";
	color: var(--white);
	font-size: 1.8rem;
	line-height: 1;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 300;
}
@media screen and ( min-width: 768px ) {
	.page-top__link::before {
		font-size: 2rem;
	}
}

.appear .page-top.visible {
	animation-name: pageTopVisible;
	animation-delay: 0.5s;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes pageTopVisible {
    from {
        opacity: 0;
        transform: translateY(15rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.appear .page-top.hidden {
	animation-name: pageTopHidden;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
}
@keyframes pageTopHidden {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(15rem);
    }
}

.page-top__link:hover::before {
	animation-name: pagetopArrowAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	color: var(--white);
}
@keyframes pagetopArrowAnime {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(0, -1.5rem);
		opacity: 0;
	}
	66.66% {
		transform: translate(0, 1.5rem);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Request Menu
/* -------------------------------------------------------------------------- */

.request-btn-wrapper {
	opacity: 0;
	height: 10rem;
	position: fixed;
	top: 0;
	right: 1rem;
	z-index: 104;
	transition: all 0.3s ease;
	display: flex;
	align-items: center;
}
@media screen and ( min-width: 768px ) {
	.request-btn-wrapper {
		height: 12rem;
		right: 1rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.request-btn-wrapper {
		right: 3rem;
	}
}

.appear .request-btn-wrapper {
	opacity: 0;
	animation-name: requestMenuAppearAnime;
	animation-delay: 1s;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}
@keyframes requestMenuAppearAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.headerHeightMin .request-btn-wrapper {
	height: 8rem;
}
@media screen and ( min-width: 768px ) {
	.headerHeightMin .request-btn-wrapper {
		height: 10rem;
	}
}

.request-btn {
	opacity: 0;
	margin: 0;
	padding: 0;
	transition: all 0.3s ease;
}

.headerHeightMin .request-btn {
	opacity: 1;
}

.request-btn__link {
	pointer-events: none;
	text-decoration: none;
	height: 5rem;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 5rem 0 3rem;
	position: relative;
	border-radius: 10rem;
	background: linear-gradient(110deg, rgba(0, 168, 220,1) 0%, rgba(218,242,250,1) 50%, rgba(0, 168, 220,1) 100%);
	background-size: 300% 100%;
	overflow: hidden;
	transition: 0.5s;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	color: rgb(0, 168, 220);
}
@media screen and ( min-width: 768px ) {
	.request-btn__link {
		height: 6.4rem;
		padding: 0 6rem 0 4rem;
	}
}

.headerHeightMin .request-btn__link {
	pointer-events: auto;
}

.request-btn__icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 2.4rem;
	height: 2.4rem;
	background-color: transparent;
	color: var(--white);
	border: 0.1rem solid var(--white);
	border-radius: 50%;
	position: absolute;
	right: 1.5rem;
	z-index: 3;
	transition: 0.5s;
}
@media screen and ( min-width: 768px ) {
	.request-btn__icon {
		width: 3rem;
		height: 3rem;
		right: 2rem;
	}
}

.request-btn__icon::before {
	content: "";
	font-family: 'Material Symbols Outlined';
	display: inline-block;
	font-size: 1.2rem;
	line-height: 1;
}
@media screen and ( min-width: 768px ) {
	.request-btn__icon::before {
		font-size: 1.5rem;
	}
}

.request-btn__icon::before {
	content: "\e037";
	font-variation-settings: 'FILL' 1, 'wght' 300;
}

.request-btn__txt {
	color: var(--white);
	font-size: 0.9em;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
	padding: 0;
	position: relative;
	z-index: 3;
	transition: all 0.3s ease;
}

.request-btn__txt span {
	display: none;
}
@media screen and ( min-width: 768px ) {
	.request-btn__txt span {
		display: inline;
	}
}

.request-btn__link:hover,
.request-btn__link:focus {
	background-position: 100% 0;
}

.request-btn__link:hover .request-btn__txt,
.request-btn__link:focus .request-btn__txt {
	color: var(--black);
}

.request-btn__link:hover .request-btn__icon,
.request-btn__link:focus .request-btn__icon {
	background-color: var(--black);
	color: var(--white);
	border-color: transparent;
}

/* -------------------------------------------------------------------------- */

/*	Modal
/* -------------------------------------------------------------------------- */

/* Modal Menu
/* ---------------------------------------- */

.modal-btn-wrapper {
	opacity: 0;
	position: fixed;
	top: 2.5rem;
	right: 1rem;
	z-index: 999;
	transition: 0.3s;
	display: flex;
	align-items: center;
	height: 10rem;
}
@media screen and ( min-width: 768px ) {
	.modal-btn-wrapper {
		top: 3rem;
		height: 12rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.modal-btn-wrapper {
		top: 1.5rem;
		height: auto;
	}
}
@media screen and ( min-width: 1367px ) {
	.modal-btn-wrapper {
		right: 1.5rem;
	}
}

@media screen and ( max-width: 1023px ) {
	.appear .modal-btn-wrapper {
		animation-name: modalButtonAnime;
		animation-delay: 0.5s;
		animation-duration: 0.5s;
		animation-fill-mode: forwards;
	}
	@keyframes modalButtonAnime {
		from {
			opacity: 0;
		}
		to {
			opacity: 1;
		}
	}
	.headerHeightMin .modal-btn-wrapper {
		top: 0;
		height: 8rem;
	}
}

@media screen and ( min-width: 1024px ) {
	.appear .modal-btn-wrapper.visible {
		opacity: 0;
		animation-name: modalButtonVisible;
		animation-delay: 0.5s;
		animation-duration: 0.5s;
		animation-fill-mode: forwards;
	}
	@keyframes modalButtonVisible {
		0% {
			opacity: 0;
			transform: translateY(-15rem);
		}
		100% {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.appear .modal-btn-wrapper.hidden  {
		animation-name: modalButtonHidden;
		animation-duration: 0.5s;
		animation-fill-mode: forwards;
	}
	@keyframes modalButtonHidden {
		0% {
			opacity: 1;
			transform: translateY(0);
		}
		100% {
			opacity: 0;
			transform: translateY(-15rem);
		}
	}
}

.modal-btn {
	position: relative;
	background-color: transparent;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	width: 4.4rem;
	aspect-ratio: 25 / 23;
	overflow: hidden;
	transition: 0.3s;
}
@media screen and ( max-width: 1023px ) {
	.headerHeightMin .modal-btn {
		background-color: var(--main-color-1);
		box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.3);
	}
}
@media screen and ( min-width: 1024px ) {
	.modal-btn {
		width: 5rem;
		background-color: var(--main-color-1);
		box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.3);
	}
}

.modal-btn__icon {
	position: relative;
	width: 4.4rem;
	height: 4.4rem;
}

.modal-btn__icon span {
	display: inline-block;
	position: absolute;
	left: 1.3rem;
	height: 0.2rem;
	border-radius: 0.1rem;
	background: var(--white);
	width: 1.8rem;
	transition: 0.5s;
}
@media screen and ( max-width: 1023px ) {
	.modal-btn__icon span {
		background: var(--black);
	}
	.headerHeightMin .modal-btn__icon span {
		background: var(--white);
	}
}

.modal-btn__icon span:nth-of-type(1) {
	top: 1.4rem;
}

.modal-btn__icon span:nth-of-type(2) {
	top: 2.1rem;
}

.modal-btn__icon span:nth-of-type(3) {
	top: 2.8rem;
}

.active .modal-btn__icon span:nth-of-type(1) {
	top: 1.5rem;
	left: 1.4rem;
	transform: translateY(0.6rem) rotate(315deg);
	width: 1.7rem;
}

.active .modal-btn__icon span:nth-of-type(2) {
	opacity: 0;
}

.active .modal-btn__icon span:nth-of-type(3) {
	top: 2.7rem;
	left: 1.4rem;
	transform: translateY(-0.6rem) rotate(225deg);
	width: 1.7rem;
}

.modal-btn:hover .modal-btn__icon {
	animation-name: modalIconAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes modalIconAnime {
	0% {
		transform: translate(0, 0);
		opacity: 1;
	}
	33.33% {
		transform: translate(0, -1.5rem);
		opacity: 0;
	}
	66.66% {
		transform: translate(0, 1.5rem);
		opacity: 0;
	}
	100% {
		transform: translate(0, 0);
		opacity: 1;
	}
}

/* Modal Window
/* ---------------------------------------- */

/* Modal Container */

.modal {
	position: fixed;
	z-index: -1;
	top: -120%;
	left: 0;
	width: 100%;
	height: 100svh;
	background-color: rgba(255, 255, 255, 0.96);
	transition: 0.5s;
	overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
}

.modal::-webkit-scrollbar {
    display: none;
}

.modal-active {
	overflow-y: hidden;
}

.modal-active .modal {
	top: 0;
	z-index: 998;
}

.modal__inner {
	display: none;
	width: 100%;
	margin: 0;
	padding: 10rem 2rem;
}
@media screen and ( min-width: 768px ) {
	.modal__inner {
		padding: 15rem 10rem;
	}
}

/* Modal Block & Sitemap Block */

.modal__header,
.sitemap__header {
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
}
@media screen and ( min-width: 768px ) {
	.modal__header,
	.sitemap__header {
		justify-content: flex-start;
	}
}


.modal__header-inner,
.sitemap__header-inner {
	display: flex;
	flex-direction: column;
}

.modal-active .modal__inner {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 5rem;
}
@media screen and ( min-width: 1024px ) {
	.modal-active .modal__inner {
		grid-template-columns: 1fr 1fr;
	}
}

.modal-active .modal__header {
	animation-name: modalLogoAnime;
	animation-duration: 1s;
	animation-delay: 0.5s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes modalLogoAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.modal-ttl,
.sitemap-ttl {
	display: flex;
}

.modal-ttl__link,
.sitemap-ttl__link {
	color: var(--black);
	text-decoration: none;
}

.modal-ttl__typo,
.sitemap-ttl__typo {
	font-size: 2em;
	letter-spacing: 0.04em;
}

.modal-ttl__logo-wrapper,
.sitemap-ttl__logo-wrapper  {
	overflow: hidden;
}

.modal-ttl__logo,
.sitemap-ttl__logo {
	width: auto;
	max-height: 6rem;
	mix-blend-mode: multiply;
}
@media screen and ( min-width: 768px ) {
	.modal-ttl__logo,
	.sitemap-ttl__logo {
		max-height: 8rem;
	}
}

.modal-ttl__link,
.sitemap-ttl__link  {
	text-decoration: none;
	color: var(--black);
}

/* Company */

.modal__company-detail,
.sitemap__company-detail {
	margin-top: 5rem;
	padding: 0;
}

.modal-company-detail__lists,
.sitemap-company-detail__lists {
	margin: 0;
	padding: 0;
	list-style: none;
}

.modal-company-detail__list,
.sitemap-company-detail__list {
	margin: 0;
	padding: 0;
	color: var(--black);
}

.modal-company-detail__list + .modal-company-detail__list,
.sitemap-company-detail__list + .sitemap-company-detail__list {
	margin-top: 0.3em;
}

.modal-company-detail__list--name,
.sitemap-company-detail__list--name {
	font-size: 1.4em;
	font-weight: 900;
	padding-bottom: 0.5em;
}

.sitemap-company-detail__google-map-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
	white-space: nowrap;
}
@media screen and ( min-width: 768px ) {
	.sitemap-company-detail__google-map-link {
		font-size: 1.4rem;
	}
}

.sitemap-company-detail__google-map-link::before {
	content: "\e0c8";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.1em);
}

.sitemap-company-detail__google-map-link:hover,
.sitemap-company-detail__google-map-link:focus {
	color: var(--black);
}

.sitemap-company-detail__postcode {
	margin-right: 0.5em;
}

/* Body */

.modal__body,
.sitemap__body {
	margin: 0;
	padding: 0;
}

.modal-nav,
.sitemap-list {
	margin: 0;
	padding: 0;
	display: flex;
}

.modal-nav {
	opacity: 0;
}

.modal-active .modal-nav {
	animation-name: modalNavAnime;
	animation-duration: 0.5s;
	animation-delay: 1s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes modalNavAnime {
	0% {
		opacity: 0;
		transform: translateY(-5rem);
	}
	100% {
		opacity: 1;
		transform: translateY(0)
	}
}

.modal-nav__menu,
.sitemap-list__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 1.1em;
}

.modal-nav__menu .sub-menu,
.sitemap-list__menu .sub-menu {
	font-size: 0.9em;
	list-style: none;
	margin: 0 0 0 1em;
	padding-top: 0;
}

.modal-nav__menu .sub-menu .modal-nav__item::before,
.sitemap-list__menu .sub-menu .sitemap-list__item::before {
	color: var(--black);
	content: "└";
	margin-right: 0.5em;
}

.modal-nav__menu .sub-menu .sub-menu,
.sitemap-list__menu .sub-menu .sub-menu {
	display: none;
}

.modal-nav__item,
.sitemap-list__item {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.modal-nav__menu .sub-menu .modal-nav__item,
.sitemap-list__menu .sub-menu .sitemap-list__item {
	flex-direction: row;
	align-items: center;
}

.modal-nav__item + .modal-nav__item,
.sitemap-list__item + .sitemap-list__item {
	margin-top: 0.5em;
}

.sub-menu .modal-nav__item + .modal-nav__item,
.sub-menu .sitemap-list__item + .sitemap-list__item {
	margin-top: 0;
}

.modal-nav__link,
.sitemap-list__link {
	color: var(--black);
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.02em;
	position: relative;
	margin: 0;
	padding: 0.5rem 0;
	display: flex;
	justify-content: flex-start;
	align-items: center;
}

.modal-nav__link::after,
.sitemap-list__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background: var(--main-color-1);
	transition: transform 0.3s;
	transform: scale(0, 1);
	transform-origin: right top;
}

.modal-nav__link:hover::after,
.modal-nav__link:focus::after,
.sitemap-list__link:hover::after,
.sitemap-list__link:focus::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

/* Modal SNS & Sitemap SNS */

.modal-sns-list,
.sitemap-sns-list {
	margin: 3rem 0 0;
	padding: 0;
}

.modal-sns-list__menu,
.sitemap-sns-list__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	transition: 0.5s;
}

.modal-sns-list__item,
.sitemap-sns-list__item {
	margin: 0 1rem 1rem 0;
	padding: 0;
}

.modal-sns-list__item {
	transform: translateY(-5rem);
	opacity: 0;
}

.modal-active .modal-sns-list__item {
	animation-name: modalNavAnime;
	animation-duration: 0.5s;
	animation-fill-mode: forwards;
	opacity: 0;
}

.modal-sns-list__link,
.sitemap-sns-list__link {
	color: var(--main-color);
	text-indent: -9999px;
	overflow: hidden;
	white-space: nowrap;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 5rem;
	height: 5rem;
	text-decoration: none;
	position: relative;
	border-radius: 50%;
}

.modal-sns-list__link::after,
.sitemap-sns-list__link::after {
	text-indent: 0;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 0, 'wght' 300;
	content: "\e157";
	font-size: 2.5rem;
	font-weight: 400;
	text-decoration: none;
	position: absolute;
}

.modal-sns-list__link:hover,
.modal-sns-list__link:focus,
.sitemap-sns-list__link:hover,
.sitemap-sns-list__link:focus {
	background: var(--black);
	color: var(--white);
}

.modal-sns-list__link:hover::after,
.sitemap-sns-list__link:hover::after {
	animation-name: snsIconAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes snsIconAnime {
	0% {
		transform: translate(0, 0);
	}
	50% {
		transform: translate(0, -5rem);
	}
	50.001% {
		transform: translate(0, 5rem);
	}
	100% {
		transform: translate(0, 0);
	}
}

/* Twitter */
.modal-sns-list__link[href*="x.com"]::after,
.sitemap-sns-list__link[href*="x.com"]::after {
	font-family: "Font Awesome";
	content: "\e61b";
}
.modal-sns-list__link[href*="x.com"]:hover,
.sitemap-sns-list__link[href*="x.com"]:hover,
.modal-sns-list__link[href*="x.com"]:focus,
.sitemap-sns-list__link[href*="x.com"]:focus {
	background: #000000;
	color: var(--white);
}

/* Instagram */
.modal-sns-list__link[href*="instagram"]::after,
.sitemap-sns-list__link[href*="instagram"]::after {
	font-family: "Font Awesome";
	content: "\f16d";
}
.modal-sns-list__link[href*="instagram"]:hover,
.sitemap-sns-list__link[href*="instagram"]:hover,
.modal-sns-list__link[href*="instagram"]:focus,
.sitemap-sns-list__link[href*="instagram"]:focus {
	background: #CF2E92;
}

/* LINE */
.modal-sns-list__link[href*="line"]::after,
.modal-sns-list__link[href*="lin.ee"]::after,
.sitemap-sns-list__link[href*="line"]::after,
.sitemap-sns-list__link[href*="lin.ee"]::after {
	font-family: "Font Awesome";
	content: "\f3c0";
	font-size: 3rem;
}
.modal-sns-list__link[href*="line"]:hover,
.modal-sns-list__link[href*="lin.ee"]:hover,
.sitemap-sns-list__link[href*="line"]:hover,
.sitemap-sns-list__link[href*="lin.ee"]:hover,
.modal-sns-list__link[href*="line"]:focus,
.modal-sns-list__link[href*="lin.ee"]:focus,
.sitemap-sns-list__link[href*="line"]:focus,
.sitemap-sns-list__link[href*="lin.ee"]:focus {
	background: #00B900;
}

/* YouTube */
.modal-sns-list__link[href*="youtube"]::after,
.sitemap-sns-list__link[href*="youtube"]::after {
	font-family: "Font Awesome";
	content: "\f167";
}
.modal-sns-list__link[href*="youtube"]:hover,
.sitemap-sns-list__link[href*="youtube"]:hover,
.modal-sns-list__link[href*="youtube"]:focus,
.sitemap-sns-list__link[href*="youtube"]:focus {
	background: #DA1725;
}

/* Facebook */
.modal-sns-list__link[href*="facebook"]::after,
.sitemap-sns-list__link[href*="facebook"]::after {
	font-family: "Font Awesome";
	content: "\f09a";
}
.modal-sns-list__link[href*="facebook"]:hover,
.sitemap-sns-list__link[href*="facebook"]:hover,
.modal-sns-list__link[href*="facebook"]:focus,
.sitemap-sns-list__link[href*="facebook"]:focus {
	background: #1877f2;
}

/* -------------------------------------------------------------------------- */

/*	Hero
/* -------------------------------------------------------------------------- */

.front-hero {
	position: relative;
	z-index: 1;
	width: 100%;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
@media screen and ( min-width: 1025px ) {
	.front-hero {
		height: calc(100svh - 18rem);
		min-height: 60rem;
	}
}

.front-hero__img-container {
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

.front-hero__img-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
}

.front-hero__img {
	width: 100%;
    height: 100%;
	object-fit: cover;
	object-position: center bottom;
}

.front-hero-slider-container {
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

.front-hero-slider-wrapper {
	width: 100%;
	height: 100%;
	padding: 0;
	overflow: hidden;
	position: relative;
}

.front-hero-slider {
	width: 100%;
	height: 100%;
	overflow: hidden;
	position: relative;
}

.front-hero-slider .swiper-wrapper {
    width: 100%;
    height: 100%;
}

.front-hero-slider__img-wrapper {
	position: relative;
    width: 100%;
    height: 100%;
}

.front-hero-slider__img {
	width: 100%;
    height: 100%;
	object-fit: cover;
}

.swiper-slide-active .front-hero-slider__img-wrapper,
.swiper-slide-duplicate-active .front-hero-slider__img-wrapper,
.swiper-slide-prev .front-hero-slider__img-wrapper,
.swiper-slide-duplicate-prev .front-hero-slider__img-wrapper {
	animation-name: frontHeroSlideNext;
    animation-duration: 15s;
    animation-fill-mode: both;
	animation-timing-function: linear;
}
@keyframes frontHeroSlideNext {
    0% {
		transform: scale(1.3);
    }
	100% {
		transform: scale(1);
	}
}

/* Main Copy
/* ---------------------------------------- */

.marquee-wrapper {
	position: absolute;
	bottom: 0;
	z-index: 3;
	width: 100%;
	height: 6.2rem;
	display: flex;
}
@media screen and ( min-width: 768px ) {
	.marquee-wrapper {
		height: 12.5rem;
	}
}

.marquee {
	animation: marquee1 12s linear infinite;
	position: absolute;
	display: flex;
	white-space: nowrap;
	left: 100%;
	transform: translateX(0);
	padding-bottom: 0.5em;
}
@media screen and ( min-width: 768px ) {
	.marquee {
		animation: marquee1 15s linear infinite;
	}
}
@keyframes marquee1 {
	0% {
		left: 100%;
		transform: translateX(0);
	}
	100% {
		left: 0;
		transform: translateX(-100%);
	}
}

.marquee__item {
	display: block;
	color: var(--main-color-1);
	font-size: 6rem;
	font-weight: 900;
	letter-spacing: 0.02em;
	white-space: nowrap;
	text-align: center;
	text-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.2);
}
@media screen and ( min-width: 768px ) {
	.marquee__item {
		font-size: 12rem;
	}
}

/* Recruit Button
/* ---------------------------------------- */

.recruit-btn-wrapper {
	position: absolute;
	z-index: 4;
	right: 1rem;
	bottom: 6.5rem;
}
@media screen and ( min-width: 768px ) {
	.recruit-btn-wrapper {
		right: 3rem;
		bottom: 13rem;
	}
}

.recruit-btn {
	position: relative;
}

.recruit-btn__link {
	color: var(--sub-color-2);
	font-size: 0.9em;
	font-weight: 900;
	text-decoration: none;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	grid-gap: 0.2rem;
	width: 10rem;
	aspect-ratio: 25 / 23;
	background-color: var(--yellow);
	border-radius: 50%;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 768px ) {
	.recruit-btn__link {
		width: 15rem;
		font-size: 1em;
		grid-gap: 0.5rem;
	}
}

.recruit-btn__text-en {
	font-size: 1.4em;
}
@media screen and ( min-width: 768px ) {
	.recruit-btn__text-en {
		font-size: 1.6em;
	}
}

.recruit-btn__link:hover {
	background-color: var(--sub-color-2);
	color: var(--yellow);
}

/* hero scroll down
/* ---------------------------------------- */

.scroll-down-wrapper {
	width: 4rem;
	position: absolute;
	z-index: 5;
	left: 50%;
	display: flex;
	justify-content: center;
}
@media screen and ( min-width: 768px ) {
	.scroll-down-wrapper {
		width: 6rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.scroll-down-wrapper {
		width: 8rem;
		margin-left: -4rem;
		bottom: 13rem;
	}
}

.scroll-down {
	display: flex;
	align-items: center;
	position: relative;
	padding: 0 0 6rem;
	color: var(--main-color-1);
	font-size: 1em;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.05em;
	text-decoration: none;
	writing-mode: vertical-lr;
	transition: 0.3s;
	overflow: hidden;
	text-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.2);
}
@media screen and ( min-width: 768px ) {
	.scroll-down {
		padding-bottom: 7rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.scroll-down {
		padding-bottom: 8rem;
	}
}

.scroll-down::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: calc(50% - 0.1rem);
	width: 0.1rem;
	height: 5rem;
	background-color: var(--main-color-1);
}
@media screen and ( min-width: 768px ) {
	.scroll-down::after {
		height: 6rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.scroll-down::after {
		height: 7rem;
	}
}

.scroll-down:hover {
	opacity: 0.5;
}

.scroll-down::after {
	animation: scrollDown 2s cubic-bezier(1, 0, 0, 1) infinite;
}
@keyframes scrollDown {
	0% {
		opacity: 1;
		transform: scale(1, 0);
		transform-origin: 0 0;
	}
	30% {
		transform: scale(1, 1);
		transform-origin: 0 0;
	}
	30.1%, 70% {
		transform: scale(1, 1);
		transform-origin: 0 100%;
	}
	100% {
		opacity: 0;
		transform: scale(1, 0);
		transform-origin: 0 100%;
	}
}

/* Front Hero Bottom
/* ---------------------------------------- */

.front-hero-bottom {
	background-color: var(--main-color-1);
	padding: 5rem 0 10rem;
}
@media screen and ( min-width: 768px ) {
	.front-hero-bottom {
		padding: 5rem 0 15rem;
	}
}

.front-hero-bottom__img-wrapper {
	width: 100%;
	height: 15rem;
	overflow: hidden;
}
@media screen and ( min-width: 768px ) {
	.front-hero-bottom__img-wrapper {
		height: 40rem;
	}
}

.front-hero-bottom__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.front-hero-bottom__text-wrapper {
	max-width: 100rem;
	margin: 5rem auto 0;
	padding: 0 1.5rem;
	color: var(--white);
	text-align: center;
}

.front-hero-bottom__title {
	font-size: 3.5rem;
	font-weight: 900;
	line-height: 1.6;
	word-break: keep-all;
}
@media screen and ( min-width: 768px ) {
	.front-hero-bottom__title {
		font-size: 5rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.front-hero-bottom__title {
		font-size: 6rem;
	}
}

.front-hero-bottom__content {
	margin: 3rem 0 0;
	font-size: 1.2em;
	line-height: 2;
}
@media screen and ( min-width: 768px ) {
	.front-hero-bottom__content {
		font-size: 1.3em;
		margin-top: 5rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.front-hero-bottom__content {
		font-size: 1.4em;
	}
}

.front-hero-bottom__content span {
	display: block;
}

/* -------------------------------------------------------------------------- */

/*	Page Hero
/* -------------------------------------------------------------------------- */

.page-hero {
	position: relative;
	width: 100%;
	aspect-ratio: 3 / 2;
}
@media screen and ( min-width: 768px ) {
	.page-hero {
		height: 40rem;
		aspect-ratio: auto;
	}
}

.page-hero::before {
	content: "";
	position: absolute;
	z-index: 2;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
}

.page-hero__img-container {
	position: relative;
	z-index: 1;
	overflow: hidden;
}

.page-hero__img-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
}

.page-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Slider
/* ---------------------------------------- */

.page-hero-slider-container {
	width: 100%;
	height: 100%;
	position: relative;
	z-index: 1;
}

.page-hero-slider-wrapper {
	width: 100%;
	height: 100%;
	padding: 0;
	overflow: hidden;
	position: relative;
}

.page-hero-slider {
	width: 100%;
	height: 100%;
	overflow: hidden;
	position: relative;
}

.page-hero-slider .swiper-wrapper {
    width: 100%;
    height: 100%;
}

.page-hero-slider__img-wrapper {
	position: relative;
    width: 100%;
    height: 100%;
}

.page-hero-slider__img {
	width: 100%;
    height: 100%;
	object-fit: cover;
}

.swiper-slide-active .page-hero-slider__img-wrapper,
.swiper-slide-duplicate-active .page-hero-slider__img-wrapper,
.swiper-slide-prev .page-hero-slider__img-wrapper,
.swiper-slide-duplicate-prev .page-hero-slider__img-wrapper {
	animation-name: pageHeroSwiperSlideNext;
    animation-duration: 15s;
    animation-fill-mode: both;
	animation-timing-function: linear;
}
@keyframes pageHeroSwiperSlideNext {
    0% {
		transform: scale(1.3);
    }
	100% {
		transform: scale(1);
	}
}

/* Title
/* ---------------------------------------- */

.page-hero__txt-wrapper {
	position: absolute;
	z-index: 3;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 3rem;
}

.page-hero__header {
	position: relative;
}

.page-hero__ttl-ja {
	display: inline-block;
	color: var(--white);
	font-size: 2em;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.03em;
	transform: translateY(-0.04em);
	text-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.8);
}
@media screen and ( min-width: 768px ) {
	.page-hero__ttl-ja {
		font-size: 3em;
	}
}
@media screen and ( min-width: 1024px ) {
	.page-hero__ttl-ja {
		font-size: 3.5em;
	}
}

/* -------------------------------------------------------------------------- */

/* Front - フロントページ
/* -------------------------------------------------------------------------- */

.front {
	position: relative;
	overflow: hidden;
}

.front + .front {
	border-top: 0.1rem solid var(--white);
}

.front:nth-child(even) {
	background-color: var(--base-color-2);
}

.front__inner {
	padding: 9rem 0;
}
@media screen and ( min-width: 768px ) {
	.front__inner {
		padding: 12rem 0;
	}
}
@media screen and ( min-width: 1367px ) {
	.front__inner {
		padding: 15rem 0;
	}
}

.front__header {
	width: calc(100% - 3rem);
	margin: 0 auto;
	position: relative;
	color: var(--main-color-1);
	text-align: center;
	font-size: 1.5em;
}
@media screen and ( min-width: 1024px ) {
	.front__header {
		font-size: 1.8em;
	}
}

.front__title-en {
	font-size: 2.4em;
}

.front__title-ja {
	margin-top: 0.5em;
}

.front__body {
	margin: 6rem 0 0;
}
@media screen and ( min-width: 768px ) {
	.front__body {
		margin-top: 9rem;
	}
}

.front__inner-inner {
	display: grid;
	grid-template-columns: 1fr;
}
@media screen and ( min-width: 1367px ) {
	.front__inner-inner {
		grid-template-columns: 30rem 1fr;
		grid-gap: 3rem;
	}
}

/* News
/* ---------------------------------------- */

.front__inner--news {
	width: 100%;
	max-width: 120rem;
	margin: 0 auto;
}

.front__header--news {
	text-align: left;
}

@media screen and ( min-width: 1367px ) {
	.front__body--news {
		margin-top: 0;
	}
}

.sort-nav--news {
	margin-top: 0;
}

.news-column-wrapper {
	width: calc(100% - 3rem);
	max-width: 100rem;
	margin: 0 auto;
}
@media screen and ( min-width: 1367px ) {
.news-column-wrapper {
	width: 100%;
}
}

.news-column {
	position: relative;
	margin: 5rem auto 0;
	width: 100%;
}

.news-column__posts {
	list-style: none;
	margin: 0;
	padding: 0;
}

.news-column__posts--slug {
	display: none;
}

.news-column__posts {
	position: relative;
}

.news-column__post {
	margin: 0;
	padding: 0;
}

.news-column__post + .news-column__post{
	margin-top: 1rem;
}
@media screen and ( min-width: 768px ) {
	.news-column__post + .news-column__post{
		margin-top: 1.5rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.news-column__post + .news-column__post{
		margin-top: 2rem;
	}
}

.news-column__post-link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	margin: 0;
	padding: 2rem 1.5rem;
	position: relative;
	background-color: var(--white);
	border-radius: 0.5rem;
	border: 0.1rem solid transparent;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 768px ) {
	.news-column__post-link {
		flex-direction: row;
		align-items: center;
		text-decoration: none;
		padding: 3rem 2rem;
		position: relative;
	}
}
@media screen and ( min-width: 1024px ) {
	.news-column__post-link {
		padding: 3rem 2rem;
	}
}

.news-column__post-link:hover,
.news-column__post-link:focus {
	border-color: var(--main-color-1);
}

.news-column__ttl {
	font-size: 1.1em;
	margin: 0;
	display: inline;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}

.news-column__btn-wrapper {
	margin-top: 5rem;
}

.news-column__more-link {
	font-size: 1.2em;
	text-decoration: none;
}

.news-column__new {
	font-size: 1.1rem;
	color: var(--caution-color);
	font-weight: 900;
	margin-right: 0.5em;
	white-space: nowrap;
}

.news-column__status {
	display: flex;
	align-items: center;
	margin: 0 0 0.5em;
}
@media screen and ( min-width: 768px ) {
	.news-column__status {
		margin: 0 2em 0 0;
	}
}

.news-column__date {
	white-space: nowrap;
	font-size: 1em;
}

.news-column__cat {
	width: 11rem;
	height: 2.5rem;
	color: var(--white);
	font-size: 0.8em;
	font-weight: 900;
	letter-spacing: 0;
	background-color: var(--black);
	margin: 0 1.5rem 0 0;
	padding: 0 0.5rem;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	border-radius: 0.3rem;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media screen and ( min-width: 768px ) {
	.news-column__cat {
		width: 13rem;
		height: 3rem;
		margin-right: 2rem;
	}
}

.news-column__cat--shop-notice {
	background-color: var(--red);
}

.news-column__cat--regular-consultation-meeting {
	background-color: var(--yellow);
	color: var(--black);
}

.news-column__cat--csr-activities {
	background-color: var(--green);
}

.news-column__cat--open-hours {
	background-color: var(--blue);
}

/* ３つのこだわり
/* ---------------------------------------- */

.feature-card-wrapper {
	width: calc(100% - 3rem);
	max-width: 120rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 6rem;
}
@media screen and ( min-width: 768px ) {
	.feature-card-wrapper {
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 6rem 3rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.feature-card-wrapper {
		width: calc(100% - 12rem);
		grid-template-columns: repeat(3, 1fr);
		grid-gap: 6rem;
	}
}

.feature-card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.feature-card__inner {
	position: relative;
}

.feature-card__img-wrapper {
	position: relative;
	z-index: 1;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 768px ) {
	.feature-card__img-wrapper {
		aspect-ratio: 1 / 1;
	}
}

.feature-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.feature-card__number {
	position: relative;
	z-index: 2;
	margin-top: -3.5rem;
	color: var(--main-color-1);
	font-size: 6rem;
	font-weight: 900;
	text-align: center;
	line-height: 1;
	letter-spacing: 0.02em;
	text-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 1024px ) {
	.feature-card__number {
		margin-top: -4.5rem;
		font-size: 8rem;
	}
}

.feature-card__header {
	margin-top: 2rem;
	text-align: center;
}

.feature-card__title {
	font-size: 1.6em;
}
@media screen and ( min-width: 1024px ) {
	.feature-card__title {
		font-size: 2em;
	}
}

.feature-card__body {
	margin-top: 2rem;
}

.feature-card__content {
	line-height: 1.8;
}

.feature-card__btn-wrapper {
	display: flex;
	justify-content: center;
	margin-top: 2rem;
}

/* はじめての方へ
/* ---------------------------------------- */

.beginner-card-wrapper {
	width: calc(100% - 3rem);
	max-width: 120rem;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 6rem;
	margin: 0 auto;
}
@media screen and ( min-width: 1024px ) {
	.beginner-card-wrapper {
		width: calc(100% - 12rem);
		grid-template-columns: repeat(2, 1fr);
		grid-gap: 6rem;
	}
}

.beginner-card {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 3rem;
}
@media screen and ( min-width: 768px ) {
	.beginner-card {
		grid-template-columns: 33.33% 1fr;
		grid-gap: 3rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.beginner-card {
		grid-template-columns: 15rem 1fr;
		grid-gap: 3rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.beginner-card {
		grid-template-columns: 20rem 1fr;
	}
}

.beginner-card__img-wrapper {
	position: relative;
	z-index: 1;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 768px ) {
	.beginner-card__img-wrapper {
		aspect-ratio: 1 / 1;
	}
}

.beginner-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.beginner-card__txt-wrapper {
	position: relative;
}

.beginner-card__header {
	position: relative;
}

.beginner-card__title {
	font-size: 1.6em;
	text-align: center;
}
@media screen and ( min-width: 768px ) {
	.beginner-card__title {
		text-align: left;
	}
}

.beginner-card__body {
	margin-top: 1.5rem;
}
@media screen and ( min-width: 1024px ) {
	.beginner-card__body {
		display: none;
	}
}

.beginner-card__content {
	line-height: 1.8;
}

.beginner-card__btn-wrapper {
	display: flex;
	justify-content: center;
	margin-top: 2rem;
}
@media screen and ( min-width: 768px ) {
	.beginner-card__btn-wrapper {
		justify-content: flex-start;
		margin-top: 1.5rem;
	}
}

/* 店舗案内
/* ---------------------------------------- */

.shop-card-wrapper {
	width: calc(100% - 3rem);
	max-width: 100rem;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 6rem;
}

.shop-card {
	display: grid;
	grid-template-columns: 1fr;
	margin: 0;
	background-color: var(--white);
	border-radius: 0.5rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	overflow: hidden;
}
@media screen and ( min-width: 1024px ) {
	.shop-card {
		grid-template-columns: repeat(2, 1fr);
	}
}

.shop-card--single {
	display: flex;
	flex-direction: column-reverse;
}

@media screen and ( max-width: 767px ) {
	.front .shop-card:not(:first-of-type) {
		display: none;
	}
}

.shop-card__slider-wrapper,
.shop-card__slider {
	height: 100%;
	background-color: var(--gray-20);
}

.shop-card__img-wrapper {
	height: 100%;
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
@media screen and ( min-width: 1024px ) {
	.shop-card__img-wrapper {
		height: 100%;
		aspect-ratio: auto;
	}
}

.shop-card__img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.shop-card__detail-wrapper {
	padding: 3rem 2rem;
}
@media screen and ( min-width: 1024px ) {
	.shop-card__detail-wrapper {
		padding: 3rem 4rem;
	}
}

.shop-card__header {
	position: relative;
}

.shop-card__title {
	font-size: 1.6em;
}

.shop-card__body {
	margin: 1em 0 0;
}

.shop-card__body > * {
	font-size: 1em;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

.shop-card__post-code {
	line-height: 1.5;
}

.shop-card__google-map-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
	white-space: nowrap;
}
@media screen and ( min-width: 768px ) {
	.shop-card__google-map-link {
		font-size: 1.4rem;
	}
}

.shop-card__google-map-link::before {
	content: "\e0c8";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.1em);
}

.shop-card__google-map-link span {
	display: inline-block;
}

.shop-card__google-map-link:hover,
.shop-card__google-map-link:focus {
	color: var(--black);
}

.shop-card__tel-wrapper {
	margin: 0.5em 0 0;
	display: flex;
	align-items: center;
}

.shop-card__tel {
	font-size: 1.5em;
	font-weight: 900;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
}

.shop-card__tel::before {
	content: "\e0b0";
	display: inline-block;
	font-size: 0.8em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}

.shop-card__tel-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
}
@media screen and ( min-width: 768px ) {
	.shop-card__tel-link {
		display: none;
	}
}

.shop-card__tel-link::before {
	content: "\e61c";
	display: inline-block;
	font-size: 1.3em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.2em);
}

.shop-card__tel-link:hover,
.shop-card__tel-link:focus {
	color: var(--black);
}

.shop-card__button-wrapper {
	display: flex;
	flex-direction: column;
	grid-gap: 0.5rem;
	margin: 3rem 0 0;
}

.shop-card__btn {
	position: relative;
}

.shop-card__btn-link {
	display: inline-block;
	color: var(--white);
	font-size: 1em;
	font-weight: 900;
	line-height: 1;
	text-decoration: none;
	background-color: var(--main-color-1);
	padding: 0.7em 2em 0.8em;
	border-radius: 10rem;
}

.shop-card__btn-link:hover {
	background-color: var(--gray-80);
}

.shop-card__note {
	margin-top: 1rem;
	font-size: 0.85em;
	background-color: var(--gray-5);
	padding: 1rem 1.5rem;
	border-radius: 0.5rem;
}

/* よくあるご質問
/* ---------------------------------------- */

.front__inner--faq {
	max-width: 120rem;
	margin: 0 auto;
}

.front__header--faq {
	text-align: left;

}

@media screen and ( min-width: 1367px ) {
	.front__body--faq {
		margin-top: 0;
	}
}

.faq-list-wrapper {
	width: calc(100% - 3rem);
	max-width: 100rem;
	position: relative;
	margin: 0 auto;
}

.faq-list {
	margin: 0;
	padding: 0 0 0 2rem;
	transition: 0.3s ease;
	background-color: var(--white);
	border-radius: 0.5rem;
	border: 0.1rem solid transparent;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}
@media screen and ( min-width: 768px ) {
	.faq-list {
		padding: 0 0 0 3rem;
	}
}

.faq-list + .faq-list {
	margin-top: 1rem;
}
@media screen and ( min-width: 768px ) {
	.faq-list + .faq-list {
		margin-top: 1.5rem;
	}
}
@media screen and ( min-width: 1367px ) {
	.faq-list + .faq-list {
		margin-top: 2rem;
	}
}

.faq-list:hover,
.faq-list:focus {
	border-color: var(--main-color-1);
}

.faq-list__question {
	margin: 0;
	padding: 2rem 5rem 2rem 3rem;
	position: relative;
	cursor: pointer;
	color: var(--black);
	font-size: 1.1em;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: ease;
}
@media screen and ( min-width: 768px ) {
	.faq-list__question {
		padding: 3rem 5.5rem 3rem 3.5rem;
	}
}

.faq-list__mark-q {
	color: var(--main-color-1);
	font-size: 2.3rem;
	font-weight: 900;
	line-height: 1;
	position: absolute;
	left: 0;
}

.faq-list__question::before,
.faq-list__question::after {
	position: absolute;
	content: "";
	width: 1.5rem;
	height: 0.2rem;
	background: var(--main-color-1);
	transition-property: all;
	transition-duration: 0.5s;
	transition-timing-function: ease;
}

.faq-list__question::before {
	top: 49%;
	right: 2rem;
	transform: rotate(0deg);
}
@media screen and ( min-width: 768px ) {
	.faq-list__question::before {
		right: 2.5rem;
	}
}

.faq-list__question::after {
	top: 49%;
	right: 2rem;
	transform: rotate(90deg);
}
@media screen and ( min-width: 768px ) {
	.faq-list__question::after {
		right: 2.5rem;
	}
}

.faq-list__question.close::before {
	transform: rotate(135deg);
}

.faq-list__question.close::after {
	transform: rotate(225deg);
}

.faq-list__answer-wrapper {
	display: none;
	margin: 0;
	padding: 0 4rem 2rem 3rem;
	position: relative;
}
@media screen and ( min-width: 768px ) {
	.faq-list__answer-wrapper {
		padding: 0 5rem 3rem 3.5rem;
	}
}

.faq-list__mark-a {
	color: var(--main-color-1);
	font-size: 2.3rem;
	font-weight: 900;
	line-height: 1.3;
	position: absolute;
	left: 0;
}

.faq-list__answer {
	font-size: 1em;
	line-height: 2;
	margin-bottom: 0;
}

/* お客様の声
/* ---------------------------------------- */

.reviews-slider-wrapper {
	width: calc(100% - 3rem);
	max-width: 70rem;
	margin: 0 auto;
}

.reviews-slider .swiper-slide {
	height: auto;
}

.reviews-card {
	background-color: var(--white);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	padding: 4rem 3rem;
	border-radius: 0.5rem;
	height: 100%;

}
@media screen and ( min-width: 1024px ) {
	.reviews-card {
		padding: 5rem;
	}
}

.reviews-card__header {
	position: relative;
}

.reviews-card__ttl {
	font-size: 1.3em;
}

.reviews-card__status {
	margin: 0.5rem 0 0;
	font-size: 1em;
}

.reviews-card__status span + span::before {
	content: "／";
}

.reviews-card__body {
	margin: 3rem 0 0;
}

.reviews-card__content {
	line-height: 1.8;
}

.swiper-arrow-wrapper--reviews {
	margin: 5rem 0 0;
}


/* 簡単ネット予約
/* ---------------------------------------- */

.reservation-hero {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
}

.reservation-hero__img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1 / 1;
}
@media screen and ( min-width: 768px ) {
	.reservation-hero__img-wrapper {
		aspect-ratio: 16 / 9;
	}
}

.reservation-hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front__inner--reservation {
	background-color: var(--base-color-3);
}

.front__header--reservation {
	color: var(--white);
}

.front__content--reservation {
	width: calc(100% - 3rem);
	max-width: 90rem;
	margin: 0 auto;
	color: var(--white);
	font-size: 1.1em;
	line-height: 1.7;
}
@media screen and ( min-width: 768px ) {
	.front__content--reservation {
		font-size: 1.2em;
		line-height: 2.2;
		text-align: center;
	}
}
@media screen and ( min-width: 1024px ) {
	.front__content--reservation {
		font-size: 1.3em;
	}
}

/* 採用情報
/* ---------------------------------------- */

.recruit-slider {
	width: 100%;
	max-width: 120rem;
	margin: 0 auto;
	overflow: hidden;
}

.recruit-slider__img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}

.recruit-slider__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: 0.8s;
}

.swiper-slide-active .recruit-slider__img,
.swiper-slide-duplicate-active .recruit-slider__img {
	transform: scale(1.3);
}

.front__content--recruit {
	width: calc(100% - 3rem);
	max-width: 90rem;
	margin: 0 auto;
	font-size: 1.1em;
	font-weight: 900;
	line-height: 1.7;
}
@media screen and ( min-width: 768px ) {
	.front__content--recruit {
		font-size: 1.2em;
		line-height: 2.2;
		text-align: center;
	}
}
@media screen and ( min-width: 1024px ) {
	.front__content--recruit {
		font-size: 1.3em;
	}
}

/* CSR活動
/* ---------------------------------------- */

.csr-slider1,
.csr-slider2 {
	width: 100%;
	margin: 0;
	overflow: hidden;
}

.csr-slider1 + .csr-slider2 {
	margin-top: 1rem;
}
@media screen and ( min-width: 768px ) {
	.csr-slider1 + .csr-slider2 {
		margin-top: 1.5rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.csr-slider1 + .csr-slider2 {
		margin-top: 2rem;
	}
}

.csr-slider__img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 2;
	border-radius: 0.5rem;
}

.csr-slider__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front__content--csr {
	width: calc(100% - 3rem);
	max-width: 100rem;
	margin: 0 auto;
	font-size: 1.1em;
	font-weight: 900;
	line-height: 1.7;
}
@media screen and ( min-width: 768px ) {
	.front__content--csr {
		font-size: 1.2em;
		line-height: 2.2;
		text-align: center;
	}
}
@media screen and ( min-width: 1024px ) {
	.front__content--csr {
		font-size: 1.2em;
	}
}

.csr-slider1 .swiper-wrapper,
.csr-slider2 .swiper-wrapper {
	transition-timing-function: linear;
}

/* 会社案内
/* ---------------------------------------- */

.page-corporate {
	position: relative;
}

.page-corporate + .page-corporate {
	margin-top: 10rem;
}

.page-corporate__inner {
	width: calc(100% - 3rem);
	max-width: 80rem;
	margin: 0 auto;
}

.page-corporate__inner.--greeting {
	max-width: 120rem;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 3rem;
}
@media screen and ( min-width: 768px ) {
	.page-corporate__inner.--greeting {
		grid-template-columns: 40% 1fr;
		grid-gap: 6rem;
	}
}

.page-corporate__text-container {
	position: relative;
}

.page-corporate__header {
	position: relative;
	color: var(--main-color-1);
	font-size: 1.4em;
	text-align: center;
}

.page-corporate__header.--greeting {
	text-align: left;
}

.page-corporate__title-en {
	font-size: 2em;
	font-weight: 900;
}

.page-corporate__title-ja {
	margin-top: 0.5em;
}

.page-corporate__body {
	position: relative;
	margin: 5rem 0 0;
}

.page-corporate__content {
	position: relative;
	margin: 5rem 0 0;
}

/* 企業理念ロゴマーク */

.corporate-identity-logo {
	position: relative;
}

.corporate-identity-logo__img-wrapper {
	display: flex;
	justify-content: center;
}

.corporate-identity-logo__img {
	mix-blend-mode: multiply;
	width: auto;
	height: 10rem;
}
@media screen and ( min-width: 768px ) {
	.corporate-identity-logo__img {
		height: 15rem;
	}
}

/* シンボルマーク */

.symbol-mark {
	position: relative;
}

.symbol-mark__img-wrapper {
	display: flex;
	justify-content: center;
}

.symbol-mark__img {
	mix-blend-mode: multiply;
	width: auto;
	height: 15rem;
}
@media screen and ( min-width: 768px ) {
	.symbol-mark__img {
		height: 20rem;
	}
}

/* 署名画像 */

.autograph {
	margin: 5rem 0 0;
}

.autograph__img-wrapper {
	display: flex;
	justify-content: flex-end;
}

.autograph__img {
	mix-blend-mode: multiply;
	width: auto;
	height: 5rem;
}
@media screen and ( min-width: 768px ) {
	.autograph__img {
		width: auto;
		height: 8rem;
	}
}

/* プロフィール画像 */

.profile {
	position: relative;
}

.profile__img-wrapper {
	position: relative;
	overflow: hidden;
	border-radius: 0.5rem;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}

.profile__img {
	width: 100%;
    height: 100%;
	object-fit: cover;
}

/* 会社概要 */

.corporate-overview-item-wrapper {
	position: relative;
}

.corporate-overview-item {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 1rem;
	align-items: center;
	margin: 0;
	padding: 2rem 1rem;
	border-bottom: 0.1rem solid var(--gray-20);
	line-height: 1.6;
}
@media screen and ( min-width: 768px ) {
	.corporate-overview-item {
		grid-template-columns: 20rem 1fr;
		grid-gap: 1.5rem;
		padding: 3rem 1.5rem;
	}
}

.corporate-overview-item__name {
	color: var(--main-color-1);
	font-weight: 900;
}

.corporate-overview-item__content {
	font-size: 1.1em;
}

/* 会社沿革 */

.history-timeline {
	width: 100%;
	margin: 0;
	padding: 0;
}

.history-timeline__list {
	width: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.history-timeline__item {
	position: relative;
	margin: 0;
	padding: 0 0 2rem;
}

.history-timeline__inner {
	margin: 0 0 0 2em;
}
@media screen and ( min-width: 1024px ) {
	.history-timeline__inner {
		margin-left: 3em;
	}
}

.history-timeline__header {
	position: relative;
	line-height: 0.7;
}
@media screen and ( min-width: 1024px ) {
	.history-timeline__header {
		line-height: 0.5;
	}
}

.history-timeline__date {
	color: var(--main-color-1);
	font-size: 1.1em;
	font-weight: 700;
	line-height: 0.7;
	margin-left: 0.5em;
}

.history-timeline__content {
    color: var(--black);
	font-size: 1em;
	font-weight: 700;
	line-height: 1.5;
	margin: 1.5em 0 0 1em;
}

.history-timeline__border-line {
	position: absolute;
	left: 0.5rem;
	top: 0;
	width: 0.2rem;
	height: 0;
	background-color: var(--main-color-1);
	transition: all 0.2s;
}

.history-timeline__item:last-of-type .history-timeline__border-line {
	display: none;
}

.history-timeline__item::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 1.2rem;
	height: 1.2rem;
	background-color: var(--main-color-1);
	border-radius: 50%;
}

/* -------------------------------------------------------------------------- */

/* Under Layer Common - 下層ページ共通
/* -------------------------------------------------------------------------- */

/* Container */

.page-main,
.single-main,
.archive-main {
	position: relative;
	margin: 0;
	padding: 0 0 15rem;
	background-color: var(--base-color-1);
}

.page-content,
.single-content,
.archive-content {
	position: relative;
	margin: 3rem 0 0;
}
@media screen and ( min-width: 768px ) {
	.page-content,
	.single-content,
	.archive-content {
		margin-top: 4rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.page-content,
	.single-content,
	.archive-content {
		margin-top: 5rem;
	}
}

.sort-nav + .archive-content {
	margin-top: 0;
}

.page-content__inner,
.single-content__inner,
.archive-content__inner {
	width: calc(100% - 3rem);
	max-width: 120rem;
	margin: 0 auto;
	position: relative;
}

.page-content__content-wrapper,
.single-content__content-wrapper,
.archive-content__content-wrapper {
	width: 100%;
	max-width: 80rem;
	background-color: var(--white);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	border-radius: 0.5rem;
	margin: 0 auto;
	padding: 3rem 2rem;
}
@media screen and ( min-width: 768px ) {
	.page-content__content-wrapper,
	.single-content__content-wrapper,
	.archive-content__content-wrapper {
		padding: 6rem;
	}
}

.page-content__content-wrapper.--toc,
.single-content__content-wrapper.--toc,
.archive-content__content-wrapper.--toc {
	max-width: 130rem;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 7.5rem;
}
@media screen and ( min-width: 1366px ) {
	.page-content__content-wrapper.--toc,
	.single-content__content-wrapper.--toc,
	.archive-content__content-wrapper.--toc {
		grid-template-columns: 35rem 1fr;
		grid-gap: 5rem;
	}
}

.page-content__content-wrapper.--shop {
	background-color: var(--base-color-5);
	max-width: 100rem;
	margin-bottom: 6rem;
	border: 0.1rem solid var(--sub-color-1);
	font-size: 0.9em;
}

.page-content__header,
.single-content__header {
	margin: 0;
}

.page-content__ttl,
.single-content__ttl {
	font-size: 1.8em;
	word-break: keep-all;
}

.single-content__status {
	display: flex;
	align-items: center;
	margin: 0 0 1em;
}

/* カテゴリー */

.single-content__cat {
	width: 11em;
	color: var(--white);
	font-size: 0.8em;
	font-weight: 900;
	line-height: 1;
	text-align: center;
	letter-spacing: 0;
	background-color: var(--black);
	margin: 0 1rem 0 0;
	padding: 0.6em;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
	border-radius: 0.3rem;
}
@media screen and ( min-width: 768px ) {
	.single-content__cat {
		margin-right: 1.5rem;
	}
}

.single-content__cat--shop-notice {
	background-color: var(--red);
}

.single-content__cat--regular-consultation-meeting {
	background-color: var(--yellow);
	color: var(--black);
}

.single-content__cat--csr-activities {
	background-color: var(--green);
}

.single-content__cat--open-hours {
	background-color: var(--blue);
}

.single-content__date {
	color: var(--gray-80);
	font-size: 1em;
}

/* タグ */

.single-content__tag-wrapper {
	display: flex;
	flex-wrap: wrap;
	grid-gap: 0.7rem;
	margin: 2rem 0 0;
}
@media screen and ( min-width: 768px ) {
	.single-content__tag-wrapper {
		grid-gap: 1rem;
	}
}

.single-content__tag {
	color: var(--main-color-1);
	font-size: 0.9em;
	font-weight: 900;
	line-height: 2;
	text-align: center;
	letter-spacing: 0;
	border: 0.1rem solid var(--main-color-1);
	margin: 0;
	padding: 0 1em;
	white-space: nowrap;
	border-radius: 5rem;
}
@media screen and ( min-width: 768px ) {
	.single-content__tag {
		font-size: 0.95em;
	}
}

.single-content__tag span {
	display: inline-block;
	transform: translateY(-0.05em);
}

.page-content__body,
.single-content__body,
.archive-content__body {
	width: 100%;
	margin: 0;
}

.page-content__header + .page-content__body,
.single-content__header + .single-content__body,
.archive-content__header + .archive-content__body {
	margin-top: 3rem;
}
@media screen and ( min-width: 768px ) {
	.page-content__header + .page-content__body,
	.single-content__header + .single-content__body,
	.archive-content__header + .archive-content__body {
		margin-top: 4rem;
	}
}
@media screen and ( min-width: 768px ) {
	.page-content__header + .page-content__body,
	.single-content__header + .single-content__body,
	.archive-content__header + .archive-content__body {
		margin-top: 5rem;
	}
}

.front__button-wrapper,
.page-main__button-wrapper,
.single-main__button-wrapper,
.archive-main__button-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin: 5rem auto 0;
	grid-gap: 2rem;
}
@media screen and ( min-width: 768px ) {
	.front__button-wrapper,
	.page-main__button-wrapper,
	.single-main__button-wrapper,
	.archive-main__button-wrapper {
		flex-direction: row;
		margin-top: 7.5rem;
		grid-gap: 3rem;
	}
}
@media screen and ( min-width: 1024px ) {
	.front__button-wrapper,
	.page-main__button-wrapper,
	.single-main__button-wrapper,
	.archive-main__button-wrapper {
		margin-top: 10rem;
	}
}

@media screen and ( min-width: 767px ) {
	.front__button-wrapper.--shop {
		display: none;
	}
}

/* -------------------------------------------------------------------------- */

/* Page - 固定ぺージ
/* -------------------------------------------------------------------------- */

/* 定期相談会
/* ---------------------------------------- */

.regular-consultation {
	position: relative;
}

.regular-consultation__inner {
	width: calc(100% - 3rem);
	max-width: 100rem;
	margin: 0 auto;
}

.regular-consultation__search-result-container {
	margin: 10rem 0 0;
}

.regular-consultation__search-result-num-wrapper {
	margin: 0;
	display: flex;
	justify-content: center;
}

.regular-consultation__search-result-num {
	color: var(--black);
	font-size: 1.1em;
	font-weight: 900;
	line-height: 1;
	letter-spacing: 0.01em;
}
@media screen and ( min-width: 768px ) {
	.regular-consultation__search-result-num {
		font-size: 1.3em;
	}
}

.js_target {
	display: none;
}

.js_target.js_selected {
	display: block;
}

.js_notarget{
	display: none;
}

.js_notarget.visible {
	display: block;
}

.regular-consultation__select-navigation-container label {
	display: inline;
}

.regular-consultation__select-navigation-container input {
	display: none;
}

.regular-consultation__select-navigation-checkbox label .el_checkbox {
	position: relative;
	top: 0.3rem;
	width: 1.4rem;
	height: 1.4rem;
	display: inline-block;
	margin-right: 0.5rem;
	border: 0.1rem solid var(--black);
	border-radius: 50%;
}

.regular-consultation__select-navigation-checkbox label .el_checkbox:after {
	content: "";
	position: absolute;
	top: 0.2rem;
	left: 0.2rem;
	bottom: 0.2rem;
	right: 0.2rem;
	border-radius: 50%;
}

.regular-consultation__select-navigation-checkbox input[type=checkbox]:checked + label .el_checkbox:after {
	background-color: var(--main-color-1);
}

.regular-consultation__select-navigation-container {
	letter-spacing: 0.01em;
}

.regular-consultation__select-navigation-wrapper {
	position: relative;
}

.regular-consultation__select-navigation {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 3rem;
}

.regular-consultation__select-navigation-checkbox label {
	cursor: pointer;
}

.regular-consultation__select-navigation-ttl {
	width: 100%;
	color: var(--main-color-1);
	font-size: 1.3em;
	letter-spacing: 0.05em;
	margin-bottom: 2rem;
}
@media screen and ( min-width: 768px ) {
	.regular-consultation__select-navigation-ttl {
		width: 15rem;
	}
}

.regular-consultation__select-navigation-content {
	width: 100%;
}
@media screen and ( min-width: 768px ) {
	.regular-consultation__select-navigation-content {
		width: calc(100% - 15rem);
	}
}

.regular-consultation__search-result-item-wrapper {
	width: 100%;
	margin: 3rem 0 0;
}

.bl_searchResultBlock_item {
	position: relative;
	border-radius: 0.5rem;
	background-color: var(--white);
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
	overflow: hidden;
}

.bl_searchResultBlock_item + .bl_searchResultBlock_item {
	margin-top: 3rem;
}
@media screen and ( min-width: 768px ) {
	.bl_searchResultBlock_item + .bl_searchResultBlock_item {
		margin-top: 4rem;
	}
}

.bl_searchResultBlock_item__inner {
	display: grid;
	grid-template-columns: 1fr;
	line-height: 1.8;
}
@media screen and ( min-width: 768px ) {
	.bl_searchResultBlock_item__inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

.bl_searchResultBlock_item.js_notarget {
	padding: 3rem;
}

.regular-consultation__select-navigation-checkbox {
	display: inline-block;
	margin-right: 25px;
	display: inline-block;
	margin-bottom: 20px;
}

.regular-consultation__select-navigation-checkbox:last-child {
	margin-right: 0;
}

.regular-consultation__select-navigation-release {
	text-align: center;
	color: var(--white);
	background-color: var(--main-color-1);
	padding: 1.5rem 0;
	border-radius: 0.5rem;
	transition: 0.3s;
}

.regular-consultation__select-navigation-release:hover,
.regular-consultation__select-navigation-release:focus {
	opacity: 0.6;
}

.js_release {
	cursor: pointer;
}

.regular-consultation__area-wrapper {
	position: relative;
}

.regular-consultation__area {
	display: inline-block;
	background-color: var(--main-color-1);
	color: var(--white);
	font-size: 1.1em;
	line-height: 1;
	padding: 0.4em 0.5em;
	border-radius: 0.3rem;
}

.regular-consultation__area span {
	display: inline-block;
	transform: translateY(-0.02em);
}

.regular-consultation__date-wrapper {
	margin-top: 1.5em;
	line-height: 1.5;
	padding: 0 1em;
	border-left: 0.5rem solid var(--main-color-1);
}

.regular-consultation__date {
	font-size: 1.7em;
}

.regular-consultation__time {
	font-size: 1.7em;
}

.regular-consultation__content {
	position: relative;
	padding: 3rem 2rem;
}
@media screen and ( min-width: 768px ) {
	.regular-consultation__content {
		padding: 4rem;
	}
}

.regular-consultation__venue {
	margin: 2rem 0 0;
	position: relative;
	font-size: 1em;
	letter-spacing: -0.01em;
}

.regular-consultation__venue-name {
	font-size: 1.4em;
	font-weight: 900;
	margin-bottom: 0.3em;
}

.regular-consultation__venue-tel {
	font-size: 1.4em;
	font-weight: 900;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
}

.regular-consultation__venue-tel::before {
	content: "\e0b0";
	display: inline-block;
	font-size: 0.8em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}

.regular-consultation__venue-tel-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
}
@media screen and ( min-width: 768px ) {
	.regular-consultation__venue-tel-link {
		display: none;
	}
}

.regular-consultation__venue-tel-link::before {
	content: "\e61c";
	display: inline-block;
	font-size: 1.3em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.2em);
}

.regular-consultation__venue-tel-link:hover,
.regular-consultation__venue-tel-link:focus {
	color: var(--black);
}

.regular-consultation__note {
	margin-top: 2rem;
	font-size: 0.9em;
	background-color: var(--gray-5);
	padding: 1rem 1.5rem;
	border-radius: 0.5rem;
}

.regular-consultation__map-wrapper {
	position: relative;
	background-color: #ccffcc;
}
@media screen and ( max-width: 767px ) {
	.regular-consultation__map-wrapper {
		aspect-ratio: 4 / 3;
	}
}

.regular-consultation__map-wrapper iframe {
	width: 100% !important;
	height: 100% !important;
}

/* お客様の声
/* ---------------------------------------- */

.reviews-card-wrapper {
	width: calc(100% - 3rem);
	max-width: 80rem;
	margin: 0 auto;
}

.reviews-card + .reviews-card {
	margin-top: 4rem;
} 

/* 簡単ネット予約
/* ---------------------------------------- */

.form-area {
	position: relative;
}

.form-area__header {
	position: relative;
}

.form-area__ttl {
	position: relative;
	word-break: keep-all;
}

.form-area__ttl-bottom {
	position: relative;

}

.form-area__body {
	position: relative;
	margin: 5rem 0 0;
}

.contact-list-wrapper {
	margin: 0;
	padding: 0;
}

.contact-list {
	border-bottom: 0.1rem solid var(--gray-20);
	padding: 4rem 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 3rem;
	align-items: center;
}
@media screen and ( min-width: 768px ) {
	.contact-list {
		grid-template-columns: 18rem 1fr;
	}
}

.contact-list-wrapper > .contact-list:first-of-type {
	border-top: 0.1rem solid var(--gray-20);
}

.contact-list__label {
	height: 100%;
}

.contact-list__label label {
	color: var(--main-color-1);
	font-weight: 900;
}

.contact-list__required span {
	display: inline-block;
	color: var(--white);
	font-size: 1.2rem;
	font-weight: 900;
	line-height: 1;
	padding: 0.3em 0.5rem 0.4em;
	background-color: var(--main-color-1);
	border-radius: 0.3rem;
}

.contact-list__label label {
	color: var(--main-color-1);
	font-weight: 900;
	letter-spacing: -0.01em;
}

.contact-list__form-wrapper {
	position: relative;
}

.contact-list__form-wrapper > * + * {
	margin-top: 3rem;
}

.contact-list__form {
	position: relative;
}

.contact-list__caution {
	margin: 0 0 3rem;
	color: var(--caution-color);
	font-size: 0.95em;
	line-height: 1.5;
}

@media screen and ( max-width: 499px ) {
	.codedropz-upload-inner > *:not(.codedropz-btn-wrap) {
		display: none;
	}
}

.wpcf7-list-item {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
}

.checkbox + * {
	margin-top: 1.5rem;
}

.wpcf7 form .wpcf7-response-output {
	background-color: #ffffcc;
	color: var(--black);
	padding: 2rem;
	border-color: var(--gray-20);
	border-width: 0.1rem;
	border-radius: 0.5rem;
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: #ccffcc;
}



.wpcf7-text:read-only:not(.flatpickr-input) {
	background-color: var(--gray-10);
}

/* Note */

.contact-list-note {
	margin: 1.5em 0 0;
	padding: 1.5em;
	background-color: var(--base-color-4);
	border-radius: 0.5rem;
}

.contact-list-note > * {
	color: var(--black);
	font-size: 0.95em;
}

.contact-list-note__header {
	position: relative;
}

.contact-list-note__ttl {
	font-size: 1.5em;
	font-weight: 900;
}

.contact-list-note__body {
	position: relative;
	margin: 0.5em 0 0;
}

.contact-list-note__note {
	margin-top: 1em;
	color: var(--caution-color);
	font-size: 0.95em;
}

.wpcf7-form-control.wpcf7-checkbox,
.wpcf7-form-control.wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	grid-gap: 0.5em 2em;
}

/* GoogleMapLink */

.contact-list-note__google-map-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
	white-space: nowrap;
}
@media screen and ( min-width: 768px ) {
	.contact-list-note__google-map-link {
		font-size: 1.4rem;
	}
}

.contact-list-note__google-map-link::before {
	content: "\e0c8";
	display: inline-block;
	font-size: 1.2em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.1em);
}

.contact-list-note__google-map-link:hover,
.contact-list-note__google-map-link:focus {
	color: var(--black);
}

/* Tel */

.contact-list-note__tel-num {
	position: relative;
	font-size: 1.5em;
}

.contact-list-note__tel-num::before {
	content: "\e0b0";
	display: inline-block;
	font-size: 0.8em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}

.contact-list-note__tel-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
}
@media screen and ( min-width: 768px ) {
	.contact-list-note__tel-link {
		display: none;
	}
}

.contact-list-note__tel-link::before {
	content: "\e61c";
	display: inline-block;
	font-size: 1.3em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.2em);
}

.contact-list-note__tel-link:hover,
.contact-list-note__tel-link:focus {
	color: var(--white);
	background-color: var(--blue);
}

/* カレンダー */

.contact-list-note__calender {
	margin: 2rem 0 0;
}

.contact-list-note__calender-ttl {
	color: var(--main-color-1);
	font-size: 1.1em;
	font-weight: 900;
	text-align: center;
} 

/* Submit */

.form-button-wrapper {
	margin: 5rem 0 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.form-button {
	margin-top: 3rem;
}

.form-acceptance-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	grid-gap: 0.5rem;
}

.form-acceptance-caution {
	color: var(--caution-color);
	font-weight: bolder;
}

.wpcf7-spinner {
	display: none;
}

/* reCaptcha */

.turnstile-policy {
	margin-top: 2rem;
	font-size: 0.9em;
}

.grecaptcha-badge {
	visibility: hidden;
}

.codedropz-upload-handler {
	background-color: var(--white);
}

/* Datepicker */

.hasDatepicker {
	cursor: pointer;
}

.hasDatepicker::placeholder {
	color: var(--black);
}

/* -------------------------------------------------------------------------- */

/* Archive - アーカイブぺージ
/* -------------------------------------------------------------------------- */

/* -------------------------------------------------------------------------- */

/* Single - シングルぺージ
/* -------------------------------------------------------------------------- */

/* 店舗情報
/* ---------------------------------------- */

.single-shop-slider-wrapper {
	margin: 3rem 0;
	border-radius: 0.5rem;
	overflow: hidden;
	box-shadow: 0 0 0.1rem rgba(0, 0, 0, 0.1);
}

.single-shop-slider {
	position: relative;
}

.single-shop-slider__img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.single-shop-slider__img{
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-shop-item-wrapper {
	position: relative;
	margin: 3rem 0 0;
}
@media screen and ( min-width: 768px ) {
	.single-shop-item-wrapper {
		margin-top: 5rem;
	}
}

.single-shop-item {
	position: relative;
	margin: 0;
}

.single-shop-item + .single-shop-item {
	margin-top: 5rem;
}

.single-shop-item__header {
	font-size: 1em;
	color: var(--main-color-1);
}

.single-shop-item__content {
	line-height: 1.7;
	margin: 1rem 0 0;
}

/* スタッフコメント */

.single-shop-item.--message {
	padding-bottom: 1.5rem;
}

.single-shop-item__message {
	position: relative;
	padding: 3rem 2rem;
	border-radius: 0.5rem;
	background-color: var(--base-color-4);
	line-height: 1.7;
}
@media screen and ( min-width: 768px ) {
	.single-shop-item__message {
		padding: 3rem;
	}
}

.single-shop-item__message::before {
	content: "";
	width: 2rem;
	height: 1.5rem;
	position: absolute;
	z-index: 1;
	top: calc(100% - 0.1rem);
	left: 50%;
	margin-left: -1rem;
	background-color: inherit;
	clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
}

/* 店名 */

.single-shop-item__shop-name {
	font-size: 1.3em;
	font-weight: 900;
	margin-bottom: 1rem;
}

/* 電話 */

.single-shop-item__tel-wrapper {
	margin: 0.5em 0 0;
	display: flex;
	align-items: center;
}

.single-shop-item__tel {
	font-size: 1.5em;
	font-weight: 900;
	letter-spacing: 0.05em;
	display: flex;
	align-items: center;
}

.single-shop-item__tel::before {
	content: "\e0b0";
	display: inline-block;
	font-size: 0.8em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.3em;
	transform: translateY(0.15em);
}

.single-shop-item__tel-link {
	display: inline-block;
	color: var(--blue);
	font-size: 1.2rem;
	line-height: 1;
	text-decoration: none;
	letter-spacing: -0.01em;
	margin-left: 1em;
}
@media screen and ( min-width: 768px ) {
	.single-shop-item__tel-link {
		display: none;
	}
}

.single-shop-item__tel-link::before {
	content: "\e61c";
	display: inline-block;
	font-size: 1.3em;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 500;
	margin-right: 0.2em;
	transform: translateY(0.2em);
}

.single-shop-item__tel-link:hover,
.single-shop-item__tel-link:focus {
	color: var(--black);
}

/* カレンダー */

.single-shop-item__calender {
	margin: 3rem 0 0;
}

.single-shop-item__calender-ttl {
	font-size: 1.2em;
	color: var(--main-color-1);
	font-weight: 900;
	text-align: center;
}

.single-shop-item__calender-content {
	margin: 1.5rem 0 0;
}

/* 地図 */

.single-shop-item__google-map iframe {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 4 !important;
}
@media screen and ( min-width: 768px ) {
	.single-shop-item__google-map iframe {
		aspect-ratio: 4 / 3 !important;
	}
}

/* ストリートビュー */

.single-shop-item__google-streetview iframe {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 3 / 4 !important;
}
@media screen and ( min-width: 768px ) {
	.single-shop-item__google-streetview iframe {
		aspect-ratio: 4 / 3 !important;
	}
}

.single-shop-item__caution {
	font-size: 1em;
	line-height: 1.6;
	margin-bottom: 1rem;
}

/* ボタン */

.single-shop-item__button-wrapper {
	margin: 10rem 0 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}

/* -------------------------------------------------------------------------- */

/* Helper - ヘルパー
/* -------------------------------------------------------------------------- */

/* 店舗カレンダー */

.shopcal {
	margin: 0;
	padding: 0;
}

.shopcal__wrap {
	display: grid; 
	gap: 2rem;
	grid-template-columns: 1fr;
}

.shopcal__calendar {
	border: 0.1rem solid var(--gray-20);
	border-radius: 0.5rem;
	overflow: hidden;
	background-color: var(--white);
}

.shopcal__header {
	padding: 1rem;
	font-weight: 700;
	color: var(--white);
	font-size: 1.3em;
	background-color: var(--main-color-1);
	text-align: center;
	border-bottom: 0.1rem solid var(--gray-20);
}

.shopcal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
}

.shopcal__cell {
	border-right: 0.1rem solid var(--gray-20);
	border-bottom: 0.1rem solid var(--gray-20);
	min-height: 6rem;
	padding: 0.5rem;
	position: relative;
	background-color: var(--white);
}

.shopcal__cell:nth-child(7n) {
	border-right: none;
}

.shopcal__cell--wd {
	background-color: var(--main-color-1);
	color: var(--white);
	font-size: 0.9em;
	font-weight: bolder;
	text-align: center;
	min-height: auto;
}

.shopcal__cell--empty {
	background: var(--white);
}

.shopcal__day {
	font-size: 1em;
	font-weight: bolder;
	line-height: 1;
}

.shopcal__cell--closed {
	background: var(--gray-10);
}

.shopcal__cell--today {
	border: 0.3rem solid var(--main-color-1);
}

.shopcal__badge {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	right: 50%; 
	bottom: 50%;
	margin-right: -1.25rem;
	margin-bottom: -2rem;
	font-size: 0.8em;
	border-radius: 50%;
	border: 0.1rem solid var(--black);
}

.shopcal__legend {
	margin-top: 1rem;
	font-size: 0.9em;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.shopcal__legendMark {
	display: inline-block;
	border: 0.1rem solid var(--black);
	border-radius: 50%;
	font-size: 0.9em;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
}
