@charset 'UTF-8';

/* reset */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block
}
body {
	line-height: 1;
}

ol,
ul {
	list-style: none
}

blockquote,
q {
	quotes: none
}

blockquote:before,
blockquote:after,
q:before,
q:after {
	content: "";
	content: none
}

table {
	border-collapse: collapse;
	border-spacing: 0
}

*,
*:before,
*:after {
	box-sizing: border-box
}

img {
	vertical-align: top
}

@keyframes linkTextLine {
	0% {
		background-size: 100% 1px;
		background-position: 100% 100%
	}

	50% {
		background-size: 0 1px;
		background-position: 100% 100%
	}

	51% {
		background-size: 0 1px;
		background-position: 0 100%
	}

	100% {
		background-size: 100% 1px;
		background-position: 0 100%
	}
}

:root {
	--black: #000;
	--gold: #BDA746;
	--lightgray: #EEE;
	--gray: #DDD;
	--white: #fff;
}

* {
	overflow-wrap: break-word;
	word-wrap: break-word;
}

html {
	-webkit-overflow-scrolling: touch;
	height: 100%;
	overflow-y: scroll;
    overflow-x: hidden;
	scroll-behavior: smooth;
	scroll-padding-top:110px;
	visibility: hidden;
}
html.wf-active {
	visibility: visible;
}

body {
	display: block;
	font-family: ryo-gothic-plusn, sans-serif;
	font-weight: 400;
	font-style: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	word-wrap: break-word;
	overflow-wrap: break-word;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	color: var(--black);
	background-color: var(--lightgray);	
}

@media screen and (min-width: 992px) {
	body {
		--header-height: 120px;
		--header-height-min: 80px;
		font-size: 1rem;
		line-height: 1.75;
	}
}

@media screen and (max-width: 991px) {
	body {
		--header-height: 80px;
		--header-height-min: 60px;
		font-size: 0.875rem;
		line-height: 1.75;
	}
}
@media screen and (max-width: 768px) {
	body {
		overflow: hidden;
	}
}
textarea,
input[type=text],
input[type=email],
input[type=tel] {
	-webkit-appearance: none;
	appearance: none;
	font-family: ryo-gothic-plusn, sans-serif;
}

button {
	border: 0
}

strong {
	font-weight: 700
}

a {
	color: var(--gold);
	word-break: break-word;
  text-decoration: none;
}

a:hover {
	text-decoration: none;
}

img,
svg {
	vertical-align: middle;
}

li {
	list-style-type: none;
}

sup {
	vertical-align: top;
}

input[type="submit"],
input[type="button"] {
	border-radius: 0;
	-webkit-box-sizing: content-box;
	-webkit-appearance: button;
	appearance: button;
	border: none;
	box-sizing: border-box;
	cursor: pointer;
}

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
	display: none;
}

input[type="submit"]::focus,
input[type="button"]::focus {
	outline-offset: -2px;
}

/* common
================================================= */
#wrapper {
	height: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	overflow: hidden;
}

.container {
	position: relative;
	transition: all 0s;
	height: 100%;
}
body.respNav {
	overflow: hidden;
	height: 100vh;
}
body.respNav .container::before {
	position: absolute;
	content: '';
	z-index: 889;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0,0,0,.5);
	pointer-events: none;
}
body.overlay {
	overflow: hidden;
	/*height: 100vh;*/
}
body.overlay .container::before {
	position: absolute;
	content: '';
	z-index: 890;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background: rgba(0,0,0,.5);
	pointer-events: none;
	animation-name: overlay;
	animation-duration:.3s;
	animation-fill-mode:forwards;
	height: 100%;
}
@keyframes overlay{
	from {
	  opacity:0;
	}
  
	to {
	  opacity:1;  
  }
}

@media screen and (max-width: 1120px) {
	body.overlay {
		overflow: hidden;
		height: auto;
	}
	body.overlay .container::before {
		z-index: 1;
		background: none;
		display: none;
	}
	body .container::before {
		display: none;
	}
}
body.overlay main {
    -ms-filter: blur(6px);
    filter: blur(6px);
    animation-duration:.3s;
	animation-fill-mode:forwards;
 }
@media screen and (max-width: 1120px) {
	body.overlay main {
	    -ms-filter: blur(0px);
	    filter: blur(0px);
	    animation-duration:0s;
	 }
}
@media screen and (max-width: 1120px) {
	body.overlay_sp {
		overflow: hidden;
		height: 100vh;
	}
	body.overlay_sp .container::before {
		position: absolute;
		content: '';
		z-index: 1;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		background: rgba(0,0,0,.5);
		pointer-events: none;
		animation-name: overlay;
		animation-duration:.3s;
		animation-fill-mode:forwards;
	}
	body.overlay_sp main {
	    -ms-filter: blur(6px);
	    filter: blur(6px);
	    animation-duration:.3s;
		animation-fill-mode:forwards;
	 }
}

.wrap {
  width: 1280px;
  max-width: calc(100% - 40px);
  box-sizing: border-box;
  margin: 0 auto;
}
@media screen and (max-width: 480px) {
	.wrap {
		width: 100%;
		box-sizing: border-box;
		max-width: 100%;
		padding: 0 20px;
	}
}
.line {
	border: none;
	border-top: 3px solid var(--black);
	position: relative;
	width: 1280px;
	margin: 0 auto;
	max-width: 100%;
}
@media screen and (max-width: 1024px) {
	.line {
		margin: 0 auto;
		max-width: calc(100% - 40px);
	}
}
.line:after {
	content: "";
	width: 64px;
	height: 3px;
	position: absolute;
	left: 0;
	top: -3px;
	background: var(--gold);
}
@media screen and (max-width: 1024px) {
	.line:after {
		width: 20px;
	}
}
.line_thin {
	border: none;
	border-top: 1px solid var(--black);
	position: relative;
	width: 1280px;
	margin: 0 auto;
	max-width: 100%;
}
@media screen and (max-width: 1024px) {
	.line_thin {
		margin: 0 auto;
		max-width: 100%;
	}
}
@media screen and (max-width: 480px) {
	.line_thin {
		border-top: 3px solid var(--black);
	}
}


.line_thin:after {
	content: "";
	width: 64px;
	height: 1px;
	position: absolute;
	left: 0;
	top: -1px;
	background: var(--gold);
}
@media screen and (max-width: 480px) {
	.line.mb160 {
		margin-bottom: 160px;
	}
	.line_thin:after {
		height: 3px; 
		top: -3px;
	}
}

.pc {
	display: inline-block;
}
.sp {
	display: none;
}
@media screen and (max-width: 480px) {
	.pc {
		display: none;
	}
	.sp {
		display: inline-block;
	}
}


