@charset "utf-8";

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
共通
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
* {
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	box-shadow: none;
	outline: none;
}

html, body, div, span, iframe, h1, h2, h3, h4, h5, h6, p, a, address, img, dl, dt, dd, ol, ul, li, label, table, tr, th, td, hr, input, textarea,
article, aside, details, figure, figcaption, header, footer, hgroup, menu, nav, section, picture { 
	margin: 0;
	padding: 0;
	border: 0;
	box-sizing: border-box;
	font-size: 100%;
	vertical-align: baseline;
}

iframe, article, aside, details, figure, figcaption, header, footer, hgroup, menu, nav, section, picture { 
	display: block;
}

body {
	line-height: 1;
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
}

p { 
	font-size: 110%;
	line-height: 1.8em;	
}
@media screen and (max-width: 768px) {
p { 
	font-size: 130%;
	line-height: 1.8em;	
}
}

a {
	color: inherit;
	text-decoration: none;
}

address {
	font-style: normal;
}

img {
	max-width: 100%;
	height: auto;
	vertical-align: middle;
}

ol, ul {
	list-style: none;
	list-style-type: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

input, textarea, select, button {
	border: 0;
	border-radius: inherit;
	background: none;
	color: inherit;
	font-weight: inherit;
	font-size: inherit;
	font-family: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

input[type="radio"]{
  transform: scale(1.5); /* 2.5倍 */
  margin:10px 2px 15px 10px;
}	

textarea {
	overflow: auto;
}

input:not([type="checkbox"]):not([type="radio"]), textarea, button {
	-webkit-appearance: none;
}

/* margin - 要素の外側の余白 */
.m0 { margin: 0!important; }
.mt0 { margin-top: 0!important; }
.mr0 { margin-right: 0!important; }
.mb0 { margin-bottom: 0!important; }
.ml0 { margin-left: 0!important; }
.m5 { margin: 5px !important; }
.mt5 { margin-top: 5px !important; }
.mr5 { margin-right: 5px !important; }
.mb5 { margin-bottom: 5px !important; }
.ml5 { margin-left: 5px !important; }
.m10 { margin: 10px !important; }
.mt10 { margin-top: 10px !important; }
.mr10 { margin-right: 10px !important; }
.mb10 { margin-bottom: 10px !important; }
.ml10 { margin-left: 10px !important; }
.m15 { margin: 15px !important; }
.mt15 { margin-top: 15px !important; }
.mr15 { margin-right: 15px !important; }
.mb15 { margin-bottom: 15px !important; }
.ml15 { margin-left: 15px !important; }
.m20 { margin: 20px !important; }
.mt20 { margin-top: 1.5em !important; }
.mr20 { margin-right: 20px !important; }
.mb20 { margin-bottom: 20px !important; }
.ml20 { margin-left: 20px !important; }
.m25 { margin: 25px !important; }
.mt25 { margin-top: 25px !important; }
.mr25 { margin-right: 25px !important; }
.mb25 { margin-bottom: 25px !important; }
.ml25 { margin-left: 25px !important; }
.m30 { margin: 30px !important; }
.mt30 { margin-top: 30px !important; }
.mr30 { margin-right: 30px !important; }
.mb30 { margin-bottom: 0.7em !important; }
.ml30 { margin-left: 30px !important; }
.m35 { margin: 35px !important; }
.mt35 { margin-top: 35px !important; }
.mr35 { margin-right: 35px !important; }
.mb35 { margin-bottom: 35px !important; }
.ml35 { margin-left: 35px !important; }
.m40 { margin: 40px !important; }
.mt40 { margin-top: 40px !important; }
.mr40 { margin-right: 40px !important; }
.mb40 { margin-bottom: 40px !important; }
.ml40 { margin-left: 40px !important; }
.m45 { margin: 45px !important; }
.mt45 { margin-top: 45px !important; }
.mr45 { margin-right: 45px !important; }
.mb45 { margin-bottom: 45px !important; }
.ml45 { margin-left: 45px !important; }
.m50 { margin: 50px !important; }
.mt50 { margin-top: 50px !important; }
.mr50 { margin-right: 50px !important; }
.mb50 { margin-bottom: 50px !important; }
.ml50 { margin-left: 50px !important; }
.m55 { margin: 55px !important; }
.mt55 { margin-top: 55px !important; }
.mr55 { margin-right: 55px !important; }
.mb55 { margin-bottom: 55px !important; }
.ml55 { margin-left: 55px !important; }
.m60 { margin: 60px !important; }
.mt60 { margin-top: 60px !important; }
.mr60 { margin-right: 60px !important; }
.mb60 { margin-bottom: 60px !important; }
.ml60 { margin-left: 60px !important; }
.m65 { margin: 65px !important; }
.mt65 { margin-top: 65px !important; }
.mr65 { margin-right: 65px !important; }
.mb65 { margin-bottom: 65px !important; }
.ml65 { margin-left: 65px !important; }
.m70 { margin: 70px !important; }
.mt70 { margin-top: 70px !important; }
.mr70 { margin-right: 70px !important; }
.mb70 { margin-bottom: 70px !important; }
.ml70 { margin-left: 70px !important; }
.m75 { margin: 75px !important; }
.mt75 { margin-top: 75px !important; }
.mr75 { margin-right: 75px !important; }
.mb75 { margin-bottom: 75px !important; }
.ml75 { margin-left: 75px !important; }
.m80 { margin: 80px !important; }
.mt80 { margin-top: 80px !important; }
.mr80 { margin-right: 80px !important; }
.mb80 { margin-bottom: 5em !important; }
.ml80 { margin-left: 80px !important; }

.mt1em { margin-top: 1em !important; }
.mt2_5em { margin-top: 2.5em !important; }
.mt4em { margin-top: 4em !important; }
.mb2em { margin-bottom: 2em !important; }
.mb4em { margin-bottom: 4em !important; }
.mb6em { margin-bottom: 6em !important; }
.mb30em { margin-bottom: 30em !important; }

/* padding - 要素の内側の余白 */
.p0 { padding: 0!important; }
.pt0 { padding-top: 0!important; }
.pr0 { padding-right: 0!important; }
.pb0 { padding-bottom: 0!important; }
.pl0 { padding-left: 0!important; }
.p5 { padding: 5px !important; }
.pt5 { padding-top: 5px !important; }
.pr5 { padding-right: 5px !important; }
.pb5 { padding-bottom: 5px !important; }
.pl5 { padding-left: 5px !important; }
.p10 { padding: 10px !important; }
.pt10 { padding-top: 10px !important; }
.pr10 { padding-right: 10px !important; }
.pb10 { padding-bottom: 10px !important; }
.pl10 { padding-left: 10px !important; }
.p15 { padding: 15px !important; }
.pt15 { padding-top: 15px !important; }
.pr15 { padding-right: 15px !important; }
.pb15 { padding-bottom: 15px !important; }
.pl15 { padding-left: 15px !important; }
.p20 { padding: 20px !important; }
.pt20 { padding-top: 20px !important; }
.pr20 { padding-right: 20px !important; }
.pb20 { padding-bottom: 20px !important; }
.pl20 { padding-left: 20px !important; }
.p25 { padding: 25px !important; }
.pt25 { padding-top: 25px !important; }
.pr25 { padding-right: 25px !important; }
.pb25 { padding-bottom: 25px !important; }
.pl25 { padding-left: 25px !important; }
.p30 { padding: 30px !important; }
.pt30 { padding-top: 30px !important; }
.pr30 { padding-right: 30px !important; }
.pb30 { padding-bottom: 30px !important; }
.pl30 { padding-left: 30px !important; }
.p35 { padding: 35px !important; }
.pt35 { padding-top: 35px !important; }
.pr35 { padding-right: 35px !important; }
.pb35 { padding-bottom: 35px !important; }
.pl35 { padding-left: 35px !important; }
.p40 { padding: 40px !important; }
.pt40 { padding-top: 40px !important; }
.pr40 { padding-right: 40px !important; }
.pb40 { padding-bottom: 40px !important; }
.pl40 { padding-left: 40px !important; }
.p45 { padding: 45px !important; }
.pt45 { padding-top: 45px !important; }
.pr45 { padding-right: 45px !important; }
.pb45 { padding-bottom: 45px !important; }
.pl45 { padding-left: 45px !important; }
.p50 { padding: 50px !important; }
.pt50 { padding-top: 50px !important; }
.pr50 { padding-right: 50px !important; }
.pb50 { padding-bottom: 50px !important; }
.pl50 { padding-left: 50px !important; }
.p55 { padding: 55px !important; }
.pt55 { padding-top: 55px !important; }
.pr55 { padding-right: 55px !important; }
.pb55 { padding-bottom: 55px !important; }
.pl55 { padding-left: 55px !important; }
.p60 { padding: 60px !important; }
.pt60 { padding-top: 60px !important; }
.pr60 { padding-right: 60px !important; }
.pb60 { padding-bottom: 60px !important; }
.pl60 { padding-left: 60px !important; }
.p65 { padding: 65px !important; }
.pt65 { padding-top: 65px !important; }
.pr65 { padding-right: 65px !important; }
.pb65 { padding-bottom: 65px !important; }
.pl65 { padding-left: 65px !important; }
.p70 { padding: 70px !important; }
.pt70 { padding-top: 70px !important; }
.pr70 { padding-right: 70px !important; }
.pb70 { padding-bottom: 70px !important; }
.pl70 { padding-left: 70px !important; }
.p75 { padding: 75px !important; }
.pt75 { padding-top: 75px !important; }
.pr75 { padding-right: 75px !important; }
.pb75 { padding-bottom: 75px !important; }
.pl75 { padding-left: 75px !important; }
.p80 { padding: 80px !important; }
.pt80 { padding-top: 80px !important; }
.pr80 { padding-right: 80px !important; }
.pb80 { padding-bottom: 5em !important; }
.pl80 { padding-left: 80px !important; }
.pb1em { padding-bottom: 1em !important; }
.pb10em { padding-bottom: 10em !important; }

.hihyouji {
	display: none;
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-*/

.background-color {
	background: var(--sub-color);
}

html {
	font-size: 62.5%;
}

body {
	overflow: hidden scroll;
	color: var(--main-color);
	font-size: 1em;
	letter-spacing: 0.1em;
	line-height: 1.5;
	overflow-x: hidden;
}

/*
@media screen\0 {
body {
	font-family: "BIZ UDPMincho", "MS PMincho", serif;
}
}
*/

main {
	/* overflow-x: hidden; */
}

article {
	/* overflow-x: hidden; */
}

section,
.section {
	padding: 50px 0;
}

.inner {
	width: 100%;
	max-width: 1260px;
	margin: auto;
	padding: 0 6%;
}
.inner2 {
	width: 100%;
	margin: auto;
	padding: 0 6%;
}

.pankuzu {
/*margin-top: 0.7em;*/
padding: 2rem 6% 3rem 6%;	
}

span:not([class]) {
	display: inline-block;
}

p:not([class]) + p:not([class]) {
	margin-top: 1.5em;
}

a,
a::before,
a::after {
	transition: 0.3s ease-in-out;
}

a {
	display: inline-block;
}

a:hover {
	opacity: 0.7;
}

/*svg {
	fill: var(--main-color);
}*/

a svg {
	transition: 0.3s ease-in-out;
}

.ul:nth-child(n+2) {
	margin-top: 1.5em;
}

.ul:nth-last-child(n+2) {
	margin-bottom: 1.5em;
}

.ul > li {
	position: relative;
	padding-left: 1.2em;
}

.ul > li::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "・";
}

.ul > li:nth-last-child(n+2) {
	margin-bottom: 0.5em;
}

table {
	width: 100%;
}

th {
	text-align: left;
	vertical-align: top;
}

td {
	text-align: left;
	vertical-align: top;
}

.block-center {
	margin: auto;
}

.block-right {
	margin-left: auto;
}

.table-center {
	display: table;
	margin: auto;
}

.line-through {
	text-decoration: line-through;
}

.marker {
	background: linear-gradient(transparent 55%, var(--sub-color) 55%, var(--sub-color) 90%, transparent 90%);
}

.annotation {
	position: relative;
	margin-top: 0.5em;
	padding-left: 1em;
}

.annotation::before {
	position: absolute;
	top: 0;
	left: 0;
	content: "※";
}

li.spacer {
	margin-bottom: 0;
}
.pc {
	display: none;	
}
.sp {
	display: block;	
}	

@media screen and (min-width: 768px) {
body {
	font-size: 1.6em;
}

section,
.section {
	padding: 80px 0;
}

.inner {
	padding: 0 30px;
}
.inner2 {
	padding: 0 4%;
}	

a[href^="tel:"] {
	pointer-events: none;
}

.annotation {
	font-size: 1.4rem;
}
.pc {
	display: block;
}
.sp {
	display: none;	
}
.pankuzu {
/*margin-top: 0.7em;*/
padding: 3rem 8rem 3rem 8rem;	
}		
}

@media screen and (max-width: 767.9px) {
.block-table th {
	display: block;
}

.block-table td {
	display: block;
}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
アニメーション
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
@keyframes fade {
0% {
	opacity: 0;
}

100% {
	opacity: 1;
}
}

@keyframes fade-up {
0% {
	opacity: 0;
	transform: translateY(30px);
}

100% {
	opacity: 1;
	transform: translateY(0);
}
}

@keyframes fade-right {
0% {
	opacity: 0;
	transform: translateX(40px);
}

100% {
	opacity: 1;
	transform: translate(0);
}
}

@keyframes fade-left {
0% {
	opacity: 0;
	transform: translateX(-40px);
}

100% {
	opacity: 1;
	transform: translate(0);
}
}

@keyframes fade-zoom-in {
0% {
	opacity: 0;
	transform: scale(0.9);
}

100% {
	opacity: 1;
	transform: scale(1);
}
}

@keyframes fade-zoom-out {
0% {
	opacity: 0;
	transform: scale(1.1);
}

100% {
	opacity: 1;
	transform: scale(1);
}
}

.animation {
	animation-duration: 0.6s;
	animation-timing-function: ease-out;
	animation-delay: 0.3s;
	animation-fill-mode: forwards;
	will-change: transform;
}

.load .animation.fade {
	animation-name: fade;
}

.load .animation.fade-up {
	animation-name: fade-up;
	animation-duration: 0.5s;
}

.load .animation.fade-right {
	animation-name: fade-right;
}

.load .animation.fade-left {
	animation-name: fade-left;
}

.load .animation.fade-zoom-in {
	animation-name: fade-zoom-in;
	animation-duration: 0.8s;
}

.load .animation.fade-zoom-out {
	animation-name: fade-zoom-out;
	animation-duration: 0.8s;
}

.delay05 {
	animation-delay: 0.5s;
}

.delay07 {
	animation-delay: 0.7s;
}

.delay09 {
	animation-delay: 0.9s;
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
セクション
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.section-header {
margin-bottom: 3.5em;
	font-weight: 700;
	text-align: center;
}
.section-header2 {
	margin-bottom: 0em;
	font-weight: 700;
	text-align: center;
}

.section-heading {
	margin-bottom: 0.1em;
	font-size: 2.5em;
	line-height: 1.3;
	color: var(--content-title-color);
}

.section-subheading {
	margin-bottom: 0.5em;
	font-size: 1.5rem;
}

@media screen and (min-width: 768px) {
.section-header {
	margin-bottom: 60px;
}
.section-header2 {
	margin-bottom: 60px;
}	

.section-heading {
	font-size: 5rem;
}

.section-subheading {
	font-size: 2rem;
	letter-spacing: 0.1em;
}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
リンク
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.button-container {
	display: flex;
	flex-flow: wrap;
	justify-content: center;
	align-items: center;
}

.button {
	/*display: flex;*/
	position: relative;
/*	width: 100%;
	max-width: 200px;*/
	margin-top: 20px;
	padding: 0.3em 1em;
/*	border: 2px solid var(--button-text-hover-color);*/
	border-radius: 50px;
	background: var(--button-bg-color);
	color: var(--button-text-color);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.3;
	text-align: center;
	justify-content: center;
	align-items: center;
	box-shadow: 0em 0.05em 3px #939393;
	padding-top: 0.8em;
	padding-left: 2em;
	padding-right: 2em;
    padding-bottom: 0.8em;
}
.button-to-list {
	display: flex;
	position: relative;
	width: 130px;
	max-width: 278px;
	margin-top: 2em;
	padding: 0.3em 1em;
	border: 1px solid var(--button-bg-color);
	border-radius: 50px;
	background: var(--button-text-color);
	color: var(--button-bg-color);
	font-weight: 700;
	font-size: 1.4em!important;
	line-height: 1;
	text-align: center;
	justify-content: center;
	align-items: center;
	padding-top: 1em;
    padding-bottom: 1em;
}
.button-to-list2 {
	display: flex;
	position: relative;
	width: 130px;
	max-width: 278px;
	margin-top: 2em;
	padding: 0.3em 1em;
	border: 1px solid white; /* 線の色を白に変更 */
	border-radius: 50px;
	background: transparent; /* 背景を透過に変更 */
	color: white; /* 文字の色を白に変更 */
	font-weight: 700;
	font-size: 1.4em!important;
	line-height: 1;
	text-align: center;
	justify-content: center;
	align-items: center;
	padding-top: 1em;
    padding-bottom: 1em;
}

a.button:hover {
/*	opacity: 1;
	background: #fff;
	color: var(--button-text-hover-color);*/
}

.button-menu {
	margin-left: 6%;
	margin-right:  6%;
}


.button01 {
	/*max-width: 90%;*/
/*	max-width: 300px;*/
}	

.button01 a {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 10px 0px 10px 0px;
    padding: 0.5em 2em;
    color: var(--button-text-color);
    font-size: 1.8em;
    font-weight: 700;
	border-radius:10px;	
    background: var(--button-bg-color);
    border: 5px solid var(--button-bg-color);
/*    box-shadow: 5px 5px #D3D3D3;*/	
	box-shadow: 0em 0.05em 3px #939393;
}
.button01 a::after {
    content: '';
    width: 0.4em;
    height: 0.4em;
    border-top: 0.1em solid var(--button-text-color);
    border-right: 0.1em solid var(--button-text-color);
    transform: rotate(45deg);
    margin-left: 0.3em;
}

@media screen and (min-width: 768px) {
.button {
	/*max-width: 555px;*/
	height: 60px;
	margin-top: 30px;
	border-width: 3px;
	border-radius: 50px;
	font-size: 2rem;
}

.button-container .button {
	margin-right: 20px;
	margin-left: 20px;
}
	
.button01 {
	max-width: 800px;
}	

.button01 a {
    font-size: 2.3em;
    padding: 0.3em 2em;	
	margin-right: 0.3em;
	margin-left: 0.3em;
}
.button-to-list {
	display: flex;
	position: relative;
	width: 200px;
	max-width: 278px;
	margin-top: 2em;
	padding: 0.3em 1em;
	border: 1px solid var(--button-bg-color);
	border-radius: 50px;
	background: var(--button-text-color);
	color: var(--button-bg-color);
	font-weight: 700;
	font-size: 1.1em!important;
	line-height: 1;
	text-align: center;
	justify-content: center;
	align-items: center;
	padding-top: 1em;
    padding-bottom: 1em;
}
.button-to-list2 {
	display: flex;
	position: relative;
	width: 200px;
	max-width: 278px;
	margin-top: 2em;
	padding: 0.3em 1em;
	border: 1px solid white; /* 線の色を白に変更 */
	border-radius: 50px;
	background: transparent; /* 背景を透過に変更 */
	color: white; /* 文字の色を白に変更 */
	font-weight: 700;
	font-size: 1.1em!important;
	line-height: 1;
	text-align: center;
	justify-content: center;
	align-items: center;
	padding-top: 1em;
	padding-bottom: 1em;
}
	
}

@media screen and (max-width: 767.9px) {
.button-container {
	flex-flow: column;
}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ローダー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.loader {
	display: flex;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 9999999999999999999999999;
	background: #fff;
	transition: 0.8s ease-in-out;
	justify-content: center;
	align-items: center;
}

@keyframes loader {
0% {
	transform: rotate(0deg);
}

100% {
	transform: rotate(360deg);
}
}

.loader-bar {
	width: 60px;
	height: 60px;
	border: 8px solid var(--sub-color);
	border-left-color: var(--main-color);
	border-radius: 50%;
	animation: loader 1.1s linear infinite;
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ヘッダー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
header {
	display: flex;
	overflow: hidden;
	position: relative;
	z-index: 4;
	height: 53px;
	display: none
/*	border-bottom: 1px solid var(--main-color);	*/
}

.header-inner {
	display: flex;
	max-width: none;
	height: 53px;
	background: #fff;
	justify-content: space-between;
}

.header-logo {
	font-weight: 700;
	font-size: 1.5rem;
	align-self: center;
}
.header-logo img{
/*height: 2em;*/
	  max-width: 200px;
	  max-height: 40px;		
}

.header-contact {
	display: none;
}	

.header-contact svg{
	fill: var(--header-tel-color);	
}

.header-contact-tel,
.header-contact-mail {
	display: flex;
	padding: 0 12px;
	font-weight: 700;
	font-size: 2.5rem;
	justify-content: center;
	align-items: center;
}

.header-contact-tel .icon {
	width: 29px;
	height: 28px;
}

.header-contact-mail .icon {
	width: 31px;
	height: 23px;
}

.header-copy {
	padding: 0.25em 15px;
    background: var(--mainvisual-obi-color);
    color: #fff;
    font-weight: 700;
    font-size: 1.5rem;
    text-align: center;	
}

@media screen and (min-width: 768px) {
header {
	height: 75px;

}
	
header.show{
	display: block;
}	
	

.header-inner {
	height: 75px;
	will-change: transform;
}

header.hide .header-inner {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
/*	border-top: 3px solid;*/
	transform: translateY(100%);
box-shadow: 0 0px 10px 0 #D7D7D7;
}

header.show .header-inner {
	transform: translateY(0);
}

.header-logo {
	font-size: 2.5rem;
}
.header-logo img{
/*height: 2em;*/
  max-width: 350px;	
  max-height: 50px;		
}	
.header-contact {
display: flex;
}
	
.header-contact-tel .icon {
	width: 34px;
	height: 33px;
}

.header-contact-mail .icon {
	width: 38px;
	height: 27px;
}
.header-copy {
	padding: 0.25em 0;
    background: var(--mainvisual-obi-color);
    color: #fff;
    font-weight: 700;
    font-size: 2.5rem;
    text-align: center;		
}	
}

@media screen and (min-width: 1112px) {
.header-inner {
	padding-right: 0;
}

.header-contact {
display: flex;
}
	

.header-contact > :nth-child(n+2) {
/*	border-left: 3px solid var(--main-color);*/
}

.header-contact-tel,
.header-contact-mail {
	padding: 0 40px;
}
	
.header-contact-tel {
	font-size: 2em;
	letter-spacing: 0.1em;
	color: var(--header-tel-color);
}	

.header-contact-tel .icon {
	margin-right: 10px;
}
	
.header-contact-tel svg {
	fill: var(--header-tel-color);		
}	

.header-contact-mail {
	opacity: 1;
	background: var(--button-bg-color);
	color: var(--button-text-color);
}

.header-contact-mail .icon {
	margin-right: 20px;
}

.header-contact-mail .icon {
	fill: var(--button-text-color);
}
}

@media screen and (max-width: 1111.9px) {
.header-contact-tel .text,
.header-contact-mail .text {
	display: none;
}
}

@media screen and (max-width: 767.9px) {
.header-inner {
	/* position: fixed; */
	top: 0;
	right: 0;
	left: 0;
	padding: 0 15px;
}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
フッター
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
footer {
	position: relative;
}

.page-top {
	display: none;
	visibility: hidden;
	opacity: 0;
	position: absolute;
	position: fixed ;
	right: 10px;
	bottom: 63px;
	z-index: 1;
	width: 40px;
	height: 40px;
	border: 3px solid;
	border-radius: 10px;
	background: var(--main-color);
	cursor: pointer;
	transition: 0.3s ease-in-out;
	border-color: var(--main-color);
}

.page-top.show {
	visibility: visible;
	opacity: 1;
}

.page-top.change {
	position: absolute;
	bottom: 70%;
}

.page-top::before {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 0;
	height: 0;
	margin: auto;
	border-right: 8px solid transparent;
	border-bottom: 14px solid #fff;
	border-left: 8px solid transparent;
	content: "";
	transition: 0.3s ease-in-out;
}

.page-top:hover {
	color: var(--main-color);
	background: #fff;
}

.page-top:hover::before {
	border-bottom-color: var(--main-color);
}

.footer-menu {
	padding: 0px 6% 40px 6%;
	background: var(--main-color);
	color: #fff;
	text-align: center;
	font-size: 1.5em;
}
.footer-inner {
	width: 85%;	
    max-width: 1260px;
    margin: auto;
}
.footer-menu ul{
display: inline-block;
}
.footer-menu li{
display: inline-block;
}
.footer-menu a{
padding: 1em 0.5em 1em 0.5em;
}

.footer-copyright {
	padding: 19px 0;
	background: var(--main-color);
	color: #fff;
	text-align: center;
}

.footer-contact {
	display: none ;	
	position: fixed;
	right: 0;
	z-index: 99;
	transform: translateY(100%);
	transition: 0.3s ease-in-out;
	will-change: transform;
}

footer.show .footer-contact {
	transform: translateY(0);
}

.footer-contact-tel {
	display: flex;
	background: #fff;
	font-weight: 700;
	font-size: 1.5rem;
	justify-content: center;
	align-items: center;
}

.footer-contact-tel:hover {
	opacity: 1;
	background: var(--main-color);
	color: #fff;
}

.footer-contact-tel .icon {
	width: 23px;
	height: 22px;
	flex: none;
}

.footer-contact-tel:hover .icon {
	fill: #fff;
}

.footer-contact-mail {
	display: flex;
	background: var(--button-bg-color);
	color: var(--button-text-color);
	font-weight: 700;
	font-size: 1.3rem;
	justify-content: center;
	align-items: center;
}

/*.footer-contact-mail:hover {
	opacity: 1;
	background: var(--sub-color);
	color: var(--main-color);
}*/

.footer-contact-mail:hover {
	opacity: 1!important;
}

.footer-contact-mail .icon {
	width: 23px;
	height: 17px;
	flex: none;
}
.footer-contact-mail svg{
	fill: var(--button-text-color);
}

/*.footer-contact-mail:hover .icon {
	fill: var(--main-color);
}*/

@media screen and (min-width: 768px) {
.page-top {
	right: 20px;
	bottom: 100px;
	width: 98px;
	height: 98px;
	border-width: 5px;
	border-radius: 20px;
}

.page-top.change {
	bottom: 50%;;
}

.page-top::before {
	border-right-width: 15px;
	border-bottom-width: 26px;
	border-left-width: 15px;
}

.footer-copyright {
	padding: 50px 0px 100px 0px;
	font-size: 2rem;
}

.footer-contact {
	/* display: none */;
	top: 120px;
	width: 70px;
	letter-spacing: 0;
	transform: translateX(150%);
}

footer.show .footer-contact {
	transform: translateX(0);
}

.footer-contact .close {
	display: none ;			
/*	display: flex;*/
	position: absolute;
	top: 0;
	left: 0;
	width: 45px;
	height: 45px;
	border: 2px solid var(--main-color);
	border-radius: 50%;
	background: var(--main-color);
	color: #fff;
	font-size: 2.6rem;
	cursor: pointer;
	justify-content: center;
	align-items: center;
	transform: translate(-50%, -50%);
	transition: 0.3s ease-in-out;
}

.footer-contact .close:hover {
	background: #fff;
	color: var(--main-color);
}

.footer-contact > :last-child {
	border-bottom: 5px solid var(--main-color);
	border-bottom-left-radius: 30px;
}

.footer-contact-tel {
	display: none ;		
	padding: 20px 0;
	border-top: 5px solid;
	border-left: 5px solid;
	font-size: 2rem;
	flex-flow: column;
}

.footer-contact-tel .icon {
	width: 30px;
	height: 29px;
	margin-bottom: 10px;
}

.footer-contact-tel .text {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	text-orientation: upright;
}

.footer-contact-mail {
	display: none ;	
	padding: 20px 0;
	border-top: 5px solid var(--main-color);
	border-left: 5px solid var(--main-color);
	font-size: 1.8rem;
	flex-flow: column;
}

.footer-contact-mail .icon {
	width: 30px;
	height: 22px;
	margin-bottom: 20px;
}

.footer-contact-mail .text {
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
}
}

@media screen and (max-width: 767.9px) {
footer.show {
	padding-bottom: 55px;
}

.footer-contact {
	bottom: 0;
	left: 0;
	height: 53px;
/*	border-top: 2px solid;*/
	box-shadow: 0 0px 5px 0 #DCDCDC;	
}

.footer-contact .close {
	display: none;
}

.footer-contact-tel {
	min-width: 170px;
	height: 100%;
	padding: 0 10px;
	white-space: nowrap;
	color: var(--header-tel-color);	
}

.footer-contact-tel .icon {
	margin-right: 5px;
}
	
.footer-contact-tel svg {
	fill: var(--header-tel-color);	
}

.footer-contact-mail {
	height: 100%;
	padding: 0 10px;
}

.footer-contact-mail .icon {
	margin-right: 10px;
}

.footer-contact2 {
	display: flex;
}

.footer-contact2 .footer-contact-tel,
.footer-contact2 .footer-contact-mail {
	width: 50%;
}

.footer-contact2 .footer-contact-tel {
/*	border-right: 2px solid #fff;*/
}

.footer-contact2 .footer-contact-mail {
/*	border-left: 2px solid var(--main-color);*/
}
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
404 Not Found
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.notfound-article {
	text-align: center;
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
モーダル
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.modal-container {
	display: flex;
	visibility: hidden;
	opacity: 0;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 10;
	justify-content: center;
	align-items: center;
	transition: 0.5s ease;
	will-change: visibility;
}

.modal-container.open {
	visibility: visible;
	opacity: 1;
}

.modal-close {
	display: block;
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 50px;
	height: 50px;
	cursor: pointer;
}

.modal-close::before,
.modal-close::after {
	display: block;
	position: absolute;
	right: 0;
	left: 0;
	width: 30px;
	height: 2px;
	margin: auto;
	background: #fff;
	content: "";
	transition: 0.5s ease;
}

.modal-close::before {
	top: 18px;
}

.modal-close::after {
	top: 32px;
}

.modal-container.open .modal-close::before {
	top: 25px;
	transform: rotate(-45deg);
}

.modal-container.open .modal-close::after {
	top: 25px;
	transform: rotate(45deg);
}

.modal-overlay {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0, 0, 0, 0.8);
}

.modal-content {
	transition: transform 0.5s ease;
	transform: scale(0.8);
}

.modal-container.open .modal-content {
	transform: scale(1);
}

.modal-content video,
.modal-content img {
	max-width: calc(100vw - 0px);
}

.modal-youtube {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: calc(80vh / 0.5625);
	max-width: 90%;
	height: 80vh;
	max-height: calc(90vw * 0.5625);
	margin: auto;
}

.modal-youtube .modal-inner {
	position: relative;
	padding-top: 56.25%;
}

.modal-youtube iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

@media screen and (min-width: 768px) {
.modal-close {
	top: 10px;
	right: 10px;
}

.modal-close::before,
.modal-close::after {
	width: 40px;
}
.modal-content video,
.modal-content img {
	max-width: calc(100vw - 60px);
	max-height: calc(100vh - 80px);	
}	
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ポップアップナビ
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
#g-nav{
/*position:fixed;にし、z-indexの数値を小さくして最背面へ*/
position:fixed;
z-index: -1;
opacity: 0;/*はじめは透過0*/
/*ナビの位置と形状*/
top:0;
width:100%;
height: 100vh;/*ナビの高さ*/
background: var(--sub-color);
/*動き*/
transition: all 0.3s;
font-size: 2em;
}
/*アクティブクラスがついたら透過なしにして最前面へ*/
#g-nav.panelactive{
opacity: 1;
z-index:9;
}
/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list{
/*ナビの数が増えた場合縦スクロール*/
position: fixed;
z-index: 9;
width: 100%;
height: 100vh;/*表示する高さ*/
overflow: auto;
-webkit-overflow-scrolling: touch;
padding-top: 50px;
padding-bottom: 50px;
}
/*#g-nav .l-navi {
display: none;
position: absolute;
z-index: 9;
top:100%;
left:50%;
transform: translate(-50%,-50%);
font-size: 2em;
}*/
#g-nav.panelactive .l-navi {
display: block;
    margin-right: auto;
    margin-left: auto;
    column-count: 3;	
font-weight: bold;	
}
#g-nav li{
list-style: none;
text-align: center;
}
#g-nav li a{
color: var(--main-color);
text-decoration: none;
padding:10px;
display: block;
text-transform: uppercase;
letter-spacing: 0.1em;

}
.openbtn{
position: fixed;
z-index: 10;
top: 130px;
right: -25px;
cursor: pointer;
width: 100px;
height: 50px;
}
@media screen and (max-width: 767.9px) {
.openbtn{
position:fixed;
z-index: 10;/*ボタンを最前面に*/
top:30px;
right: 10px;
cursor: pointer;
width: 50px;
height:50px;
}

#g-nav.panelactive .l-navi {
display: block;
    margin-right: 20px;
    margin-left: 20px;
    column-count: 2;
	font-size: 14px;
}
#g-nav li a{
	padding-top: 10px;
	padding-bottom: 20px;
	padding-left: 10px;
	padding-right: 10px;
}	
}

/*×に変化*/
.openbtn span{
display: inline-block;
transition: all .4s;
position: absolute;
left: 14px;
height: 3px;
border-radius: 2px;
background-color: var(--main-color);
width: 45%;
}
.openbtn span:nth-of-type(1) {
top:15px;
}
.openbtn span:nth-of-type(2) {
top:23px;
}
.openbtn span:nth-of-type(3) {
top:31px;
}
.openbtn.active span:nth-of-type(1) {
top: 18px;
left: 18px;
transform: translateY(6px) rotate(-45deg);
width: 50%;
}
.openbtn.active span:nth-of-type(2) {
opacity: 0;
}
.openbtn.active span:nth-of-type(3){
top: 30px;
left: 18px;
transform: translateY(-6px) rotate(45deg);
width: 50%;
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
Google Map
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.googlemap iframe{
width: 100%!important;
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
SNSボタン（ヘッダー）
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
/* ボタン全体 */
.h-flowbtn10{
    font-size: 1.5em;
    color: var(--main-color);
}
/* ulタグの内側余白を０にする */
ul.h-snsbtniti{
	margin-left: 1em;
	padding-top: 5px;
	padding-bottom: 5px;
}
/* アイコン同士の余白 */
.h-snsbtniti li{
	display: inline-block;
    margin-left: 0.5em;
    margin-right: 0.5em;
}
@media screen and (max-width: 769px) {
ul.h-snsbtniti{
	margin-top: 1em;
	margin-left: 0em;
	text-align: center;
}
}	
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
SNSボタン（フッター）
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
/* ボタン全体 */
.flowbtn10{
display:inline-block;
font-size:2em;
text-decoration:none;
transition:.5s;
color:#ffffff;
}
/* インスタ・pocket・ラインだけ少し大きく */
.flowbtn10 .fa-instagram,.flowbtn10 .fa-get-pocket,.flowbtn10 .fa-get-pocket,.flowbtn10 .fa-line{
font-size:1em;
}
/* ulタグの内側余白を０にする */
ul.snsbtniti{
padding:0!important;
text-align:center!important;
}
/* アイコン同士の余白 */
.snsbtniti li{
flex:0 0 33%;
text-align:center!important;
display:inline-block;
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
お知らせ
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

.news-area a {
text-decoration: none;
font-size: 1.2em;
}
.news-area ul {
list-style: none;
padding: 0;
margin: 0;
}
.news-area .news {
padding: 50px 0;
}
/*.news-area .inner {
width: 80%;
margin: 0 auto;
padding: 65px 0 100px;
}*/
.news-area .sub_ttl {
/* font-size: 2em;*/
text-align: center;
margin-bottom: 40px;
}
/* ここからがニュース記事のCSS */
/*.news-area .news_list {
margin: 0 5%;
}*/
.news-area .news_list_item {
padding: 25px 0;
border-bottom: 1px solid #E6E6E6;
}
.news-area .news_list_item:first-child {
border-top: 1px solid #E6E6E6;
}
.news-area .news_list_item a {
position: relative;
display: flex;
padding-right: 30px;
}
.news-area .news_list_date {
/* font-size: 1.5em;*/
display: flex;
margin-right: 30px;
align-items: center;
margin-bottom: 1em;
margin-bottom: 1em;
}
.news-area .news_item {
background-color: var(--button-bg-color);
border-radius: 50px;
/*width: 6em; */
padding-left: 1.5em;
padding-right: 1.5em;
padding-top: 0.4em;
padding-bottom: 0.4em;
font-size: 0.7em;
text-align: center;
margin-left: 20px;
color: var(--button-text-color);
}
.news-area .arrow {
width: 25px;
height: 1px;
background: var(--main-color);
position: absolute;
top: 50%;
right: 0;
}
.news-area .arrow::after {
content: "";
display: block;
width: 6px;
height: 1px;
background: var(--main-color);
transform: rotate(45deg);
position: absolute;
right: 0px;
bottom: 2px;
}
@media screen and (max-width: 1024px) {
.news-area .news_list_item a {
display: block;
}
}
@media screen and (max-width: 769px) {
.news-area .news_list_item a {
/* font-size: 1.5em;*/
}
.news-area a {
text-decoration: none;
font-size: 1.4em;
}	
}
@media screen and (max-width: 480px) {
.news-area .arrow {
display: none;
}
.news-area .news_list_item a {
padding-right: 0;
}
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ページネーション
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.wp-pagenavi a, .wp-pagenavi span {
color:var(--main-color);
background-color:#FFF;
border:solid 1px var(--main-color);
padding: 8px 15px;
margin:0 2px;
white-space: nowrap;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: 0.2s ease-in-out;
-moz-transition: 0.2s ease-in-out;
-o-transition: 0.2s ease-in-out;
transition: 0.2s ease-in-out;
}
.wp-pagenavi a:hover{
color:#FFF;
background-color:var(--main-color);
border-color:var(--main-color);
}
.wp-pagenavi span.current{
color:#FFF;
background-color:var(--main-color);
border-color:var(--main-color);
font-weight: bold;
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
カテゴリ選択プルダウン
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.cate_menu {
font-size: 1.2em;
}
.cate_menu select{
padding: 8px 8px 8px 8px;
border: 2px solid var(--main-color);
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
追記
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.ct_bottom_text {
font-size: 1.2em;
margin-top: 2em;
}
.wsp-pages-title {
display: none;
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
サイトマップ
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.sitemap-list {
font-size: 1.5em;
column-count: 2;	
line-height:1.8em;	
}
.sitemap-list ul{
margin-bottom: 2em;
}
.sitemap-list li{
margin-left: 2em;
list-style-type:circle;
}
@media screen and (max-width: 769px) {
.sitemap-list {
column-count: 1;	
}
.cate_menu select{
margin-top: 1em;
}	
}

.page-cover .page-header .page-header-bg {
	height: 48vw;
	background: url("<?php the_field('画像'); ?>") right center no-repeat;
	background-size: cover;
}	
.page-cover .page-header h1 {
	padding: 2rem;
	background: var(--sub-color);
	color: var(--content-title-color);
	font-size: 2em;
	font-weight: bold;
}

@media screen and (min-width: 768px) {
.page-cover .page-header {
	display: flex;
	background: var(--sub-color);	
	align-items: center;
	flex-flow: row-reverse;
}

.page-cover .page-header .page-header-bg {
	width: 50%;
	height: 240px;
}
.page-cover .page-header h1 {
	font-size: 2em;
	width: 50%;
	max-width: 630px;
	margin-left: auto;
	padding: 5rem;	
}
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
動画のタイトル（下層ページ用）
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

.movie-title {
    font-size: 2em;
    line-height: 1.3;
    color: var(--content-title-color);
	margin-top: 0.4em;
	margin-bottom: 0.7em;
}
@media screen and (min-width: 768px) {
.movie-title {
    font-size: 2.5em;
}
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
トップページ　メインビジュアル用スライド
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
section.header .inner {
	display: flex;
	align-items: center;
}

section.header .slogan {
	font-size: 7rem;
/*	text-shadow: 1px 1px 1px #000000;*/
/*	text-shadow: 0 0 7px #616161;*/
/*	text-shadow: 0 0 7px #616161;	*/
	line-height: 1.5em;	
	margin-top: 0px;
}

section.header + section {
	padding-top: 8rem;
}
@media screen and (max-width: 768px) {
section.header .slogan {
	font-size: 8vw;
}
}

article.home ul.slide {
	opacity: 0;
	position: relative;
	height: 38vw;
	margin-bottom: 40px;
}

article.home ul.slide li {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

article.home section.header h1.slogan {
	font-weight: bold;
	letter-spacing: 10px;	
	margin-right: 100px;
	font-size: 60px;
}

article.home section.header1 h1.slogan {
	width: 100%;
color: var(--button-bg-color);
	text-align: center;
}
article.home section.header2 h1.slogan {
	width: 100%;
color: var(--button-bg-color);
	text-align: center;
}
article.home section.header3 h1.slogan {
	width: 100%;
color: var(--button-bg-color);
	text-align: center;
}

article.home section.header h1.slogan span {
	display: block;
	margin-top: 1rem;
	font-weight: bold;
	font-size: 2rem;
}
article.home span {
margin: 110px 2px 2px 20px;
	font-size: 1.5rem;
		color: var(--button-bg-color);
	font-weight: bold;
}
article.home h2 {
	color: #111;
}

article.home .play {
	position: absolute;
	top: 0;
	right: 0;
	bottom: -400px;
	left: -300px;
	width: 120px;
	height: 120px;
	margin: auto;
	border-radius: 50%;
/*	background: var(--button-bg-color);*/
  background: #fff;	
	opacity: 1;

	transition: 0.3s ease-in-out;
/*	box-shadow: 0em 0.05em 3px #525252;*/
}

article.home .play:hover {
/*	opacity: 1;
	background: var(--sub-color);
	color: var(--main-color);*/
}

article.home .play::before {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: 0;
	height: 0;
	margin: auto;
	border-top: 12px solid transparent;
	border-left: 18px solid var(--button-bg-color);
	border-bottom: 12px solid transparent;
	content: "";
	transition: 0.3s ease-in-out;
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
フッターバナー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
#ft_banner {
  margin-bottom: -1px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -ms-flex-wrap: wrap;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-left: 10%;
  margin-right: 10%;
}
#ft_banner .item {
  ms-flex: 1 1 0%;
  -webkit-flex: 1 1 0%;
  flex: 1 1 0%;
  height: 200px;
  margin-left: 1.5%;
  margin-right: 1.5%;
}
#ft_banner .footer_banner-bg {
  background: var(--banner-bg-color);
}
#ft_banner a {
  display: block;
  position: relative;
  width: 100%;
  height: 100%
}
#ft_banner .image_wrap {
  display: block;
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
  overflow: hidden;
  border-radius: 20px;
	box-shadow: rgb(233 233 233) 2px 2px 10px 0px;
}
#ft_banner .image {
  width: 100%;
  height: 100% !important;
  display: block;
  overflow: hidden;
  position: relative;
  z-index: 2
}
#ft_banner .title_area {
  z-index: 5;
  position: absolute;
  left: 0;
  padding: 0 40px;
  top: 77%;
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-transition: all .35s ease;
  transition: all .35s ease
}
#ft_banner .title {
  font-size: 24px;
  font-weight: bold;
	color: var(--banner-title-color);	
text-shadow:0px 0px 5px var(--banner-title-shadow-color);	
}
#ft_banner .sub_title {
	color:var(--banner-title-sub-color);
  font-size: 16px;
  font-weight: bold;
text-shadow:0px 0px 5px var(--banner-title-shadow-color);		
margin-top: -5px;
}
#ft_banner .overlay {
  position: absolute;
  width: 70%;
/*  height: 100%;*/
top: 55%;
height: 45%;	
  z-index: 4;
  border-bottom-left-radius: 20px;
}
#ft_banner a:hover .title_area {
  left: 5px
}
#ft_banner .item {
  height: 240px;
}
#ft_banner .title_area {
  padding: 0 30px;
}
@media screen and (max-width:900px) {
  #ft_banner .item {
    height: 140px;
    width: 100%;
    -ms-flex: 1 0 auto;
    -webkit-flex: 1 0 auto;
    flex: 1 0 auto;
    margin-bottom: 3%;
  }
  #ft_banner .title_area {
    padding: 0 40px
  }
}
@media screen and (max-width:768px) {
  #ft_banner {
    margin-left: 6%;
    margin-right: 6%;
  }
  #ft_banner .item {
    height: 150px;
    margin-bottom: 10%;
    margin-left: 0%;
    margin-right: 0%;
  }
  #ft_banner .item:last-child {
    margin-bottom: 0%;
  }	
  #ft_banner .title_area {
    padding: 0 20px
  }
  #ft_banner .sub_title {
    margin-top: 0px
  }
  #ft_banner .image_wrap {
    border-radius: 10px;
  }
  #ft_banner .overlay {
    border-bottom-left-radius: 10px;
  }
}
#ft_banner a {
  color: #ffffff !important
}
#ft_banner .title {
  font-size: 30px
}
#ft_banner .sub_title {
  font-size: 20px
}
@media screen and (max-width:768px) {
  #ft_banner .title {
    font-size: 18px
  }
  #ft_banner .sub_title {
    font-size: 12px
  }
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
右サイドバナー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
@font-face {
  font-family: "icomoon";
  src: url("../fonts/icomoon.eot?hbakug");
  src: url("../fonts/icomoon.eot?hbakug#iefix") format("embedded-opentype"), url("../fonts/icomoon.ttf?hbakug") format("truetype"), url("../fonts/icomoon.woff?hbakug") format("woff"), url("../fonts/icomoon.svg?hbakug#icomoon") format("svg");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}
