@charset "UTF-8";
/* --- ローダー --- */
#loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: #51a7df;
  display: flex;
  justify-content: center;
  align-items: center;
}

.loader-inner {
  text-align: center;
}

/* 5x5 タイルグリッド */
.tile-grid {
  display: grid;
  grid-template-columns: repeat(5, 5px); /* タイルのサイズ */
  grid-template-rows: repeat(5, 5px);
  gap: 4px;
  margin-bottom: 30px;
}

.tile {
  background: #fff; /* タイルの色 */
  width: 100%;
  height: 100%;
  opacity: 0;
  animation: tileFlip 2.5s infinite ease-in-out;
}

/* 左上から右下へ流れるようなキーフレーム */
@keyframes tileFlip {
  0%, 10% {
    transform: perspective(120px) rotateX(0deg) rotateY(0deg);
    opacity: 0;
  }
  25%, 75% {
    transform: perspective(120px) rotateX(-180deg) rotateY(0deg);
    opacity: 1;
  }
  90%, 100% {
    transform: perspective(120px) rotateX(-180deg) rotateY(-180deg);
    opacity: 0;
  }
}

/* パーセンテージのテキスト */
.load-status {
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 200;
  letter-spacing: 0.2em;
  font-variant-numeric: tabular-nums; /* 数字が動いても幅が飛ばないように設定 */
}





/* ヘッダーロゴ */
.h_logo {
	width:410px;
	height:150px;
	background:#fff;
	border-bottom-right-radius:20px;
	position:absolute;
	top:0;
	left:0;
	padding:30px;
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
	z-index:1001;
}


.h_logo .logo {
	display:inline-block;
	width:90px;
}


.h_logo .logo img {
	width:100%;
}


.h_logo .cName {
	width:calc(100% - 110px);
	font-size:3.3rem;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight:600;
	color:#000;
	line-height:1.2;
}


@media all and (max-width:768px) {
.h_logo {
	width:200px;
	height:60px;
	background:#fff;
	border-bottom-right-radius:20px;
	position:absolute;
	top:0;
	left:0;
	padding:7px 10px 10px;
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
	z-index:1001;
}
	
.h_logo .logo {
	display:inline-block;
	width:50px;
}
	
.h_logo .cName {
	width:calc(100% - 60px);
	font-size:1.8rem;
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight:600;
	color:#000;
	line-height:1.2;
}
}



/* お問い合わせボタン */
.btn_contact {
	display:block;
	position:absolute;
	top:30px;
	right:140px;
	width:260px;
	height:90px;
	background:#f19149;
	color:#fff;
	text-align:center;
	font-size:2rem;
	z-index:999;
	border-radius: 20px;
	padding-top:27px;
	font-weight:500;
}


.btn_contact span {
	font-size:1.8rem;
}


@media all and (max-width:768px) {
.btn_contact {
	display:block;
	position:absolute;
	top:10px;
	right:65px;
	width:45px;
	height:45px;
	background:#f19149;
	color:#fff;
	text-align:center;
	font-size:2.5rem;
	z-index:999;
	border-radius: 10px;
	padding-top:3px;
	font-weight:500;
}
	
.btn_contact span {display:none;}
}





/* --- ハンバーガーボタン --- */
.menu-trigger {
	position: fixed;
	top: 30px;
	right: 30px;
	width: 90px;
	height: 90px;
	padding:30px;
	z-index: 1000;
	cursor: pointer;
	background:#32b16c;
	border-radius: 20px;
	transition:all .3s ease;
}


.menu-trigger span {
  display: block;
  position: absolute;
  width: 30px;
  height: 2px;
  background: #fff; /* 背景が動画なので白 */
  transition: all .4s;
}


.menu-trigger span:nth-child(1) { top: 35px; }
.menu-trigger span:nth-child(2) { top: 46px; }
.menu-trigger span:nth-child(3) { top: 57px; }


/* ×印への変形 */
.menu-trigger.active span:nth-child(1) { transform: translateY(11px) rotate(-45deg); }
.menu-trigger.active span:nth-child(2) { opacity: 0; }
.menu-trigger.active span:nth-child(3) { transform: translateY(-11px) rotate(45deg); }