/* subpage title 
==============================================*/
.page_title {
	margin-top: 110px;
}
.page_title .wrap {
	padding: 48px 0;
	border-bottom:3px solid var(--black);
	position: relative;
}
.page_title .wrap:after {
    content: "";
    width: 64px;
    height: 3px;
    position: absolute;
    left: 0;
    bottom: -3px;
    background: var(--gold);
}
.page_title h1 {
	font-family: kaneda-gothic, sans-serif;
    font-size: 240px;
    font-style: normal;
    font-weight: 900;
    line-height: 80%;
    width: 100%;
}
.page_title h1 .ttl {
	font-family: kaneda-gothic, sans-serif;
    font-size: 240px;
    font-style: normal;
    font-weight: 900;
    line-height: 80%;
    width: 100%;
}
.page_title h1 .subttl {
	margin-top: 27px;
}
.page_title h1 .subttl p {
	width: 100%;
	display: block;
	font-size: 28px;
	font-weight: 700;
	font-family: ryo-gothic-plusn, sans-serif;
	line-height: 150%;
	margin: -7px 0;
}

@media screen and (max-width: 1024px) {
	.page_title .wrap {
		padding: 40px 0;
	}
	.page_title h1 .ttl {
	    font-size: 100px;
	}
	.page_title h1 .subttl {
		margin-top: 30px;
	}
	.page_title h1 .subttl p {
		font-size: 20px;
	}
}

@media screen and (max-width: 480px) {
	.page_title {
		margin-top: 100px;
		padding: 0 20px;
	}
	.page_title .wrap:after {
	    width: 20px;
	}
}

/* breadcrumb
==================================================*/
.breadcrumb {
	padding: 32px 0 120px;
}
.breadcrumb ol {
	width: 1280px;
	margin: 0 auto;
	max-width: calc(100% - 40px);
	display: flex;
	gap: 0 20px;
	align-items: center;
	/*flex-wrap: wrap;*/
	white-space: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	overflow-scrollinng: touch;
	overflow: auto;
	word-break: keep-all;
	/*scrollbar-width: none!important;*/
	/*-ms-overflow-style: none!important*/
	scrollbar-gutter: stable;
}
.breadcrumb ol li {
	position: relative;
	/*white-space: normal;*/
	/*display: flex;*/
	align-items: center;
}
.breadcrumb ol li a {
	white-space: nowrap;
	line-height: 1;
	text-decoration: none;
	display: inline;
	position: relative;
}
.breadcrumb ol li a span{
	font-size: 12px;
	font-weight: 800;
	color: var(--black);
	/*white-space: normal;*/
	line-height: 150%;
	text-decoration: none;
	position: relative;
}
.breadcrumb ol li a span:after {
    content: "";
    background: var(--black);
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -2px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}
@media (hover: hover) and (pointer: fine) {
	.breadcrumb ol li a:hover span {
		color: var(--black);
		transition : 0.3s;
	}
	
	.breadcrumb ol li a:hover span:after {
	    transform: scale(1, 1);
	}
}
.breadcrumb ol li span {
	display: block;
	color: #707070;
	font-size: 12px;
	/*white-space: break-spaces;*/
	font-weight: 700;
}
.breadcrumb ol li span br {
	display: none;
}
.breadcrumb ol li:after {
	position: absolute;
	content: "";
	background: var(--gold);
	width: 4px;
	height: 4px;
	right: -13px;
	font-size: 10px;
	top: 0px;
	bottom: 0px;
	margin: auto;
	border-radius: 50%;
	
}
.breadcrumb ol li:last-child:after {
	display: none;
}
@media screen and (max-width: 1024px) {
	.breadcrumb {
		padding: 20px 0 60px;
	}
	.breadcrumb ol li a span{
		font-size: 11px;
	}
	.breadcrumb ol li span {
		font-size: 11px;
	}
}


@media only screen and ( max-width: 768px ) {
	.breadcrumb ol {
		max-width: 100%;
		width: 1280px;
		overflow-x: auto;
	}
	.breadcrumb {
		padding: 20px;
	}
}

/* 2 column
================================================= */
.wrap.column02 {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.wrap.column02 #sidebar {
	width: 290px;
	padding-bottom: 80px;
}
.wrap.column02 #contents {
	width: 840px;
}

@media screen and (max-width: 1279px) {
	.wrap.column02 #sidebar {
		width: 22.6%;
		padding-bottom: 0;
	}
	.wrap.column02 #contents {
		width: 65.6%;
	}
}

@media screen and (max-width: 1024px) {
	.wrap.column02 #sidebar {
		width: 100%;
		padding-top: 60px;
	}
	.wrap.column02 #contents {
		width: 100%;
	}
}



/* padding
================================================= */

.mt160 {
	margin-top: 160px;
}
@media screen and (max-width: 1024px) {
	.mt160 {
		margin-top: 100px;
	}
}
.mt120 {
	margin-top: 120px;
}
@media screen and (max-width: 1024px) {
	.mt120 {
		margin-top: 100px;
	}
}
.mt104 {
	margin-top: 104px;
}
@media screen and (max-width: 1024px) {
	.mt104 {
		margin-top: 78px;
	}
}
.mt80 {
	margin-top: 80px;
}
@media screen and (max-width: 1024px) {
	.mt80 {
		margin-top: 60px;
	}
}
.mt64 {
	margin-top: 64px;
}
@media screen and (max-width: 1024px) {
	.mt64 {
		margin-top: 50px;
	}
}
.mt56 {
	margin-top: 56px;
}
@media screen and (max-width: 1024px) {
	.mt56 {
		margin-top: 40px;
	}
}
.mt40 {
	margin-top: 40px;
}
@media screen and (max-width: 1024px) {
	.mt40 {
		margin-top: 30px;
	}
}
.mt32 {
	margin-top: 32px;
}
@media screen and (max-width: 1024px) {
	.mt32 {
		margin-top: 20pxpx;
	}
}
.mt24 {
	margin-top: 24px;
}
@media screen and (max-width: 1024px) {
	.mt24 {
		margin-top: 15px;
	}
}
.mt16 {
	margin-top: 16px;
}
@media screen and (max-width: 1024px) {
	.mt16 {
		margin-top: 10px;
	}
}
.mt8 {
	margin-top: 8px;
}
@media screen and (max-width: 1024px) {
	.mt8 {
		margin-top: 5px;
	}
}

.mb160 {
	margin-bottom: 160px;
}
@media screen and (max-width: 1024px) {
	.mb160 {
		margin-bottom: 100px;
	}
}
.mb120 {
	margin-bottom: 120px;
}
@media screen and (max-width: 1024px) {
	.mb120 {
		margin-bottom: 10px;
	}
}
.mb80 {
	margin-bottom: 80px;
}
@media screen and (max-width: 1024px) {
	.mb80 {
		margin-bottom: 60px;
	}
}
.mb64 {
	margin-bottom: 64px!important;
}
@media screen and (max-width: 1024px) {
	.mb64 {
		margin-bottom: 50px;
	}
}
.mb56 {
	margin-bottom: 56px;
}
.pb48 {
	padding-bottom: 48px;
}
@media screen and (max-width: 1024px) {
	.pb48 {
		padding-bottom: 40px;
	}
}