#side_menu {
  position: absolute;
  top: 350px;
  z-index: 100;
  transition: left 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0s, visibility .7s, opacity .7s;
  width: 280px;
  left: calc(100% - 100px);
  opacity: 0;
  /* display: none; */
  font-weight: bold;
	visibility: hidden;
}

#side_menu.show {
	visibility: visible;
	opacity: 1;
}

#side_menu a {
  font-size: 18px;
  color: #fff;
  display: flex;
  align-items: center;
	justify-content: center;
  min-height: 8rem;
  width: 18rem;
	padding-left: 1em;
	padding-right:1em;
	background: var(--side-menu-bg-color2);
}
#side_menu a div {
	width: 14rem;
}

#side_menu .icon {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-align: center;
  color: #fff;
  word-wrap: break-word;
  flex-shrink: 0;
  width: 10rem;
}
#side_menu .icon-img {
  font-family: "icomoon" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-size: 2.2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 10rem;
  height: 5rem;
  flex-grow: 1;
  flex-shrink: 0;
  position: relative;
}
#side_menu .icon-img::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
}
#side_menu .icon-map:before {
  content: "\e947";
}
#side_menu .icon-news:before {
  content: "\e904";
}
#side_menu .icon-tel:before {
  content: "\e942";
}
#side_menu .icon-calendar:before {
  content: "\e953";
}
#side_menu .icon-mail:before {
  content: "\e900";
}
#side_menu .icon-txt {
  font-size: 1.3rem;
	padding-bottom: 1em;
}
#side_menu .item {
  display: flex;
  border-bottom: 1px solid var(--side-menu-line-color);
  background: var(--side-menu-bg-color1);
  transition: 0.3s ease-in-out;
}
#side_menu .item:not(:first-child):hover {
/*  background: var(--number-color);
  opacity: 1;*/
}
#side_menu .item:first-child {
  border-top-left-radius: 10px;
}
#side_menu .item:last-child {
  border-bottom-left-radius: 10px;
  border-bottom: none;
}
#side_menu.left {
  transition: right 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0s a;
  transition-padding: 0 62px 0 40px;
}
#side_menu.fixed {
  position: fixed;
  top: 355px !important;
}
@media screen and (max-width: 1400px) {
#side_menu.fixed {
  top: 200px !important;
  }
}