.menu-trigger.active {background:#2b975c;}


@media all and (max-width:768px) {
.menu-trigger {
	position: fixed;
	top: 10px;
	right: 10px;
	width: 45px;
	height: 45px;
	padding:15px;
	z-index: 1000;
	cursor: pointer;
	background:#32b16c;
	border-radius: 10px;
	transition:all .3s ease;
}
	
.menu-trigger span {
  display: block;
  position: absolute;
  width: 15px;
  height: 1px;
  background: #fff; /* 背景が動画なので白 */
  transition: all .4s;
}
	
.menu-trigger span:nth-child(1) { top: 17px; }
.menu-trigger span:nth-child(2) { top: 23px; }
.menu-trigger span:nth-child(3) { top: 29px; }
	
	
.menu-trigger.active span:nth-child(1) { transform: translateY(6px) rotate(-45deg); }
.menu-trigger.active span:nth-child(2) { opacity: 0; }
.menu-trigger.active span:nth-child(3) { transform: translateY(-6px) rotate(45deg); }
}


/* --- 全画面メニュー --- */
#full-menu {
	position: fixed;
	inset: 0;
	background: rgba(50, 177, 108, 0.97);
	z-index: 999;
	display: none;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
}

.menu-wrapper {
	min-height: 100%;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 120px 20px 60px;
}

.menu-list {
	width: 100%;
	max-width: 760px;
	list-style: none;
	text-align: left;
	background: rgba(255,255,255,.08);
	border-radius: 24px;
	overflow: hidden;
	backdrop-filter: blur(4px);
	margin:0 auto;
}

.menu-list > li {
	border-bottom: 1px solid rgba(255,255,255,.28);
}

.menu-list > li:last-child {
	border-bottom: none;
}

.menu-list > li > a,
.submenu-toggle {
	width: 100%;
	display: block;
	color: #fff;
	text-decoration: none;
	font-size: 2rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	padding: 22px 70px 22px 24px;
	background: transparent;
	border: none;
	text-align: left;
	cursor: pointer;
	position: relative;
	transition: background-color .3s ease, opacity .3s ease;
}

.menu-list > li > a:hover,
.submenu-toggle:hover {
	background: rgba(255,255,255,.08);
	opacity: 1;
}

.menu-list > li > a.btn_instagram {
	padding:22px 70px 22px 52px;
	background:url("../images/instagram-brands-solid-full.svg") no-repeat 22px center;
	background-size:24px;
}

/* サブメニューあり */
.has-submenu .submenu-toggle::before,
.has-submenu .submenu-toggle::after {
	content: "";
	position: absolute;
	right: 26px;
	top: 50%;
	width: 16px;
	height: 2px;
	background: #fff;
	transition: transform .3s ease, opacity .3s ease;
}

.has-submenu .submenu-toggle::before {
	transform: translateY(-50%);
}

.has-submenu .submenu-toggle::after {
	transform: translateY(-50%) rotate(90deg);
}

.has-submenu.open .submenu-toggle::after {
	transform: translateY(-50%) rotate(0deg);
	opacity: 0;
}

/* サブメニュー */
.submenu-list {
	display: none;
	background: rgba(255,255,255,.10);
	padding: 0;
}

.submenu-list li {
	border-top: 1px solid rgba(255,255,255,.18);
}

.submenu-list li a {
	display: block;
	color: #fff;
	font-size: 1.7rem;
	font-weight: 500;
	line-height: 1.7;
	padding: 16px 24px 16px 44px;
	position: relative;
}

.submenu-list li a::before {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg);
	position: absolute;
	left: 22px;
	top: 50%;
	margin-top: -5px;
}

.submenu-list li a:hover {
	background: rgba(255,255,255,.08);
	opacity: 1;
}

/* スマホ調整 */
@media all and (max-width: 768px) {
	.menu-wrapper {
		padding: 80px 12px 30px;
	}

	.menu-list {
		border-radius: 16px;
	}

	.menu-list > li > a,
	.submenu-toggle {
		font-size: 1.7rem;
		padding: 18px 52px 18px 16px;
	}

	.has-submenu .submenu-toggle::before,
	.has-submenu .submenu-toggle::after {
		right: 18px;
		width: 14px;
	}

	.submenu-list li a {
		font-size: 1.5rem;
		padding: 14px 16px 14px 34px;
	}

	.submenu-list li a::before {
		width: 7px;
		height: 7px;
		left: 16px;
		margin-top: -4px;
	}
}



/* 背景スクロール固定用クラス */
body.is-fixed {
  overflow: hidden;
}






/* footer */
footer {
	width:100%;
	padding:100px 0 40px;
	background:#fdf9e4;
}


@media all and (max-width:1024px) {
footer {
	width:100%;
	padding:60px 0 40px;
	background:#fdf9e4;
}
}


@media all and (max-width:560px) {
footer {
	width:100%;
	padding:40px 0;
	background:#fdf9e4;
}
}

.block_footer {
	width:96%;
	max-width:1400px;
	margin:0 auto;
}

.footer_banner {
	width:100%;
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
}

.footer_banner li {
	width:23.5%;
	margin:0;
}


@media all and (max-width:560px) {
.footer_banner li {
	width:48%;
	margin:0 0 10px;
}	
}