.mb40 {
	margin-bottom: 48px;
}
@media screen and (max-width: 1024px) {
	.mb40 {
		margin-bottom: 40px;
	}
}
.mb40 {
	margin-bottom: 40px;
}
.mb32 {
	margin-bottom: 32px;
}
.mbt24 {
	margin-bottom: 24px;
}
.mb16 {
	margin-bottom: 16px;
}
.mb8 {
	margin-bottom: 8px;
}

/* link
================================================= */

/* 01 */
.link_style01 a {
    display: flex;
    align-items: center;
    text-decoration: none;
    width: fit-content;
}

.link_style01 a .text {
    position: relative;
    padding-bottom: 5px;
    font-size: 16px;
    color: var(--black);
    font-weight: bold;
}
@media screen and (max-width: 1024px) {
	.link_style01 a .text {
	    font-size: 15px;
	}
}

.link_style01 a .text::after {
    background: var(--black);
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	.link_style01 a:hover .text::after {
	    transform: scale(1, 1);
	}
}

.link_style01 a .arrowbox{
    background:rgba(189,167,70,0.55) ;
    border-radius: 50%;
    position: relative;
    margin-left: 20px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
@media screen and (max-width: 1024px) {
	.link_style01 a .arrowbox{
	    margin-left: 15px;
	    width: 40px;
	    height: 40px;
	}
}

.link_style01 a .arrowbox img{
    position: relative;
    width: 18px;
    z-index: 2;
}

.link_style01 a .arrowbox .arrow{
    transform: translateX(50%);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

.link_style01 a .arrowbox .arrow-hover{
    transform: translateX(-300%);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

.link_style01 a .arrowbox::after {
    content: "";
    background: var(--gold);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.1);
    transform-origin: center;
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
    width: 36px;
    height: 36px;
    z-index: 1;
}
@media screen and (max-width: 1024px) {
	.link_style01 a .arrowbox::after {
	    width: 30px;
	    height: 30px;
	}
}

@media (hover: hover) and (pointer: fine) {
	.link_style01 a:hover .arrowbox::after {
	    transform: translate(-50%, -50%) scale(0.95);
	}
	
	.link_style01 a:hover .arrowbox .arrow{
	    transform: translateX(300%);
	}
	
	.link_style01 a:hover .arrowbox .arrow-hover{
	    transform: translateX(-50%);
	}
}


/* 02 */
.link_style02 a {
    display: flex;
    align-items: center;
    text-decoration: none;
    width: fit-content;
}

.link_style02 a .text {
    position: relative;
    padding-bottom: 5px;
    font-size: 16px;
    color: var(--black);
    font-weight: bold;
}

.link_style02 a .text::after {
    background: #C4B50C;
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: 0;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	.link_style02 a:hover .text::after {
	    transform: scale(1, 1);
	}
}

.link_style02 a .arrowbox{
    background-color:#D4C999 ;
    border-radius: 50%;
    position: relative;
    margin-left: 20px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.link_style02 a .arrowbox img{
    position: relative;
    width: 18px;
    z-index: 2;
}

.link_style02 a .arrowbox::after {
    content: "";
    background-color: var(--gold);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.1);
    transform-origin: center;
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
    width: 36px;
    height: 36px;
    z-index: 1;
}

@media (hover: hover) and (pointer: fine) {
	.link_style02 a:hover .arrowbox::after {
	    transform: translate(-50%, -50%) scale(0.95);
	}
}

/* 03 */
.link_style03 {
	width: fit-content;
	display: inline-block;
	position: relative;
}
.link_style03:after {
	position: absolute;
	content: "";
	width: 16px;
	height: 16px;
	background: url(images/common/otherlink_icon.svg) no-repeat center/cover;
	right: -24px;
	top: 0;
	bottom: 0;
	margin: auto;
}
.link_style03 a {
    text-decoration: none;
    position: relative;
    color: var(--black);
    margin-left: 24px;
}
.link_style03 a:before {
	width: 16px;
	height: 16px;
	content: "";
	position: absolute;
	overflow: hidden;
	left: -24px;
	top: 0;
	bottom: 0;
	margin: auto;
	background: url(images/common/rightarrow_bg.svg) no-repeat center right/cover;
	transition: background-position 0.3s;
}
@media (hover: hover) and (pointer: fine) {
	.link_style03 a:hover:before{
		background: url(images/common/rightarrow_bg.svg) no-repeat center left/cover;
	}
}

.link_style03 a:after {
    content: "";
    background: var(--gold);
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -5px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	.link_style03 a:hover {
		color: var(--gold);
		transition : 0.3s;
	}
}

@media (hover: hover) and (pointer: fine) {
	.link_style03 a:hover:after {
	    transform: scale(1, 1);
	}
}

/* 04 */
.link_style04 {
	width: fit-content;
	display: inline-block;
}
.link_style04 a {
    text-decoration: none;
    position: relative;
    color: var(--black);
    margin-left: 24px;
}
.link_style04 a:before {
	width: 16px;
	height: 16px;
	content: "";
	position: absolute;
	overflow: hidden;
	left: -24px;
	top: 0;
	bottom: 0;
	margin: auto;
	background: url(images/common/rightarrow_bg.svg) no-repeat center right/cover;
	transition: background-position 0.3s;
}
@media (hover: hover) and (pointer: fine) {
	.link_style04 a:hover:before{
		background: url(images/common/rightarrow_bg.svg) no-repeat center left/cover;
	}
}

.link_style04 a:after {
    content: "";
    background: var(--gold);
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -5px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	.link_style04 a:hover {
		color: var(--gold);
		transition : 0.3s;
	}
	
	.link_style04 a:hover:after {
	    transform: scale(1, 1);
	}
}

/* 05 */
.link_style05 {
	width: fit-content;
	display: inline;
	position: relative;
	padding-right: 24px;
}
.link_style05:after {
	position: absolute;
	content: "";
	width: 16px;
	height: 16px;
	background: url(images/common/otherlink_icon.svg) no-repeat center/cover;
	right: 0;
	top: 0;
	bottom: 0;
	margin: auto;
}
.link_style05 a {
    text-decoration: none;
    position: relative;
    color: var(--black);
}

.link_style05 a:after {
    content: "";
    background: var(--black);
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -2px;
    margin: auto;
    transform-origin: right top;
    transform: scale(1, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	.link_style05 a:hover {
		color: var(--gold);
		transition : 0.3s;
	}
	
	.link_style05 a:hover:after {
	    transform: scale(0, 1);
	}
}

/* 06 */
a.link_style06 {
	display: inline;
	position: relative;
}
a.link_style06 span {
    text-decoration: none;
    position: relative;
    color: var(--black);
}

a.link_style06 span:after {
    content: "";
    background: var(--black);
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -2px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

@media (hover: hover) and (pointer: fine) {
	a.link_style06:hover span {
		color: var(--black);
		transition : 0.3s;
	}
	
	a.link_style06:hover span:after {
	    transform: scale(1, 1);
	}
}
/* header
================================================= */

/*body#page_top .gHeader:not(.-moved) {*/
/*	background-color: transparent;*/
/*}*/
.gHeader__container {
	max-width: none;
	padding: 0 30px;
	margin-left: auto;
	margin-right: auto;
}
body#page_top .gHeader:not(.-moved) .gHeader__inner {
	height: 120px;
}
header {
	height: 120px;
	display: flex;
	padding:  0 40px;
	align-items: center;
	justify-content: space-between;
	position: relative;
	z-index: 999;
	background-color: rgba(238,238,238,0);
	transition: background-color .5s;
}
@media screen and (max-width: 480px) {
	header {
		height: 100px;
		padding:  0 20px;
	}
}
header.gHeader.transform {
  background-color: rgba(238,238,238, .9); /* 背景色変更 */
}
header .logo {
	width: 140px;
	position: relative;
	z-index: 999;
	flex-shrink: 0;
}
@media screen and (max-width: 1120px) {
	header .logo {
		width: 120px;
		position: absolute;
		left: 0;
		right: 0;
		margin: auto;
	}
}
header .logo img {
	width: 100%;
	height: auto;
}
/* nav */
#globalHeader {
	/*position: relative;*/
	position: fixed;
	top: 0;
    width: 100%;
}
#globalHeader .inner {
	/* max-width: calc(1280px + 80px); */
	width: 100%;
	min-height: 110px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	align-items: center;
}

#globalHeader nav#globalNav {
	flex: 1;
	z-index: 5;
}
@media screen and (max-width: 1120px) {
	#globalHeader nav#globalNav {
		z-index: auto;
	}
}
#globalHeader nav#globalNav hgroup h2 {
	display: none;
}