@media screen and (max-width: 900px) {
  #side_menu {
    display: none !important;
  }
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
SP用フッターバー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
 #bottom-bar {
    position: fixed;
    right: 0;
    bottom: 0;
    z-index: 999;
    width: 100%;
	background: var(--button-bg-color);
    color: #fff; 
	display: none 
  }
 @media screen and (min-width:900px) {
     #bottom-bar {
      display: none!important;
    }
}
.bottom_bar_icon_map:before {
  content: "\e947";
}
.bottom_bar_icon_tel:before {
  content: "\e942";
}
.bottom_bar_icon_calendar:before {
  content: "\e953";
}
.bottom_bar_icon_mail:before {
  content: "\e900";
}
.bottom-bar {
  display: flex;
  flex-wrap: wrap;
  font-size: 10px;
  text-align: center;
  width: 100%;
  z-index: 9998;
}
.bottom-bar-item {
  flex: 1;
  margin: 0 -1px 0 0;
}
.bottom-bar a {
  display: block;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  border-right: 1px solid rgba(255, 255, 255, 0.3);
  height: 55px;
  position: relative;
}
/*.bottom-bar-item:last-of-type a {
  border: none;
}
.bottom-bar-item:first-of-type a {
  border: none;
}*/
.bottom-bar a:hover {
  position: relative;
  z-index: 10;
  border: none;
}
.bottom-bar a .label {
  bottom: 8px;
  left: 0;
  right: 0;
  position: absolute;
}
.bottom_bar_icon:before {
  display: block;
  font-family: "icomoon";
  font-size: 16px;
  position: relative;
  top: 8px;
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
診療時間表
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

#sinryou_table {
  margin: 0;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
  width: 80%;
  border-top: 1px solid #D7D5D5;
  border-left: 1px solid #D7D5D5;
  margin-top: 30px;
  margin-bottom: 10px;
}
#sinryou_table caption {
  background: #ccc;
  color: #fff;
  height: 50px;
  line-height: 50px;
  margin-bottom: -1px;
  font-weight: normal;
}
#sinryou_table thead {
  background: #F5F5F5;
}
#sinryou_table td, #sinryou_table th {
  padding: 20px 10px;
  text-align: center;
  vertical-align: middle;
  font-weight: normal;
  border-right: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
#sinryou_table .header {
  width: 200px;
  background: #ffffff;
}
#sinryou_table .color {
  background: var(--sub-color);
}
@media screen and (max-width:768px) {
  #sinryou_table .header {
    width: auto;
    background: #ffffff;
  }
#sinryou_table {
  width: 100%;
  margin-top: 0px;
  margin-bottom: 0px;	
}
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
その他
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

/*メガメニューのサブメニュータイトルを非表示*/
.mega-block-title,.mega-menu-toggle {
  display: none;
}

/*スマホだけコンテンツcenter*/
 @media screen and (max-width:768px) {
     .sp-center {
      text-align: center;
    }
}



