/*
Theme Name: SINSETSU MISAWA
Description: Created 2023.10.27 / Last Update 2023.11.1
Author: SINSETSU INC
Author URI: https://sinsetu.jp/
Text Domain: sinsetsumisawa
Version: 1.1.0
*/

/* -------------------------------------------------------------------------- */

/*	ROOT
/* -------------------------------------------------------------------------- */

:root {
	--main-color: #019b5d;
	--sub-color1: #e9ffea;
	--sub-color2: #f5f5f5;
	--accent-color1: #d13f16;
	--white: #ffffff;
	--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;
	--caution-color: #ff0000;
	--red: #ea5550;
	--blue: #0075c2;
	--yellow: #ffdc00;
	--green: #00a960;
}

/* -------------------------------------------------------------------------- */

/*	Font
/* -------------------------------------------------------------------------- */

/* Font Awesome（SNS Icon）
/* ---------------------------------------- */
@font-face {
    font-family: "Font Awesome";
    font-style: normal;
	font-display: swap;
	font-weight: 400;
	src: local(''),
		url(./assets/fonts/FontAwesome/fa-brands-400.woff2) format('woff2'), /* Super Modern Browsers */
		url(./assets/fonts/FontAwesome/fa-brands-400.ttf) format('truetype'); /* Safari, Android, iOS */
}

/* -------------------------------------------------------------------------- */

/*	Document Setup
/* -------------------------------------------------------------------------- */

html {
	font-size: 62.5%;
}

body {
	box-sizing: border-box;
	color: var(--black);
	font-family: "Noto Serif JP", "游明朝体", "Yu Mincho", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", serif;
	font-size: 1.4rem;
	font-weight: 700;
	font-display: swap;
	text-align: left;
}
@media ( min-width: 500px ) {
	body {
		font-size: 1.6rem;
	}
}

*,
*::before,
*::after {
	font-family: inherit;
	box-sizing: inherit;
	-webkit-font-smoothing: antialiased;
	word-break: break-word;
	word-wrap: break-word;
}

/* Base Transitions
/* ---------------------------------------- */
a,
path {
	transition-property: all;
	transition-duration: 0.3s;
}

/* BR
/* ---------------------------------------- */
@media ( min-width: 500px ) {
	.only-sp {
		display: none;
	}
}

@media ( max-width: 1024px ) {
	.only-pc {
		display: none;
	}
}

/* Accessibility Settings
/* ---------------------------------------- */
@media ( prefers-reduced-motion: reduce ) {
	* {
		animation-duration: 0s !important;
		transition-duration: 0s !important;
	}
}

/* iPhone Tel Link
/* ---------------------------------------- */
.disable-auto-tel a[href^="tel:"] {
	color: inherit;
	text-decoration: none;
}

/* Selected Text
/* ---------------------------------------- */
::selection {
	background: lightgray;
}

/* -------------------------------------------------------------------------- */

/*	Alignment Classes
/* -------------------------------------------------------------------------- */

.has-text-align-center {
	text-align: center;
}

.has-text-align-left {
	text-align: left;
}

.has-text-align-right {
	text-align: right;
}

.alignleft,
.alignright {
	margin-top: 1rem;
	margin-bottom: 1rem;
	margin-right: auto;
	margin-left: auto;
}

/* Center */
.aligncenter,
.aligncenter img {
	margin-left: auto;
	margin-right: auto;
}

/* Left and right */
.alignleft,
.alignright {
	max-width: 50%;
}

.alignleft {
	float: left;
	margin: 0 2em 2em 2em;
}

.alignright {
	float: right;
	margin: 0 2em 2em 2em;
}

/* -------------------------------------------------------------------------- */

/*	Animation
/* -------------------------------------------------------------------------- */

/* Loading Animation（ローディング）
/* ---------------------------------------- */

.splash {
	position: fixed;
	z-index: 9999;
	width: 100%;
	height: 100%;
	background-color: var(--white);
	text-align: center;
	display: none;
}