/* -- hamburger set -- */
#globalNav hgroup {
	position: absolute;
	display: none;
	right: 60px;
	top: 12px;
	min-height: 80px;
	cursor: pointer;
}
@media screen and (max-width: 1120px) {
	#globalNav hgroup {
		z-index: 999;
	}
}

#globalNav hgroup p span,
#globalNav hgroup p::before,
#globalNav hgroup p::after {
	display: block;
	width: 40px;
	height: 1px;
	border-radius: 2em;
	content: '';
	-webkit-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
	border-radius: 5px;
	background-color: #212226;
}
#globalNav hgroup p span {
	position: relative;
	margin: 5px 0;
}
#globalNav hgroup p {
	position: absolute;
	padding: 1.85em 0;
	width: 40px;
	cursor: pointer;
	text-align: center;
}
#globalNav hgroup p.active span {
	-webkit-transform: scale(0);
	        transform: scale(0);
}
#globalNav hgroup p.active span.first-menu,
#globalNav hgroup p.active span.last-menu {
	display: none;
}
#globalNav hgroup p.active::before {
	-webkit-transform: translateY(12px) rotate(150deg);
	        transform: translateY(12px) rotate(150deg);
}
#globalNav hgroup p.active::after {
	-webkit-transform: translateY(0px) rotate(-150deg);
	        transform: translateY(0px) rotate(-150deg);
}
#globalNav hgroup h2 {
	position: relative;
	top: 43px;
	right: 0;
	width: 37px;
	text-align: center;
	font-size: 10px;
	color: #2280C0;
}
/* -- PC表示時 -- */
@media screen and (min-width:1121px) {
	#globalHeader nav#globalNav > ul {
		display: flex !important;
		justify-content: flex-end;
		flex-wrap: wrap;
		align-items: center;
    	gap: 0px 24px;
	}
	#globalHeader nav#globalNav > ul > li {
		line-height: 1.0;
	}
	#globalHeader nav#globalNav ul li.sp_menu {
		display: none;
	}
	#globalHeader nav#globalNav > ul > li > span,
	#globalHeader nav#globalNav > ul > li > a {
		font-family: kaneda-gothic, sans-serif;
		position: relative;
		display: flex;
		justify-content: center;
		align-items: center;
		/*height: 110px;*/
		padding: 0;
		font-size: 25px;
		color: var(--black);
		line-height: 1;
		font-weight: 700;
		text-decoration: none;
		cursor: pointer;
		/*border-bottom: 2px solid rgba(51,102,153,.0);*/
		letter-spacing: 0.04em;
	}
	#globalHeader nav#globalNav > ul > li > span:before,
	#globalHeader nav#globalNav > ul > li > a:before {
		background: var(--gold);
	    content: '';
	    width: 100%;
	    height: 1px;
	    position: absolute;
	    left: 0;
	    bottom: -5px;
	    margin: auto;
	    transform-origin: left top;
	    transform: scale(0, 1);
	    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
	}
	/*#globalHeader nav#globalNav > ul > li span::after {*/
	/*	content: '';*/
	/*	display: inline-block;*/
	/*	vertical-align: baseline;*/
	/*	width: 8px;*/
	/*	height: 8px;*/
	/*	margin: 0 0 3px 10px;*/
	/*	border-right: 1.5px solid #212226;*/
	/*	border-bottom: 1.5px solid #212226;*/
	/*	-webkit-transform: rotate(45deg);*/
	/*	-ms-transform: rotate(45deg);*/
	/*	transform: rotate(45deg);*/
	/*}*/
	#globalHeader nav#globalNav > ul > li span::after {
		content: '';
		display: inline-block;
		vertical-align: baseline;
		width: 16px;
		height: 16px;
		margin: 0 0 0px 10px;;
		background: url(images/common/arrow_icon_bg.svg)no-repeat center bottom/cover;
		overflow: hidden;
		transition: background-position 0.3s;
	}
	#globalHeader nav#globalNav > ul > li:hover span::after,
	#globalHeader nav#globalNav > ul > li.hover span::after{
		background: url(images/common/arrow_icon_bg.svg)no-repeat center top/cover;
	}
	#globalHeader nav#globalNav > ul > li.hover span,
	#globalHeader nav#globalNav > ul > li > span:hover,
	#globalHeader nav#globalNav > ul > li > a:hover {
		color: var(--gold);
		/*padding-bottom: .5em;*/
		transition: 0.3s;
	}
	#globalHeader nav#globalNav > ul > li.hover span::before,
	#globalHeader nav#globalNav > ul > li > span:hover::before,
	#globalHeader nav#globalNav > ul > li > a:hover::before,
	#globalHeader nav#globalNav > ul > li.hover > span:hover::before,
	#globalHeader nav#globalNav > ul > li.hover > a:hover::before {
		position: absolute;
		content: '';
		background: var(--gold);
		height: 0.5px;
		left: 0;
		right: 0;
		margin: auto;
		bottom: -5px;
		width: 100%;
		transform: scale(1, 1);
	}
	#globalHeader nav#globalNav ul li.current a,
	#globalHeader nav#globalNav ul li.current span {
		color: var(--gold);
	}
	#globalHeader nav#globalNav ul li.current a:before,
	#globalHeader nav#globalNav ul li.current span:before{
		background: var(--gold);
	    content: '';
	    width: 100%;
	    height: 1px;
	    position: absolute;
	    left: 0;
	    bottom: -5px;
	    margin: auto;
	    transform-origin: left top;
	    transform: scale(1, 1);
	}
	#globalHeader nav#globalNav ul li.current span::after {
		background: url(images/common/arrow_icon_bg.svg)no-repeat center top/cover;
	}
	#globalHeader nav#globalNav > ul > li.contact {
		margin-top: 0px;
	}
	#globalHeader nav#globalNav > ul > li.contact a {
		display: block;
		height: 48px;
		background: var(--gold);
		color: #fff;
		width: 160px;
		padding: 12px 0;
		position: relative;
		display: flex;
		overflow: hidden;
		z-index: 1;
		border-bottom: none;
		align-items: center;
		justify-content: center;
	}
	#globalHeader nav#globalNav > ul > li.contact a::after {
	    content: "";
	    display: block;
	    background: linear-gradient(90deg, #6A5E27 0%, #6A5E27 2%, #978638 2%, #978638 100%);
	    height: 100%;
	    width: 0;
	    position: absolute;
	    top: 0;
	    left: 0;
	    transform-origin: center left;
	    transition: width 300ms cubic-bezier(0.8, 0, 0.5, 1);
	    z-index: -1;
	}
	#globalHeader nav#globalNav > ul > li.contact a:hover::after {
	    width: 100%;
	}
	
	#globalHeader nav#globalNav > ul > li.contact a span{
	    padding: 0;
	    transition: padding 300ms cubic-bezier(0.8, 0, 0.5, 1);
	}
	
	#globalHeader nav#globalNav > ul > li.contact a:hover span{
	    padding: 0 0 0 5%;
	}
	#globalHeader nav#globalNav > ul > li.contact a span:after {
		display: none;
	}
	#globalHeader nav#globalNav > ul > li.contact a::before {
		display: none;
	}

	#globalHeader nav#globalNav ul li div {
		visibility: hidden;
		opacity: 0;
		display: none;
		position: absolute;
		z-index: -1;
		content: '';
		top: 0px;
		right: 0;
		left: 0;
		background: var(--lightgray);
		padding: 160px 300px 80px 80px;
		box-sizing: border-box;
		transition: all 0.2s ease-in 0s;
		will-change: opacity;
		width: 100%;
		height: 380px;
	}
	#globalHeader nav#globalNav > ul > li.language {
		display: flex;
		gap: 0 5px;
		font-size: 25px;
	}
	#globalHeader nav#globalNav > ul > li.language a {
		position: static;
	}
	#globalHeader nav#globalNav > ul > li.language a.current {
		color: var(--gold);
		pointer-events: none;
	}
	#globalHeader nav#globalNav > ul > li.language a:hover:before {
		display: none;
	}
	#globalHeader nav#globalNav ul li.hover div {
		visibility: visible;
		opacity: 1;
		transition: all 0.6s;
		will-change: opacity;
	}
	#globalHeader nav#globalNav ul li div .menu_inner {
		width: 1440px;
		margin: 0 auto;
		max-width: 100%;
		display: flex!important;
		justify-content: space-between;
		flex-wrap: wrap;
	}

	#globalHeader nav#globalNav > ul > li div h3 {
		flex-shrink: 0;
		width: auto;
		padding-left: 0;
    font-family: kaneda-gothic, sans-serif;
    font-size: 80px;
    font-style: normal;
    font-weight: 300;
    line-height: 80%; 

	}
	#globalHeader nav#globalNav > ul > li div ul {
		flex-shrink: 0;
		/*width: 660px;*/
		width: 720px;
		border-left: 1px solid var(--gray);
		padding-left: 40px;
		display: flex;
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 16px 40px;
		max-width: 70%;
	}
	#globalHeader nav#globalNav > ul > li div ul li {
		flex-shrink: 0;
		width: 46%;
		line-height: 1.0;
	}
	#globalHeader nav#globalNav > ul > li div ul li:first-child {
		width: 100%;
		margin-bottom: 19px;
		font-weight: 700;
		line-height: 150%;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01,
	#globalHeader nav#globalNav > ul > li div ul li.media02 {
    	width: 46%;
    	margin-bottom: 0;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a {
		font-weight: 700;
		font-size: 16px;
		line-height: 1;
	}
	#globalHeader nav#globalNav > ul > li div ul li a,
	#globalHeader nav#globalNav > ul > li.current div ul li a{
		position: relative;
		display: inline-block;
		padding: 0 0 0 20px;
		color: var(--Black);
		vertical-align: middle;
		text-decoration: none;
		font-weight: 500;
		font-size: 12px;
		line-height: 1;
	}
	#globalHeader nav#globalNav > ul > li div ul li a:hover {
		color: var(--gold);
	}
	#globalHeader nav#globalNav > ul > li div ul li:first-child a {
		font-weight: 700;
		font-size: 16px;
		line-height: 1;
	}
	#globalHeader nav#globalNav > ul > li div ul li a:before,
	#globalHeader nav#globalNav > ul > li.current div ul li a:before{
		background: var(--gold);
	    content: '';
	    height: 1px;
	    position: absolute;
	    left: 20px;
	    right: 0;
	    bottom: -5px;
	    margin: auto;
	    transform-origin: left top;
	    transform: scale(0, 1);
	    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li a:hover:before {
		transform: scale(1, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li a::after {
		position: absolute;
		top: 0;
		bottom: 0;
		left:0;
		width: 16px;
		height: 16px;
		margin: auto;
		content: '';
		vertical-align: middle;
		transition: all 0s;
		background: url(images/common/rightarrow_bg.svg)no-repeat right center/cover;
		overflow: hidden;
		transition: width 300ms cubic-bezier(0.8, 0, 0.5, 1);
		transition: background-position 0.3s;
	}
	#globalHeader nav#globalNav > ul > li div ul li a:hover::after {
		background: url(images/common/rightarrow_bg.svg)no-repeat left center/cover;
		transform: scale(1, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a:before,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a:before,
	#globalHeader nav#globalNav > ul > li div ul li.media01 a:after,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a:after{
		display: none;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a h4,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a h4{
		position: relative;
		display: inline-block;
		font-size: 16px;
		font-weight: 400;
		color: var(--black);
		margin-bottom: 24px;
		padding: 0 0 0 20px;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a h4 em:after,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a h4 em:after{
		content: "";
		width: 16px;
		height: 16px;
		background: url(images/common/linkicon_bg.svg) no-repeat center/cover;
		position: absolute;
		right: -20px;
		
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a h4:before,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a h4:before{
		background: var(--gold);
	    content: '';
	    height: 1px;
	    position: absolute;
	    left: 20px;
	    right: 0;
	    bottom: -5px;
	    margin: auto;
	    transform-origin: left top;
	    transform: scale(0, 1);
	    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a:hover h4:before,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a:hover h4:before{
		transform: scale(1, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a h4::after,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a h4::after{
		position: absolute;
		top: 0;
		bottom: 0;
		left:0;
		width: 16px;
		height: 16px;
		margin: auto;
		content: '';
		vertical-align: middle;
		transition: all 0s;
		background: url(images/common/rightarrow_bg.svg)no-repeat right center/cover;
		overflow: hidden;
		transition: width 300ms cubic-bezier(0.8, 0, 0.5, 1);
		transition: background-position 0.3s;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a:hover h4::after,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a:hover h4::after{
		background: url(images/common/rightarrow_bg.svg)no-repeat left center/cover;
		transform: scale(1, 1);
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a p,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a p {
		font-size: 12px;
		color: #707070;
		font-weight: 400;
		line-height: 175%;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a:hover p,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a:hover p {
		color: #707070;
	}
}
@media screen and (max-width:1279px) {
	#globalHeader nav#globalNav > ul > li div {
		padding: 150px 100px 80px 80px;
	}	
}

/* -- SP表示時 -- */
@media screen and (max-width:1120px) {
	#globalHeader .inner {
		padding: 0 20px;
	}
	.overlay-sp #globalHeader .inner:before {
		content: "";
		width: 120%;
		height: 100px;
		background: var(--lightgray);
		position: absolute;
		position: absolute;
        z-index: 998;
        left: -20px;
        top: 0;
	}
	#globalNav hgroup {
		display: block;
	}
	#globalHeader nav#globalNav > ul {
		display: none;
		position: absolute;
		z-index: -1;
		top: 0;
		right: 0;
		left: 0;
		padding: 100px 0px 80px;
		background: rgba(240,240,240,1.0);
        overflow: auto;
        box-sizing: border-box;
        height: 100vh;
        -webkit-overflow-scrolling: touch;
	}
	#globalHeader nav#globalNav > ul > li {
		border-top: 1px solid #ccc;
		margin: 0 20px;
	}
	#globalHeader nav#globalNav ul li.sp_menu {
		display: block;
	}
	#globalHeader nav#globalNav > ul > li a,
	#globalHeader nav#globalNav > ul > li span {
		display: block;
		text-decoration: none;
		font-size: 18px;
		color: var(--black);
		position: relative;
		padding: 20px 32px 20px 8px;
		color:  var(--black);
		vertical-align: middle;
		text-decoration: none;
		font-size: 22px;
		cursor: pointer;
		font-weight: 700;
		font-family: kaneda-gothic, sans-serif;
        line-height: 1.2;
        letter-spacing: 0.04em;
	}
	#globalHeader nav#globalNav > ul > li span.active {
		color:  var(--gold);
		margin: 0 -20px;
		padding: 20px 32px 20px 28px;
		background: #fff;
	}
	#globalHeader nav#globalNav > ul > li span:before,
	#globalHeader nav#globalNav > ul > li a:before,
	#globalHeader nav#globalNav > ul > li span:after,
	#globalHeader nav#globalNav > ul > li a:after {
		position: absolute;
		top: 0;
		bottom: 0;
		margin: auto;
		content: '';
		vertical-align: middle;
		transition: all 0s;
	}
	#globalHeader nav#globalNav > ul > li a::after {
		right: 3px;
		width: 8px;
		height: 8px;
		border-top: 1.5px solid var(--gold);
		border-right: 1.5px solid var(--gold);
		-webkit-transform: rotate(45deg);
		transform: rotate(45deg);
	}
	#globalHeader nav#globalNav > ul > li span::after {
		right: 0px;
		width: 12px;
		height: 1.5px;
		background: var(--gold);
	}
	#globalHeader nav#globalNav > ul > li span::before {
		right: 0px;
		width: 12px;
		height: 1.5px;
		background: var(--gold);
		-webkit-transform: rotate(90deg);
		transform: rotate(90deg);
	}
	#globalHeader nav#globalNav > ul > li span.active::after {
		right: 20px;
	}
	#globalHeader nav#globalNav > ul > li span.active::before {
		right: 20px;
	}
	#globalHeader nav#globalNav > ul > li span.active::before {
		-webkit-transform: rotate(0deg);
		transform: rotate(0deg);
	}
	#globalHeader nav#globalNav > ul > li span + div {
		margin: 0 -20px;
		padding: 0 20px;
		background: var(--white);
	}
	#globalHeader nav#globalNav > ul > li span + div h3 {
		display: none;
	}
	#globalHeader nav#globalNav > ul > li span + div ul {
		padding-bottom: 10px;
	}
	/*#globalHeader nav#globalNav > ul > li span + div ul li:first-child {*/
	/*	display: none;*/
	/*}*/
	#globalHeader nav#globalNav > ul > li span + div ul li.media01 {
		display:block;
	}

	#globalHeader nav#globalNav > ul > li a:hover,
	#globalHeader nav#globalNav > ul > li span:hover {
		color: var(--gold);
	}

	#globalHeader nav#globalNav > ul > li.contact {
		padding-top: 20px;
		margin-bottom: 20px;
	}
	#globalHeader nav#globalNav > ul > li.contact a {
		display: block;
		background: var(--gold);
		color: var(--white);
		width: 100%;
		padding: 24px 0;
		text-align: center;
		font-weight: 700;
	}
	#globalHeader nav#globalNav > ul > li.contact a span {
		padding: 0;
		color: var(--white);
	}
	#globalHeader nav#globalNav > ul > li.language {
		display: flex;
		gap: 0 5px;
		font-size: 22px;
		justify-content: center;
		align-items: center;
		padding: 20px 0;
	}
	#globalHeader nav#globalNav > ul > li.language a {
		padding: 5px;
		font-size: 22px;
	}
	#globalHeader nav#globalNav > ul > li.language a:before,
	#globalHeader nav#globalNav > ul > li.language a:after {
		display: none;
	}
	#globalHeader nav#globalNav > ul > li.language a.current {
		color: var(--gold);
	}
	#globalHeader nav#globalNav ul div {
		display: none;
	}
	#globalHeader nav#globalNav ul div ul li a {
		padding: 15px 32px 15px 28px;
		font-weight: 400;
		font-size: 15px;
        line-height: 2.0;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a h4,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a h4{
		font-size: 15px;
		margin: -3.75px 0 18px 0;
		line-height: 1;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a p,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a p {
		font-size: 11px;
		color: #707070;
	}
	#globalHeader nav#globalNav > ul > li div ul li.media01 a::after,
	#globalHeader nav#globalNav > ul > li div ul li.media02 a::after {
		width: 20px;
		height: 20px;
		background: url(images/common/link_icon_gold.svg) no-repeat top center/cover;
		right: 3px;
        border-top:none;
        border-right:none;
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg);
	}
}