/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　HP実績ギャラリー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
/* =========================
   ギャラリースタイル
========================= */
.gallery {
  position: relative;
    max-width: 100%;
  height: 700px;
  background: #000;
  overflow: hidden;
}

.gallery_hp_page {
  height: 80em!important;
  }

@media screen and (max-width: 768px) {
  .gallery {
    border-radius: 0;
    margin: 0;
    max-width: 100%;
  }

}

@media screen and (max-width: 480px) {
  .gallery {
    height: 600px;
  }
}

.gallery__container {
  display: flex;
  width: 200%;
  height: 100%;
  transform: rotate(40deg);
}
@media screen and (max-width: 768px) {
  .gallery__container {
    width: 300%; /* スマホ閲覧時は幅を300%に変更 */
  }
	
}

/* ギャラリーリスト */
.gallery__list {
  flex: 1;
  padding: 0 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gallery__list--animate {
  animation: scroll 60s linear infinite; /* ここを変更 */
}

@media screen and (max-width: 768px) {
  /* ギャラリーリストを表示する */
  .gallery__list {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

.gallery__item {
  width: 100%;
  margin-bottom: 16px;
}

.gallery__image {
  width: 100%;
  height: auto;
  transition: transform var(--hover-duration);
}

.gallery__image:hover {
  transform: scale(var(--hover-scale));
}

/* =========================
   オーバーレイスタイル
========================= */
.gallery__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.8) 1%, rgba(0, 0, 0, 0.7) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

@media screen and (max-width: 480px) {
  .gallery__overlay {
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.85) 1%, rgba(0, 0, 0, 0.5) 100%);
  }
}

/* =========================
   コンテンツスタイル
========================= */
.gallery__content {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding-bottom: 3em;	
}

@media screen and (max-width: 780px) {
  .gallery__content {
    align-items: flex-start;
    justify-content: center;
    padding-bottom: 1em;	 
  }
}

.gallery__text {
  margin-top: 64px;
  text-align: center;
}

@media screen and (max-width: 768px) {
  .gallery__text {
    width: 90%;
  }
}

@media screen and (max-width: 480px) {
  .gallery__text {
    align-items: center;
    margin-top: 32px;
    width: 90%;
  }
}

/* =========================
   見出しスタイル
========================= */
.gallery__heading {
  font-size: 42px;
  font-weight: 700;
  line-height: 1.4;
  color: #FFFFFF;
  margin: 32px 0;
  letter-spacing: 0.1em;
  transition-duration: 1.6s;
  transition-timing-function: cubic-bezier(0.2, 1, 1, 1);
}
.gallery__heading2 {
		font-family: 'Cormorant', serif;
      font-size: 10em;
      color: #FFFFFF;
      text-align: center;
      margin-bottom: 0em;
	 margin-top: 0.4em;
      line-height: 1;
	font-weight: normal;
}
.gallery__heading2_sub {
      font-size: 3em;
      color: #FFFFFF;
      text-align: center;
      margin-bottom: 0em;
      line-height: 1.5;
	font-weight: bold;
}
.gallery__heading2 span{
      font-size: 0.1em;
}
.gallery__heading3 {
     font-size: 2.5em;
  font-weight: 700;
  line-height: 1.4;
  color: #FFFFFF;
  margin: 1em 0;
  letter-spacing: 0.1em;
  transition-duration: 1.6s;
  transition-timing-function: cubic-bezier(0.2, 1, 1, 1);
}
.gallery__heading span{
  font-size: 0.5em;
}

@media screen and (max-width: 768px) {
  .gallery__heading {
    font-size: 32px;
  }
  .gallery__heading span{
    font-size: 0.6em;
  }	
.gallery__heading2 {
  font-size: 8em;
	    margin-top: 0.5em;	
}
.gallery__heading2_sub {
  font-size: 2.6em;
}	
.gallery__heading3 {
  font-size: 2.5em;
}	
}

@media screen and (max-width: 480px) {
  .gallery__heading {
    font-size: 24px;
    margin: 32px 0 16px 0;
    text-align: center;
  }
}

@media screen and (max-width: 360px) {
  .gallery__heading {
    font-size: 22px;
  }
}

/* =========================
   説明文スタイル
========================= */
.gallery__description {
  font-size: 1.7rem;
  line-height: 2;
  color: #FFFFFF;
  margin-bottom: 34px;
  letter-spacing: 0.05em;
  transition-duration: 1.6s;
  transition-timing-function: cubic-bezier(0.2, 1, 1, 1);
  padding: 2em;
}
.gallery__description2 {
  font-size: 1.7em;
  line-height: 1.5;
	font-weight: bold;
  color: #FFFFFF;
  margin-bottom: 0px;
  letter-spacing: 0.05em;
  transition-duration: 1.6s;
  transition-timing-function: cubic-bezier(0.2, 1, 1, 1);
  padding: 1em;
}
@media screen and (max-width: 1280px) {
  .gallery__description {
    flex: 5;
  }
}

@media screen and (max-width: 768px) {
  .gallery__description {
    font-size: 1.3rem;	  
    margin-bottom: 64px;
  }
}

@media screen and (max-width: 480px) {
  .gallery__description {
    line-height: 2;
    margin-bottom: 30px;
    text-align: center;
  }
}

/* =========================
   リンクスタイル
========================= */
.gallery__link {
  display: flex;
  align-items: center;
  background: #EEE;
  border-radius: 6px;
  padding: 16px 32px 16px 40px;
  text-decoration: none;
  color: #333;
  transition: opacity 0.3s cubic-bezier(0.4, 0.4, 0, 1);
}

.gallery__link:hover {
  opacity: 1;
}

.gallery__link-text {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
  color: #333;
  margin-right: 8px;
  transition: transform var(--hover-duration);
}

@media screen and (max-width: 360px) {
  .gallery__link-text {
    font-size: 16px;
  }
}

.gallery__link-icon {
  width: 16px;
  height: auto;
  transition: transform 0.4s cubic-bezier(0, 0.5, 0.22, 1);
}

.gallery__link:hover .gallery__link-icon {
  transform: translateX(8px);
}

/* =========================
   アニメーションスタイル
========================= */
@keyframes scroll {
  0% {
    transform: translateY(512px);
  }
  100% {
    transform: translateY(-2512px);
  }
}
@keyframes scroll-mobile {
  0% {
    transform: translateY(256px); /* 開始位置を調整 */
  }
  100% {
    transform: translateY(-800px); /* 終了位置を調整 */
  }
}
@media screen and (max-width: 768px) {
  .gallery__list--animate {
    animation: scroll-mobile 40s linear infinite; /* スマホ版のアニメーション */
  }
}

@keyframes arrow-animation {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(4px);
  }
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　新コンセプト
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
/* =========================
   ルート変数の定義
========================= */
:root {
  --hover-duration: 0.3s;
  --hover-scale: 1.05;
  --animation-duration: 0.6s;
  --animation-delay: 0.2s;
  --color-primary: #317CA5;
  --color-secondary: #B5CBD8;
}


/* =========================
   ユーティリティクラス
========================= */
.util-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
}

.util-animation-up {
  opacity: 0;
}

.util-animation-up.play {
  animation: anime-up var(--animation-duration) forwards;
  animation-delay: var(--animation-delay);
}

.util-font-en {
  font-family: var(--font-en-2);
}

.util-font-jp-1 {
  font-family: var(--font-jp-1);
}

.util-font-jp-2 {
  font-family: var(--font-jp-2);
}

.util-font-weight-400 {
  font-weight: var(--font-weight-400);
}

.util-font-weight-700 {
  font-weight: var(--font-weight-700);
}

/* =========================
   コンセプトセクションスタイル
========================= */
.concept {
  padding: 0 130px;
  position: relative;
	margin-top: 5em;
	margin-bottom: 7em;
}

.concept::before {
  width: calc(45% + 160px);
  height: 100%;
  content: "";
  background: linear-gradient(70deg, var(--color-primary) 0%, var(--color-primary) 38%, var(--color-secondary) 100%);
  position: absolute;
  top: 0;
  right: 0;
  border-radius: 0px 0 0 0px;
}

.concept__wrapper {
  max-width: 1620px;
  margin: 0 auto;
}

.concept__left {
  width: 55%;
  z-index: 1;
  padding: 0 0 150px 0;
}

.concept__header {
  padding: 50px 50px 0 0;
}

.concept__title {
  color: var(--color-primary);
}

.concept__title--en {
  font-size: 6.4rem;
  line-height: 1;
  letter-spacing: 2px;
}

.concept__title--jp {
  font-size: 1.6rem;
  line-height: 1;
  margin: 14px 0 0 30px;
  letter-spacing: 1px;
}

.concept__image-container {
  margin: 80px 0 0 calc(100% - 50vw);
  border-radius: 0 0px 0px 0;
  overflow: hidden;
  position: relative;
}

.concept__image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.concept__right {
  flex: 1;
}

.concept__content-wrapper {
  position: relative;
  padding: 130px 0 150px 60px;
/*  background: linear-gradient(70deg, var(--color-primary) 0%, var(--color-primary) 38%, var(--color-secondary) 100%);*/
}

.concept__copy--1 {
  font-size: 3.4rem;
  line-height: 1.8;
  color: #FFF;
  text-align: center;
  letter-spacing: 2px;
}

.concept__description {
  font-size: 1.7rem;
  line-height: 2.1;
  color: #FFF;
  text-align: center;
  margin: 60px 0 0 0;
  letter-spacing: 2px;
}

.concept__copy--2 {
  font-size: 2.1rem;
  line-height: 2.2;
  color: #FFF;
  text-align: center;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 11px;
  margin: 50px 0 0 0;
}

.concept__logo-container {
  max-width: 49%;
  margin: 94px auto 0 auto;
}

.concept__navigation {
  margin: 80px auto 0 auto;
  max-width: 92%;
}

.concept__navigation ul {
  font-size: 0;
  display: grid;
  grid-template-columns: 1.06fr 1.03fr 0.91fr;
  grid-gap: 10px;
}

.concept__navigation ul li {
  font-size: 1.6rem;
  line-height: 1.7;
  color: #C4C4C4; /* var(--c-12) に対応 */
  text-align: left;
}

.concept__navigation ul li a {
  color: var(--color-primary);
  border-radius: 100px;
  background: #FFF;
  padding: 18px 20px;
  display: block;
  height: 100%;
  box-sizing: border-box;
  position: relative;
}

.concept__navigation ul li a::before {
  width: 8px;
  height: 8px;
  content: "";
  display: block;
  background: var(--color-primary);
  border-radius: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 22px;
  margin: auto;
  transition: transform 0.2s;
  pointer-events: none;
}

.concept__navigation ul li a::after {
  width: 4px;
  height: 4px;
  content: "";
  display: block;
  border-radius: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 24px;
  margin: auto;
  transition: background 0.2s, transform 0.2s;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .concept__navigation ul li a:hover::before {
    transform: scale(1.5);
  }
  
  .concept__navigation ul li a:hover::after {
    background: #FFF;
  }
  
  .concept__navigation ul li a:hover {
    background: #FFF;
  }
}

/* =========================
   レスポンシブスタイル
========================= */
@media screen and (max-width: 768px) {
  .concept {
    padding: 0;
  }
  
  .concept::before {
    display: none;
  }
  
  .concept__wrapper {
    max-width: 1220px;
    margin: 0 auto;
  }
  
  .concept__left {
    width: 100%;
    padding: 0;
  }
  
  .concept__header {
    padding: 0 26px 20px 26px;
  }
  
  .concept__title--en {
    font-size: 4.4rem;
    line-height: 1;
    letter-spacing: 1px;
    text-align: center;
    margin: 0 auto;
    inline-size: fit-content;
  }
  
  .concept__title--en span::before {
    width: 5px;
    height: 5px;
  }
  
  .concept__title--jp {
    font-size: 1.1rem;
    line-height: 1;
    margin: 11px 0 0 0;
    letter-spacing: 1px;
    text-align: center;
  }
  
  .concept__image-container {
    margin: 20px 0 0 0;
    border-radius: 0;
    overflow: hidden;
    position: relative;
    aspect-ratio: 375 / 345;
  }
  
  .concept__image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .concept__content-wrapper {
    position: relative;
    padding: 50px 0 100px 0;
    background: linear-gradient(70deg, var(--color-primary) 0%, var(--color-primary) 38%, var(--color-secondary) 100%);
  }
  
  .concept__content-wrapper::before {
    display: none;
  }
  
  .concept__copy--1 {
    font-size: 2.2rem;
    line-height: 1.9;
    color: #FFF;
    text-align: center;
    letter-spacing: 2px;
  }
  
  .concept__description {
    font-size: 1.3rem;
    line-height: 2.1;
    color: #FFF;
    text-align: center;
    margin: 40px 0 0 0;
    letter-spacing: 1px;
  }
  
  .concept__copy--2 {
    font-size: 1.5rem;
    line-height: 2.4;
    color: #FFF;
    text-align: center;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 11px;
    margin: 30px 0 0 0;
  }
  
  .concept__logo-container {
    max-width: 51%;
    margin: 94px auto 0 auto;
  }
  
  .concept__navigation {
    margin: 60px auto 0 auto;
    max-width: 92%;
  }
  
  .concept__navigation ul {
    font-size: 0;
    display: grid;
    grid-template-columns: 1.06fr 1.03fr 0.91fr;
    grid-gap: 10px;
  }
  
  .concept__navigation ul li {
    font-size: 1.1rem;
    line-height: 1.7;
    color: #C4C4C4; /* var(--c-12) に対応 */
    text-align: left;
  }
  
  .concept__navigation ul li a {
    color: var(--color-primary);
    border-radius: 100px;
    background: #FFF;
    padding: 15px 16px;
    display: block;
    height: 100%;
    box-sizing: border-box;
    position: relative;
  }
  
  .concept__navigation ul li a::before {
    width: 5px;
    height: 5px;
    content: "";
    display: block;
    background: var(--color-primary);
    border-radius: 50%;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 14px;
    margin: auto;
    transition: transform 0.2s;
    pointer-events: none;
  }
  
  .concept__navigation ul li a::after {
    width: 4px;
    height: 4px;
    content: "";
    display: block;
    border-radius: 50%;
    position: absolute;
    top: 0;
    bottom: 0;
    right: 24px;
    margin: auto;
    transition: background 0.2s, transform 0.2s;
    pointer-events: none;
  }
  
  @media (hover: hover) and (pointer: fine) {
    .concept__navigation ul li a:hover::before {
      transform: scale(1.5);
    }
    
    .concept__navigation ul li a:hover::after {
      background: #FFF;
    }
    
    .concept__navigation ul li a:hover {
      background: #FFF;
    }
  }
}

/* =========================
   キーフレームアニメーション
========================= */
@keyframes anime-up {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }
  100% {
    transform: translateY(0px);
    opacity: 1;
  }
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　３つの特徴　文字スライド
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
.tl-content{
    position: relative;
    background-color: #fff;
}

/* CSS部分 */
.btn-primary, .btn-secondary {
    display: inline-block;
    position: relative;
    transition: background-color 0.3s ease-in-out;
}
.btn-primary {
    font-size: 1.6rem;
    font-weight: 400;
    padding: 16px 0;
}
.btn-primary::after {
    content: '';
    position: absolute;
    bottom: 0;
    height: 1px;
    right: 0;
    width: 16%;
    background-color: var(--color-black);
    transition: width 0.3s ease;
}
.btn-primary::before {
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    height: 1px;
    width: 100%;
    background-color: var(--color-black);
    opacity: 0.1;
}
.btn-primary:hover::after {
    width: 100%;
}
.btn-primary-text {
    margin-right: 13px;
}
.btn-secondary {
    width: 100%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 14px 15px;
    font-size: 1.3rem;
}
.btn-secondary:hover {
    background-color: var(--color-white);
}
.btn-primary-icon, .btn-secondary-icon {
    position: absolute;
    stroke: var(--color-black);
}
.btn-primary-icon {
    width: 21px;
    height: 12px;
right: -20px;
    top: 20px;
}
.btn-secondary-icon {
    width: 17px;
    height: 10px;
    right: 0; /* 必要に応じて調整 */
}