.splash__logo-wrapper {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

.splash__logo {
	width: auto;
	height: 15rem;
}

/* Screen Transition (画面遷移)
/* ---------------------------------------- */

.splash-bg {
    display: none;
}

.appear .splash-bg {
	display: block;
	content: "";
	position: fixed;
	z-index: 9998;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;
	transform: scaleY(0);
	background-color: var(--main-color);
	animation-name: PageAnime;
	animation-duration: 1.5s;
	animation-timing-function: ease-in-out;
	animation-fill-mode: forwards;
}
@keyframes PageAnime{
	0% {
	  transform-origin: right;
	  transform: scaleX(0);
	}
	50% {
	  transform-origin: right;
	  transform: scaleX(1);
	}
	50.001% {
	  transform-origin: left;
	}
	100% {
	  transform-origin: left;
	  transform: scaleX(0);
	}
}

/* Fade Animation
/* ---------------------------------------- */

.fadeInTrigger,
.fadeUpTrigger,
.fadeDownTrigger,
.fadeLeftTrigger,
.fadeRightTrigger {
    opacity: 0;
}

/* Fade In */

.fadeIn {
    animation-name: fadeInAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
	opacity: 0;
}

/* KEYFRAMES */
@keyframes fadeInAnime {
    from {
		opacity: 0;
    }
    to {
		opacity: 1;
    }
}

/* Fade Up */

.fadeUp {
    animation-name: fadeUpAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

/* KEYFRAMES */
@keyframes fadeUpAnime {
    from {
        opacity: 0;
        transform: translateY(10rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade Down */

.fadeDown {
    animation-name: fadeDownAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
    opacity: 0;
}

/* KEYFRAMES */
@keyframes fadeDownAnime {
    from {
        opacity: 0;
        transform: translateY(-10rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Fade Left */

.fadeLeft {
    animation-name: fadeLeftAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
	opacity: 0;
}

/* KEYFRAMES */
@keyframes fadeLeftAnime {
    from {
		opacity: 0;
		transform: translateX(-10rem);
    }
    to {
		opacity: 1;
		transform: translateX(0);
    }
}

/* Fade Right */

.fadeRight {
    animation-name: fadeRightAnime;
    animation-duration: 1s;
    animation-fill-mode: forwards;
	opacity: 0;
}

/* KEYFRAMES */
@keyframes fadeRightAnime {
    from {
		opacity: 0;
		transform: translateX(10rem);
    }
    to {
		opacity: 1;
		transform: translateX(0);
    }
}

/* Zoom Animation
/* ---------------------------------------- */

/* Zoom In */

.zoomInTrigger {
	transform: scale(0.6);
	opacity: 0;
}

.zoomIn {
    animation-name: zoomInAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
	animation-delay: 0.6s;
}

/* KEYFRAMES */
@keyframes zoomInAnime {
    from {
		transform: scale(0.6);
		opacity: 0;
    }
    to {
		transform: scale(1);
		opacity: 1;
    }
}

/* Zoom Out */

.zoomOutTrigger {
	transform: scale(1.2);
	opacity: 0;
}

.zoomOut {
    animation-name: zoomOutAnime;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
	animation-delay: 0.6s;
}

/* KEYFRAMES */
@keyframes zoomOutAnime {
    from {
		transform: scale(1.2);
		opacity: 0;
    }
    to {
		transform: scale(1);
		opacity: 1;
    }
}

/* -------------------------------------------------------------------------- */

/*	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.4;
}

h1 {
	font-size: 1.8em;
}

h2 {
	font-size: 1.7em;
}

h3 {
	font-size: 1.6em;
}

h4 {
	font-size: 1.5em;
}

h5 {
	font-size: 1.4em;
}

h6 {
	font-size: 1.3em;
}

.single-cont__post-content :is(h1, h2, h3, h4, h5, h6) + * ,
.page-cont__post-content :is(h1, h2, h3, h4, h5, h6) + * {
	margin-top: 2em;
}

p {
	line-height: 2;
	margin-bottom: 2em;
}

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: bolder;
}

mark {
	color: inherit;
	background: linear-gradient( transparent 60%, yellow 0% );
}

ins {
	text-decoration: underline;
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}

sup {
	top: -0.5em;
}

sub {
	bottom: -0.25em;
}

abbr,
acronym {
	cursor: help;
}

address {
	line-height: 1.5;
	margin: 0 0 2rem 0;
}

hr {
	border-style: solid;
	border-width: 0.1rem 0 0 0;
	border-color: var(--gray-30);
	margin: 4rem 0;
}

/* Link
/* ---------------------------------------- */

a {
	color: var(--black);
	text-decoration: underline;
}

a:hover,
a:focus {
	text-decoration: none;
}

/* List
/* ---------------------------------------- */

ul,
ol,
dl {
	margin: 2em 0 2em 2em;
}


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 {
	line-height: 1.5;
	margin: 0 0 0 2em;
}

li > ul,
li > ol {
	margin: 1em 0 1em 2em;
}

dt,
dd {
	line-height: 1.5;
}

dt {
	font-weight: 900;
}

dt + dd {
	margin-top: 0.5em;
}

dd + dt {
	margin-top: 1.5em;
}

/* Quotes 
/* ---------------------------------------- */

blockquote {
	border-color: var(--black);
	border-style: solid;

	/*rtl:ignore*/
	border-width: 0 0 0 0.3rem;
	color: inherit;
	font-size: 1em;
	margin: 4rem 0;

	/*rtl:ignore*/
	padding: 0.5rem 0 0.5rem 2rem;
}

cite {
	color: var(--gray-30);
	font-size: 0.9em;
	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 {
	font-family: monospace;
	font-size: 0.9em;
	padding: 0.4rem 0.6rem;
}

code,
kbd,
samp {
	background: rgba(0, 0, 0, 0.075);
	border-radius: 0.2rem;
}

pre {
	border: 0.1rem solid var(--gray-30);
	line-height: 1.5;
	margin: 4rem 0;
	overflow: auto;
	padding: 3rem 2rem;
	text-align: left;
}

pre code {
	background: transparent;
	padding: 0;
}

/* Inputs
/* ---------------------------------------- */

fieldset {
	border: 0.1rem solid var(--gray-30);
	padding: 2rem;
}

legend {
	font-size: 0.85em;
	font-weight: 500;
}

label {
	display: block;
	font-size: 1.6rem;
	font-weight: 500;
}

input[type="checkbox"] + label {
	display: inline;
	font-weight: 400;
	margin-left: 0.5rem;
}

input[type="checkbox"] {
	position: relative;
	display: inline-block;
	margin: 0;
	width: 1em;
	height: 1em;
	border-radius: 0;
	border-style: solid;
	border-width: 0.1rem;
	border-color: var(--gray-30);
	box-shadow: none;
	cursor: pointer;
	background-color: var(--white);
}

input[type="checkbox"]:checked {
	background-color: var(--black);
}

input[type="checkbox"] + * {
	margin-left: 1em;
}

input,
textarea,
button {
	line-height: 1;
}

input,
textarea {
	border-color: var(--gray-30);
	color: #000;
}

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 {
	background: var(--white);
	border-style: solid;
	border-width: 0.1rem;
	border-color: var(--gray-30);
	display: block;
	font-size: 1.6rem;
	letter-spacing: 0.01em;
	margin: 0 0 1rem;
	max-width: 100%;
	padding: 1rem 1.2rem;
	width: 100%;
}

select {
	cursor: pointer;
}

textarea {
	line-height: 1.5;
	width: 100%;
}

button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
	background-color: var(--gray-90);
	border: none;
	color: var(--white);
	cursor: pointer;
	display: inline-block;
	font-size: 1em;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1;
	margin: 0;
	opacity: 1;
	padding: 2rem 5rem;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: linear;
}

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 {
	background-color: var(--gray-30);
}

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 {
	background-color: var(--gray-30);
}

input[type="submit"]:not(:disabled):hover {
	background-color: var(--gray-90);
	color: var(--white);
}

::placeholder {
	color: var(--gray-20);
	font-weight: 400;
}

/* Media
/* ---------------------------------------- */

.wp-caption {
	max-width: 100%;
	margin-top: 2em;
	margin-bottom: 2em;
}

figure {
	display: block;
	margin: 0;
}

iframe {
	display: block;
	max-width: 100%;
}

video {
	display: block;
}

svg,
img,
embed,
object {
	display: block;
	height: auto;
    width: auto;
	max-width: 100%;
}

figcaption,
.wp-caption-text {
	color: var(--gray-30);
	font-size: 0.8em;
	line-height: 1.2;
	margin-top: 0.5rem;
}

figcaption a,
.wp-caption-text a {
	color: inherit;
	text-decoration: underline;
}

/* Tables
/* ---------------------------------------- */

.single-cont__post-content table {
	border: 0.1rem solid var(--gray-60);
	border-collapse: collapse;
	border-spacing: 0;
	empty-cells: show;
	font-size: 1.6rem;
	margin: 4rem 0;
	max-width: 100%;
	overflow: hidden;
	width: 100%;
}

.single-cont__post-content .alignleft > table {
	margin: 0;
}

.single-cont__post-content .alignright > table {
	margin: 0;
}

.single-cont__post-content th,
.single-cont__post-content td {
	border: 0.1rem solid var(--gray-60);
	line-height: 1.4;
	margin: 0;
	overflow: visible;
	padding: 0.5em;
}

.single-cont__post-content caption {
	background: var(--gray-30);
	font-weight: 700;
	padding: 0.5em;
	text-align: center;
}

.single-cont__post-content thead {
	vertical-align: bottom;
	white-space: nowrap;
}

.single-cont__post-content th {
	font-weight: bolder;
}

/* Screen Reader Text
/* ---------------------------------------- */

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #eee;
	clip: auto !important;
	clip-path: none;
	color: #444;
	display: block;
	font-size: 1em;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Form 
/* ------------------------------------- */

input:not(input[type="submit"]):not(input[type="checkbox"]):not(input[type="file"]),
select,
textarea {
	width: 100%;
	font-size: 1.6rem;
	border: 0.1rem solid var(--gray-20);
	border-radius: 1rem;
	padding: 1.5rem 2rem;
	transition: all 0.15s;
}

input[type="submit"] {
	color: var(--white);
	font-family: "Noto Serif JP";
	font-size: 1.5rem;
	font-weight: 700;
	border: 0.1rem solid var(--main-color);
	margin: 0;
	padding: 1.5rem 4rem;
	background-color: var(--main-color);
	border-radius: 10rem;
	transition: all 0.15s linear;
}
@media ( min-width: 500px ) {
	input[type="submit"] {
		font-size: 1.6rem;
	}
}

input[type="submit"]:disabled {
	border: 0.3rem solid #cccccc;
	background-color: #cccccc;
}

input[type="submit"]:not(:disabled):hover {
	background-color: var(--white);
	color: var(--main-color);
}

::placeholder {
	color: var(--gray-20);
	font-weight: 500;
}

/* -------------------------------------------------------------------------- */

/*	Button
/* -------------------------------------------------------------------------- */

/* Common
/* ------------------------------------- */

.btn + .btn {
	margin: 2em 0 0;
}
@media ( min-width: 1025px ) {
	.btn + .btn {
		margin: 0 0 0 2em;
	}
}

/* Button List Link
/* ------------------------------------- */

.btn_list {
	height: 4.6rem;
	background-color: transparent;
	color: var(--black);
	font-size: 1.5rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	margin: 0;
	padding: 0 3rem 0 6rem;
	display: flex;
	align-items: center;
	transition: ease 0.2s;
	position: relative;
	overflow: hidden;
	border-radius: 10rem;
}
@media ( min-width: 1025px ) {
	.btn_list {
		height: 6rem;
		font-size: 2rem;
		padding: 0 4rem 0 7rem;
	}
}

.btn_list .btn__txt {
	position: relative;
	z-index: 3;
	padding: 0.5rem 0;
	border-bottom: 0.1rem solid var(--black);
}

.btn_list .btn__icon {
	width: 4.6rem;
	height: 4.6rem;

	background-color: var(--black);
	border-radius: 50%;
	transition: all 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 3;
}
@media ( min-width: 1025px ) {
	.btn_list .btn__icon {
		width: 6rem;
		height: 6rem;
	}
}

.btn_list .btn__icon::before,
.btn_list .btn__icon::after {
    content: "";
    display: inline-block;
    width: 1.5rem;
    height: 0.2rem;
	background-color: var(--white);
	transform-origin: center;
	position: absolute;
}
@media ( min-width: 1025px ) {
	.btn_list .btn__icon::before,
	.btn_list .btn__icon::after {
		width: 2rem;
	}
}

.btn_list .btn__icon::before {
    transform: rotate(90deg);
}

.btn_list::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: var(--black);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.btn_list:hover::before,
.btn_list:focus::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.btn_list:hover,
.btn_list:focus {
	color: var(--white);
}

.btn_list:hover .btn__icon,
.btn_list:focus .btn__icon  {
	background-color: var(--white);
	transform: scale(0.6);
}

.btn_list:hover .btn__icon::before,
.btn_list:hover .btn__icon::after,
.btn_list:focus .btn__icon::before,
.btn_list:focus .btn__icon::after {
	background-color: var(--black);
}

/* Button Detail Link
/* ------------------------------------- */

.btn_detail {
	height: 4.4rem;
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 3rem 0 5.4rem;
	color: var(--main-color);
	font-size: 1.4rem;
	font-weight: 700;
	text-decoration: none;
	overflow: hidden;
	border-radius: 10rem;
	transition: ease 0.2s;
}
@media ( min-width: 1025px ) {
	.btn_detail {
		font-size: 1.7rem;
	}
}

.btn_detail .btn__txt {
	position: relative;
	z-index: 3;
	padding: 0.5rem 0;
	border-bottom: 0.1rem solid var(--main-color);
}

.btn_detail .btn__icon {
	width: 4.4rem;
	height: 4.4rem;
	background-color: var(--main-color);
	border-radius: 50%;
	transition: all 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 3;
}

.btn_detail .btn__icon::before {
    content: "";
    display: inline-block;
    width: 1.2rem;
	border-color: var(--white);
	border-width: 0.2rem 0 0 0;
	border-style: solid;
	position: absolute;
}

.btn_detail .btn__icon::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
	border-color: var(--white);
	border-width: 0.2rem 0.2rem 0 0;
	border-style: solid;
	transform-origin: center;
    transform: translatex(0.2rem) rotate(45deg);
	position: absolute;
}

.btn_detail::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	background-color: var(--main-color);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.btn_detail:hover::before,
.btn_detail:focus::before  {
	transform-origin: left top;
	transform: scale(1, 1);
}

.btn_detail:hover,
.btn_detail:focus {
	color: var(--white);
}

.btn_detail:hover .btn__icon,
.btn_detail:focus .btn__icon {
	background-color: var(--white);
	transform: scale(0.6);
}

.btn_detail:hover .btn__icon::before,
.btn_detail:hover .btn__icon::after,
.btn_detail:focus .btn__icon::before,
.btn_detail:focus .btn__icon::after {
    border-color: var(--main-color);
}

/* Button CTA Link
/* ------------------------------------- */

.btn_cta {
	height: 6rem;
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 4rem 0 7rem;
	color: var(--white);
	background-color: var(--accent-color1);
	font-size: 1.4rem;
	font-weight: 700;
	text-decoration: none;
	overflow: hidden;
	border-radius: 10rem;
	transition: ease 0.2s;
	border: 0.1rem solid var(--accent-color1);
}
@media ( min-width: 1025px ) {
	.btn_cta {
		font-size: 1.8rem;
	}
}

.btn_cta .btn__txt {
	position: relative;
	z-index: 3;
	padding: 0.5rem 0;
}

.btn_cta .btn__icon {
	width: 6rem;
	height: 6rem;
	background-color: var(--white);
	border-radius: 50%;
	transition: all 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 3;
	transform: scale(0.6);
}

.btn_cta .btn__icon::before {
    content: "";
    display: inline-block;
    width: 1.2rem;
	border-color: var(--accent-color1);
	border-width: 0.2rem 0 0 0;
	border-style: solid;
	position: absolute;
}

.btn_cta .btn__icon::after {
    content: "";
    display: inline-block;
    width: 1rem;
    height: 1rem;
	border-color: var(--accent-color1);
	border-width: 0.2rem 0.2rem 0 0;
	border-style: solid;
	transform-origin: center;
    transform: translatex(0.2rem) rotate(45deg);
	position: absolute;
}

.btn_cta::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: var(--white);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.btn_cta:hover::before,
.btn_cta:focus::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.btn_cta:hover,
.btn_cta:focus {
	color: var(--accent-color1);
}

.btn_cta:hover .btn__icon,
.btn_cta:focus .btn__icon {
	background-color: var(--accent-color1);
	transform: scale(0.7);
}

.btn_cta:hover .btn__icon::before,
.btn_cta:hover .btn__icon::after,
.btn_cta:focus .btn__icon::before,
.btn_cta:focus .btn__icon::after {
    border-color: var(--white);
}

/* Button home Link 
/* ------------------------------------- */

.btn_home {
	height: 4.6rem;
	background-color: transparent;
	color: var(--black);
	font-size: 1.5rem;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	margin: 0;
	padding: 0 3rem 0 6rem;
	display: flex;
	align-items: center;
	transition: ease 0.2s;
	position: relative;
	overflow: hidden;
	border-radius: 10rem;
}
@media ( min-width: 1025px ) {
	.btn_home {
		font-size: 2rem;
		height: 6rem;
		padding: 0 4rem 0 7rem;
	}
}

.btn_home .btn__txt {
	position: relative;
	z-index: 3;
	padding: 0.5rem 0;
	border-bottom: 0.1rem solid var(--black);
}

.btn_home .btn__icon {
	width: 4.6rem;
	height: 4.6rem;
	background-color: var(--black);
	border-radius: 50%;
	transition: all 0.3s;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	position: absolute;
	left: 0;
	z-index: 3;
}
@media ( min-width: 1025px ) {
	.btn_home .btn__icon {
		width: 6rem;
		height: 6rem;
	}
}

.btn_home .btn__icon::before {
	font-family: 'Material Symbols Outlined';
    content: "\e88a";
	font-variation-settings: 'FILL' 0, 'wght' 200;
	color: var(--white);
	font-size: 3.5rem;
}

.btn_home::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: var(--black);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.btn_home:hover::before,
.btn_home:focus::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.btn_home:hover,
.btn_home:focus {
	color: var(--white);
}

.btn_home:hover .btn__icon,
.btn_home:focus .btn__icon {
	transform: scale(0.6);
	background-color: var(--white);
}

.btn_home:hover .btn__icon::before,
.btn_home:focus .btn__icon::before {
	color: var(--black);
}

/* -------------------------------------------------------------------------- */

/* Navigation（ナビゲーション）
/* -------------------------------------------------------------------------- */

/* Breadcrumb（パンくずリスト） ---------------------------- */

.breadcrumb {
	color: var(black);
	font-size: 0.9em;
	position: relative;
	padding: 1.5em 0;
}

.breadcrumb__inner {
	width: calc(100% - 3rem);
	max-width: 100rem;
	display: flex;
	align-items: center;
	margin: 0 auto;
}
@media ( min-width: 1025px ) {
	.breadcrumb__inner {
		width: calc(100% - 4rem);
	}
}

.breadcrumb a {
	color: var(black);
}

.aioseo-breadcrumb:last-of-type {
	margin: 0 1.5rem 0 0;
}
@media ( min-width: 769px ) {
	.aioseo-breadcrumb:last-of-type  {
		margin-right: 3rem;
	}
}

.aioseo-breadcrumb-separator {
	display: inline-block;
	padding: 0 0.7em;
}

/* Sort（絞り込み） ---------------------------- */

.sort-nav {
	margin: 4em 0 0;
	padding: 0;
}

.sort-nav__inner {
	width: calc(100% - 4rem);
	display: flex;
	justify-content: center;
	margin: 0 auto;
	padding: 0;
}

.sort-nav__btn-wrapper ul {
	display: flex;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.sort-nav__btn-wrapper ul li {
	margin: 0 1.5rem 0 0;
	padding: 0;
}
@media ( min-width: 769px ) {
	.sort-nav__btn-wrapper ul li {
		margin-right: 3rem;
	}
}

.sort-nav__btn-wrapper ul li a {
	font-size: 1em;
	font-weight: 700;
	text-decoration: none;
	text-align: center;
	display: inline-block;
	margin: 0;
	padding: 0.5em;
	position: relative;
}
@media ( min-width: 1025px ) {
	.sort-nav__btn-wrapper ul li a {
		font-size: 1.1em;
	}
}

.sort-nav__btn-wrapper ul li a::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.2rem;
	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 {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.2rem;
	background-color: var(--main-color);
	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);
}

/* -------------------------------------------------------------------------- */

/* Pagination（ぺージネーション）
/* -------------------------------------------------------------------------- */

.pagination ul {
    list-style: none;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 6rem 0 0;
    padding: 0;
}

.pagination li {
    margin: 0 1rem 0 0;
}

.pagination li:last-child {
    margin-right: 0;
}

.pagination li .page-numbers {
    color: var(--black);
    text-decoration: none;
    font-size: 1em;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 4.5rem;
    height: 4.5rem;
	border: 0.2rem solid var(--white);
	border-radius: 50%;
	transition: all 0.3s;
}

.pagination li .page-numbers.current {
	border-color: var(--main-color);
}

.pagination .prev::before,
.pagination .next::after  {
    content: '';
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	font-size: 1.5em;
}

.pagination .prev::before {
    content: '\e5cb';
}

.pagination .next::after {
    content: '\e5cc';
}

/* Hover animation */
.pagination li a.page-numbers:hover {
	border-color: var(--main-color);
}

/* -------------------------------------------------------------------------- */

/*	Swiper（スライダー）
/* -------------------------------------------------------------------------- */

.swiper-arrow-wrapper {
	width: 100%;
	height: 5rem;
	position: relative;
	margin: 5rem 0 0;
	padding: 0;
	display: flex;
	justify-content: flex-end;
}

.swiper-arrow-wrapper .swiper-button-prev,
.swiper-arrow-wrapper .swiper-button-next {
	width: 5rem;
	height: 5rem;
	margin: 0;
	padding: 0;
	position: relative;
	left: auto;
	right: auto;
	top: auto;
	bottom: auto;
	z-index: 1;
	transform: translate( 0, 0);
	font-size: inherit;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
	box-shadow: 0 0 0.4rem var(--gray-10);
	border-radius: 2rem;
}

.swiper-arrow-wrapper .swiper-button-prev.swiper-button-disabled,
.swiper-arrow-wrapper .swiper-button-next.swiper-button-disabled {
	background: transparent;
	box-shadow: none;
}

.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.5rem;
}

.swiper-arrow-wrapper .swiper-button-prev::after,
.swiper-arrow-wrapper .swiper-button-next::after {
	content: "";
	color: var(--main-color);
	font-size: 2rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	margin: 0;
	padding: 0;
	position: absolute;
	z-index: 2;
}

.swiper-arrow-wrapper .swiper-button-prev::after {
	content: "\e2ea";
}

.swiper-arrow-wrapper .swiper-button-next::after {
	content: "\e5e1";
}

.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 */
@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 */
@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;
	}
}

/* -------------------------------------------------------------------------- */

/*	Side scroll
/* -------------------------------------------------------------------------- */

.side-scroll {
	white-space: nowrap;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.side-scroll::-webkit-scrollbar {
	display:none;
}

/* -------------------------------------------------------------------------- */

/*	Container
/* -------------------------------------------------------------------------- */

.container {
	opacity: 0;
	position: relative;
	overflow: hidden;
	background-color: var(--white);
	padding: 10rem 0 0;
}
@media ( min-width: 1025px ) {
	.container {
		padding-top: 15rem;
	}
}

.appear .container {
	opacity: 0;
	animation-name: PageAnimeAppear;
	animation-duration: 1s;
	animation-delay: 1s;
	animation-fill-mode: forwards;
}
@keyframes PageAnimeAppear {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/* -------------------------------------------------------------------------- */

/*	Header
/* -------------------------------------------------------------------------- */

.header {
	height: 10rem;
	padding: 0 1rem;
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	left: 0;
	right: 0;
	top: 0;
	z-index: 11;
	background-color: var(--white);
	transition: all 0.15s ease;
}
@media ( min-width: 768px ) {
	.header {
		height: 12rem;
		padding: 0 2rem;
	}
}
@media ( min-width: 1024px ) {
	.header {
		justify-content: flex-start;
		height: 15rem;
		padding: 0 3rem;
	}
}

.HeaderHeightMin .header {
	height: 8rem;
	box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.1);
}
@media ( min-width: 768px ) {
	.HeaderHeightMin .header {
		height: 10rem;
	}
}
@media ( min-width: 1024px ) {
	.HeaderHeightMin .header {
		height: 12rem;
	}
}

.header-ttl {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	padding: 0;
}
@media ( min-width: 1024px ) {
	.header-ttl {
		padding-left: 6rem;
	}
}

.header-ttl__link {
	color: var(--white);
	text-decoration: none;
}

.header-ttl__link:hover {
	color: var(--gray-20);
	opacity: 0.7;
}

.header-ttl__typo {
	font-size: 2em;
	letter-spacing: 0.05em;
}

.header-ttl__logo-wrapper {
	overflow: hidden;
}

.header-ttl__logo {
	width: auto;
	max-height: 7rem;
	transition: all 0.3s ease;
}
@media ( min-width: 768px ) {
	.header-ttl__logo {
		max-height: 9rem;
	}
}
@media ( min-width: 1024px ) {
	.header-ttl__logo {
		max-height: 12rem;
	}
}

.HeaderHeightMin .header-ttl__logo {
	max-height: 5rem;
}
@media ( min-width: 768px ) {
	.HeaderHeightMin .header-ttl__logo {
		max-height: 7rem;
	}
}
@media ( min-width: 1024px ) {
	.HeaderHeightMin .header-ttl__logo {
		max-height: 10rem;
	}
}

.header-ttl__desc {
	display: none;
}
@media ( min-width: 1200px ) {
	.header-ttl__desc {
		display: block;
		color: var(--black);
		font-size: 0.9em;
		font-weight: 900;
		letter-spacing: 0.02em;
		margin-left: 3em;
		transition: all 0.15s ease;
	}
}

/* Header Button
/* ------------------------------------- */

.header__btn-wrapper {
	position: absolute;
	left: 0;
	right: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0 1rem 0 6rem;
}
@media ( min-width: 1024px ) {
	.header__btn-wrapper {
		justify-content: flex-end;
		padding: 0 2rem 0 0;
	}
}

.header-contact-btn {
	margin: 0;
	padding: 0;
}
@media ( min-width: 1025px ) {
	.header-contact-btn {
		margin-left: 1.5rem;
	}
}

.header-contact-btn__link {
	display: none;
}
@media ( min-width: 1024px ) {
	.header-contact-btn__link {
		color: var(--white);
		font-size: 1.4rem;
		font-weight: 700;
		text-decoration: none;
		letter-spacing: 0.01em;
		height: 5rem;
		display: flex;
		align-items: center;
		margin: 0;
		padding: 0 2.5rem 0 5.5rem;
		position: relative;
		border-left: 0;
		border-radius: 10rem;
		overflow: hidden;
		transition: ease 0.2s;
		background-color: var(--accent-color1);
		border: 0.1rem solid var(--accent-color1);
	}
	.header-contact-btn__link::after {
		content: "";
	}
}

.header-contact-btn__icon {
	display: none;
}
@media ( min-width: 1024px ) {
	.header-contact-btn__icon {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 5rem;
		height: 5rem;
		background-color: var(--white);
		border-radius: 50%;
		position: absolute;
		left: 0;
		z-index: 3;
		transform: scale(0.7);
		transition: ease 0.2s;
	}
	.header-contact-btn__icon::before,
	.header-contact-btn__icon::after {
		content: "";
		display: inline-block;
		border-color: var(--accent-color1);
		border-style: solid;
		position: absolute;
	}

	.header-contact-btn__icon::before {
		width: 30%;
		border-width: 0.2rem 0 0 0;
		transform: translateY(0);
	}

	.header-contact-btn__icon::after {
		width: 20%;
		height: 20%;
		border-width: 0.2rem 0.2rem 0 0;
		transform-origin: center;
		transform: translateX(0.1rem) rotate(45deg);
	}
}

.header-contact-btn__txt {
	display: none;
}
@media ( min-width: 1024px ) {
	.header-contact-btn__txt {
		display: block;
		margin: 0;
		padding: 0;
		position: relative;
		z-index: 3;
	}
}

@media ( min-width: 1024px ) {
	.header-contact-btn__link::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		z-index: 1;
		background-color: var(--white);
		width: 100%;
		height: 100%;
		transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
		transform: scale(0, 1);
		transform-origin: left top;
	}

	.header-contact-btn__link:hover::before,
	.header-contact-btn__link:focus::before {
		transform-origin: left top;
		transform: scale(1, 1);
	}

	.header-contact-btn__link:hover,
	.header-contact-btn__link:focus {
		color: var(--accent-color1);
	}

	.header-contact-btn__link:hover .header-contact-btn__icon,
	.header-contact-btn__link:focus .header-contact-btn__icon {
		transform: scale(0.6);
		background-color: var(--accent-color1);
	}

	.header-contact-btn__link:hover .header-contact-btn__icon::before,
	.header-contact-btn__link:hover .header-contact-btn__icon::after,
	.header-contact-btn__link:focus .header-contact-btn__icon::before,
	.header-contact-btn__link:focus .header-contact-btn__icon::after {
		border-color: var(--white);
	}
}

/* Translate - 翻訳ボタン
/* ------------------------------------- */

.header-translate-btn {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
@media ( min-width: 768px ) {
	.header-translate-btn {
		margin-right: 1rem;
	}
}
@media ( min-width: 1024px ) {
	.header-translate-btn {
		margin: 0 0 0 1em;
	}
}

.header-translate-btn .gtranslate_wrapper {
	display: flex;
}

.header-translate-btn .glink {
	color: var(--main-color);
	font-family: "Roboto";
	font-size: 1.1em;
	font-weight: 900;
	display: flex;
	justify-content: center;
	position: relative;
	padding: 0 0.5em;
	white-space: nowrap;
}
@media ( min-width: 1024px ) {
	.header-translate-btn .glink {
		padding: 0 0.7em;
	}
}

.header-translate-btn .glink + .glink {
	border-left: 0.1rem solid var(--main-color);
}

.header-translate-btn .gt-current-lang::after {
	content: "";
	display: block;
	position: absolute;
	bottom: -0.3em;
	height: 0.3rem;
	background-color: var(--main-color);
	width: 50%;
}


/* -------------------------------------------------------------------------- */

/*	Footer
/* -------------------------------------------------------------------------- */

.footer {
	margin: 0;
	padding: 0;
	position: relative;
	z-index: 3;
}

/* Sitemap（サイトマップ）
/* ---------------------------------------- */

/* Sitemap Block */

.footer__sitemap {
	background-color: var(--white);
	color: var(--black);
	margin: 0 auto;
	padding: 6rem 3rem;
	width: 100%;
}
@media ( min-width: 769px ) {
	.footer__sitemap {
		padding: 5rem;
	}
}
@media ( min-width: 1025px ) {
	.footer__sitemap {
		padding: 10rem;
	}
}

.sitemap {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 5rem;
}
@media ( min-width: 1024px ) {
	.sitemap {
		grid-template-columns: 1fr 1fr;
	}
}

/* SDGs
/* ---------------------------------------- */

.sdgs-wrapper {
	width: calc(100% - 4rem);
	max-width: 120rem;
	margin: 3em auto 0;
	padding: 0;
}

.sdgs__img-wrapper {
	text-align: center;
}

.sdgs__img {
	width: auto;
	height: 8rem;
}
@media ( min-width: 500px ) {
	.sdgs__img {
		height: 10rem;
	}
}

.sdgs__link {
	display: inline-block;
}

.sdgs__text {
	color: #0099D9;
	font-family: "Yu Gothic Medium", "游ゴシック Medium", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif;;
	text-align: center;
	font-size: 0.9em;
	font-weight: 900;
	margin: 0.5em 0 0;
}


/* Copyright
/* ---------------------------------------- */

.footer__copyright {
	width: 100%;
	color: var(--black);
	font-size: 0.9em;
	font-weight: 700;
	letter-spacing: 0.05em;
	margin: 0;
	padding: 1.5em 2rem 8rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background-color: var(--white);
}
@media ( min-width: 500px ) {
	.footer__copyright {
		padding-bottom: 1.5em;
	}
}

.footer-copyright__link {
	color: var(--black);
}

/* Pagetop
/* ---------------------------------------- */

.page-top {
    position: fixed;
    right: 1.5rem;
    bottom: 1.5rem;
    z-index: 12;
    opacity: 0;
	transition: all 0.3s;
}
@media ( min-width: 1024px ) {
	.page-top {
		right: 3rem;
		bottom: 3rem;
	}
}

.page-top__link {
	display: block;
	text-decoration: none;
	transition: 0.3s;
	width: 5rem;
    height: 5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border-radius: 50%;
	background-color: var(--main-color);
	overflow: hidden;
}

.page-top.upMove .page-top__link {
	box-shadow: none;
}

.page-top__link::before {
	content: "\e5ce";
	color: var(--white);
	font-size: 3rem;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
}

.page-top.visible {
	animation-name: pagetopUpAnime;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
}

/* KEYFRAMES */
@keyframes pagetopUpAnime {
    from {
        opacity: 0;
        transform: translateY(15rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.page-top.hidden {
	animation-name: pagetopDownAnime;
	animation-duration: 0.4s;
	animation-fill-mode: forwards;
}

/* KEYFRAMES */
@keyframes pagetopDownAnime{
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(15rem);
    }
}

.page-top__link:hover::before {
	animation-name: pagetopArrowAnime;
	animation-duration: 0.6s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}

/* KEYFRAMES */
@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;
	}
}

/* -------------------------------------------------------------------------- */

/*	Modal
/* -------------------------------------------------------------------------- */

/* メニュー
/* ---------------------------------------- */

.modal-btn-wrapper {
	opacity: 0;
	height: 10rem;
	position: fixed;
	top: 0;
	left: 0.5rem;
	z-index: 103;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.15s ease;
}
@media ( min-width: 768px ) {
	.modal-btn-wrapper {
		height: 12rem;
		left: 1rem;
	}
}
@media ( min-width: 1024px ) {
	.modal-btn-wrapper {
		height: 15rem;
		left: 2rem;
	}
}

.appear .modal-btn-wrapper {
	opacity: 0;
	animation-name: modalBtnAppearAnime;
	animation-delay: 1s;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}

/* KEYFRAMES */
@keyframes modalBtnAppearAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.HeaderHeightMin .modal-btn-wrapper {
	height: 8rem;
}
@media ( min-width: 768px ) {
	.HeaderHeightMin .modal-btn-wrapper {
		height: 10rem;
	}
}
@media ( min-width: 1024px ) {
	.HeaderHeightMin .modal-btn-wrapper {
		height: 12rem;
	}
}

.modal-btn {
	position: relative;
	z-index: 2;
	background-color: transparent;
	cursor: pointer;
	width: 5rem;
	height: 5rem;
	border-radius: 50%;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: ease;
}

.modal-btn span {
	display: inline-block;
	position: absolute;
	left: 1.6rem;
	height: 0.2rem;
	background: var(--main-color);
	width: 1.8rem;
	transition-property: all;
	transition-duration: 0.3s;
}

.modal-btn span:nth-of-type(1) {
	top: 1.7rem;
}

.modal-btn span:nth-of-type(2) {
	top: 2.4rem;
}

.modal-btn span:nth-of-type(3) {
	top: 3.1rem;
}

.HeaderHeightMin .modal-btn.active span {
	background: var(--main-color);
}

.modal-btn.active span:nth-of-type(1) {
	top: 1.8rem;
	left: 1.7rem;
	transform: translateY(0.6rem) rotate(-45deg);
	width: 1.7rem;
}

.modal-btn.active span:nth-of-type(2) {
	opacity: 0;
}

.modal-btn.active span:nth-of-type(3) {
	top: 3rem;
	left: 1.7rem;
	transform: translateY(-0.6rem) rotate(45deg);
	width: 1.7rem;
}

.modal-btn.active {
	box-shadow: none;
}

/* Modal Window
/* ---------------------------------------- */

/* Modal Container */

.modal {
	position: fixed;
	z-index: -1;
	top: -120%;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: rgba(255, 255, 255, 0.98);
	transition-property: all;
	transition-duration: 0.4s;
	transition-timing-function: ease-in-out;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

.panelactive .modal {
	top: 0;
	z-index: 102;
}

.modal__inner {
	display: none;
	width: 100%;
	margin: 10rem 0 0;
	padding: 3rem;
}
@media ( min-width: 500px ) {
	.modal__inner {
		padding: 10rem;
	}
}

/* Modal Block & Sitemap Block */

.modal__header,
.sitemap__header {
	margin: 0;
	padding: 0;
}

.modal__header-inner,
.sitemap__header-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.panelactive .modal__inner {
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 5rem;
}
@media ( min-width: 1024px ) {
	.panelactive .modal__inner {
		grid-template-columns: 40% 1fr;
	}
}

.panelactive .modal__header {
	animation-name: modalLogoAnime;
	animation-duration: 1s;
	animation-delay: 0.5s;
	animation-fill-mode: forwards;
	opacity: 0;
}
/* KEYFRAMES */
@keyframes modalLogoAnime {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.modal-ttl,
.sitemap-ttl {
	display: flex;
	justify-content: center;
}
@media ( min-width: 1024px ) {
	.modal-ttl,
	.sitemap-ttl {
		display: flex;
		justify-content: flex-start;
	}
}

.sitemap-ttl__inner {
	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: 15rem;
}
@media ( min-width: 768px ) {
	.modal-ttl__logo,
	.sitemap-ttl__logo {
		max-height: 17rem;
	}
}
@media ( min-width: 1024px ) {
	.modal-ttl__logo,
	.sitemap-ttl__logo {
		max-height: 20rem;
	}
}

.modal-ttl__link,
.sitemap-ttl__link  {
	text-decoration: none;
	color: var(--black);
}

/* 店舗詳細 */

.modal__company-detail,
.sitemap__company-detail {
	margin-top: 2em;
}

.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(--main-color);
	font-size: 0.95em;
	display: flex;
	align-items: center;
}

.modal-company-detail__list + .modal-company-detail__list,
.sitemap-company-detail__list + .sitemap-company-detail__list {
	margin-top: 0.1em;
}

.modal-company-detail__list--name,
.sitemap-company-detail__list--name {
	font-size: 1.3em;
	font-weight: 900;
	padding-bottom: 0.5em;
}

.modal-company-detail__map-link,
.sitemap-company-detail__map-link {
	color: inherit;
	text-decoration: none;
	margin-left: 0.5em;
}

.modal-company-detail__map-link::before,
.sitemap-company-detail__map-link::before {
	content: "\e89e";
	display: inline-block;
	font-family: 'Material Symbols Outlined';
	font-variation-settings: 'FILL' 1, 'wght' 400;
	font-size: 1.2em;
	transform: translateY(0.05em);
}

/* END: 店舗詳細 */

.modal__body,
.sitemap__body {
	margin: 0;
	padding: 0;
}
@media ( min-width: 1024px ) {
	.modal__body,
	.sitemap__body {
		padding-top: 10rem;
	}
}

.modal-nav,
.sitemap-list {
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
}

.modal-nav {
	opacity: 0;
}

.panelactive .modal-nav {
	animation-name: modalNavAnime;
	animation-duration: 0.5s;
	animation-delay: 1s;
	animation-fill-mode: forwards;
	opacity: 0;
}
/* KEYFRAMES */
@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;
}

.modal-nav__menu .sub-menu,
.sitemap-list__menu .sub-menu {
	font-size: 0.9em;
	list-style: none;
	margin-left: 1em;
	padding-bottom: 0.5rem;
}

.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 0 0 3.5rem;
	display: flex;
}

.modal-nav__item + .modal-nav__item,
.sitemap-list__item + .sitemap-list__item {
	margin-top: 1.5rem;
}

.modal-nav__link,
.sitemap-list__link {
	color: var(--black);
	font-size: 1em;
	font-weight: 700;
	text-decoration: none;
	letter-spacing: 0.02em;
	position: relative;
	margin: 0;
	padding: 0.5rem 0;
	display: flex;
	align-items: center;
}

.modal-nav__link::before,
.sitemap-list__link::before {
	content: "";
	position: absolute;
	left: -3.5rem;
	display: block;
	width: 1.3rem;
	height: 1.3rem;
	background: transparent;
	border-radius: 50%;
	border: 0.1rem solid var(--main-color);
	transform: translateY(0.05em);
	transition: all 0.5s ease;
}

.modal-nav__link::after,
.sitemap-list__link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background: var(--black);
	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-nav__link:hover::before,
.modal-nav__link:focus::before,
.sitemap-list__link:hover::before,
.sitemap-list__link:focus::before {
	background-color: var(--main-color);
}

/* Modal SNS & Sitemap SNS */

.modal-sns-list,
.sitemap-sns-list {
	margin: 5rem 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: all 0.2s;
}

.modal-sns-list__item,
.sitemap-sns-list__item {
	margin: 0 1rem 1rem 0;
	padding: 0;
}

.modal-sns-list__item {
	transform: translateY(-5rem);
	opacity: 0;
}

.panelactive .modal-sns-list__item {
	animation-name: modalNavAnime;
	animation-duration: 0.5s;
	animation-delay: 1.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;
	background-color: var(--white);
	border-radius: 2rem;
}

.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.3rem;
	text-decoration: none;
	position: absolute;
}

.modal-sns-list__link:hover,
.sitemap-sns-list__link:hover {
	background: var(--black);
	color: var(--white);
}

.modal-sns-list__link:hover::after,
.sitemap-sns-list__link:hover::after {
	animation-name: snsIconAnime;
	animation-duration: 0.4s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
/* KEYFRAMES */
@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*="twitter"]::after,
.sitemap-sns-list__link[href*="twitter"]::after {
	font-family: "Font Awesome";
	content: "\f099";
}
.modal-sns-list__link[href*="twitter"]:hover,
.sitemap-sns-list__link[href*="twitter"]:hover,
.modal-sns-list__link[href*="twitter"]:focus,
.sitemap-sns-list__link[href*="twitter"]:focus {
	background: #1DA1F2;
}

/* 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;
}

/* Tel Modal
/* ---------------------------------------- */

.contact-modal {
    display: none;
    height: 100vh;
    position: fixed;
    top: 0;
	z-index: 104;
    width: 100%;
}

.contact-modal__bg {
    background-color: rgba(0, 0, 0, 0.8);
    height: 100vh;
    position: absolute;
    width: 100%;
}

.contact-modal__body {
	width: calc(100% - 3rem);
	max-width: 100rem;
    background-color: var(--white);
	position: absolute;
    left: 50%;
	top: 50%;
    transform: translate(-50%, -50%);
	padding: 6rem 3rem;
}
@media ( min-width: 500px ) {
	.contact-modal__body {
		padding: 10rem 5rem;
	}
}

.contact-modal__tel-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.contact-modal__tel-heading {
	color: var(--main-color);
	font-size: 1.7rem;
	font-weight: 900;
	margin: 0 0 0.5em;
}
@media ( min-width: 500px ) {
	.contact-modal__tel-heading {
		font-size: 2rem;
	}
}

.contact-modal__note {
	margin: 1em 0 0;
}

.contact-modal__note-item {
	color: var(--main-color);
	font-size: 1.3rem;
	font-weight: 900;
	text-align: center;
}
@media ( min-width: 500px ) {
	.contact-modal__note-item {
		font-size: 1.6rem;
	}
}

.contact-modal__note-item + .contact-modal__note-item{
	margin-top: 0.5em;
}

.contact-modal__tel {
	color: var(--main-color);
	text-decoration: none;
	font-size: 3.5rem;
	letter-spacing: 0.03em;
	display: flex;
	align-items: center;
}
@media ( min-width: 500px ) {
	.contact-modal__tel {
		font-size: 5rem;
	}
}

.contact-modal__tel::before {
	content: "\e0b0";
	display: inline-block;
	font-family: 'Material Symbols Outlined';
	font-size: 0.8em;
	margin-right: 0.5em;
	font-variation-settings: 'FILL' 1,'wght' 500;
	transform: translateY(0.15em);
}

/* Close Button */

.contact-modal__close {
	position: absolute;
	top: 1rem;
	left: 1rem;
	z-index: 1000;
	width: 5rem;
	height: 5rem;
	cursor: pointer;
	background-color: transparent;
	transition: all 0.1s ease;
}

.contact-modal__close span {
	display: inline-block;
	transition: all 0.4s;
	position: absolute;
}

.contact-modal__close span:nth-of-type(1),
.contact-modal__close span:nth-of-type(2) {
	height: 0.3rem;
	border-radius: 0.1rem;
	background-color: var(--main-color);
	left: 1.2rem;
}

.contact-modal__close span:nth-of-type(1) {
	top: 1.7rem;
	left: 1.5rem;
	transform: translateY(0.6rem) rotate(-45deg);
	width: 40%;
}

.contact-modal__close span:nth-of-type(2) {
	top: 2.9rem;
	left: 1.5rem;
	transform: translateY(-0.6rem) rotate(45deg);
	width: 40%;
}

/* Images Modal
/* ---------------------------------------- */

.image-modal-display {
	display: none;
}

.image-modal-display.open {
	display: flex;
	align-items: center;
	justify-content: center;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100vh;
	background-color: rgba(0, 0, 0, 0.8);
	cursor: zoom-out;
	z-index: 999;
	animation-name: imageModalOpen;
	animation-timing-function: ease;
	animation-fill-mode: forwards;
	animation-duration: 0.5s;
}
/* KEYFRAMES */
@keyframes imageModalOpen {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.image-modal-display > * {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	width: auto;
	height: auto;
	max-width: 95%;
	max-height: 95%;
	cursor: zoom-out;
}

/* -------------------------------------------------------------------------- */

/*	Hero
/* -------------------------------------------------------------------------- */

.hero {
	position: relative;
	width: 100%;
	min-height: calc(100vh - 10rem);
	margin: 0;
	padding: 0;
	background-color: var(--main-color);
}
@media ( min-width: 1025px ) {
	.hero {
		min-height: calc(100vh - 15rem);
	}
}

.hero__slider {
	width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
	z-index: 1;
	overflow: hidden;
}

.hero__slider .swiper-wrapper {
	transition-timing-function: linear;
    width: 100%;
    height: 100%;
}

.hero__slider .swiper-slide {
	margin: 0;
	padding: 0;
}

.hero__img-wrapper {
	width: 100%;
	height: 100%;
}

.hero__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hero__main-copy-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	width: 100%;
	height: 100%;
	min-height: calc(100vh - 10rem);
	z-index: 3;
	padding: 3rem;
}
@media ( min-width: 1025px ) {
	.hero__main-copy-wrapper {
		min-height: calc(100vh - 15rem);
	}
}

.hero-main-copy {
	opacity: 0;
	animation-name: mainCopyAnimation;
	animation-duration: 1.5s;
	animation-timing-function: ease;
	animation-fill-mode: forwards;
	animation-delay: 2s;
}
/* KEYFRAMES */
@keyframes mainCopyAnimation {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

.hero-main-copy__txt {
	color: var(--white);
	font-size: 3em;
	font-weight: 900;
	text-align: center;
	line-height: 2;
	letter-spacing: 0.04em;
	text-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.5);
	word-break: keep-all;
}
@media ( min-width: 1025px ) {
	.hero-main-copy__txt {
		font-size: 4em;
	}
}

.hero__filter {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	background-color: rgba(0, 0, 0, 0.4);
}

/* Scroll Down
/* ---------------------------------------- */

.scrolldown {
	position: absolute;
	z-index: 100;
	bottom: 0;
	left: 50%;
	height: 6rem;
}

.scrolldown__txt {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 1.1rem;
	color: var(--white);
	font-size: 1.4rem;
	font-weight: 700;
	text-align: center;
	letter-spacing: 0.1em;
	writing-mode: vertical-rl;
	white-space: nowrap;
	text-shadow: 0 0 0.2rem #000000;
}

.scrolldown__txt::before {
	content: "Swipe";
}
@media ( min-width: 1025px ) {
	.scrolldown__txt::before {
		content: "Scroll";
	}
}

.scrolldown::before {
	opacity: 0;
	content: "";
	position: absolute;
	top: -0.5rem;
	left: -0.3rem;
	width: 0.7rem;
	height: 0.7rem;
	border-radius: 50%;
	background: var(--white);
	animation: scrollDownMove 1.6s ease-in-out infinite;
}

@keyframes scrollDownMove {
	0% {
		top: -0.5rem;
		opacity: 0;
	}
	20% {
		opacity: 0.9;
	}
	80% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		top: 6rem;
	}
}

.scrolldown::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 0.1rem;
	height: 6rem;
	background: var(--white);
}

.HeaderHeightMin .scrolldown {
	animation-name: scrolldownFadeOutAnime;
	animation-duration: 0.5s;
	animation-timing-function: ease;
	animation-fill-mode: forwards;
}
/* KEYFRAMES */
@keyframes scrolldownFadeOutAnime {
	0% {
		opacity: 1;
	}
	100% {
		opacity: 0;
		pointer-events: none;
	}
}

/* -------------------------------------------------------------------------- */

/* Main（メインコンテンツ）
/* -------------------------------------------------------------------------- */

.front-main {
	width: 100%;
	min-height: 100vh;
	position: relative;
	z-index: 2;
}

/* Frontpage
/* ---------------------------------------- */

.front-sect {
	position: relative;
}

.front-sect--bg1 {
	background-color: var(--white);
}

.front-sect--bg2 {
	background-color: var(--sub-color1);
}

.front-sect--bg3 {
	background-color: var(--main-color);
}

.front-sect__inner {
	padding: 10rem 0;
}
@media ( min-width: 1025px ) {
	.front-sect__inner {
		padding: 15rem 0;
	}
}

.front-sect__header {
	position: relative;
	margin: 0;
	padding: 0;
	color: var(--main-color);
	font-size: 2.2em;
	font-weight: 900;
	text-align: center;
}
@media ( min-width: 1024px ) {
	.front-sect__header {
		font-size: 3em;
	}
}

.front-sect__header--font-color-white {
	color: var(--white);
}

.front-sect__ttl-en {
	position: relative;
}

.front-sect__ttl-ja {
	font-size: 0.5em;
	margin: 0.5em 0 0;
}

.front-sect__body {
	margin: 10rem 0 0;
}

/* Frontpage > About
/* ---------------------------------------- */

/* Column1 */

.front-sect__about-col1 {
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 5rem;
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1 {
		grid-template-columns: 1fr 1fr;
		grid-gap: 0;
	}
}

.front-sect__about-col1-figure-wrapper {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	padding: 0 8rem 0 0;
}
@media ( min-width: 768px ) {
	.front-sect__about-col1-figure-wrapper {
		padding-right: 15rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1-figure-wrapper {
		padding-right: 10rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col1-figure-wrapper {
		padding-right: 20rem;
	}
}

.front-sect__about-col1-img-wrapper {
	width: 100%;
	position: relative;
	overflow: hidden;
}

.front-sect__about-col1-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-sect__about-col1-img-wrapper1 {
	aspect-ratio: 4 / 3;
}
@media ( min-width: 768px ) {
	.front-sect__about-col1-img-wrapper1 {
		aspect-ratio: 3 / 2;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1-img-wrapper1 {
		aspect-ratio: 4 / 3;
	}
}

.front-sect__about-col1-img-wrapper2 {
	aspect-ratio: 1 / 1;
	width: 50%;
	margin: -3rem -3rem 0 0;
}
@media ( min-width: 768px ) {
	.front-sect__about-col1-img-wrapper2 {
		aspect-ratio: 3 / 2;
		width: 60%;
		margin: -5rem -5rem 0 0;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1-img-wrapper2 {
		aspect-ratio: 1 / 1;
		width: 50%;
		margin: -5rem -5rem 0 0;
	}
}

.front-sect__about-col1-txt-wrapper {
	margin: 0;
	padding: 0 2rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col1-txt-wrapper {
		padding: 0 10rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1-txt-wrapper {
		padding: 0 5rem 0 0;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col1-txt-wrapper {
		padding: 0 10rem 0 0;
	}
}

.front-sect__about-col1-header {
	margin: 0;
	padding: 0;
	color: var(--main-color);
	font-size: 2.2em;
	font-weight: 900;
}
@media ( min-width: 1024px ) {
	.front-sect__about-col1-header {
		font-size: 3em;
	}
}

.front-sect__about-col1-ttl-en {
	position: relative;
}

.front-sect__about-col1-ttl-ja {
	font-size: 0.5em;
	margin: 0.5em 0 0;
}

.front-sect__about-col1-desc {
	font-size: 1.1em;
	line-height: 2.1;
	margin: 3em 0 0;
}

/* Column2 */

.front-sect__about-col2 {
	margin: 10rem 0 0;
	display: grid;
	grid-gap: 5rem;
	grid-template-columns: 1fr;
}
@media ( min-width: 768px ) {
	.front-sect__about-col2 {
		grid-gap: 10rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col2 {
		margin-top: 10rem;
		grid-template-columns: 1fr 1fr;
		grid-gap: 0;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col2 {
		margin-top: 15rem;
	}
}

.front-sect__about-col2-figure-wrapper1 {
	margin: 0;
	padding: 0 2rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col2-figure-wrapper1 {
		padding: 0 10rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col2-figure-wrapper1 {
		padding: 0 0 0 5rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col2-figure-wrapper1 {
		padding-left: 20rem;
	}
}

.front-sect__about-col2-figure-wrapper2 {
	display: flex;
	flex-direction: column;
	padding: 0 0 0 8rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col2-figure-wrapper2 {
		padding-left: 15rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col2-figure-wrapper2 {
		padding-left: 10rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col2-figure-wrapper2 {
		padding-left: 20rem;
	}
}

.front-sect__about-col2-img-wrapper {
	width: 100%;
	position: relative;
	overflow: hidden;
}

.front-sect__about-col2-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-sect__about-col2-img-wrapper1 {
	aspect-ratio: 4 / 3;
}
@media ( min-width: 768px ) {
	.front-sect__about-col2-img-wrapper1 {
		aspect-ratio: 3 / 2;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col2-img-wrapper1 {
		aspect-ratio: 4 / 3;
	}
}

.front-sect__about-col2-img-wrapper2 {
	aspect-ratio: 3 / 2;
	width: 70%;
	margin: -3rem 0 0 -3rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col2-img-wrapper2 {
		margin: -5rem 0 0 -5rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col2-img-wrapper2 {
		margin: -5rem 0 0 -5rem;
	}
}

/* Column3 */

.front-sect__about-col3 {
	margin: 10rem 0 0;
	display: grid;
	grid-template-columns: 1fr;
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3 {
		grid-template-columns: 1fr 1fr;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col3 {
		margin-top: 15rem;
	}
}

.front-sect__about-col3-txt-wrapper {
	margin: 0;
	padding: 0;
}

.front-sect__about-col3-desc-wrapper {
	margin: 0;
	padding: 0 2rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col3-desc-wrapper {
		padding: 0 10rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3-desc-wrapper {
		padding: 0 0 0 5rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col3-desc-wrapper {
		padding-left: 10rem;
	}
}

.front-sect__about-col3-desc {
	font-size: 1.2em;
	font-weight: 900;
	line-height: 2.1;
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3-desc {
		font-size: 1.4em;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col3-desc {
		font-size: 1.7em;
	}
}

.front-sect__about-col3-btn-wrapper {
	margin: 2em 0 0;
	padding: 0;
	display: flex;
}

.front-sect__about-col3-figure-wrapper {
	display: flex;
	flex-direction: column;
	padding: 0 0 0 8rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col3-figure-wrapper {
		padding-left: 15rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3-figure-wrapper {
		padding-left: 15rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__about-col3-figure-wrapper {
		padding-left: 30rem;
	}
}

.front-sect__about-col3-img-wrapper {
	width: 100%;
	position: relative;
	overflow: hidden;
}

.front-sect__about-col3-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-sect__about-col3-img-wrapper1 {
	aspect-ratio: 4 / 3;
	width: 80%;
	margin: 10rem 0 -3rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col3-img-wrapper1 {
		width: 70%;
		margin-bottom: -5rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3-img-wrapper1 {
		margin: 10rem 0 0;
	}
}

.front-sect__about-col3-img-wrapper2 {
	aspect-ratio: 3 / 2;
}

.front-sect__about-col3-img-wrapper3 {
	aspect-ratio: 1 / 1;
	width: 60%;
	margin: -3rem 0 0 -3rem;
}
@media ( min-width: 768px ) {
	.front-sect__about-col3-img-wrapper3 {
		width: 50%;
		margin: -5rem 0 0 -5rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__about-col3-img-wrapper3 {
		width: 50%;
		margin: -5rem 0 0 -5rem;
	}
}

/* Text Slider */

.front-sect__txt-slider {
	width: 100%;
	height: 30rem;
}
@media ( min-width: 1024px ) {
	.front-sect__txt-slider {
		height: 40rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__txt-slider {
		height: 50rem;
	}
}

.marquee-wrapper {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	margin: 0 auto;
	overflow: hidden;
	display: flex;
	align-items: center;
}

.marquee {
	transition: all 0.3s;
	animation: marquee 10s linear infinite;
	position: absolute;
	display: flex;
	white-space: nowrap;
	left: 100%;
	transform: translateX(0);
}
@media ( min-width: 1024px ) {
	.marquee {
		animation: marquee 15s linear infinite;
	}
}
@media ( min-width: 1200px ) {
	.marquee {
		animation: marquee 25s linear infinite;
	}
}

/* KEYFRAMES */
@keyframes marquee {
	0% {
		left: 100%;
		transform: translateX(0);
	}
	100% {
		left: 0;
		transform: translateX(-100%);
	}
}

.marquee__item {
	display: block;
	color: var(--sub-color1);
	font-size: 30rem;
	font-weight: 900;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	white-space: nowrap;
	text-align: center;
	transform: translateY(6%);
}
@media ( min-width: 1024px ) {
	.marquee__item {
		font-size: 40rem;
	}
}
@media ( min-width: 1200px ) {
	.marquee__item {
		font-size: 50rem;
	}
}

/* Frontpage > Service
/* ---------------------------------------- */

.front-sect__service-cols {
	width: calc(100% - 4rem);
	max-width: 120rem;
	margin: 0 auto;
	padding: 0;
}
@media ( min-width: 768px ) {
	.front-sect__service-cols {
		width: calc(100% - 20rem);
	}
}
@media ( min-width: 1024px ) {
	.front-sect__service-cols {
		width: calc(100% - 4rem);
	}
}

.front-sect__service-col {
	width: 100%;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 0;
}
@media ( min-width: 1024px ) {
	.front-sect__service-col {
		grid-template-columns: 33.3% 1fr;
		grid-gap: 4rem;
		align-items: center;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__service-col {
		grid-gap: 5rem;
	}
}

.front-sect__service-col + .front-sect__service-col {
	margin-top: 10rem;
}

.front-sect__service-col-figure-wrapper {
	position: relative;
	overflow: hidden;
}

.front-sect__service-col-slider {
	aspect-ratio: 3 / 2;
	background-color: var(--gray-20);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
@media ( min-width: 1024px ) {
	.front-sect__service-col-slider {
		aspect-ratio: 1 / 1;
		background-color: var(--gray-20);
		border-radius: 50%;
	}
}

.front-sect__service-col-img-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
}

.front-sect__service-col-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-sect__service-col-img--noimage {
	color: var(--white);
	font-size: 1.3em;
	font-weight: 900;
	white-space: nowrap;
}

.front-sect__service-col-num {
	color: var(--white);
	font-size: 6rem;
	font-weight: 900;
	text-align: right;
	display: block;
	position: relative;
	z-index: 2;
	text-shadow:
		0.1rem 0.1rem 0 var(--black),
		-0.1rem 0.1rem 0 var(--black),
		0.1rem -0.1rem 0 var(--black),
		-0.1rem -0.1rem 0 var(--black);
	margin: -4rem 0 0;
	padding: 0 1.5rem 0 0;
}
@media ( min-width: 1024px ) {
	.front-sect__service-col-num {
		font-size: 8rem;
		text-align: center;
		position: absolute;
		bottom: 0;
		left: 0;
		margin-top: 0;
		padding-right: 0;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__service-col-num {
		font-size: 9rem;
	}
}

.front-sect__service-col-txt-wrapper {
	margin: 0;
	padding: 0;
}

.front-sect__service-col-header {
	margin: 0;
	padding: 0;
}

.front-sect__service-col-ttl {
	font-size: 1.8em;
}
@media ( min-width: 1024px ) {
	.front-sect__service-col-ttl {
		font-size: 2.1em;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__service-col-ttl {
		font-size: 2.4em;
	}
}

.front-sect__service-col-content {
	font-size: 1.1em;
	line-height: 1.9;
	margin: 1.5em 0 0;
	padding: 0;
}

.front-sect__service-col-btn-wrapper {
	margin: 2em 0 0;
	display: flex;
}

/* Frontpage > Case
/* ---------------------------------------- */

.front-sect__case-cols {
	width: 100%;
	max-width: 100rem;
	margin: 0 auto;
	padding: 0 0.1rem;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 0.1rem;
}

.front-sect__case-col {
	margin: 0;
	padding: 0;
	overflow: hidden;
}

.front-sect__case-col-slider {
	margin: 0;
	padding: 0;
	aspect-ratio: 1 / 1;
	background-color: var(--gray-20);
}

.front-sect__case-col-img-wrapper {
	width: 100%;
	height: 100%;
	position: relative;
	overflow: hidden;
}

.front-sect__case-col-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.front-sect__case-btn-wrapper {
	margin: 5rem 0 0;
	display: flex;
	justify-content: center;
}

/* Frontpage > AREA
/* ---------------------------------------- */

.front-sect__area-col {
	width: calc(100% - 4rem);
	max-width: 120rem;
	margin: 0 auto;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 3rem;
}
@media ( min-width: 768px ) {
	.front-sect__area-col {
		width: calc(100% - 20rem);
		grid-gap: 4rem;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__area-col {
		grid-template-columns: 1fr 1fr;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__area-col {
		grid-gap: 5rem;
	}
}

.front-sect__area-col-map-wrapper {
	position: relative;
	aspect-ratio: 9 / 16;
	background-color: var(--gray-20);
}
@media ( min-width: 768px ) {
	.front-sect__area-col-map-wrapper {
		aspect-ratio: 3 / 4;
	}
}

.front-sect__area-col-map-wrapper iframe {
	width: 100%;
	height: 100%;
}

.front-sect__area-col-txt-wrapper {
	position: relative;
}

.front-sect__area-col-header {
	position: relative;
}

.front-sect__area-col-ttl {
	font-size: 1.4em;
}
@media ( min-width: 1024px ) {
	.front-sect__area-col-ttl {
		font-size: 1.6em;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__area-col-ttl {
		font-size: 1.8em;
	}
}

.front-sect__area-col-tags {
	position: relative;
	margin: 2em 0 0 -0.5em;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
}

.front-sect__area-col-tag {
	font-size: 1em;
	font-weight: 900;
	margin: 0.5em 0 0 0.5em;
	padding: 0.8em 2em;
	border: 0.1rem solid var(--black);
	background-color: var(--white);
	border-radius: 10rem;
}

.front-sect__area-col-note {
	position: relative;
	margin: 1.5em 0 0;
	font-size: 0.95em;
	font-weight: 900;
	line-height: 1.8;
}

/* Service Schedule
/* ------------------------------------- */

.service-schedule-outer {
	margin: 10rem auto 0;
	padding: 0;
}
@media ( min-width: 1024px ) {
	.service-schedule-outer {
		margin-top: 20rem;
	}
}

.service-schedule__header {
	width: calc(100% - 4rem);
	max-width: 120rem;
	margin: 0 auto 2rem;
	padding: 0;
	color: var(--main-color);
	font-size: 2.4em;
	font-weight: 900;
	text-align: center;
}
@media ( min-width: 1024px ) {
	.service-schedule__header {
		margin-bottom: 4rem;
	}
}

.service-schedule__header-ttl-en {
	position: relative;
}

.service-schedule__header-ttl-ja {
	font-size: 0.5em;
	margin: 0.5em 0 0;
}

.service-schedule__header-desc {
	width: calc(100% - 4rem);
	margin: 2rem auto 0;
	font-size: 0.95em;
	line-height: 1.6;
}
@media ( min-width: 768px ) {
	.service-schedule__header-desc {
		text-align: center;
	}
}

.service-schedule-wrapper {
	padding: 1.5rem;
}
@media ( min-width: 1024px ) {
	.service-schedule-wrapper {
		padding: 2rem 4rem;
	}
}

.service-schedule {
	width: 147rem;
	padding: 0 1rem;
	background-color: var(--white);
	box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.2);
	border-radius: 0.5rem;
}
@media ( min-width: 1024px ) {
	.service-schedule {
		width: 200rem;
	}
}

.service-schedule-table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	table-layout: fixed;
}

.service-schedule-table thead th,
.service-schedule-table tfoot th {
	color: var(--main-color);
	font-size: 1.3rem;
	font-weight: 700;
	text-align: center;
	position: relative;
	margin: 0;
	padding: 1rem 0;
}
@media ( min-width: 1024px ) {
	.service-schedule-table thead th,
	.service-schedule-table tfoot th {
		font-size: 1.7rem;
	}
}

.service-schedule-table thead th {
	border-bottom: 1px dotted var(--black);
}

.service-schedule-table tfoot th {
	border-top: 1px dotted var(--black);
}

.service-schedule-table thead th::after,
.service-schedule-table tfoot th::after {
	content: "";
	display: block;
	position: absolute;
	top: 1rem;
	bottom: 1rem;
	right: 0;
	left: 0;
	border-right: 1px dotted var(--black);
}

.service-schedule-table thead th:last-of-type::after,
.service-schedule-table tfoot th:last-of-type::after {
	border-right: none;
}

.service-schedule-table thead tr th.active span::before,
.service-schedule-table tfoot tr th.active span::before {
	content: "";
	color: var(--white);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1;
	margin: 0 0.6rem 0 0;
	padding: 0.4rem 0.6rem 0.3rem;
	display:inline-block;
	background-color: var(--caution-color);
	border-radius: 0.3rem;
	transform: translateY(-0.2rem);
}
@media ( min-width: 1024px ) {
	.service-schedule-table thead tr th.active span::before,
	.service-schedule-table tfoot tr th.active span::before {
		font-size: 1.2rem;
	}
}

.service-schedule-table thead tr.month th.active span::before,
.service-schedule-table tfoot tr.month th.active span::before {
	content: "NOW";
	font-family: "Noto Sans JP";
}

.service-schedule-table thead tr.season th.active span::before,
.service-schedule-table tfoot tr.season th.active span::before {
	content: "NOW";
	font-family: "Noto Sans JP";
}

.service-schedule-table tbody td {
	width: calc(100% / 12);
	padding: 0.5rem 1rem;
	text-align: center;
	border-right: 1px dotted var(--black);
}

.service-schedule-table tbody td:last-of-type {
	border-right: none;
}

.service-schedule-table tbody tr:first-of-type td,
.service-schedule-table tbody tr:last-of-type td {
	border-right: none;
}

.service-schedule-table tbody td a {
	color: var(--black);
	font-size: 0.9em;
	font-weight: 900;
	letter-spacing: 0.01em;
	text-decoration: none;
	text-align: left;
	background-color: #ffffaa;
	display: block;
	border: 0.1rem solid var(--gray-20);
	margin: 0;
	padding: 0.5em 1.5rem;
	border-radius: 0.4rem;
	transition: all 0.2s;
	text-overflow: ellipsis;
	overflow: hidden;
}
@media ( min-width: 1024px ) {
	.service-schedule-table tbody td a {
		text-align: center;
	}
}

.service-schedule-table tbody td a span {
	position: sticky;
	left: 0;
}

.service-schedule-table tbody td a:hover {
	background-color: var(--gray-10);
}

.service-schedule-table .no-link {
	pointer-events: none;
}

/* Scroll side */

.scrollside-wrapper {
	margin: 2em 0;
	padding: 0;
	display: flex;
	justify-content: center;
}

.scrollside {
	position: relative;
	display: inline-block;
	text-align: center;
	width: 6rem;
}

.scrollside span {
	display: inline-block;
	color: var(--main-color);
	font-size: 1.6rem;
	padding: 0.5rem 0;
}

.scrollside span::before {
	content: "Swipe";
}
@media ( min-width: 1024px ) {
	.scrollside span::before {
		content: "Scroll";
	}
}

.scrollside::before {
	content:"";
	position: absolute;
	left: 0;
	bottom: -0.4rem;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	background-color: var(--main-color);
	animation: scrollSideMove 1.6s ease-in-out infinite;
}
@keyframes scrollSideMove {
	0% {
		opacity: 0;
		left: -0.5rem;
	}
	50% {
		opacity: 1;
	}
	80% {
		opacity: 0.9;
	}
	100% {
		opacity: 0;
		left: 5.5rem;
	} 
}

.scrollside::after {
	content:"";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 0.2rem;
	background-color: var(--main-color);
}

/* Frontpage > Price
/* ---------------------------------------- */

.front-sect__price-wrapper {
	width: calc(100% - 4rem);
	max-width: 80rem;
	margin: 10rem auto 0;
	padding: 0;
}
@media ( min-width: 768px ) {
	.front-sect__price-wrapper {
		width: calc(100% - 20rem);
	}
}
@media ( min-width: 1024px ) {
	.front-sect__price-wrapper {
		width: calc(100% - 4rem);
	}
}

.front-sect__price-caution {
	font-size: 0.9em;
	text-align: right;
	margin: 0 0 0.5em;
	padding: 0 0.5em 0 0;
}

.front-sect__price {
	margin: 0;
	padding: 0;
	background-color: var(--sub-color2);
	border-radius: 1rem;
	border: 0.1rem solid var(--gray-20);
}

.front-sect__price + .front-sect__price {
	margin-top: 1rem;
}
@media ( min-width: 1024px ) {
	.front-sect__price + .front-sect__price {
		margin-top: 1.5rem;
	}
}

.front-sect__price-ttl {
	margin: 0;
	padding: 1.5em 1.5em 1.5em 6rem;
	position: relative;
	cursor: pointer;
	color: var(--main-color);
	font-size: 1.2em;
	font-weight: 900;
	transition-property: all;
	transition-duration: 0.3s;
	transition-timing-function: ease;
}

.front-sect__price-ttl::before,
.front-sect__price-ttl::after {
	position: absolute;
	content: "";
	width: 1.5rem;
	height: 0.2rem;
	background: var(--main-color);
	transition-property: all;
	transition-duration: 0.5s;
	transition-timing-function: ease;
}

.front-sect__price-ttl::before {
	top: 50%;
	left: 1.5em;
	transform: rotate(0deg);
}

.front-sect__price-ttl::after {
	top: 50%;
	left: 1.5em;
	transform: rotate(90deg);
}

.front-sect__price-ttl.close::before {
	transform: rotate(135deg);
}

.front-sect__price-ttl.close::after {
	transform: rotate(225deg);
}

.front-sect__price-content-wrapper {
	display: none;
	margin: 0;
	padding: 0 1em;
}
@media ( min-width: 1024px ) {
	.front-sect__price-content-wrapper {
		padding: 0 1.5em;
	}
}

.front-sect__price-content {
	font-size: 1em;
	line-height: 1.7;
	margin-bottom: 0;
}

/* List Item */

.front-sect__price-content-item {
	list-style: none;
	margin: 0;
	padding: 2rem 0;
	display: grid;
	grid-template-columns: 1fr;
}
@media ( min-width: 1024px ) {
	.front-sect__price-content-item {
		grid-template-columns: 33.33% 1fr;
		align-items: center;
		padding: 2.5rem 0;
	}
}

.front-sect__price-content-item + .front-sect__price-content-item {
	border-top: 0.1rem solid var(--gray-20);
}

.front-sect__price-content-item-name {
	font-weight: 900;
	margin: 0;
	padding: 0 1rem;
}

.front-sect__price-content-item-content {
	margin: 1em 0 0 1em;
	padding: 0 1rem;
}
@media ( min-width: 1024px ) {
	.front-sect__price-content-item-content {
		margin: 0;
	}
}

/* Note */

.front-sect__price-note-wrapper {
	width: calc(100% - 4rem);
	max-width: 80rem;
	margin: 5rem auto 0;
	padding: 0;
}
@media ( min-width: 768px ) {
	.front-sect__price-note-wrapper {
		width: calc(100% - 20rem);
	}
}
@media ( min-width: 1024px ) {
	.front-sect__price-note-wrapper {
		width: calc(100% - 4rem);
	}
}

.front-sect__price-note {
	color: var(--caution-color);
	font-size: 1.1em;
	font-weight: 900;
	line-height: 1.8;
}

/* Button */

.front-sect__price-btn-wrapper {
	margin: 5rem auto 0;
	padding: 0;
	display: flex;
	justify-content: center;
}


/* Frontpage > Tools
/* ---------------------------------------- */

.front-sect__tool-slider {
	width: 100%;
	margin: 0;
	padding: 0;
}

.front-sect__tool-slider .swiper-wrapper {
	transition-timing-function: linear;
}

.front-sect__tool-slider-img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.front-sect__tool-slider-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Frontpage > Company Info
/* ---------------------------------------- */

.front-sect__companyinfo-cols {
	width: calc(100% - 4rem);
	max-width: 70rem;
	margin: 0 auto;
	padding: 0;
}
@media ( min-width: 768px ) {
	.front-sect__companyinfo-cols {
		width: calc(100% - 20rem);
	}
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-cols {
		width: calc(100% - 4rem);
	}
}

.front-sect__companyinfo-col {
	margin: 0;
	padding: 1.5rem 0;
	display: grid;
	grid-template-columns: 1fr;
	border-bottom: 0.1rem solid var(--gray-20);
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-col {
		padding: 2rem 0;
		grid-template-columns: 20% 1fr;
	}
}

.front-sect__companyinfo-col-name,
.front-sect__companyinfo-col-content {
	font-size: 1.1em;
	line-height: 1.6;
	margin: 0;
	padding: 0 1rem;
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-col-name,
	.front-sect__companyinfo-col-content {
		padding: 0 2rem;
	}
}

.front-sect__companyinfo-col-name {
	color: var(--main-color);
	font-weight: 900;
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-col-name {
		text-align: right;
	}
}

.front-sect__companyinfo-col-content {
	margin: 1em 0 0 1em;
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-col-content {
		margin: 0;
	}
}

.front-sect__companyinfo-map-wrapper {
	width: 100%;
	height: 40rem;
}
@media ( min-width: 1024px ) {
	.front-sect__companyinfo-map-wrapper {
		height: 50rem;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__companyinfo-map-wrapper {
		height: 60rem;
	}
}

.front-sect__companyinfo-map-wrapper iframe {
	width: 100%;
	height: 100%;
}

/* Frontpage > Contact
/* ---------------------------------------- */

.front-sect__contact-col {
	width: calc(100% - 4rem);
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
@media ( min-width: 1024px ) {
	.front-sect__contact-col {
		flex-direction: row;
		justify-content: center;
	}
}

.front-sect__contact-col-tel,
.front-sect__contact-col-mail {
	margin: 0;
	padding: 0;
}

.front-sect__contact-col-mail {
	margin: 2rem 0 0;
}
@media ( min-width: 1024px ) {
	.front-sect__contact-col-mail {
		margin: 0 0 0 3rem;
	}
}

.front-sect__contact-col-tel-link,
.front-sect__contact-col-mail-link {
	height: 4.4rem;
	color: var(--white);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	text-decoration: none;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 3rem 0 5.4rem;
	position: relative;
	border-left: 0;
	border-radius: 10rem;
	background-color: transparent;
	overflow: hidden;
	transition: ease 0.2s;
}
@media ( min-width: 1024px ) {
	.front-sect__contact-col-tel-link,
	.front-sect__contact-col-mail-link {
		height: 5rem;
		font-size: 1.8rem;
		padding-left: 6rem;
	}
}

.front-sect__contact-col-tel-icon,
.front-sect__contact-col-mail-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4.4rem;
	height: 4.4rem;
	background-color: var(--white);
	color: var(--main-color);
	border-radius: 50%;
	position: absolute;
	left: 0;
	z-index: 3;
	transition: ease 0.2s;
}
@media ( min-width: 1024px ) {
	.front-sect__contact-col-tel-icon,
	.front-sect__contact-col-mail-icon  {
		width: 5rem;
		height: 5rem;
	}
}

.front-sect__contact-col-tel-icon::before,
.front-sect__contact-col-mail-icon::before {
	content: "";
	font-family: 'Material Symbols Outlined';
	display: inline-block;
	font-size: 2rem;
	transform: translateY(0.1rem);
}
@media ( min-width: 1024px ) {
	.front-sect__contact-col-tel-icon::before,
	.front-sect__contact-col-mail-icon::before {
		font-size: 2.4rem;
	}
}

.front-sect__contact-col-tel-icon::before {
	content: "\e0b0";
	font-variation-settings: 'FILL' 1, 'wght' 500;
}

.front-sect__contact-col-mail-icon::before {
	content: "\e158";
	font-variation-settings: 'FILL' 1, 'wght' 300;
}

.front-sect__contact-col-tel-txt,
.front-sect__contact-col-mail-txt {
	margin: 0;
	padding: 0.5rem 0;
	position: relative;
	z-index: 3;
	border-bottom: 0.1rem solid var(--white);
}

.front-sect__contact-col-tel-link::before,
.front-sect__contact-col-mail-link::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: var(--white);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.front-sect__contact-col-tel-link:hover::before,
.front-sect__contact-col-mail-link:hover::before,
.front-sect__contact-col-tel-link:focus::before,
.front-sect__contact-col-mail-link:focus::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.front-sect__contact-col-tel-link:hover,
.front-sect__contact-col-mail-link:hover,
.front-sect__contact-col-tel-link:focus,
.front-sect__contact-col-mail-link:focus {
	color: var(--main-color);
}

.front-sect__contact-col-tel-link:hover .front-sect__contact-col-tel-icon,
.front-sect__contact-col-mail-link:hover .front-sect__contact-col-mail-icon,
.front-sect__contact-col-tel-link:focus .front-sect__contact-col-tel-icon,
.front-sect__contact-col-mail-link:focus .front-sect__contact-col-mail-icon {
	transform: scale(0.7);
	background-color: var(--main-color);
	color: var(--white);
}

.front-sect__contact-col-note {
	width: calc(100% - 4rem);
	margin: 2em auto 0;
}

.front-sect__contact-col-note-item {
	color: var(--white);
	font-size: 1em;
	font-weight: 900;
	text-align: center;
}

.front-sect__contact-col-note-item + .front-sect__contact-col-note-item {
	margin-top: 0.5em;
}

.front-sect__contact-col-caution {
	width: calc(100% - 4rem);
	margin: 4em auto 0;
	color: var(--white);
	font-size: 0.9em;
	line-height: 1.8;
}
@media ( min-width: 768px ) {
	.front-sect__contact-col-caution {
		text-align: center;
	}
}

/* Catch Copy */

.front-sect__contact-catchcopy-wrapper {
	width: calc(100% - 4rem);
	margin: 0 auto 3em;
}

.front-sect__contact-catchcopy {
	color: var(--white);
	font-size: 1.3em;
	font-weight: 900;
	letter-spacing: 0.02em;
	line-height: 2;
	text-align: center;
}
@media ( min-width: 768px ) {
	.front-sect__contact-catchcopy {
		font-size: 1.8em;
	}
}
@media ( min-width: 1024px ) {
	.front-sect__contact-catchcopy {
		font-size: 2.1em;
	}
}
@media ( min-width: 1200px ) {
	.front-sect__contact-catchcopy {
		font-size: 2.4em;
	}
}

/* Slider */

.front-sect__contact-slider {
	width: 100%;
	position: relative;
	overflow: hidden;
	margin: 0;
	padding: 0;
}

.front-sect__contact-slider .swiper-wrapper {
	transition-timing-function: linear;
}

.front-sect__contact-slider-img-wrapper {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 2;
}

.front-sect__contact-slider-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* News（お知らせ）
/* ---------------------------------------- */

.front-news-column-wrapper {
	width: calc(100% - 4rem);
	margin: 5rem auto 0;
	padding: 0;
}

.news-column {
	width: 100%;
	max-width: 70rem;
	position: relative;
	margin: 0 auto;
}

.news-column__posts {
	list-style: none;
	margin: 0;
	padding: 0;
}

.news-column__post {
	margin: 0;
}

.news-column__post-link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	padding: 2rem 1rem;
	position: relative;
}
@media ( min-width: 768px ) {
	.news-column__post-link {
		flex-direction: row;
		align-items: center;
		text-decoration: none;
		padding: 3rem 1.5rem;
		position: relative;
	}
}

.news-column__post-link::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background-color: var(--gray-20);
}

.news-column__post-link::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 0.1rem;
	background-color: var(--main-color);
	transform: scale(0, 1);
	transform-origin: right top;
	transition-property: transform;
	transition-duration: 0.3s;
}

.news-column__post-link:hover::after,
.news-column__post-link:focus::after {
	transform-origin: left top;
	transform: scale(1, 1);
}

.news-column__post-ttl {
	font-size: 1em;
	display: flex;
	align-items: center;
	margin: 0.5em 0 0 0;
}
@media ( min-width: 768px ) {
	.news-column__post-ttl {
		margin: 0 0 0 3rem;
	}
}

.news-column__post-date {
	font-size: 0.9em;
	white-space: nowrap;
}

.news-column__post--nopost {
	display: flex;
	align-items: center;
}

.news-column__btn-wrapper {
	margin-top: 5rem;
	display: flex;
	justify-content: center;
}

.news-column__more-link {
	font-size: 1.2em;
	text-decoration: none;
}

.news-column__new {
	font-family: "Roboto";
	font-size: 1.1rem;
	color: var(--caution-color);
	font-weight: 900;
	margin-right: 1em;
	white-space: nowrap;
}

.news-column__status,
.single-cont__status {
	display: flex;
	align-items: center;
}

.news-column__cat,
.single-cont__cat {
	width: 7em;
	color: var(--white);
	font-size: 0.8em;
	text-align: center;
	letter-spacing: 0.05em;
	background-color: var(--black);
	margin: 0 1rem 0 0;
	padding: 0.3em 0.3em;
	border-radius: 0.2rem;
	white-space: nowrap;
	text-overflow: ellipsis;
	overflow: hidden;
}
@media ( min-width: 768px ) {
	.news-column__cat,
	.single-cont__cat {
		margin-right: 1.5rem;
	}
}

.news-column__cat--notice,
.single-cont__cat--notice {
	background-color: var(--red);
}

.news-column__cat--activity,
.single-cont__cat--activity {
	background-color: var(--yellow);
	color: var(--black);
}

/* -------------------------------------------------------------------------- */

/* Underlayer Common（下層ページ共通）
/* -------------------------------------------------------------------------- */

/* Container */

.page-main,
.single-main,
.archive-main {
	position: relative;
	padding: 0 0 15rem;
}

/* Header */

.page-main__header,
.single-main__header,
.archive-main__header {
	width: 100%;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 4em 0 0;
}

.page-main__ttl,
.single-main__ttl,
.archive-main__ttl {
	color: var(--main-color);
	font-size: 2.2em;
	font-weight: 900;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;	
}
@media ( min-width: 500px ) {
	.page-main__ttl,
	.single-main__ttl,
	.archive-main__ttl {
		font-size: 3em;	
	}
}

.page-main__ttl-en,
.single-main__ttl-en,
.archive-main__ttl-en {
	text-transform: uppercase;
}

.page-main__ttl-jp,
.single-main__ttl-jp,
.archive-main__ttl-jp {
	font-size: 0.5em;
	margin: 0.5em 0 0;
}

.page-cont__header-desc {
	margin: 1.5em 0 0;
	line-height: 1.8;
}

/* Body */

.page-main__body,
.single-main__body,
.archive-main__body {
	position: relative;
	width: calc(100% - 4rem);
	max-width: 70rem;
	margin: 4em auto 0;
}

/* Content */

.page-cont,
.single-cont {
	position: relative;
}

.page-cont__header,
.single-cont__header {
	margin: 0;
	padding: 0;
}

.page-cont__ttl,
.single-cont__ttl {
	position: relative;
}

.single-cont__case-ttl {
	text-align: center;
}

.page-cont__post-content,
.single-cont__post-content {
	margin: 2em 0 0;
	padding: 2em 0;
	border-top: 0.1rem solid var(--gray-20);
	border-bottom: 0.1rem solid var(--gray-20);
}

.page-cont__btn-wrapper,
.single-cont__btn-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-top: 10rem;
}
@media ( min-width: 500px ) {
	.page-cont__btn-wrapper,
	.single-cont__btn-wrapper {
		flex-direction: row;
	}
}

.page-cont__inner,
.single-cont__inner  {
	position: relative;
	margin: 0;
	padding: 0;
}

.page-cont__inner + .page-cont__inner,
.single-cont__inner + .single-cont__inner {
	margin-top: 6em;
}

/* Button */

.archive-main__btn-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	margin-top: 10rem;
}
@media ( min-width: 500px ) {
	.archive-main__btn-wrapper {
		flex-direction: row;
	}
}

/* -------------------------------------------------------------------------- */

/* Page（固定ぺージ）
/* -------------------------------------------------------------------------- */

.page-cont-column-bl {
	margin-top: 10rem;
}

.page-cont-column-bl__header {
	position: relative;
}

.page-cont-column-bl__ttl {
	position: relative;
	text-align: center;
}

.page-cont-column-bl__column {
	margin-top: 1.5em;
}

/* Contact
/* ---------------------------------------- */

/* Tel */

.page-cont__contact-tel-wrapper {
	margin: 2em 0 0;
	padding: 3em 1.5em;
	text-align: center;
	background-color: var(--sub-color2);
	border-radius: 0.5rem;
}
@media ( min-width: 1024px ) {
	.page-cont__contact-tel-wrapper {
		padding: 3em 2em;
	}
}

.page-cont__contact-tel {
	display: flex;
	justify-content: center;
	margin: 0;
	padding: 0;
}

.page-cont__contact-tel-link {
	height: 4.4rem;
	color: var(--black);
	font-size: 1.5rem;
	font-weight: 700;
	letter-spacing: -0.03em;
	text-decoration: none;
	display: flex;
	align-items: center;
	margin: 0;
	padding: 0 3rem 0 5.4rem;
	position: relative;
	border-left: 0;
	border-radius: 10rem;
	background-color: transparent;
	overflow: hidden;
	transition: ease 0.2s;
}
@media ( min-width: 1024px ) {
	.page-cont__contact-tel-link {
		height: 5rem;
		font-size: 1.8rem;
		padding-left: 6rem;
	}
}

.page-cont__contact-tel-icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 4.4rem;
	height: 4.4rem;
	background-color: var(--black);
	color: var(--white);
	border-radius: 50%;
	position: absolute;
	left: 0;
	z-index: 3;
	transition: ease 0.2s;
}
@media ( min-width: 1024px ) {
	.page-cont__contact-tel-icon  {
		width: 5rem;
		height: 5rem;
	}
}

.page-cont__contact-tel-icon::before {
	content: "\e0b0";
	font-family: 'Material Symbols Outlined';
	display: inline-block;
	font-size: 2rem;
	transform: translateY(0.1rem);
	font-variation-settings: 'FILL' 1, 'wght' 500;
}
@media ( min-width: 1024px ) {
	.page-cont__contact-tel-icon::before {
		font-size: 2.4rem;
	}
}

.page-cont__contact-tel-text {
	margin: 0;
	padding: 0.5rem 0;
	position: relative;
	z-index: 3;
	border-bottom: 0.1rem solid var(--black);
}

.page-cont__contact-tel-link::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background-color: var(--black);
	width: 100%;
	height: 100%;
	transition: transform 0.6s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 1);
	transform-origin: left top;
}

.page-cont__contact-tel-link:hover::before,
.page-cont__contact-tel-link:focus::before {
	transform-origin: left top;
	transform: scale(1, 1);
}

.page-cont__contact-tel-link:hover,
.page-cont__contact-tel-link:focus {
	color: var(--white);
}

.page-cont__contact-tel-link:hover .page-cont__contact-tel-icon,
.page-cont__contact-tel-link:focus .page-cont__contact-tel-icon {
	transform: scale(0.7);
	background-color: var(--white);
	color: var(--black);
}

.page-cont__contact-tel-note {
	margin: 2em 0 0;
}

.page-cont__contact-tel-note-item + .page-cont__contact-tel-note-item {
	margin-top: 0.5em;
}

/* Contact Form */

.page-cont__contact-post-content-inner {
	padding: 3em 1.5em;
	background-color: var(--sub-color2);
	border-radius: 0.5rem;
}
@media ( min-width: 1024px ) {
	.page-cont__contact-post-content-inner {
		padding: 3em 2em;
	}
}

.contact-lists {
	margin: 0 auto;
	padding: 0;
}

.contact-list {
	margin: 2rem 0 0;
	padding: 0;
}
@media ( min-width: 1024px ) {
	.contact-list {
		margin-top: 3rem;
	}
}

.contact-lists > .contact-list:first-of-type {
	margin-top: 0;
}

.contact-list label {
	color: var(--black);
	font-size: 1.3rem;
	font-weight: 900;
	display: block;
	margin: 0 0 0.5rem 0;
}
@media ( min-width: 1024px ) {
	.contact-list label {
		font-size: 1.4rem;
	}
}

.contact-list .required {
	display: inline-block;
	color: var(--white);
	font-size: 1rem;
	font-weight: 900;
	margin: 0 0.5rem 0 0;
	padding: 0.1rem 0.4rem 0.2rem;
	background-color: var(--caution-color);
	border: 0.1rem solid var(--caution-color);
	border-radius: 0.3rem;
	transform: translateY(-0.1rem);
}

.contact-list__description {
	font-size: 0.9em;
	color: var(--caution-color);
}

.contact-list__file {
	margin: 1rem 0 0;
}

.contact-list__file-title {
	font-size: 0.85em;
	color: var(--caution-color);
	text-decoration: underline;
	margin: 0 0 1em;
}

.contact-list__file ul {
	list-style: none;
	margin: 1em 0 0;
	padding: 0;
}

.contact-list__file li {
	margin: 0;
	padding: 0;
	font-size: 0.8em;
	color: var(--caution-color);
}

@media ( max-width: 499px ) {
	.codedropz-upload-inner > *:not(.codedropz-btn-wrap) {
		display: none;
	}
}

.contact-list.acceptance,
.contact-list.submit {
	display: flex;
	justify-content: center;
}

.wpcf7-spinner {
	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;
}

/*　reCaptcha */

.recaptcha_policy {
	margin-top: 3rem;
	font-size: 0.9em;
}

.grecaptcha-badge {
	visibility: hidden;
}

.codedropz-upload-handler {
	background-color: var(--white);
}

/* -------------------------------------------------------------------------- */

/* Archive（アーカイブぺージ）
/* -------------------------------------------------------------------------- */

/* Case
/* ---------------------------------------- */

.archive-main__body--case {
	max-width: 120rem;
}

/* Service
/* ---------------------------------------- */

.archive-main__body--service {
	max-width: 120rem;
}


/* -------------------------------------------------------------------------- */

/* Single（シングルぺージ）
/* -------------------------------------------------------------------------- */

.single-cont__status {
	margin-top: 1em;
}

.single-cont__post-date {
	font-size: 0.9em;
	letter-spacing: 0.03em;
}


/* Case
/* ---------------------------------------- */

.single-main__case-figure-wrapper {
	width: calc(100% - 0.4rem);
	max-width: 100rem;
	margin: 5rem auto 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-gap: 0.2rem;
}

.single-main__case-img-wrapper {
	aspect-ratio: 1 / 1;
	position: relative;
	overflow: hidden;
}

.single-main__case-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-main__case-img-caption {
	position: absolute;
	top: 1em;
	left: 1em;
	color: var(--white);
	font-size: 0.9em;
	font-family: "Roboto";
	font-weight: 900;
	letter-spacing: 0.05em;
	display: inline-block;
	background-color: var(--accent-color1);
	border-radius: 0.2rem;
	padding: 0.3em 0.6em;
	box-shadow: 0 0 0.3rem rgba(0, 0, 0, 0.5);
}
@media ( min-width: 768px ) {
	.single-main__case-img-caption {
		font-size: 1.1em;
	}
}
@media ( min-width: 1024px ) {
	.single-main__case-img-caption {
		font-size: 1.2em;
	}
}

/* Service
/* ---------------------------------------- */

.single-main__service-slider {
	width: calc(100% - 4rem);
	max-width: 100rem;
	margin: 5rem auto 0;
}

.single-main__service-slider-img-wrapper {
	aspect-ratio: 3 / 2;
	position: relative;
	overflow: hidden;
}
@media ( min-width: 1024px ) {
	.single-main__service-slider-img-wrapper {
		aspect-ratio: 2 / 1;
	}
}

.single-main__service-slider-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.single-main__price-wrapper {
	margin: 10rem 0 0;
}

.single-main__price-header {
	margin: 0;
	padding: 0;
}

.single-main__price-ttl {
	font-size: 1.4em;
}
@media ( min-width: 1025px ) {
	.single-main__price-ttl {
		font-size: 1.6em;
	}
}

.single-main__price {
	margin: 2em 0 0;
	padding: 0;
}

.single-main__price-items {
	position: relative;
	background-color: var(--sub-color2);
	border: 0.1rem solid var(--gray-20);
	border-radius: 1rem;
}

.single-main__price-item {
	list-style: none;
	margin: 0;
	padding: 2rem 0;
	display: grid;
	grid-template-columns: 1fr;
	grid-gap: 1rem;
}
@media ( min-width: 1025px ) {
	.single-main__price-item {
		padding: 3rem 0;
		grid-template-columns: 1fr 1fr;
		align-items: center;
	}
}

.single-main__price-item + .single-main__price-item {
	border-top: 0.1rem solid var(--gray-20);
}

.single-main__price-item-name,
.single-main__price-item-content {
	font-size: 1em;
	margin: 0;
	padding: 0 2rem;
}
@media ( min-width: 1025px ) {
	.single-main__price-item-name,
	.single-main__price-item-content {
		padding: 0 3rem;
	}
}

.single-main__price-item-name {
	font-weight: 900;
}

.single-main__price-item-content {
	margin: 0 0 0 1em;
}
@media ( min-width: 1025px ) {
	.single-main__price-item-content {
		margin: 0;
	}
}

.single-main__price-item-content small {
	display: inline-block;
	margin: 0.5em 0;
}

.single-main__price-caution {
	font-size: 0.9em;
	text-align: right;
	margin: 0 0 0.5em;
	padding: 0 0.5em 0 0;
}