/* footer
================================================= */

.footer_parts {
	margin-top: auto;
}

.footer_contact {
	width: 100%;
	background: var(--gold);
	padding: 80px 0;
	position: relative;
}
@media screen and (max-width: 1024px) {
	.footer_contact {
		padding: 60px 0;
	}
}
@media screen and (max-width: 480px) {
	.footer_contact {
		padding: 35px 0 60px;
	}
}
.footer_contact .wrap {
	position: initial !important;
}
.footer_contact h2 {
	position: absolute;
	color: var(--black);
	text-align: center;
	font-family: kaneda-gothic, sans-serif;
	font-size: 268.569px;
	font-style: normal;
	font-weight: 900;
	line-height: 80%;
	top: -120px;
	white-space: nowrap;
}
@media screen and (max-width: 1320px) {
	.footer_contact h2 {
		font-size: 19vw;
		width: 100%;
	}
}
@media screen and (max-width: 1024px) {
	.footer_contact h2 {
		text-align: left;
		font-size: 100px;
		top: -40px;
		white-space: wrap;
	}
}
@media screen and (max-width: 480px) {
	.footer_contact h2 {
		top: -118px;
		width: 90%;
	}
}

.footer_contact ul {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 80px;
}
@media screen and (max-width: 1024px) {
	.footer_contact ul {
		margin-top: 60px;
	}
}
@media screen and (max-width: 480px) {
	.footer_contact ul {
		gap: 40px 0;
	}
}
.footer_contact ul li {
	width: 620px;
}
@media screen and (max-width: 1279px) {
	.footer_contact ul li {
		width: 47%;
	}	
}
@media screen and (max-width: 1024px) {
	.footer_contact ul li {
		width: 45%;
	}
}
@media screen and (max-width: 480px) {
	.footer_contact ul li {
		width: 100%;
		max-width: 100%;
	}	
}
.footer_contact ul li a {
	display: block;
	width: 100%;
}
.footer_contact ul li a .img {
	width: 100%;
	margin-bottom: 24px;
	position: relative;
	height: 310px;
	overflow: hidden;
}
@media screen and (max-width: 1024px) {
	.footer_contact ul li a .img {
		margin-bottom: 15px;
		height: 168px;
	}
}
.footer_contact ul li a .img img {
	width: 100%;
	height: auto;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	object-fit: cover;
	transform: scale(1);
	filter: grayscale(0%) brightness(100%);
	transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1), 
                filter 300ms cubic-bezier(0.8, 0, 0.5, 1);
}
@media (hover: hover) and (pointer: fine) {
	.footer_contact ul li a:hover .img img {
	    transform: scale(1.1); /* 拡大 */
	    filter: grayscale(0%) brightness(100%);
	}
}