/* Top Life セクション */
.tl-bg {
    aspect-ratio: 1600 / 1074;
    width: 100%;
/*    margin-top: 89px;*/
    position: relative; /* 子要素の絶対配置に必要 */
}
.tl-bg2 {
    aspect-ratio: 2000 / 1074;
    width: 80%;
    margin-top: 89px;
    position: relative; /* 子要素の絶対配置に必要 */
	margin: auto;
}
@media only screen and (max-width: 767px){
    .tl-bg {
        margin-top: 0px;
        aspect-ratio: 9 / 16; /* スマホ版のみ縦長に変更 */
    }
    .tl-bg2 {
        margin-top: 44px;
        aspect-ratio: 9 / 16; /* スマホ版のみ縦長に変更 */
    }
}
.tl-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tl-marquee-wrap {
	font-family: 'Cormorant', serif;
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    z-index: 5;
    width: 100%;
    overflow: hidden;
    transform: translateY(-54%);
}
.tl-marquee {
    will-change: transform;
    animation: marquee 20s linear infinite;
    transform: translateX(0);
    white-space: nowrap;
    padding: 0 45px;
    font-size: 191px;
    color: rgba(255, 255, 255, 0.3); /* 70%の不透明度 */

}
@media only screen and (max-width: 767px){
    .tl-marquee {
        font-size: 9rem;
        letter-spacing: -3.6px;
    }
}
.tl-post-list {
    display: flex;
    flex-wrap: wrap;
	    margin-top: -6px;
}
@media only screen and (min-width: 1025px){
    .tl-post-list {
        flex-wrap: nowrap;
    }
}
.tl-post-item {
    flex: 1;
    background-color: var(--color-white);
}
.tl-post-item:nth-child(odd) .tl-post-content {
    border-right: 1px solid var(--color-bg);
}
@media only screen and (max-width: 1024px){
    .tl-post-item {
        width: 100%;
        flex: unset;
    }
}
.tl-post-img-wrap {
    aspect-ratio: 800 / 590;
    overflow: hidden;
    position: relative;
    z-index: 1;
}
.tl-post-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.tl-post-content {
    padding: 40px 70px 88px;
}
@media only screen and (max-width: 767px){
    .tl-post-content {
        padding: 47px 20px 60px;
    }
}
.tl-post-intro {
    font-size: 1.6rem;
    color: var(--color-black);
    opacity: 0.5 !important;
}
@media only screen and (max-width: 767px){
    .tl-post-intro {
        font-size: 1.3rem;
    }
}
.tl-post-title {
    font-size: 3rem;
    line-height: 1.6;
    margin-top: 10px;
    font-weight: 400;
}
@media only screen and (max-width: 767px){
    .tl-post-title {
        font-size: 2rem;
        margin-top: 16px;
        line-height: 1.65;
    }
}
.tl-post-desc {
    line-height: 2.18;
    font-size: 1.6rem;
    margin-top: 36px;
}
@media only screen and (max-width: 767px){
    .tl-post-desc {
        line-height: 2;
        font-size: 1.3rem;
        margin-top: 22px;
    }
}
.tl-post-btn {
    margin-top: 33px;
}
@media only screen and (max-width: 767px){
    .tl-post-btn {
        margin-top: 32px;
    }
}

/* ユーティリティクラス */
.util-hide-sp {
    display: block;
}
@media screen and (max-width: 767px){
    .util-hide-sp {
        display: none;
    }
}
.util-only-sp {
    display: none;
}
@media screen and (max-width: 767px){
    .util-only-sp {
        display: block;
    }
}
.util-fade {
    position: relative;
    transition: all 0.7s ease;
    opacity: 0;
    transform: translateY(50px);
}

/* キーフレーム */
@keyframes marquee {
    0% { transform: translateX(0); }
    100% { transform: translateX(-100%); }
}

/* 縦書きテキストのスタイル */
.vertical-text {
    position: absolute;
    top: 30%; /* 少し上に移動 */
    left: 50%;
    transform: translate(-50%, -50%);
    writing-mode: vertical-rl; /* 縦書きモードを有効化 */
    text-orientation: upright; /* 日本語を縦方向に配置 */
    font-size: 2.5rem; /* テキストを大きくする */
    color: rgba(255, 255, 255, 0.9); /* 半透明の白色 */
    line-height: 2.5; /* 文字間隔を広げる */
	letter-spacing: 0.5em;
    z-index: 10; /* 他の要素の上に表示 */
    font-weight: normal; /* 文字を太字に */
    text-align: center; /* 中央揃え（必要に応じて調整） */
}
.vertical-text2 {
    position: absolute;
    top: 40%; /* 少し上に移動 */
    left: 10%;
    transform: translate(-50%, -50%);
    writing-mode: vertical-rl; /* 縦書きモードを有効化 */
    text-orientation: upright; /* 日本語を縦方向に配置 */
    font-size: 2em; /* テキストを大きくする */
    color: rgba(255, 255, 255, 0.9); /* 半透明の白色 */
    line-height: 2.5; /* 文字間隔を広げる */
	letter-spacing: 0.3em;
    z-index: 10; /* 他の要素の上に表示 */
    font-weight: normal; /* 文字を太字に */
    text-align: center; /* 中央揃え（必要に応じて調整） */
}