.footer_banner li img {
	width:100%;
}


.footer_info {
	display:flex;
	width:100%;
	flex-wrap: wrap;
	justify-content:space-between;
	margin:0 auto;
}


.footer_logo {
	width:27%;
	margin:0;
	padding:10px 0 0;
}


.footer_address {
	width:68%;
	text-align:left;
	font-size:1.5rem;
}


.footer_address .labo {
	font-size:3rem;
	font-weight:600;
}


.footer_address .phone {
	font-size:3.6rem;
	font-weight:900;
}


@media all and (max-width:1024px) {
.footer_address {
	width:68%;
	text-align:left;
	font-size:1.3rem;
}
	
.footer_address .labo {
	font-size:2.6rem;
	font-weight:600;
}


.footer_address .phone {
	font-size:3rem;
	font-weight:900;
}
}


@media all and (max-width:768px) {
.footer_logo {
	width:35%;
	margin:0;
	padding:10px 0 0;
}


.footer_address {
	width:60%;
	text-align:left;
}
}


@media all and (max-width:560px) {
.footer_info {
	display:flex;
	width:100%;
	flex-wrap: wrap;
	justify-content:center;
	margin:0 auto;
}


.footer_logo {
	width:36%;
	margin:0 0 10px;
	padding:10px 0 0;
}


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


.footer_menu {
	display:block;
	width:100%;
	font-size:1.5rem;
}

.footer_menu li,
.footer_menu li.btn_instagram {
	width:100%;
	padding:10px 10px 10px 16px;
	position:relative;
}

.footer_menu > li::before {
	content:"";
	display:block;
	width:0;
	height:0;
	border-left:11px solid #32b16c;
	border-top:7px solid transparent;
	border-bottom:7px solid transparent;
	position:absolute;
	top:16px;
	left:0;
}

.footer_menu > li.btn_instagram::before {
	content:"";
	display:block;
	width:14px;
	height:14px;
	border:none;
	background:url("../images/instagram-brands-solid-full-black.svg") no-repeat left center;
	background-size:contain;
	position:absolute;
	top:18px;
	left:0;
}

@media all and (max-width:1024px) {
.footer_menu li,
.footer_menu li.btn_instagram {
	width:100%;
	padding:8px 10px 8px 16px;
	position:relative;
}
	
.footer_menu > li::before {
	content:"";
	display:block;
	width:0;
	height:0;
	border-left:11px solid #32b16c;
	border-top:7px solid transparent;
	border-bottom:7px solid transparent;
	position:absolute;
	top:13px;
	left:0;
}
	
.footer_menu > li.btn_instagram::before {
	content:"";
	display:block;
	width:14px;
	height:14px;
	border:none;
	background:url("../images/instagram-brands-solid-full-black.svg") no-repeat left center;
	background-size:contain;
	position:absolute;
	top:15px;
	left:0;
}
}

.footer_menu > li > a {
	display:block;
	color:#81511c;
	transition:all .3s linear;
	opacity:1;
}

.footer_menu > li > a:hover {
	opacity:.7;
}

/* 子メニュー */
.footer_sub_nav{
	padding-left:0;
}

.footer_sub_nav > li{
	margin-bottom:8px;
	padding:5px 5px 5px 10px;
}

.footer_sub_nav > li > a{
	font-size:1.4rem;
	color:#666;
	line-height:1.6;
	position:relative;
	padding-left:16px;
	display:inline-block;
}

/* 矢印 */
.footer_sub_nav > li > a::before{
	content:"";
	width:6px;
	height:6px;
	border-right:2px solid #32b16c;
	border-bottom:2px solid #32b16c;
	transform:rotate(-45deg);
	position:absolute;
	left:0;
	top:8px;
}


address {
	font-style:normal;
}

.block_copy {
	font-size:1.2rem;
	text-align:center;
	padding:40px 0 0;
	border-top:1px solid #81511c;
}

.lower_footer {
	width:100%;
	display:flex;
	flex-wrap:wrap;
	justify-content: space-between;
}


.lower_footer > div {
	width:19%;
}

.lower_footer > div:nth-child(1) {
	width:43% !important;
}

@media all and (max-width:1024px) {
.lower_footer > div {
	width:18%;
}
	
.lower_footer > div:nth-child(1) {
	width:45% !important;
}
}

@media all and (max-width:768px) {
.lower_footer > div {
	width:31%;
}
	
.lower_footer > div:nth-child(1) {
	width:70% !important;
}
}

@media all and (max-width:560px) {
.footer_menu {
	display:none;
	width:100%;
	font-size:1.5rem;
}
	
.lower_footer > div {
	width:100%;
}
	
.lower_footer > div:nth-child(1) {
	width:100% !important;
}
}