.footer_contact ul li a h3 {
	font-family: kaneda-gothic, sans-serif;
	font-size: 100px;
	font-style: normal;
	font-weight: 800;
	line-height: 80%;
	text-transform: uppercase;
	color: transparent;
	position: relative;
	background: linear-gradient( to right, #fff 50%, var(--black) 50%) 100%;
	background-clip: text;
	background-size: 200% 100%;
	transition: background-position 0.3s;
}
@media screen and (max-width: 1024px) {
	.footer_contact ul li a h3 {
		font-size: 64px;
	}
}

@media (hover: hover) and (pointer: fine) {
	.footer_contact ul li a:hover h3 {
		background-position: 0 100%;
	}
}

.footer_contact ul li a h3 span {
	width: 100%;
	display: block;
	font-size: 20px;
	font-weight: 700;
	font-family: ryo-gothic-plusn, sans-serif;
	line-height: 1;
	margin-top: 20px;
}
@media screen and (max-width: 1024px) {
	.footer_contact ul li a h3 span {
		font-size: 17px;
	}
}
.footer_contact ul li a .ttl_area {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.footer_contact ul li a .ttl_area .arrowbox {
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    position: relative;
    margin-left: 20px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.footer_contact ul li a .ttl_area .arrowbox img{
    position: relative;
    width: 18px;
    z-index: 2;
}

.footer_contact ul li a .ttl_area .arrowbox .arrow{
    transform: translateX(50%);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

.footer_contact ul li a .ttl_area .arrowbox .arrow-hover{
    transform: translateX(-300%);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}

.footer_contact ul li a .ttl_area .arrowbox::after {
    content: "";
    background-color: var(--black);
    border-radius: 50%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(1.1);
    transform-origin: center;
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
    width: 36px;
    height: 36px;
    z-index: 1;
}
@media (hover: hover) and (pointer: fine) {
	.footer_contact ul li a:hover .ttl_area .arrowbox {
		background-color: rgba(225, 225, 225, 0.5);
	}
	
	.footer_contact ul li a:hover .ttl_area .arrowbox::after {
	    transform: translate(-50%, -50%) scale(0.95);
	    background-color: #fff;
	}
	
	.footer_contact ul li a:hover .ttl_area .arrowbox .arrow{
	    transform: translateX(300%);
	}
	
	.footer_contact ul li a:hover .ttl_area .arrowbox .arrow-hover{
	    transform: translateX(-50%);
	}
}
footer {
	width: 100%;
	padding: 40px 0;
}
@media screen and (max-width: 1024px) {
	footer {
		padding: 0 0 40px;
	}
}
footer .wrap {
	position: relative;
}
footer .wrap .footer_person {
	position: absolute;
	width: 280px;
	right: 0;
	top: -98px;
	z-index: 998;
	pointer-events: none;
}
@media screen and (max-width: 1140px) {
	footer .wrap .footer_person {
		width: 170px;
	}
}
@media screen and (max-width: 1024px) {
	footer .wrap .footer_person {
		max-width: 35%;
		right: 15px;
	}
}
@media screen and (max-width: 480px) {
	footer .wrap .footer_person {
		max-width: 30%;
		right: 10px;
		top: -12px;
	}
}
footer .wrap .footer_person img {
	width: 100%;
	height: auto;
}
footer .top_footer_area {
	width: 100%;
	display: flex;
	align-items: center;
	margin-bottom: 40px;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area {
		margin-bottom: 0px;
		flex-wrap: wrap;
	}
}
footer .top_footer_area .sns_area {
	width: 262px;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .sns_area {
		width: 100%;
		padding: 40px 0;
		border-bottom: 1px solid var(--black);
	}
}
footer .top_footer_area .sns_area div {
	width: 100%;
	background: var(--white);
	border-radius: 10px;
	padding: 20px 28px;
	display: flex;
	align-items: center;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .sns_area div {
		width: fit-content;
		border-radius: 10px;
		padding: 20px;
	}
}


footer .top_footer_area .sns_area div h2{
font-family: kaneda-gothic, sans-serif;
	font-size: 30px;
	font-style: normal;
	font-weight: 500;
	line-height: 80%;
	display: inline;
	margin-right: 40px;
	width: auto;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .sns_area h2,
	footer .top_footer_area .access_area h2{
		font-size: 24px;
		margin-right: 30px;
	}
}
footer .top_footer_area .access_area h2{
font-family: kaneda-gothic, sans-serif;
	font-size: 30px;
	font-style: normal;
	font-weight: 500;
	line-height: 80%;
	display: inline;
	margin-right: 24px;
	width: auto;
}
footer .top_footer_area .sns_area div .facebook {
	margin-left: 20px;
}
footer .top_footer_area .sns_area div .facebook img {
	width: 26px;
	height: auto;
}
footer .top_footer_area .access_area {
	display: flex;
	align-items: center;
	padding: 20px 0px 20px 80px;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .access_area {
		width: 100%;
		padding: 15px 0px;
	}
}
@media screen and (max-width: 480px) {
	footer .top_footer_area .access_area {
		padding: 15px 0px 0px;
		justify-content: space-between;
	}
}
footer .top_footer_area .access_area p {
	font-family: ryo-gothic-plusn, sans-serif;
	font-size: 12px;
	font-weight: 400;
	line-height: 150%;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .access_area p {
		font-size: 11px;
	}
}
@media screen and (max-width: 480px) {
	footer .top_footer_area .access_area p {
		width: 70%;
	}
}
footer .top_footer_area .access_area p a {
	color: var(--black);
	position: relative;
}
@media screen and (max-width: 1024px) {
	footer .top_footer_area .access_area p a {
		width: 100%;
		display: block;
	}
}
footer .top_footer_area .access_area p a::after {
    background: var(--black);
    content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -2px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
}
@media (hover: hover) and (pointer: fine) {
	footer .top_footer_area .access_area p a:hover::after {
	    transform: scale(1, 1);
	}
}

footer .top_footer_area .access_area p a span {
	position: absolute;
	width: 13px;
	height: 20px;
	right: -20px;
	top: 0;
	bottom: 0;
	margin: auto;
}
@media screen and (max-width: 480px) {
	footer .top_footer_area .access_area p a span {
		right: 0px;
	}
}
footer .top_footer_area .access_area p a span svg.map_svg {
	width: 100%;
	height: auto;
	transition: all 0.3s ease 0s;
	fill: #000000;
}
@media (hover: hover) and (pointer: fine) {
	footer .top_footer_area .access_area p a:hover span svg.map_svg {
		fill: #BDA746;
		color: #BDA746;
		 transform: perspective(13px) translateZ(2px);
	}
}
/*footer .top_footer_area .access_area p a:before {*/
/*	position: absolute;*/
/*	content: "";*/
/*	width: 13px;*/
/*	height: 20px;*/
/*	background: url(images/common/map_icon.svg) no-repeat center/contain;*/
/*	top: 0;*/
/*	bottom: 0;*/
/*	margin: auto;*/
/*	right: -20px;*/
/*}*/
/*@media screen and (max-width: 480px) {*/
/*	footer .top_footer_area .access_area p a:before { */
/*		right: -60px;*/
/*        width: 20px;*/
/*        height: 20px;*/
/*	}*/
/*}*/
@media screen and (max-width: 1024px) {
	footer .line {
		display: none;
	}
}
footer .middle_footer_area {
	padding: 64px 0;
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	align-items: flex-start;
}
@media screen and (max-width: 1024px) {
	footer .middle_footer_area {
		padding: 50px 0;
		gap: 30px;
	}
}
@media screen and (max-width: 480px) {
	footer .middle_footer_area {
		padding: 60px 0;
		gap: 40px 0px;
        justify-content: space-between;
	}
}
footer .bottom_footer_area {
	padding: 40px 0 0;
}
@media screen and (max-width: 1024px) {
	footer .bottom_footer_area {
		padding: 40px 0 0;
	}
}

footer .bottom_footer_area ul {
	display: flex;
	gap: 0 32px;
}
@media screen and (max-width: 1024px) {
	footer .bottom_footer_area ul {
		flex-wrap: wrap;
		gap: 20px 0;
	}
	footer .bottom_footer_area ul li {
		width: 100%;
	}
}
footer .bottom_footer_area ul li a {
	color: var(--black);
	font-size: 12px;
	font-weight: 400;
	line-height: 150%; /* 18px */
	position: relative;
}
footer .bottom_footer_area ul li a:before {
	content: '';
    width: 100%;
    height: 1px;
    position: absolute;
    left: 0;
    bottom: -5px;
    margin: auto;
    transform-origin: left top;
    transform: scale(0, 1);
    transition: transform 300ms cubic-bezier(0.8, 0, 0.5, 1);
    background: var(--gold);
}
@media (hover: hover) and (pointer: fine) {
	footer .bottom_footer_area ul li a:hover {
		color: var(--gold);
	}
	footer .bottom_footer_area ul li a:hover:before {
		transform: scale(1, 1);
	}
}

@media screen and (max-width: 1024px) {
	footer .bottom_footer_area ul li a {
		font-size: 11px;
	}
}
footer .bottom_footer_area ul li.copyright {
	margin-left: auto;
	font-size: 30px;
	font-weight: 500;
	line-height: 80%; /* 24px */
	font-family: kaneda-gothic, sans-serif;
}
@media screen and (max-width: 1024px) {
	footer .bottom_footer_area ul li.copyright {
		margin-left: 0;
		font-size: 20px;
		width: 100%;
		margin-top: 30px;
	}
}
@media screen and (max-width: 480px) {
	footer .bottom_footer_area ul li.copyright {
		margin-top: 40px;
	}
}
/* follow-banner  */


#follow-banner {
  position: fixed;
  bottom: 35px;
  right: 20px;
  max-width: 300px;
  z-index: 9999;
  opacity: 1;
  transition : all 0.5s;
}
#follow-banner.active {
	opacity: 1;
	max-width: 250px;
	transition : all 0.5s;
}
.callout-container img {
    width: 100%;
}
.callout-container:hover {
	animation: buruburu 3.2s linear infinite;
}
.closebtn {
    position: absolute;
    top: -5px;
    right: 5px;
    color: var(--white);
    font-size: 25px;
    padding: 5px;
    line-height: 1;
    cursor: pointer;
    z-index: 1;
    background: #00bed4;
    border-radius: 50%;
}

.closebtn:hover {
  color: lightgrey;
}
@media screen and (max-width: 480px) {
	#follow-banner {
		width: 50%;
	}
}

/*アニメーション*/

@keyframes buruburu{
 0%{transform:translateX(0)}
 3%{transform:translateX(-10px)}
 5%{transform:translateX(10px)}
 7%{transform:translateX(-10px)}
 10%{transform:translateX(10px)}
 12%{transform:translateX(0px)}
}