@media only screen and (max-width: 767px) {
    .vertical-text {
        top: 30%; /* モバイル用にさらに上に移動 */
        font-size: 2rem; /* モバイル用に文字サイズを調整 */
        line-height: 2.2; /* モバイル用の文字間隔調整 */
    }
    .vertical-text2 {
        top: 30%; /* モバイル用にさらに上に移動 */
        font-size: 2rem; /* モバイル用に文字サイズを調整 */
        line-height: 2.2; /* モバイル用の文字間隔調整 */
    }
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　メインビジュアル映像
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
/* ユーティリティクラス */
.position-relative {
    position: relative;
}

.position-absolute {
    position: absolute;
}

.overflow-hidden {
    overflow: hidden;
}

.display-block {
    display: block;
}

/*.flex {
    display: flex;
}*/

.inline-flex {
    display: inline-flex;
}

.justify-center {
    justify-content: center;
}

.align-items-center {
    align-items: center;
}

.align-items-end {
    align-items: flex-end;
}

.uppercase {
    text-transform: uppercase;
}

.full-width {
    width: 100%;
}

.full-height {
    height: 100%;
}

.boxed-layout {
    max-width: 165rem;
    margin-left: auto;
    margin-right: auto;
}

.margin-bottom-40 {
    margin-bottom: 4rem;
}

.margin-left {
    margin-left: 2rem;
}

.padding-top-180 {
    padding-top: 18rem;
}

.padding-top-none {
    padding-top: 0;
}

.padding-bottom-90 {
/*    padding-bottom: 9rem;*/
}

.padding-horizontal-mobile {
    padding-left: 2rem;
    padding-right: 2rem;
}

/* フォントサイズ */
.medium-font-size {
    font-size: 1rem;
    line-height: 1.3;
}

.large-font-size {
    font-size: 39px;
    line-height: 0.9;
}

/* レスポンシブスタイル */
@media only screen and (min-width: 1024px) {
    .medium-font-size {
        font-size: 2rem;
        line-height: 1.3;
    }	
    .large-font-size {
        font-size: 4.375vw;
        line-height: 1.1;
    }
    .padding-top-180 {
        padding-top: 9.375vw;
    }
    .padding-bottom-90 {/*
        padding-bottom: 4.6875vw;*/
    }
    .margin-bottom-40 {
        margin-bottom: 2.0833333333vw;
    }
    .margin-left {
        margin-left: 1.0416666667vw;
    }
}

@media only screen and (min-width: 1600px) {
    .large-font-size {
        font-size: 77px;
    }
}

@media only screen and (min-width: 1920px) {
    .padding-top-180 {
        padding-top: 180px;
    }
    .padding-bottom-90 {
        padding-bottom: 90px;
    }
    .margin-bottom-40 {
        margin-bottom: 40px;
    }
    .margin-left {
        margin-left: 20px;
    }
}

@media only screen and (max-width: 1023px) {
    .responsive-padding-top-30 {
        padding-top: 30px;
        padding-bottom: 30px;
    }
    .responsive-padding-bottom-none {
        padding-bottom: 0;
    }
    .responsive-margin-bottom-none {
        margin-bottom: 0;
    }
    .padding-horizontal-mobile {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* アニメーション関連 */
[data-js-split-words], [data-js-split-words] .word {
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

[data-js-split-words] .word {
    display: inline-block;
    position: relative;
    overflow: hidden;
	font-family: 'Cormorant', serif;
		font-weight: normal;
}

[data-js-split-words] .word .word-main{
	font-size: 1em;
}

[data-js-split-words] .word .word-sub{
	font-size: 0.4em;
	letter-spacing: 0.2em;
}

[data-js-split-words] .word:after {
    content: " ";
    margin-right: 5px;
}

[data-js-split-words] .word .word-inner {
    transform: translate3d(0, 100%, 0);
    opacity: 1;
    display: inline-block;
}

/* ヒーローセクション */
.hero-section {
    background-color: #000;
    margin-top: -120px;
    margin-bottom: 7em;
    position: relative;
    overflow: hidden;
    z-index: 0; /* z-indexを0に設定 */
}

.hero-content {
    z-index: 2; /* z-indexを2に設定 */
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.hero-title {
    line-height: 1.2;
    color: #fff; /* テキストカラーを白に設定 */
}

@media only screen and (min-width: 1024px) {
    .hero-title {
        line-height: 1.1;
    }
}

.first-line .word {
    margin-bottom: -1.5rem;
}

.hero-grid {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

@media only screen and (min-width: 1024px) {
    .hero-grid {
        display: grid;
        grid-template-areas:
            "one one"
            "three two";
        align-content: end;
        align-items: start;
    }
}

.hero-grid .hero-services {
    grid-area: two;
    padding-bottom: 100px;
		font-family: 'Cormorant', serif;
		font-weight: normal;
}

.hero-grid .hero-button {

    grid-area: three;
    opacity: 1; /* ボタンが見えるように opacity を 1 に設定 */
}

.hero-services {
    transform-style: preserve-3d;
    backface-visibility: hidden;
    display: block;
    overflow: hidden;
    opacity: 1;
    color: #fff;
}

.subtitle {
    opacity: 1;
    display: block;
    will-change: transform;
    transform: translateZ(0);
    backface-visibility: hidden;
    transform-style: preserve-3d;
}

/* ビデオ背景 */
.video-background {
    position: relative;
    width: 100%;
    height: 100vh;
    background-color: #000;
    z-index: 0;
    overflow: hidden;
}



.video-overlay {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    background-color: rgba(0, 0, 0, 0.1);
    transform-style: preserve-3d;
    transform: translateZ(0);
}
.postid-9602 .video-overlay {
    background-color: rgba(0, 0, 0, 0.2);
}

.video-background .video-element,
.video-background .video-overlay {
    position: absolute;
    backface-visibility: hidden;
    display: block;
}

.video-background .video-element {
    width: 330%;
    height: auto;
    max-width: none;
    min-height: 100%;
    min-width: 100%;
    z-index: 1;
    transform-style: preserve-3d;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

@media only screen and (min-width: 1024px) {
    .video-background .video-element {
        width: 100%;
        height: auto;
        max-width: none;
        min-height: 100%;
        min-width: 100%;
        z-index: 1;
        transform-style: preserve-3d;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
    }
}

/* 再生ボタンのスタイル */
.video-play-button {
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    margin: 0;
    color: inherit;
    font: inherit;
    text-transform: uppercase;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.video-play-button__icon {
    width: 6rem;
    height: 6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transition: transform 0.6s cubic-bezier(0.43, 0.195, 0.02, 1);
}

.video-play-button__svg {
    width: 7.5rem; /* 1.5rem × 5倍 */
    height: 7.5rem; /* 1.5rem × 5倍 */
    transition: transform 0.6s cubic-bezier(0.43, 0.195, 0.02, 1);
}

.video-play-button__svg polygon {
    /* 再生アイコンをさらに小さくするために縮小 */
    transform-origin: center;
    transform: scale(0.8);
    transition: transform 0.6s cubic-bezier(0.43, 0.195, 0.02, 1);
}

.video-play-button__label {
    margin-left: 1.5rem;
    color: #fff;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

/* ホバー時のアニメーション */
@media only screen and (min-width: 1025px) {
    .video-play-button:hover .video-play-button__icon {
        transform: scale(1.2);
    }

    .video-play-button:hover .video-play-button__svg polygon {
        transform: translate3d(200%, 0, 0);  /* 位置のみを移動し、サイズ変更なし */
        transition: transform 0.6s cubic-bezier(0.43, 0.195, 0.02, 1);
        animation: slideBack 0.6s forwards;
    }
}

/* スライドバックアニメーション */
@keyframes slideBack {
    0% {
        transform: translate3d(200%, 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

/* 下部の左右対称で下向きの曲線スタイル */
.hero-curve {
    position: absolute;
      bottom: -210px; /* 曲線を下に50px移動 */
    left: 0;
    width: 100%;
    height: auto;
    z-index: 1; /* z-indexを1に設定 */
}
@media (max-width: 1500px) {
    .hero-curve {
        bottom: -110px; /* 曲線を下に210px移動 */
    }
}
@media (max-width: 800px) {
    .hero-curve {
          bottom: -1px; /* 0pxから-1pxに変更 */
    }
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　数字の実績
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/


/* 基本スタイル（モバイルファースト） */
.about-data {
  border-bottom: 1px solid #000;
	margin-top: 5em;
	margin-bottom: 5em;
}

@media screen and (max-width: 768px) {
.about-data {
	margin-top: 0em;
}
}

.about-item {
  border-top: 1px solid #000;
  padding: 32px 0;
}
/* スマホ用スタイル（画面幅768px以下） */
@media screen and (max-width: 768px) {
  .about-item:first-child {
    border-top: none; /* 一番上の線を削除 */
  }
}
.about-title {
  text-align: center;
  font-feature-settings: "palt";
  font-weight: 400;
  line-height: 1.5;
  font-size: 1.5rem; /* デフォルトは小画面用 */
}

.about-title::before,
.about-title::after,
.about-unit::before,
.about-unit::after {
  content: "";
  display: table;
}

.about-title::before {
  margin-bottom: calc((1 - 1.5) * 0.5em);
}

.about-title::after {
  margin-top: calc((1 - 1.5) * 0.5em);
}

.about-content {
  margin-top: 32px;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 20px;
}

.about-number {
  font-feature-settings: "palt";
  font-family: "marlide-display-variable", sans-serif;
  font-variation-settings: "wght" 300;
  font-size: 5rem; /* デフォルトは小画面用 */
  line-height: 1;
}

.about-number::before {
  margin-bottom: calc((0.85 - 1) * 0.5em);
}

.about-number::after {
  margin-top: calc((0.55 - 1) * 0.5em);
}

.about-unit {
  font-feature-settings: "palt";
  font-weight: 400;
  line-height: 1.5;
  font-size: 1.5rem; /* デフォルトは小画面用 */
}

.about-unit::before {
  margin-bottom: calc((1 - 1.5) * 0.5em);
}

.about-unit::after {
  margin-top: calc((1 - 1.5) * 0.5em);
}

/* 大画面用スタイル */
@media screen and (min-width: 1025px) {
  .about-data {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-right: 1px solid #000;
    border-bottom: none;
  }

  .about-item {
    border-top: none;
    border-left: 1px solid #000;
    padding: 4px 0;
  }

  .about-title {
    font-size: 2rem;
  }

  .about-content {
    margin-top: 48px;
  }

  .about-number {
    font-size: 7.5rem;
  }

  .about-unit {
    font-size: 2rem;
  }
}
/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　インタビュー実績スライダー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/
   
    /* コンテナ */
    .container_moon {
		padding-top: 5em	;
		padding-bottom: 5em	;  }
    
    /* メンバーナンバー */
    .member-number {
        display: flex;
        flex-direction: column;
        justify-content: center;
        inline-size: 7.5em;
        aspect-ratio: 1 / 1;
        margin-inline: auto;
        background: var(--clr-primary);
        border-radius: 50%;
        color: #fff;
        font-size: calc(clamp(1rem, 0.926rem + 0.19vw, 1.2rem) * 0.9090909091);
        font-weight: var(--fw-sb);
        line-height: 1.2;
        text-align: center;
        text-transform: uppercase;
    }
    .member-number::after {
        counter-increment: memberNumber;
        content: counter(memberNumber, decimal-leading-zero);
        display: block;
        font-size: 3em;
        font-weight: normal;
        line-height: 1;
    }
    
    /* ヘッダーセクション */
    .header-section {
        --mt: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
    }
    .header-section + * { 
        margin-block-start: clamp(3rem, 1.886rem + 2.857vw, 6rem); 
    }
    
    /* セクションタイトル */
    .section-title {
        display: grid;
        column-gap: 1em;
        font-size: clamp(4.68rem, 3.447rem + 3.162vw, 8rem);
        --ff-base: var(--ff-bold);
        font-family: "CommissionerFont", var(--ff-base), "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: var(--fw-sb);
        line-height: 1.5;
        text-transform: uppercase;
    }
    .section-title + * { 
        margin-block-start: var(--mt, clamp(3rem, 1.44rem + 4vw, 7.2rem)); 
    }
    
    /* セクションタイトルのハイライト */
    .section-title-highlight {
        display: flex;
        align-items: center;
        gap: 0.5em;
        font-size: clamp(1.6rem, 1.303rem + 0.762vw, 2.4rem);
    }
    .section-title-highlight::before {
        content: "";
        flex: none;
        display: inline-block;
        inline-size: var(--size, 0.66em);
        aspect-ratio: 1;
        border-radius: 50%;
        background: var(--clr, var(--clr-secondary));
        --size: 0.8em;
    }
    
    /* メンバー画像 */
    .member-image {
        position: relative;
        inline-size: fit-content;
        aspect-ratio: 1 / 1;
        margin-inline: auto;
    }
    .member-image::before, .member-image::after {


        content: "";
        position: absolute;
        z-index: 0;
        min-inline-size: 0;
    }
    .member-image-inner {
        overflow: hidden;
        overflow: visible;
        position: relative;
        z-index: 1;
        display: grid;
        aspect-ratio: 1.15;
        max-block-size: 100%;
    }
    .member-image-inner img {
        inline-size: 100%;
        block-size: 100%;
        object-fit: cover;
        grid-area: 3 / 1;
		        /*grid-area: 1 / 1;
        border-radius: 50%;*/
    }
    .member-image-inner img.hover-image {
        opacity: 0;
        transition: var(--transition);
    }
    
    /* メンバー画像デコレーション */
    .member-image-deco::before, .member-image-deco::after {
        background-color: var(--clr-primary);
        inline-size: 80.15%;
        aspect-ratio: 271.06 / 120.4;
        mask: url(https://largic.jp/wordpress/wp-content/themes/largic-theme/dist/img/common/bubble_deco.svg) no-repeat 50% 50% / contain;
    }
    .member-image-deco::before {
        inset-inline-end: 0;
        inset-block-start: 0;
        transform: rotate(69.886deg) translate(25%, 40%);
    }
    .member-image-deco::after {
        inset-inline-start: 0;
        inset-block-end: 0;
        inline-size: 68.2%;
        transform: rotate(-163.334deg) translate(2%, -2%);
        background-color: var(--clr-secondary);
    }
    .member-image-deco .member-image-inner::before, .member-image-deco .member-image-inner::after {
        content: "";
        position: absolute;
        z-index: -1;
        inset: 0;
        background: var(--bg-clr-body);
        border-radius: 50%;
    }
    .member-image-deco .member-image-inner::before {
        inset: 10%;
        background: rgba(56, 77, 112, 0.2);
        transform: translate(20%, 20%);
        filter: blur(3.5rem);
        will-change: filter;
    }
    
    /* 詳細ボタン */
    .detail-button {
        --btn-bw: 1px;
        --btn-h: 3.5em;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.5em;
        inline-size: fit-content;
        max-inline-size: 100%;
        padding-inline: 1em;
        padding-block: calc((var(--btn-h) - var(--btn-bw) * 2 - 1lh) / 2.1) calc((var(--btn-h) - var(--btn-bw) * 2 - 1lh) / 1.9);
        color: var(--btn-fc, var(--clr-primary));
        font-size: var(--btn-fs, inherit);
        --ff-base: var(--ff-bold);
        font-family: "CommissionerFont", var(--ff-base), "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic Medium", "Yu Gothic", Meiryo, "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: var(--fw-sb);
        text-align: center;
        line-height: var(--btn-lh, var(--lh-btn));
        text-decoration: none;
        background: var(--btn-bg, #fff);
        border: var(--btn-bw) solid var(--btn-bc, var(--clr-primary));
        border-radius: var(--r-btn);
        transition: var(--transition);
        --margin: clamp(0.6rem, 0.526rem + 0.19vw, 0.8rem);
        --shadow-w: 2px;
        --shadow-clr: #abbfe1;
        --line: linear-gradient(92deg, #d4e0f5 0.71%, #f4f8ff 65.4%, #d4e0f5 103.49%);
        position: relative;
        z-index: 1;
        border-color: rgba(0, 0, 0, 0);
        margin-inline: var(--margin);
        box-shadow: var(--shadow-w) var(--shadow-w) 0 var(--shadow-clr);
        --icon-position: 0em;
        --icon-margin: 0.5em;
        --icon-space: calc(var(--icon-size) + var(--icon-position) + var(--icon-margin));
        padding-inline-end: var(--icon-space);
        --icon-size: 0.8em;
        --icon-position: 1em;
        --icon-margin: 1em;
        min-inline-size: 14.3em;
    }
    @media screen and (hover: hover) {
        .detail-button:hover {
            --btn-fc: #fff;
            --btn-bg: var(--clr-primary);
        }
    }
    .detail-button::before {
        content: "";
        position: absolute;
        z-index: -1;
        inset: calc(-1 * var(--margin));
        background: var(--line);
        border-radius: calc(var(--r-btn) + var(--margin));
        mix-blend-mode: hue;
        pointer-events: none;
    }
    .detail-button::after {
        position: absolute;
        inset-inline-end: var(--icon-position);
        inset-block: 0;
        margin-block: auto;
        --size: var(--icon-size, 1em);
        content: "";
        display: inline-block;
        vertical-align: middle;
        inline-size: var(--size);
        aspect-ratio: 1;
        --clr: var(--icon-color, currentColor);
        background: var(--clr);
        mask: url(https://largic.jp/wordpress/wp-content/themes/largic-theme/dist/img/icon/arrow_r.svg) no-repeat center / contain;
        animation: moveArrowReverse var(--t-duration) var(--easeOutQuart) forwards;
    }
    @media screen and (hover: hover) {
        .detail-button:hover {
            --btn-fc: var(--clr-primary);
            --btn-bg: #fff;
        }
        .detail-button:hover::after {
            animation: moveArrow var(--t-duration) var(--easeOutQuart) forwards;
        }
    }
    .detail-button {
        --shadow-w: 1px;
        --btn-fs: clamp(1.3rem, 1.189rem + 0.286vw, 1.6rem);
        --btn-h: clamp(4.6rem, 4.154rem + 1.143vw, 5.8rem);
        padding-inline-start: var(--icon-space);
    }
    .button-center {
        display: flex;
        margin-inline: auto;
    }
    
   
    /* メンバーラッパー */
    .members-wrapper {
        --block-space: 6rem;
        counter-reset: memberNumber;
       pointer-events: all;
		margin-top: -3em;
    }
    .members-wrapper .member-slide {
        display: block;
        inline-size: 100%;
        block-size: 100%;
        max-inline-size: 41rem;
        margin-inline: auto;
        pointer-events: all;
    }
    .members-wrapper.js-custom-slider {
        --block-space: clamp(0rem, 0rem + 0vw, 0rem);
        overflow: visible;
        padding-block: var(--block-space) 3.5rem;
    }

    @media (min-width: 768px) {
        .members-wrapper.js-custom-slider {
            margin-inline: -2rem;
        }
    }
    @media (max-width: 767.98px) {
        .members-wrapper.js-custom-slider {
            overflow: hidden;
            margin-inline: calc(-1 * var(--sideSpace));
            margin-block-start: 0;
            padding-inline: var(--sideSpace);
      /*      padding-block-start: calc(var(--block-space) + 3rem);*/
        }
    }
    .members-wrapper.js-custom-slider .custom-slider-wrapper {
        will-change: transform;
		margin-left: 0em;
    }
    @media (min-width: 768px) {
    .members-wrapper.js-custom-slider .custom-slider-wrapper {
        will-change: transform;
		margin-left: 7em;
    }
    }

    .members-wrapper.js-custom-slider .custom-slider-slide {
        max-inline-size: clamp(26.5rem, 21.114rem + 13.81vw, 41rem);
    }
  .members-wrapper.js-custom-slider .custom-slider-slide:nth-child(2n+1) {
    inset-block-start: calc(-1 * var(--block-space));
}
    @media (min-width: 768px) {
        .members-wrapper.js-custom-slider .member-card .member-number {
            inline-size: 8.6rem;
        }
        .members-wrapper.js-custom-slider .member-card .member-number::after {
            font-size: 3.2727272727rem;
        }
        .members-wrapper.js-custom-slider .member-card-inner {
            margin-inline: 10%;
  /*          margin-block-start: -10rem;*/
            padding-block: 2.5rem;
        }
        .members-wrapper.js-custom-slider .member-name {
            font-size: 1.3636363636rem;
        }
        .members-wrapper.js-custom-slider .member-description {
            margin-block-end: 0.8em;
        }
        .members-wrapper.js-custom-slider .member-role {
            font-size: 1.4rem;
        }
        .members-wrapper.js-custom-slider .tags {
            font-size: 1.3rem;
        }
    }
    
    /* メンバーカード */
    .member-card {
        position: relative;
    }
    .member-card * { pointer-events: none; }
    .member-card .member-number {
        position: absolute;
        z-index: 2;
        transform: translateZ(0);
        inset-inline-start: clamp(1rem, 0.629rem + 0.952vw, 2rem);
        inset-block-start: 1rem;
        inline-size: clamp(6.2rem, 5.754rem + 1.143vw, 7.4rem);
        font-size: calc(clamp(0.7rem, 0.589rem + 0.286vw, 1rem) * 0.9090909091);
		color: #1F3A5E;
    }
    .member-card .member-number::after {
        font-size: calc(clamp(2.4rem, 2.103rem + 0.762vw, 3.2rem) * 0.9090909091);
    }
    .member-card .member-image {
        inline-size: 100%;
        transform: translateZ(0);
        z-index: 1;
    }
    .member-card .member-image::after {
        transform: rotate(-116.832deg) translate(-20%, -42%);
    }
    .member-card-inner {
        position: relative;
        z-index: 2;
        transform: translateZ(0);
        margin-block-start: calc(-1 * clamp(5.8rem, 4.983rem + 2.095vw, 8rem));
        padding-inline: clamp(2rem, 1.629rem + 0.952vw, 3rem);
        padding-block: 1.5rem;
        background: #fff;
        border-radius: var(--r-lg);
	
    }
    @media (min-width: 768px) {
        .member-card-inner {
            max-inline-size: 31rem;
            margin-inline: auto;
        }
    }
    @media (max-width: 767.98px) {
        .member-card-inner {
            margin-inline: 6%;
        }
    .member-card .member-image {
		width: 260px;
    }			
    }
/*    .member-card-inner::before {
        --clr: var(--icon-color, currentColor);
        content: "";
        position: absolute;
        z-index: 1;
        inset-inline-end: 28%;
        inset-block-end: 100%;
        inline-size: clamp(4rem, 3.591rem + 1.048vw, 5.1rem);
        aspect-ratio: 51 / 13;
        margin-block-end: -1px;
        clip-path: path("M27.6799 1.9737C26.3824 0.607724 24.2052 0.607725 22.9077 1.9737L15.2235 10.0638C13.6703 11.6991 11.5138 12.625 9.25839 12.625H0.390381H50.1036H41.3292C39.0738 12.625 36.9173 11.6991 35.3641 10.0638L27.6799 1.9737Z");
        background: inherit;
    }*/
    .member-name {
        font-size: calc(clamp(1rem, 0.851rem + 0.381vw, 1.4rem) * 0.9090909091);
    }
    .member-description {
        margin-block-end: 0.5em;
        padding-block-end: 0.5em;
        font-size: clamp(1.3rem, 1.114rem + 0.476vw, 1.8rem);
    }
    .member-info {
        display: grid;/*
        grid-template-columns: max-content minmax(auto, 70%);*/
        align-items: center;
        gap: 0.5rem 0.5rem;
        justify-content: space-between;
    }
    .member-info .member-role {
        font-size: clamp(1rem, 0.889rem + 0.286vw, 1.3rem);
    }
    .tags {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min-content, 3em));
        justify-content: flex-end;
        font-size: clamp(0.9rem, 0.789rem + 0.286vw, 1.2rem);
    }
    .tags .tag {
        font-size: inherit;
        padding-block: 0.5em;
    }
    @media screen and (hover: hover) {
        .member-card:hover .member-image-inner img.hover-image {
            opacity: 1;
        }
    }
    
    /* プロファイルセクション */
    .profile .member-image {
        inline-size: 100%;
        margin-block: clamp(1.5rem, 1.389rem + 0.286vw, 1.8rem);
    }
    @media (max-width: 767.98px) {
        .profile .member-image {
            max-inline-size: 20rem;
            margin-inline: auto;
        }
    }
    .profile-inner {
        display: flex;
        align-items: baseline;
        flex-wrap: wrap;
        gap: 1rem;
        padding-inline: clamp(0rem, -0.557rem + 1.429vw, 1.5rem);
    }
    .profile .member-name {
        position: relative;
        margin-inline-start: clamp(1.5rem, 1.129rem + 0.952vw, 2.5rem);
        font-size: 1.0909090909rem;
        line-height: 1.2;
    }
    .profile .member-name::before {
        position: absolute;
        inset-inline-end: 100%;
        inset-block-start: 0.25lh;
        margin-inline-end: 0.8em;
    }
    .member-join {
        font-size: 1.1rem;
        line-height: 1.2;
    }
    .profile-info {
        display: grid;
        grid-template-columns: max-content minmax(auto, 70%);
        align-items: center;
        gap: 1rem 0.5rem;
        justify-content: space-between;
        inline-size: 100%;
    }
    @media (max-width: 767.98px) {
        .profile-info {
            grid-template-columns: auto;
            justify-content: normal;
        }
    }
    .profile-info .member-role {
        margin-inline-start: clamp(0rem, -0.929rem + 2.381vw, 2.5rem);
        line-height: 1.2;
    }
    @media (max-width: 767.98px) {
        .tags {
            justify-content: normal;
        }
    }
    
    /* カスタムスクロールバー */
    .custom-scrollbar .simplebar-wrapper {
        max-block-size: 100%;
    }
    .custom-scrollbar .simplebar-track {
        background: #d5deea;
    }
    .custom-scrollbar .simplebar-track.simplebar-vertical {
        inline-size: 2px;
        border-radius: 10px;
    }
    .custom-scrollbar .simplebar-scrollbar {
        will-change: transform;
    }
    .custom-scrollbar .simplebar-scrollbar.simplebar-visible::before {
        inset: 0;
        background: var(--clr-primary);
        opacity: 1;
        transition: none;
    }
    
    /* Homeページスタイル */
 /*   .home .container {
        --sideSpace: clamp(3rem, -2.2rem + 13.333vw, 17rem);
        inline-size: min(100% - calc(var(--sideSpace) * 2), 158rem);
    }*/
    
    /* ブロックライブラリスタイル */
    @media all {
        figure { margin: 0 0 1em; }
    }
    
    /* Simplebarスタイル */
    [data-simplebar] {
        position: relative;
        display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-content: flex-start;
        align-items: flex-start;
    }
    .simplebar-wrapper {
        overflow: hidden;
        width: inherit;
        height: inherit;
        max-width: inherit;
        max-height: inherit;
    }
    .simplebar-mask {
        direction: inherit;
        position: absolute;
        overflow: hidden;
        padding: 0;
        margin: 0;
        left: 0;
        top: 0;
        bottom: 0;
        right: 0;
        width: auto !important;
        height: auto !important;
        z-index: 0;
    }
    .simplebar-offset {
        direction: inherit !important;
        box-sizing: inherit !important;
        resize: none !important;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        padding: 0;
        margin: 0;
        -webkit-overflow-scrolling: touch;
    }
    .simplebar-content-wrapper {
        direction: inherit;
        box-sizing: border-box !important;
        position: relative;
        display: block;
        height: 100%;
        width: auto;
        max-width: 100%;
        max-height: 100%;
        overflow: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }
    .simplebar-content-wrapper::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
    .simplebar-content::before, .simplebar-content::after {
        content: ' ';
        display: table;
    }
    .simplebar-placeholder {
        max-height: 100%;
        max-width: 100%;
        width: 100%;
        pointer-events: none;
    }
    .simplebar-height-auto-observer-wrapper {
        box-sizing: inherit !important;
        height: 100%;
        width: 100%;
        max-width: 1px;
        position: relative;
        float: left;
        max-height: 1px;
        overflow: hidden;
        z-index: -1;
        padding: 0;
        margin: 0;
        pointer-events: none;
        flex-grow: inherit;
        flex-shrink: 0;
        flex-basis: 0;
    }
    .simplebar-height-auto-observer {
        box-sizing: inherit;
        display: block;
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        height: 1000%;
        width: 1000%;
        min-height: 1px;
        min-width: 1px;
        overflow: hidden;
        pointer-events: none;
        z-index: -1;
    }
    .simplebar-track {
        z-index: 1;
        position: absolute;
        right: 0;
        bottom: 0;
        pointer-events: none;
        overflow: hidden;
    }
    .simplebar-scrollbar {
        position: absolute;
        left: 0;
        right: 0;
        min-height: 10px;
    }
    .simplebar-scrollbar::before {
        position: absolute;
        content: '';
        background: black;
        border-radius: 7px;
        left: 2px;
        right: 2px;
        opacity: 0;
        transition: opacity 0.2s 0.5s linear;
    }
    .simplebar-scrollbar.simplebar-visible::before {
        opacity: 0.5;
        transition-delay: 0s;
        transition-duration: 0s;
    }
    .simplebar-track.simplebar-vertical {
        top: 0;
        width: 11px;
    }
    .simplebar-scrollbar::before {
        top: 2px;
        bottom: 2px;
        left: 2px;
        right: 2px;
    }
    .simplebar-track.simplebar-horizontal {
        left: 0;
        height: 11px;
    }
    .simplebar-track.simplebar-horizontal .simplebar-scrollbar {
        right: auto;
        left: 0;
        top: 0;
        bottom: 0;
        min-height: 0;
        min-width: 10px;
        width: auto;
    }
    
    /* Custom Sliderスタイル */
    .custom-slider {
        margin-left: auto;
        margin-right: auto;
        position: relative;
        overflow: hidden;
        list-style: none;
        padding: 0;
        z-index: 1;
        display: block;
    }
    .custom-slider-wrapper {
        position: relative;
        width: 100%;
        height: 100%;
        z-index: 1;
        display: flex;
        transition-property: transform;
        transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
        box-sizing: content-box;
        transform: translate3d(0px, 0, 0);
    }
    .custom-slider-horizontal {
        touch-action: pan-y;
    }
    .custom-slider-slide {
        flex-shrink: 0;
        width: 100%;
        height: 100%;
        position: relative;
        transition-property: transform;
        display: block;
    }
    .custom-slider-backface-hidden .custom-slider-slide {
        transform: translateZ(0);
        backface-visibility: hidden;
    }
/* カスタムスライダーボタンのスタイル（修正済み） */


.custom-slider-button-prev,
.custom-slider-button-next {
    position: absolute;
    top: 50%;
    width: var(--swiper-navigation-size, 44px);
    height: var(--swiper-navigation-size, 44px);
    margin-top: calc(-1 * var(--swiper-navigation-size, 44px) / 2);
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    color: var(--swiper-navigation-color, var(--swiper-theme-color));
}

/* 前へボタンの背景画像として左向きのSVGを設定 */
.custom-slider-button-prev {
    left: 1em;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTUgNkw5IDEyTDE1IDE4IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=');
}

/* 次へボタンの背景画像として右向きのSVGを設定 */
.custom-slider-button-next {
    right: 1em;
    background-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOSA2TDE1IDEyTDkgMThIIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=');
}
    @media (min-width: 768px) {
.custom-slider-button-prev,
.custom-slider-button-next {
    top: 100%;
}		
.custom-slider-button-prev {
    left: 35%;
}

/* 次へボタンの背景画像として右向きのSVGを設定 */
.custom-slider-button-next {
    right:  35%;
}
    }


/* ::after 疑似要素のコンテンツを削除 */
.custom-slider-button-prev::after,
.custom-slider-button-next::after {
    content: none;
}
    .custom-slider-scrollbar {
        border-radius: var(--swiper-scrollbar-border-radius, 10px);
        position: relative;
        touch-action: none;
        background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, 0.1));
    }
    .custom-slider-scrollbar.custom-slider-scrollbar-horizontal {
        position: relative;
        margin-top: 1rem; /* スライダーの下に配置 */
        width: 100%;
    }
    @media (min-width: 768px) {
        .custom-slider-scrollbar.custom-slider-scrollbar-horizontal {
            width: 33.333%;
        }
    }
    .custom-slider-scrollbar-drag {
        height: 100%;
        width: 100%;
        position: relative;
        background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, 0.5));
        border-radius: var(--swiper-scrollbar-border-radius, 10px);
        left: 0;
        top: 0;
    }
    
    /* キーフレーム */
    @keyframes moveArrowReverse {
        0%, 100% { mask-position: 50%; }
        50% { mask-position: calc(-100% - var(--icon-size)); }
        51% { mask-position: calc(100% + var(--icon-size)); }
    }
    @keyframes moveArrow {
        0%, 100% { mask-position: 50%; }
        50% { mask-position: calc(100% + var(--icon-size)); }
        51% { mask-position: calc(-100% - var(--icon-size)); }
    }
    @keyframes toFadeOut {
        0% { opacity: 1; visibility: visible; }
        100% { opacity: 0; visibility: hidden; }
    }
    @keyframes moveArrowCircleReverse {
        0%, 100% { mask-position: 50%, 50%; }
        50% { mask-position: calc(-100% - var(--arrow-size)), 50%; }
        51% { mask-position: calc(100% + var(--arrow-size)), 50%; }
    }
    @keyframes moveArrowCircle {
        0%, 100% { mask-position: 50%, 50%; }
        50% { mask-position: calc(100% + var(--arrow-size)), 50%; }
        51% { mask-position: calc(-100% - var(--arrow-size)), 50%; }
    }
    /* 再生ボタンのスタイル */
/* デフォルトの再生ボタンスタイル */
.play-button {
    position: absolute;
    top: 60%;
    /* left: 20%; /* 中央より少し左 */
	 left: 50%; 
    width: 80px; /* ボタン全体のサイズ */
    height: 80px;
    transform: translate(-50%, -50%);
    cursor: pointer;
    opacity: 0.9;
    transition: opacity 0.3s ease;
    color: #1F3A5E; /* 初期の青色 */
}

/* ホバー時の効果 */
.play-button:hover {
    opacity: 1;
}

/* .member-image-inner を relative に設定 */
.member-image-inner {
    position: relative;
}

/* スマホ用スタイル */
@media (max-width: 767px) {
    .play-button {
        width: 60px; /* 少し小さく */
        height: 60px;
		left: 50%;
        /* left: 25%; ボタンの位置を微調整（必要に応じて） */
    }
    .member-image-inner {
        aspect-ratio: 1.1;
    }
}



/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加 手書きサイン付きコンセプト
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

/* アイデアセクションのスタイル */
@media all {
    .idea-section {
        padding-top: 3em;
        padding-bottom: 2em;
        text-align: center;
		z-index: 9999999999999999!important;
    }
    .idea-section__text {
        margin-bottom: max(9.9vh, 95px);
    }
    .idea-section__text--jp {
        margin-bottom: max(4.69vh, 45px);
        font-size: max(1.67vh, 16px);
        line-height: 3.4;
        letter-spacing: 0.3em;
        text-indent: 0.3em;
    }
    .idea-section__text--en {
        font-size: max(2.6vh, 25px);
        letter-spacing: 0.075em;
        text-indent: 0.075em;
    }
    .idea-section__logo svg {
        width: 50%;
        height: auto;
    }
}

/* レスポンシブデザイン */
@media screen and (max-width: 576px) {
    .idea-section {
        padding-top: 0px;
        padding-bottom: 0px;
    }
    .idea-section__text {
        margin-bottom: 80px;
    }
    .idea-section__text--jp {
        margin-bottom: 30px;
		margin-left: 2em;
		margin-right: 2em;
        font-size: 14px;
        line-height: 2.8;
    }
    .idea-section__text--en {
        font-size: 20px;
    }
}

/* SVGアニメーションのスタイル */
#svg-animation .path-style {
    fill: none;
    stroke: var(--main-color);
    stroke-miterlimit: 10;
    stroke-width: 2px;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 1000;
    stroke-dashoffset: 1000;
    /* アニメーションのプロパティを削除し、後でクラスを追加します */
}

/* アニメーションのキーフレーム */
@keyframes draw {
    from {
        stroke-dashoffset: 1000;
    }
    to {
        stroke-dashoffset: 0;
    }
}

/* アニメーションを適用するクラス */
#svg-animation.animate .path-style {
    animation: draw 5s forwards;
    animation-iteration-count: 1;
    animation-direction: normal;
}

/* パスごとにアニメーションの遅延を設定 */
#svg-animation.animate .path-style:nth-child(1) {
    animation-delay: 0s;
}
#svg-animation.animate .path-style:nth-child(2) {
    animation-delay: 0.2s;
}
#svg-animation.animate .path-style:nth-child(3) {
    animation-delay: 0.4s;
}
#svg-animation.animate .path-style:nth-child(4) {
    animation-delay: 0.6s;
}
#svg-animation.animate .path-style:nth-child(5) {
    animation-delay: 0.8s;
}
#svg-animation.animate .path-style:nth-child(6) {
    animation-delay: 1s;
}
#svg-animation.animate .path-style:nth-child(7) {
    animation-delay: 1.2s;
}
#svg-animation.animate .path-style:nth-child(8) {
    animation-delay: 1.4s;
}
#svg-animation.animate .path-style:nth-child(9) {
    animation-delay: 1.6s;
}
#svg-animation.animate .path-style:nth-child(10) {
    animation-delay: 1.8s;
}
#svg-animation.animate .path-style:nth-child(11) {
    animation-delay: 2s;
}


/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　プロフィール
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/


.profile-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  margin: 150px 0 80px;
  padding: 0 7em;
  width: 100%;
  max-width: 100%;
  flex-wrap: nowrap;
  transition: all;
}
.profile-container-sub {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  margin: 0px 0 80px;
  padding: 0 7em;
  width: 100%;
  max-width: 100%;
  flex-wrap: nowrap;
  transition: all;
	background-color: #FAFAFA;
}

.profile-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  width: calc(100% - 0);
  max-width: calc(100% - 0);
  padding: 0;
  background: transparent;
  flex-wrap: nowrap;
}

.profile-image {
  width: 29.03%;
  max-width: 29.03%;
  height: auto;
  margin: 0;
}

.profile-details {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 0 0 0 60px;
  width: auto;
  max-width: 100%;
}

.profile-title {
  color: #000c12;
  font-family: var(--s-font-4798b200);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.33;
  text-align: left;
  width: 100%;
  max-width: 100%;
  margin-bottom: 8px;
}

.profile-name {
  color: #000c12;
  font-family: var(--s-font-1e80aff6);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.01;
  text-align: left;
  width: 100%;
  max-width: 100%;
  margin: 8px 0;
}

.profile-english-name {
  color: #778085;
  font-family: var(--s-font-4798b200);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.01;
  text-align: left;
  width: 100%;
  max-width: 100%;
  margin-bottom: 24px;
}

.profile-description {
  color: #000c12;
  font-family: var(--s-font-1e80aff6);
  font-size: 1em;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.67;
  text-align: left;
  width: 100%;
  max-width: 100%;
  margin: 24px 0 16px;
}
@media screen and (max-width: 780px) {
  .profile-container {
  font-size: 1.2em;
  }
  }

.profile-description-en {
  color: #778085;
  font-family: var(--s-font-4798b200);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  text-align: left;
  width: 100%;
  max-width: 100%;
}

/* レスポンシブデザイン */
@media screen and (max-width: 990px) {
  .profile-container {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 64px 0;
    justify-content: flex-start;
    padding: 0 0;
    margin: 112px 0 80px 0;
  }
  .profile-container-sub {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 64px 0;
    justify-content: flex-start;
    padding: 0 0;
    margin: 112px 0 80px 0;
  }

  .profile-content {
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
  }

  .profile-image {
    width: 318px;
    max-width: 100%;
    margin-bottom: 32px;
  }

  .profile-details {
    padding: 0;
  }
}

@media screen and (max-width: 690px) {
  .profile-container {
    margin: 100px 0 56px 0;
    padding: 0 20px;
    gap: 32px 0;
  }
  .profile-container-sub {
    margin: 100px 0 56px 0;
    padding: 0 20px;
    gap: 32px 0;
  }

  .profile-image {
    width: 100%;
    max-width: 100%;
    margin-bottom: 24px;
  }

  .profile-content {
    width: 100%;
  }
}

/* スクロールバー非表示 */
.profile-container::-webkit-scrollbar,
.profile-content::-webkit-scrollbar,
.profile-details::-webkit-scrollbar {
  display: none;
}


/* リセットと基本スタイル */
*,
*:after,
*:before {
  box-sizing: border-box;
  background-repeat: no-repeat;
}
button,
h2,
p,
ul {
  margin: 0;
  padding: 0;
}
li {
  list-style: none;
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}
button {
  background-color: transparent;
  border: 0;
  color: inherit;
  font-family: inherit;
  font-size: inherit;
}
button[disabled] {
  cursor: not-allowed;
}

/* クラス名を変更したスタイル */
.text-strong {
  font-weight: 700;
}
.unit-large,
.unit-medium {
  position: relative;
}
.bg-section {
  position: relative;
}
.bg-section:before {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  width: 50%;
  background-color: #f0f7fa;
  z-index: -1;
}
.bg-section.reverse:before {
  right: 0;
}
.swiper_moon-container {
  display: block;
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.swiper_moon-wrapper {
  display: flex;
  height: 100%;
  width: 100%;
  transition: transform 0.3s ease;
}
.swiper_moon-slide {
  width: 100%;
  flex-shrink: 0;
  position: relative;
  height: 100%;
}
.button-next,
.button-prev {
  position: absolute;
  top: 50%;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin-top: -22px;
  cursor: pointer;
  color: #007aff;
}
.button-prev {
  left: 10px;
}
.button-next {
  right: 10px;
}
.swiper_moon-pagination {
  position: absolute;
  z-index: 10;
  text-align: center;
  width: 100%;
  bottom: 8px;
}
.swiper_moon-pagination-bullet {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #000;
  opacity: 0.2;
  border-radius: 50%;
  margin: 0 4px;
  cursor: pointer;
}
.swiper_moon-pagination-bullet-active {
  background: #007aff;
  opacity: 1;
}
.heading {
  position: relative;
  flex-direction: column;
}
.heading > .heading-en {
  font-family: Montserrat, sans-serif;
  font-weight: 700;
  line-height: 1;
}
.heading > .heading-ja {
  position: relative;
}
.interview-content {
  overflow: visible;
}
.interview-list {
  display: flex;
}
.interview-link {
  display: grid;
  position: relative;
  overflow: hidden;
  color: #fff;
  font-weight: 700;
}
.interview-image {
  position: relative;
  grid-area: 1 / -1;
}
.interview-image:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(180deg, rgba(5, 56, 101, 0) 50%, #053865);
  opacity: 0.6;
}
.interview-image > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.interview-info {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 1.5em;
  grid-area: 1 / -1;
  row-gap: 1em;
}
.interview-heading {
  line-height: 1.5;
}
.interview-meta {
  display: flex;
  align-items: center;
  line-height: 1;
}
.interview-meta > span + span {
  border-left: 1px solid #fff;
  margin-left: 1em;
  padding-left: 1em;
}
.interview-category {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0.5em 1.2em;
  background-color: #245aaf;
}
.interview-controls {
  display: flex;
  align-items: center;
}
.interview-arrows {
  display: flex;
}
.arrow-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1em;
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  background-color: #fff;
}
.arrow-button:before {
  content: "";
  position: absolute;
  width: 1em;
  height: 1em;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
  transform: rotate(45deg);
}
.arrow-button.prev:before {
  border-left: 2px solid #245aaf;
  border-bottom: 2px solid #245aaf;
  left: 0.5em;
}
.arrow-button.next:before {
  border-right: 2px solid #245aaf;
  border-top: 2px solid #245aaf;
  right: 0.5em;
}
.interview-dots {
  display: inline-flex;
  height: 0.25em;
  background-color: #e0e0e0;
  border-radius: 1em;
}
.interview-dots > .swiper_moon-pagination-bullet {
  flex-grow: 1;
  flex-shrink: 0;
  background-color: transparent;
  height: 0.25em;
  margin: 0 !important;
}
.interview-dots > .swiper_moon-pagination-bullet-active {
  background-color: #245aaf;
  border-radius: 1em;
}

/* メディアクエリ */
@media screen and (min-width: 769px) {
  h2 {
    font-size: max(10px, min(1.25vw, 1.6rem));
  }
  .text-lead {
    font-size: max(10px, min(1.4vw, 1.8rem));
  }
  * + .unit-large {
    margin-top: 3.75em;
  }
  * + .unit-medium {
    margin-top: 2.5em;
  }
  .unit-base {
    max-width: calc(1120px + 6em);
    margin-left: auto;
    margin-right: auto;
    padding: 0 3em;
  }
  .bg-section {
    padding-bottom: 5em;
  }
  .bg-section:after,
  .bg-section:before {
    height: calc(100% - 3.12em);
  }
  .bg-section:after {
    content: "";
    display: block;
    position: absolute;
    bottom: 0;
    width: 280px;
    background-color: #f0f7fa;
    z-index: -1;
  }
  .bg-section.reverse:after {
    right: 50%;
    border-radius: 1.87em 0 0 1.87em;
  }
  .heading > .heading-en {
    font-size: max(10px, min(7.03vw, 9rem));
  }
  .heading {
    display: inline-flex;
  }
  .heading > .heading-ja {
    left: 50%;
    margin-top: -2em;
  }
  .interview-item {
    width: 21.25em;
  }
  .interview-link {
    border-radius: 0.93em;
  }
  .interview-heading {
    font-size: max(10px, min(1.56vw, 2rem));
  }
  .interview-meta {
    font-size: max(10px, min(0.93vw, 1.2rem));
  }
  .interview-category {
    border-radius: 0.93em 0 0.93em 0;
  }
  .interview-controls {
    justify-content: flex-end;
    column-gap: 1.87em;
  }
  .interview-arrows {
    column-gap: 1.25em;
  }
  .arrow-button {
    width: 4em;
    height: 4em;
  }
  .interview-dots {
    width: auto !important;
  }
  .interview-dots > .swiper_moon-pagination-bullet {
    width: 3.12em;
    flex-basis: 3.12em;
  }
}

@media (max-width: 768px) {
  h2 {
    font-size: max(3.88vw, 1.4rem);
  }
  * + .unit-large {
    margin-top: 2.57em;
  }
  * + .unit-medium {
    margin-top: 1.71em;
  }
  .unit-base {
    padding: 0 1.42em;
  }
  .bg-section {
    padding-bottom: 5.71em;
  }
  .bg-section:before {
    height: calc(100% - 2.42em);
    width: 100%;
  }
  .bg-section.reverse:before {
    right: 0;
    border-radius: 2.14em 0 0 2.14em;
  }
  .heading > .heading-en {
    font-size: max(15vw, 5.4rem);
  }
  .heading {
    display: flex;
    padding-right: 1.42em;
  }
  .heading > .heading-ja {
    align-self: flex-end;
    margin-top: -1em;
  }
  .heading > .heading-ja > img {
    height: 3em;
    width: auto;
  }
  .interview-section {
    overflow: hidden;
  }
  .interview-item {
    width: calc(100% - 2.14em);
  }
  .interview-link {
    border-radius: 1.07em;
  }
  .interview-heading {
    font-size: max(5.55vw, 2rem);
  }
  .interview-meta {
    font-size: max(3.33vw, 1.2rem);
  }
  .interview-category {
    border-radius: 1.07em 0 1.07em 0;
  }
  .interview-controls {
    justify-content: space-between;
    column-gap: 1.42em;
  }
  .interview-arrows {
    column-gap: 0.71em;
  }
  .arrow-button {
    width: 4.57em;
    height: 4.57em;
  }
}

/* ホバー時のスタイル */
@media (hover: hover) and (pointer: fine) {
  a {
    transition: all 0.3s ease;
  }
  .interview-image {
    transition: transform 0.3s ease;
  }
  .interview-link:hover .interview-image {
    transform: scale(1.03);
  }
  .arrow-button {
    transition: transform 0.3s ease;
  }
  .arrow-button.prev:hover {
    transform: translate3d(-0.5em, 0, 0);
  }
  .arrow-button.next:hover {
    transform: translate3d(0.5em, 0, 0);
  }
}



/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　新お知らせ
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

.container_news {
  display: flex;
  flex-direction: column;
  align-items: center;
  align-content: center;
  flex-wrap: nowrap;
  max-width: 100%;
  pointer-events: all;
  z-index: 0;
  position: relative;
  -webkit-overflow-scrolling: touch;
  transition-property: all, 

}

.container_news::-webkit-scrollbar {
  display: none;
}

.container_news.text-content {
  flex-direction: row;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
}


.news-link {
  cursor: pointer;
}

/* news-section */
.news-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 52px;
  margin: auto ;
  padding: 60px 0 0px;
  width: 1185px;
  max-width: calc(100% - 90px);
}

@media screen and (max-width: 1140px) {
  .news-section {
    gap: 52px;
    margin: 0 45px;
    padding: 60px 0 140px;
    max-width: calc(100% - 90px);
  }
}

@media screen and (max-width: 840px) {
  .news-section {
    gap: 40px;
    margin: 0 30px;
    padding: 50px 0 80px;
    max-width: calc(100% - 60px);
  }
}

@media screen and (max-width: 540px) {
  .news-section {
    gap: 29px;
    margin: 0 20px;
    padding: 50px 0 55px;
    max-width: calc(100% - 40px);
  }
}

@media screen and (max-width: 360px) {
  .news-section {
    gap: 52px;
  }
}

/* news-header */
.news-header {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  width: 100%;
}

/* news-title-container */
.news-title-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-content: flex-start;
  gap: 8px;
  max-width: 100%;
}

/* news-label */
.news-label {
  color: #444;
  font-family: var(--s-font-5da86b11);
  font-size: 72px;
  font-weight: 600;
  letter-spacing: -0.02em;
  text-align: left;
  line-height: 1;
}

@media screen and (max-width: 840px) {
  .news-label {
    font-size: 54px;
  }
}

@media screen and (max-width: 540px) {
  .news-label {
    font-size: 36px;
  }
}

/* news-heading */
.news-heading {
  color: #444;
  font-family: var(--s-font-5da86b11);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.6;
  text-align: left;
}

@media screen and (max-width: 540px) {
  .news-heading {
    font-size: 11px;
  }
}

/* news-link-container */
.news-link-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #F5F4F3;
  border-radius: 18px;
  padding: 16px 27px;
  margin: 0 0 3px 0;
  max-width: 100%;
  transition: opacity .3s cubic-bezier(.4, .4, 0, 1);
}

.news-link-container:hover {
  opacity: 1;
}

@media screen and (max-width: 540px) {
  .news-link-container {
    border-radius: 9px;
    padding: 12px 16px;
    margin: 0 0 5px 0;
  }
}

/* link-inner-container */
.link-inner-container {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: transparent;
  max-width: 100%;
}

/* dot-indicator */
.dot-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #444;
  border-radius: 50%;
  width: 8px;
  height: 8px;
  max-width: 100%;
}

@media screen and (max-width: 540px) {
  .dot-indicator {
    width: 4px;
    height: 4px;
  }
}

/* link-text-container */
.link-text-container {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  justify-content: flex-end;
  height: 22px;
  overflow: hidden;
  max-width: 100%;
}

@media screen and (max-width: 540px) {
  .link-text-container {
    height: 14px;
  }
}

/* link-text-primary, link-text-secondary */
.link-text-primary,
.link-text-secondary {
  color: #444;
  font-family: var(--s-font-5da86b11);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.4;
  text-align: left;
  transition: transform .3s cubic-bezier(.4, .4, 0, 1), color .3s cubic-bezier(.4, .4, 0, 1);
}

.news-link-container:hover .link-text-primary,
.news-link-container:hover .link-text-secondary {
  transform: translate(0, -22px);
}

@media screen and (max-width: 540px) {
  .link-text-primary,
  .link-text-secondary {
    font-size: 10px;
  }
  .news-link-container:hover .link-text-primary,
  .news-link-container:hover .link-text-secondary {
    transform: translate(0, -14px);
  }
}

/* news-list-container */
.news-list-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  align-content: flex-start;
  justify-content: flex-start;
  gap: 20px;
  max-width: 100%;
  width: 100%;
}

/* news-list */
.news-list {
  display: flex;
  gap: 20px;
  padding: 0;
  width: 100%;
}

@media screen and (max-width: 540px) {
  .news-list {
    gap: 15px;
  }
}

/* news-item */
.news-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 29px;
  background: #f5f4f3;
  border-radius: 24px;
  padding: 0 26px 0 0;
  transition: background .3s cubic-bezier(.4, .4, 0, 1), opacity .3s cubic-bezier(.4, .4, 0, 1);
  max-width: 100%;
  width: 100%;
}

.news-item:hover {
  background: #444;
  opacity: 1;
}

@media screen and (max-width: 840px) {
  .news-item {
    align-items: center;
    justify-content: space-between;
  }
}

@media screen and (max-width: 540px) {
  .news-item {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    padding: 0;
    border-radius: 12px;
  }
}

/* news-date */
.news-date {
  border-right: 1px solid #FFFFFF;
  color: #444;
  font-family: var(--s-font-5da86b11);
  font-size: 24px;
  font-weight: 600;
  line-height: 1.4;
  padding: 40px 35px 40px 40px;
  text-align: left;
  transition: border .3s cubic-bezier(.4, .4, 0, 1), color .3s cubic-bezier(.4, .4, 0, 1);
}

.news-item:hover .news-date {
  border-right-color: #5c5c5c;
  color: #FFF;
}

@media screen and (max-width: 840px) {
  .news-date {
    font-size: 20px;
  }
}

@media screen and (max-width: 540px) {
  .news-date {
    border-bottom: 1px solid #FFFFFF;
    border-right: 0;
    font-size: 16px;
    padding: 20px 20px 14px;
    width: 100%;
    height: 100%;
  }
}

/* news-content */
.news-content {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 29px;
  flex: 1;
  padding: 0;
  max-width: 100%;
}

@media screen and (max-width: 540px) {
  .news-content {

    align-items: flex-end;
    gap: 24px;
    padding: 18px 20px 30px 14px;
    flex: none;
    width: 100%;
  }
}

/* news-title */
.news-title {
  flex: 1;
  color: #444;
  font-family: var(--s-font-5da86b11);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.8;
  text-align: left;
  transition: color .3s cubic-bezier(.4, .4, 0, 1);
}

.news-item:hover .news-title {
  color: #FFF;
}

@media screen and (max-width: 540px) {
  .news-title {
    font-size: 12px;
  }
}

/* news-icons */
.news-icons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  background: #FFF;
  border-radius: 12px;
  width: 40px;
  height: 40px;
  transition: background .3s cubic-bezier(.4, .4, 0, 1);
}

.news-item:hover .news-icons {
  background: #5c5c5c;
}

@media screen and (max-width: 540px) {
  .news-icons {
    width: 32px;
    height: 32px;
  }
}

/* news-icon-first */
.news-icon-first {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  opacity: 0;
  transform: translate(0, 40px) scale(0.5);
  transition: opacity .3s cubic-bezier(.4, .4, 0, 1), transform .3s cubic-bezier(.4, .4, 0, 1);
}

.news-item:hover .news-icon-first {
  opacity: 1;
  transform: translate(40px, 0) scale(1);
}

@media screen and (max-width: 540px) {
  .news-icon-first {
    transform: translate(0, 32px) scale(0.5);
  }
  .news-item:hover .news-icon-first {
    transform: translate(32px, 0) scale(1);
  }
}

/* news-icon-second */
.news-icon-second {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: transparent;
  position: relative;
  width: 100%;
  z-index: 1;
  transition: opacity .3s cubic-bezier(.4, .4, 0, 1), transform .3s cubic-bezier(.4, .4, 0, 1);
}

.news-item:hover .news-icon-second {
  opacity: 0;
  transform: translate(40px, -40px) scale(0.5);
}

@media screen and (max-width: 540px) {
  .news-item:hover .news-icon-second {
    transform: translate(32px, -28px) scale(0.5);
  }
}

/*+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
ここから追加　新バナー
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+*/

/* 共通スタイル */
.abt-container {
    width: min(100% - 100px, 1280px);
    height: inherit;
    margin: 0 auto;
}

.abt-section-title.center {
    text-align: center;
}

.abt-section-title .abt-en-text {
    font-weight: 700;
    font-size: 5.8rem;
    line-height: 1.224;
    font-family: YakuHanJP, "Montserrat", sans-serif;
    letter-spacing: 0.04em;
    white-space: nowrap;
    display: flex;
    overflow: hidden;
    color: black;
}

.abt-en-text .abt-row.move .abt-char {
    display: inline-block;
    opacity: 0;
    transform: translateY(105%);
    animation: fadeInText 1s ease forwards;
}

.abt-en-text .abt-row.move .abt-char:nth-of-type(1) {
    animation-delay: 0.1s;
}

.abt-en-text .abt-row.move .abt-char:nth-of-type(2) {
    animation-delay: 0.2s;
}

.abt-en-text .abt-row.move .abt-char:nth-of-type(3) {
    animation-delay: 0.3s;
}

.abt-en-text .abt-row.move .abt-char:nth-of-type(4) {
    animation-delay: 0.4s;
}

.abt-en-text .abt-row.move .abt-char:nth-of-type(5) {
    animation-delay: 0.5s;
}

.abt-subtitle.ja {
    display: inline-block;
    margin-top: 5px;
    padding: 3px 20px;
    border-radius: 4px;
    background-color: #fff;
    color: #1F1D1B;
    font-weight: 700;
    font-size: 1.8rem;
    letter-spacing: 0.06em;
}

.abt-top-section {
    position: relative;
    margin-top: 5px;
    padding: 160px 0 169px;
    color: #BAE4F0; /* SVGの色をここで設定 */
    overflow: hidden; /* 追加 */
}

.background-svg {
    position: absolute;
    top: 0; /* 変更 */
    left: 50%;
    width: 2360px;
    height: 1194px;
    transform: translateX(-50%); /* 水平方向のみ中央揃え */
    z-index: -1;
    pointer-events: none; /* 背景としてのみ使用 */
}

.abt-top-section::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: -1;
}

.abt-items {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-top: 45px;
}

.abt-item {
    width: 48.4375%;
    margin-bottom: 40px;
}

.abt-item:last-of-type {
    margin-bottom: 0;
}

.abt-item a {
    display: block;
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    transition: opacity 0.3s ease;
}

.abt-item a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: 28px;
    background-color: #1F1D1B;
    opacity: 0.4;
    transition: opacity 0.3s ease;
}

.abt-item a:hover {
    opacity: 1;
}

.abt-item a:hover::after {
    opacity: 0.2;
}

.abt-image img {
    border-radius: 28px;
    transition: transform 0.5s ease, opacity 0.9s cubic-bezier(0.5, 0, 0, 1) 0s;
}

.abt-item a:hover .abt-image img {
    transform: scale(1.05);
    opacity: 1;
}

.abt-content {
    z-index: 1;
    position: absolute;
    top: 50%;
    left: 53px;
    transform: translateY(-50%);
    color: #fff;
    font-weight: 700;
}

.abt-title {
    font-size: 4.4rem;
    line-height: 1.227;
    font-family: YakuHanJP, "Montserrat", sans-serif;
    letter-spacing: 0.01em;
}

.abt-description {
    font-size: 1.7rem;
    letter-spacing: 0.17em;
}

.abt-more {
    position: absolute;
    color: #fff;
    font-weight: 600;
    font-size: 1.7rem;
    font-family: YakuHanJP, "Montserrat", sans-serif;
    letter-spacing: 0.01em;
    right: 65px;
    bottom: 30px;
    transition: all 0.4s ease;
}

.abt-more::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -20px;
    width: 8px;
    height: 8px;
    transform: translateY(-50%);
    border-radius: 50%;
    background-color: #fff;
    transition: all 0.4s ease;
}

.abt-item:nth-of-type(3) .abt-more {
    font-weight: 700;
    font-size: 1.5rem;
    font-family: YakuHanJP, "Zen Kaku Gothic New", sans-serif;
}

.abt-item:nth-of-type(3) .abt-more::after {
    width: 20px;
    height: 14px;
    right: -27px;
}

@media (min-width: 768px) {
    .abt-item a:hover::after {
        opacity: 0.2;
    }
    .abt-item a:hover .abt-image img {
        transform: scale(1.05);
        opacity: 1;
    }
    .abt-item a:hover .abt-more {
        right: 40px;
    }
    .abt-item a:hover .abt-more::after {
        content: none;
    }
}

@media (max-width: 1379px) {
    .abt-top-section::before {
        height: 86.5217391304vw;
        min-height: 810px;
    }
    .abt-title {
        font-size: 44px;
        font-size: 3.1884057971vw;
    }
    .abt-description {
        font-size: 17px;
        font-size: 1.231884058vw;
    }
}

@media (max-width: 1023px) {
    .abt-section-title .abt-en-text {
        font-size: 5rem;
    }
}

@media (max-width: 767px) {
    .abt-container {
        width: min(100% - 32px, 1280px);
    }
    .abt-section-title .abt-en-text {
        font-size: 4.1rem;
    }
    .abt-subtitle.ja {
        font-size: 1.2rem;
    }
    .abt-top-section::before {
        width: 100%;
        height: 100%;
    }
    .abt-items {
        display: block;
        margin-top: 31px;
    }
    .abt-item {
        width: 100%;
        max-width: 620px;
        margin: 0 auto 12px;
        border-radius: 14px;
    }
    .abt-item:last-of-type {
        margin-bottom: 0;
    }
    .abt-item a::after {
        border-radius: 25px;
    }
    .abt-more {
        right: 39px;
        bottom: 16px;
        font-size: 1.2rem;
    }
    .abt-more::after {
        right: -15px;
        width: 6px;
        height: 6px;
    }
    .abt-image {
        border-radius: 14px;
    }
    .abt-image img {
        border-radius: 14px;
    }
    .abt-content {
        left: 29px;
    }
    .abt-title {
        font-size: 3.2rem;
    }
    .abt-description {
        font-size: 1.2rem;
    }

    /* SVGの位置を調整 */
    .background-svg {
        left: 60%; /* 水平方向を調整 */
        transform: translateX(-60%); /* 左位置に合わせて調整 */
    }
}

@media (max-width: 649px) {
    .abt-top-section::before {
        width: 100%;
        height: 100%;
        background-size: cover; /* または contain */
        background-position: center;
        transform: none; /* 必要に応じて調整 */
    }
}

@media (max-width: 499px) {
    .abt-item a::after {
        border-radius: 16px;
    }

    .background-svg {
        left: 65%; /* さらに調整 */
        transform: translateX(-65%);
    }
}

@media (max-width: 399px) {
    .abt-top-section {
        margin-top: -11vw;
    }
    .abt-item a::after {
        border-radius: 14px;
    }

    .background-svg {
        left: 70%; /* さらに調整 */
        transform: translateX(-70%);
    }
}

/* キーフレーム */
@keyframes fadeInText {
    to {
        transform: translateY(0);
        opacity: 1;
    }
}
@media (max-width: 1800px) and (min-width: 800px) {
    .background-svg {
        width: calc(131vw); /* SVGの幅をブラウザ幅に応じて縮小 */
        left: 50%;
        transform: translateX(-50%);
    }
}

/* 白背景 */
.bg-white {
    background-color: rgba(255, 255, 255, 0.8);
    -webkit-backdrop-filter: blur(5px); /* iOS Safari対応 */
    backdrop-filter: blur(5px);
}
.bg-white2 {
    background-color: rgba(255, 255, 255, 1);
    -webkit-backdrop-filter: blur(5px); /* iOS Safari対応 */
    backdrop-filter: blur(5px);
}

.home .home-article{
    background-color: #fff;
    -webkit-backdrop-filter: blur(5px); /* iOS Safari対応 */
    backdrop-filter: blur(5px);
}

.grecaptcha-badge { visibility: hidden; }