@charset "utf-8";
/* ===================================================
	Base CSS
====================================================== */
/* sorts-mill-goudy-italic - latin */
@font-face {
	font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
	font-family: 'Sorts Mill Goudy';
	font-style: italic;
	font-weight: 400;
	src: url('../fonts/sorts-mill-goudy-v16-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* ---------------------------------------------------
	Color Variables
------------------------------------------------------ */
:root {
	--white: #fff;
	--black: #000;
	--dark-gray: #333;
	--light-gray: #f0f0f0;

	--white-10: rgba(255, 255, 255, 0.1);
	--white-20: rgba(255, 255, 255, 0.2);
	--white-30: rgba(255, 255, 255, 0.3);
	--white-40: rgba(255, 255, 255, 0.4);
	--white-50: rgba(255, 255, 255, 0.5);
	--white-70: rgba(255, 255, 255, 0.7);
	--white-80: rgba(255, 255, 255, 0.8);

	--black-10: rgba(0, 0, 0, 0.1);
	--black-20: rgba(0, 0, 0, 0.2);
	--black-40: rgba(0, 0, 0, 0.4);
	--black-50: rgba(0, 0, 0, 0.5);
	--black-60: rgba(0, 0, 0, 0.6);
	--black-70: rgba(0, 0, 0, 0.7);
	--black-80: rgba(0, 0, 0, 0.8);

	--fz: clamp(0.8px, calc(100vw / 1500), 1px);
}

body {
	min-width: 1200px; min-height: 100vh; background: var(--white); color: var(--black-80);
	font-size: calc(16 * var(--fz)); font-weight: normal; line-height: 2;
	font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
	-webkit-text-size-adjust: 100%; position: relative;
	letter-spacing: 0.1em; -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.v_rl{ writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; font-feature-settings: "palt" 0; }
.v_rl .num { text-combine-upright: all; -webkit-text-combine: horizontal;}
.font_en { font-family: 'Sorts Mill Goudy'; font-style: italic; }
.gothic { font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3","Hiragino Kaku GothicPro","Osaka","Verdana","Helvetica","Arial","ＭＳ Ｐゴシック", sans-serif; }

input,
select,
textarea { font-size: 16px; }

*, *::before, *::after { box-sizing: border-box; }

a { color: var(--black-80); text-decoration: none; transition: opacity .5s; }

@media screen and (hover: hover) {
	a:hover { color: var(--black-80); opacity: .8; }
}

#lineup-font-size-sampler { bottom: 0; left: 0;}
.fixed { width: 100%; min-width: 1200px; position: fixed; top:0; left: 0; z-index: 999;}
.pos_fix { overflow: hidden; }

.ofi { object-fit: cover; width: 100%; height: 100%;}
.view_sp { display: none;}

@media screen and (min-width: 601px) {
	.v_rl_pc{ writing-mode: vertical-rl; -webkit-writing-mode: vertical-rl; font-feature-settings: "palt" 0; }
	.v_rl_pc .num { text-combine-upright: all; -webkit-text-combine: horizontal;}
}
@media screen and (max-width: 600px) {
	body { font-size: 13px; letter-spacing: .05em; line-height: 2; }
	input,
	select,
	textarea { font-size: 16px;}

	.fixed { min-width: auto;}

	body { min-width: 0;}
	.view_sp { display: block;}
	.view_pc { display: none !important;}
}


/* ---------------------------------------------------
	Base Layout
------------------------------------------------------ */
.inner_lg { width: min(1500px, 100%); margin: 0 auto;}
.inner_md { width: min(1200px, 80%); margin: 0 auto;}
.inner_sm { width: min(1050px, 70%); margin: 0 auto;}

@media screen and (max-width: 600px) {
	.inner_md,
	.inner_sm { width: 88%; }
}

/* ---------------------------------------------------
	Header
------------------------------------------------------ */
#g_header { position: absolute; width: 100%; z-index: 99; padding: 15px 85px 15px 20px; }
:has(.c_mv) #g_header {	background-image: linear-gradient(to bottom, rgba(0,0,0,.5) 0%, transparent 100% ); }
#g_header .hd_inner { display: flex; justify-content: space-between; }
#g_header .hd_tit .hd_logo { display: block; width: 90px; }

#g_header .lang_btn { font-size: 14px; color: var(--white); }
#g_header .lang_btn a { color: var(--white); }
#g_header .lang_btn .acc_tit { cursor: pointer; display: flex; align-items: center; gap: 10px; height: 40px; align-content: center; }
#g_header .lang_btn .acc_tit:after { content: ''; background: url(../img/lang_arrow.svg) no-repeat center/contain; display: block; width: 11px; height: 6px; }
#g_header .lang_btn .acc_contents { display: none; position: absolute; }

#g_header .fixed_menu { position: absolute; top: 20px; right: 20px; z-index: 99999; }
#g_header .fixed_menu #open_menu { width: 30px; aspect-ratio: 1; background: transparent; border-radius: 3px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; transition: background .5s, opacity .5s;}
#g_header .fixed_menu #open_menu span { background: var(--white); height: 1px; width: 60%; transition: all .5s; }
#g_header:has(#gnav_wrap.active) .fixed_menu #open_menu { gap: 0; background: transparent; }
#g_header:has(#gnav_wrap.active) .fixed_menu #open_menu span:nth-child(1) { transform: rotate(25deg) translateY(100%); }
#g_header:has(#gnav_wrap.active) .fixed_menu #open_menu span:nth-child(2) { opacity: 0; }
#g_header:has(#gnav_wrap.active) .fixed_menu #open_menu span:nth-child(3) { transform: rotate(-25deg) translateY(-100%); }

#g_header.fixed .fixed_menu { animation: h-fixed 1s; position: fixed; }
#g_header.top .fixed_menu { animation: h-top 1s; }
#g_header.fixed .fixed_menu #open_menu { background: var(--black-40); }
#g_header.fixed.top .fixed_menu #open_menu { background: transparent; }
.pos_fix #g_header.fixed .fixed_menu #open_menu { background: transparent; }
#g_header.fixed .fixed_menu #open_menu span { width: 45%; }

@keyframes h-top {
	0% { position: fixed; opacity: 1; }
	80% { opacity: 0; }
	100% { opacity: 1; }
}
@keyframes h-fixed {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

@media screen and (hover: hover) {
}
@media screen and (min-width: 601px) {
}
@media screen and (max-width: 600px) {
	#g_header { padding: 10px calc(4vw + 40px) 10px 4vw; }
	#g_header .hd_tit .hd_logo { width: 55px; }

	#g_header .lang_btn { font-size: 13px; }
	#g_header .lang_btn .acc_tit { gap: 5px; height: 30px; }
	#g_header .lang_btn .acc_tit:after { width: 10px; height: 5px; }

	#g_header .fixed_menu { top: 10px; right: 4vw; }
	#g_header .fixed_menu #open_menu { width: 30px; gap: 3px; }
	#g_header .fixed_menu #open_menu span { width: 55%;}
}


/* ---------------------------------------------------
	G-nav
------------------------------------------------------ */
#gnav_wrap {
	width: min(900px, 100% - 2 * max(0.8vw,12px)); height: calc(100vh - 2 * max(0.8vw,12px)); position: fixed; top: max(0.8vw,12px); right: max(0.8vw,12px); z-index: 9999;
	background: var(--black-40); backdrop-filter: blur(20px); border-radius: 3px; overflow: auto; pointer-events: none;
	transition: all cubic-bezier(0.67, 0.31, 0.15, 1) 0.75s; opacity: 0; clip-path: inset(0 0 0 100%);
}
#gnav_wrap.active {
	pointer-events: auto; opacity: 1; clip-path: inset(0 0 0 0); transition: all cubic-bezier(0.11, 0.58, 0.26, 1.01) 0.75s;
}
#gnav { padding: 10vh 0; margin: 0 8vw; position: relative; z-index: 15; background: none; display: flex; flex-direction: column; justify-content: space-between; }
#gnav a { color: var(--white); }
#gnav .top_link a,
#gnav .main_nav a,
#gnav .sub_nav a { display: inline-block; position: relative; }
#gnav .top_link a:after,
#gnav .main_nav a:after,
#gnav .sub_nav a:after { content: ''; width: 100%; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--white-70); position: absolute; bottom: 0.15em; left: 0; transition: transform .6s cubic-bezier(0.4, 0, 1, 1); }
#gnav .top_link { font-size: 24px; }
#gnav .flexbox { display: flex; gap: 200px; margin-bottom: 130px; }
#gnav .main_nav { flex-shrink: 0; }
#gnav .main_nav a { font-size: 18px; }
#gnav .main_nav > li + li { margin-top: 10px; }
#gnav .main_nav > .parent { margin-top: 25px; }
#gnav .main_nav > .parent > a { font-size: 24px; }
#gnav .main_nav > li ul li { margin-top: 5px; }
#gnav .main_nav > li ul li { display: flex; }
#gnav .main_nav > li ul li > a { font-size: 15px; display: inline-flex; align-items: center; gap: 3px; line-height: 1.6; }
#gnav .main_nav > li ul li > a::before { content: ''; width: 4px; height: 1px; background: var(--white); }
#gnav .main_nav > li:has(ul) + li:not(:has(ul)) { margin-top: 30px; }
#gnav .sub_nav { display: flex; justify-content: flex-end; flex-wrap: wrap; font-size: 14px; gap: 15px; line-height: 1.6; }
#gnav .sub_nav + .sub_nav { margin-top: 5px; }
#gnav .sub_nav a { color: var(--white-70); }
#gnav .sub_nav a:after { background: var(--white-50); }

@media screen and (hover: hover) {
	#gnav .top_link a:hover,
	#gnav .main_nav a:hover,
	#gnav .sub_nav a:hover { opacity: 1; }
	#gnav .top_link a:hover:after,
	#gnav .main_nav a:hover:after,
	#gnav .sub_nav a:hover:after { transform: scaleX(1); transform-origin: left; }
}
@media screen and (min-width: 601px) {
}
@media screen and (max-width: 700px) {
	#gnav .flexbox { gap: 4%; justify-content: space-between; }
}
@media screen and (max-width: 600px) {
	#gnav_wrap {
		width: 100%; height: 100%; top: 0; right: 0;
		transition: 0.75s; opacity: 0;
	}
	#gnav { width: 100%; padding: 80px 8vw calc(80px + env(safe-area-inset-bottom)); margin: 0; }
	#gnav .top_link { font-size: 20px; }
	#gnav .flexbox { flex-direction: column; gap: 0; margin-bottom: 60px; }
	#gnav .main_nav { width: 100%; }
	#gnav .main_nav a { font-size: 16px; }
	#gnav .main_nav > .parent > a { font-size: 20px; }
	#gnav .main_nav > li ul li > a { font-size: 13px; padding-left: 1em; }
	#gnav .sub_nav { font-size: 13px; gap: 5px 15px; }
}


/* ---------------------------------------------------
	fixed_btn
------------------------------------------------------ */
#fixed_btn { position: fixed; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: flex-end; gap: 25px 10px; bottom: 0; right: 30px; width: 290px; z-index: 98; }
#fixed_btn .rsv_btn { border-radius: 3px 3px 0 0; background: var(--dark-gray); color: var(--white); display: flex; align-items: center; justify-content: center; gap: 20px; width: 100%; height: 60px; transition: background .5s; }
#fixed_btn .rsv_btn .main { font-size: 15px; color: var(--white-80); }
#fixed_btn .rsv_btn .sub { font-size: 14px; color: var(--white-70); }
#fixed_btn .faq_table { background: rgba(215, 215, 215, 0.8); padding: 10px; position: absolute; bottom: 85px; right: 0; }
#fixed_btn .faq_table dt { font-size: 13px; color: var(--black-80); margin-bottom: 5px; }
#fixed_btn .faq_table dd ul { display: flex; flex-direction: column; gap: 4px; }
#fixed_btn .faq_table dd a { display: block; text-align: center; font-size: 12px; font-weight: bold; color: var(--white-80); background: #5a5a5a; border-radius: 3px; padding: 3px 6px; letter-spacing: 0.04em; }
#fixed_btn #bnr_ai { position: absolute; bottom: 85px; left: 0; border-radius: 3px; font-size: 12px; border: 1px solid #acacac; color: var(--black-80); background: #fff; padding: 5px 10px; letter-spacing: 0; align-content: center; }
#fixed_btn #bnr_ai .txt { display: flex; align-items: center; justify-content: center; gap: 5px; }
#fixed_btn #bnr_ai .icon { font-size: 0; line-height: 0; }
#fixed_btn .close_btn { width: 17px; aspect-ratio: 1; background: url(../img/fixed_close.svg) no-repeat center/contain; position: absolute; top: -8px; right: -8px; z-index: 2; display: block; box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); border-radius: 50%; }

@media screen and (hover: hover) {
	#fixed_btn .rsv_btn:hover { opacity: 1; background: #555; }
}
@media screen and (min-width: 601px) {
}
@media screen and (max-width: 600px) {
	#fixed_btn { align-items: initial; gap: 10px 5px; bottom: 0; right: 0; width: 100%; padding: 2vw 4vw calc(2vw + env(safe-area-inset-bottom)); height: auto; background: var(--white); }
	#fixed_btn .rsv_btn { border-radius: 3px; gap: 5px; width: auto; height: auto; order: 2; padding: 10px; flex-wrap: wrap; width: 70%; background: rgba(70, 70, 70, 0.9); }
	#fixed_btn .rsv_btn .main { font-size: 14px; }
	#fixed_btn .rsv_btn .sub { font-size: 11px; }
	#fixed_btn .faq_table { padding: 10px; right: 4vw; bottom: calc(48px + 5vw + env(safe-area-inset-bottom)); }
	#fixed_btn .faq_table dt { font-size: 12px; }
	#fixed_btn .faq_table dd a { font-size: 11px; padding: 2px 5px; }
	#fixed_btn #bnr_ai { order: 3; font-size: 11px; border: none; background: #e0e0e0; padding: 10px; position: static; width: calc(30% - 5px); }
	#fixed_btn #bnr_ai .txt { display: flex; align-items: center; gap: 5px; }
	#fixed_btn #bnr_ai .icon { width: 14px; height: auto; font-size: 0; line-height: 0; }
	#fixed_btn .close_btn { width: 15px; top: -7px; right: -7px; }
}


/* ---------------------------------------------------
	Main img
------------------------------------------------------ */
#main_img { width: 100%; margin: 0 auto; text-align: center; position: relative; }
#main_img h1 { font-size: 30px; color: var(--white); font-weight: bold; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }


/* ---------------------------------------------------
	Contents
------------------------------------------------------ */
#contents_wrap { overflow: hidden; }

/* 下層ページ lead箇所 */
.cmn_lead { position: relative; }
.cmn_lead .inner_md { max-width: 1284px; }
.cmn_lead .deco { position: absolute; top: 0; right: 0; z-index: -1; width: 433px; }
.cmn_lead .deco._left { left: 0; right: auto; scale: -1 1; }
.cmn_lead .v_fl_box { display: grid; place-items: center; }
.cmn_lead .cmn_tit01 .tit02 { color: #000; }
.cmn_lead .ttl { font-feature-settings: "palt"; font-size: 28px; line-height: calc(46 / 28); letter-spacing: .1em; text-indent: .1em; color: rgba(0,0,0,.45); text-align: center; margin-top: 43px; }
.cmn_lead .txt { font-size: 16px; line-height: calc(32 / 16); letter-spacing: .1em; text-indent: .1em; color: rgba(0,0,0,.8); text-align: center; margin-top: 18px; }
@media screen and (max-width: 600px) {
	.cmn_lead .deco { width: calc(200 / 375 * 100%); }
	.cmn_lead .ttl { font-size: 18px; margin-top: 30px; }
	.cmn_lead .txt { font-size: 14px; margin-top: 10px; }
}

/* cmn_parts */
/* タイトル */
.cmn_tit01 { color: var(--black-70); line-height: 1.5; text-align: center; }
.cmn_tit01.v_rl_pc,
.cmn_tit01.v_rl { text-align: left; }
.cmn_tit01 .tit01 { font-size: calc(35 * var(--fz)); }
.cmn_tit01 .tit02 { color: var(--black-40); }

/* 別タブリンク */
.cmn_link_blank span { display: inline-flex; align-items: center; gap: 10px; }
.cmn_link_blank span:after { content: ''; width: 13px; aspect-ratio: 1; background: url(../img/icon_tab.svg) no-repeat center/contain; }

/* 線ボタン */
.cmn_link01 { display: inline-block; text-align: center; position: relative; padding: 5px 10px; }
.cmn_link01::before,
.cmn_link01::after { content: ''; width: 100%; height: 1px; position: absolute; bottom: 0; left: 0; background: rgba(0, 0, 0, 0.15); }
.cmn_link01::after { background: var(--black-40); transition: transform .6s cubic-bezier(0.4, 0, 1, 1); transform: scaleX(0); transform-origin: right; }
.cmn_link02 { display: inline-block; padding-left: 140px; position: relative; }
.cmn_link02 span { transition: transform .5s; display: inline-block; }
.cmn_link02::before { content: ''; display: block; width: 125px; height: 1px; background: rgba(0, 0, 0, 0.15); position: absolute; top: 50%; left: 0; }

/* 矢印ボタン */
.cmn_arrow_btn01 { display: inline-flex; align-items: center; gap: 7px; }
.cmn_arrow_btn01::before { content: ''; width: 15px; aspect-ratio: 1; border-radius: 50%; background-image: url(../img/arrow01_gr.svg); background-position: center; background-size: 4px 6px; background-repeat: no-repeat; background-color: var(--black-10); }

@keyframes arrow-in {
	0% { width: 0; }
	100% { width: 125px; }
}

@media screen and (hover: hover) {
	[class^="cmn_link"]:hover { opacity: 1; }
	.cmn_link01:hover::after { transform: scaleX(1); transform-origin: left; }
	.cmn_link02:hover span { transform: translateX(5px); }
	.cmn_link02:hover::before { animation: arrow-in 0.6s forwards ease-in; }
}
@media screen and (max-width: 600px) {
	.cmn_tit01 { text-align: center; }
	.cmn_tit01.v_rl_pc { text-align: center; }
	.cmn_tit01 .tit01 { font-size: 20px; }
	.cmn_tit01 .tit02 { font-size: 14px; }

	.cmn_link_blank span { gap: 5px; }
	.cmn_link02 { padding-left: 95px; }
	.cmn_link02::before { width: 80px;  }
}

/* slick */
.cmn_slick { margin-bottom: 40px!important; }
.cmn_slick div { font-size: 0; line-height: 0; }
.cmn_slick .photo { position: relative; }
.cmn_slick .photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, var(--black-50) 0, transparent 30%); }
.cmn_slick .slick-dots { bottom: 30px; display: flex; align-items: center; justify-content: center; }
.cmn_slick .slick-dots li { width: 6px; height: 6px; margin: 0 8px; }
.cmn_slick .slick-dots li button { width: 100%; height: 100%; padding: 0; background: var(--white-50); border-radius: 50%; transition: all .5s; }
.cmn_slick .slick-dots li.slick-active button { background: var(--white);}
.cmn_slick .slick-dots li button::before { display: none; }
.cmn_slick .slick-prev,
.cmn_slick .slick-next { transform: none; background: url(../img/arrow01_gr.svg) no-repeat center/contain; top: auto; bottom: -40px; }
.cmn_slick .slick-prev::before,
.cmn_slick .slick-next::before { display: none; }
.cmn_slick .slick-next { right: 0; }
.cmn_slick .slick-prev { transform: rotate(180deg); left: auto; right: 40px; }
.cmn_slick .slick-prev:hover,
.cmn_slick .slick-prev:focus,
.cmn_slick .slick-next:hover,
.cmn_slick .slick-next:focus { background:  url(../img/arrow01_gr.svg) no-repeat center/contain; opacity: .7; }

@media screen and (hover: hover) {
}
@media screen and (max-width: 600px) {
	.cmn_slick { margin-bottom: 25px!important; }
	.cmn_slick .slick-dots { bottom: 15px; }
	.cmn_slick .slick-dots li { margin: 0 5px; }
	.cmn_slick .slick-prev,
	.cmn_slick .slick-next { width: 15px; height: 15px; bottom: -25px; }
	.cmn_slick .slick-prev { right: 30px; }
}

/* breadcrumb */
#contents_wrap #breadcrumb { margin: 5px auto 25px; font-size: 12px; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center;}
#contents_wrap #breadcrumb li { display: flex; align-items: center; line-height: 1.3; margin: calc(1em * 0.3) 0;}
#contents_wrap #breadcrumb li a { border-bottom: 1px solid transparent; transition: border .5s;}
#contents_wrap #breadcrumb li:before { content: '-'; margin: 0 5px;}
#contents_wrap #breadcrumb li:first-child:before { display: none; }

@media screen and (hover: hover) {
	#contents_wrap #breadcrumb li a:hover { border-color: var(--black); opacity: 1; }
}
@media screen and (max-width: 600px) {
}


/* section */
#contents_wrap section { }


/* ---------------------------------------------------
	Footer
------------------------------------------------------ */
#footer { background: var(--dark-gray); padding: 190px 0; color: var(--white-70); position: relative; }
#footer::before { content: ''; position: absolute; inset: 0; bottom: 0; right: 0; background: linear-gradient(-30deg, black 0%, transparent 30%); z-index: 0; }
#footer_inner { width: min(1380px, 94%); margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; position: relative; z-index: 1; }
#footer a { color: var(--white-70); }

#footer #f_logo { margin-left: 40px; width: 400px; font-style: normal;}
#footer #f_logo .logo { display: block; width: 167px; margin-bottom: 30px; }
#footer #f_logo .tel_txt { font-size: 16px; line-height: 1.6; margin-bottom: 15px; }
#footer #f_logo .tel_txt > span { font-size: 18px; }
#footer #f_logo .tel_txt .tel-link { font-size: 28px; }
#footer #f_logo address { color: var(--white-50);}
#footer #f_logo address span { display: block;}
#footer #f_logo .nav_btn { display: flex; gap: 6px; margin-top: 20px; }
#footer #f_logo .nav_btn li a { display: block; text-align: center; align-content: center; border-radius: 100vmax; padding: 10px 40px; border: 1px solid var(--white-30); font-size: 14px; transition: background .5s; }
#footer #f_logo .sns_link { padding-left: 15px; margin-top: 35px; display: flex; align-items: center; gap: 15px; }
#footer #f_logo .sns_link li a { display: block; font-size: 0; line-height: 0; }

#footer #f_nav { padding-top: 15px; margin-right: 40px; width: min(740px, 54%); }
#footer #f_nav .nav_col { display: flex; justify-content: space-between; }
#footer #f_nav .nav_col a { display: inline-block; position: relative; }
#footer #f_nav .nav_col a:after { content: ''; width: 100%; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--white-70); position: absolute; bottom: 0.15em; left: 0; transition: transform .6s cubic-bezier(0.4, 0, 1, 1); }
#footer #f_nav .nav_col .main_nav li + li { margin-top: 20px; }
#footer #f_nav .nav_col .sub_nav a { font-size: 14px; color: var(--white-40); }
#footer #f_nav .nav_col .sub_nav a:after { background: var(--white-40);}
#footer #f_nav .rsv_col { margin-top: 80px; }
#footer #f_nav .rsv_col .rsv_btn { display: flex; align-items: center; justify-content: center; flex-direction: column; background: var(--white-20); height: 120px; }
#footer #f_nav .rsv_col .rsv_btn .main { font-size: 20px; color: var(--white-70); }
#footer #f_nav .rsv_col .rsv_btn .sub { font-size: 14px; color: var(--white-50); line-height: 1; }
#footer #f_nav .rsv_col .link_list { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 15px; font-size: 14px; }
#footer #f_nav .rsv_col .link_list li { display: flex; gap: 15px; align-items: center; }
#footer #f_nav .rsv_col .link_list li:after { content: ''; background: var(--white-50); width: 1px; height: 14px; }
#footer #f_nav .rsv_col .link_list li:last-child::after { display: none; }
#footer #f_nav .rsv_col .link_list li a { color: var(--white-50); }

#footer .f_btm { width: 100%; border-top: 1px solid var(--white-20); display: flex; justify-content: space-between; align-items: flex-end; margin-top: 95px; padding-top: 20px; }
#footer .f_btm .icon_txt { display: flex; align-items: center; flex-wrap: wrap; gap: 40px; font-size: 14px; }
#footer .f_btm .icon_txt li { display: flex; align-items: center; gap: 10px; color: var(--white-50); }
#footer .f_btm .icon_txt .icon { font-size: 0; line-height: 0; flex-shrink: 0; }
#footer #copyright { font-size: 12px; color: var(--white-30); }

@media screen and (hover: hover) {
	#footer #f_logo .nav_btn li a:hover { opacity: 1; background: var(--white-10); }
	#footer #f_nav .nav_col a:hover { opacity: 1; }
	#footer #f_nav .nav_col a:hover:after { transform: scaleX(1); transform-origin: left; opacity: 1; }
}
@media screen and (min-width: 601px) {
}
@media screen and (max-width: 600px) {
	#footer { padding: 100px 0 calc(120px + env(safe-area-inset-bottom)); }
	#footer_inner { width: 88%; }

	#footer #f_logo { margin-left: 0; width: 100%; text-align: center; }
	#footer #f_logo .logo { width: max(130px, 30%); margin: 0 auto 20px; }
	#footer #f_logo .tel_txt { font-size: 15px; margin-bottom: 10px; }
	#footer #f_logo .tel_txt > span { font-size: 16px; }
	#footer #f_logo .tel_txt .tel-link { font-size: 24px; }
	#footer #f_logo .nav_btn { flex-wrap: wrap; justify-content: center; gap: 5px; margin-top: 15px; }
	#footer #f_logo .nav_btn li a { padding: 5px 25px; font-size: 13px; }
	#footer #f_logo .sns_link { padding-left: 0; margin-top: 25px; justify-content: center; gap: 15px; }
	#footer #f_logo .sns_link li img { height: 20px; width: auto; }
	#footer #f_logo .sns_link li:last-child img { height: 15px; }

	#footer #f_nav { padding-top: 30px; margin-right: 0px; width: 100%; }
	#footer #f_nav .nav_col { flex-wrap: wrap; }
	#footer #f_nav .nav_col .main_nav { width: 50%;}
	#footer #f_nav .nav_col .main_nav li + li { margin-top: 15px; }
	#footer #f_nav .nav_col .sub_nav { margin-top: 25px; width: 100%; display: flex; flex-wrap: wrap; gap: 5px 15px; }
	#footer #f_nav .nav_col .sub_nav a { font-size: 13px; }
	#footer #f_nav .rsv_col { margin-top: 45px; }
	#footer #f_nav .rsv_col .rsv_btn { height: auto; padding: 20px 4%; }
	#footer #f_nav .rsv_col .rsv_btn .main { font-size: 18px; }
	#footer #f_nav .rsv_col .rsv_btn .sub { font-size: 12px; }
	#footer #f_nav .rsv_col .link_list { margin-top: 15px; gap: 5px 10px; font-size: 13px; }
	#footer #f_nav .rsv_col .link_list li { gap: 10px; }
	#footer #f_nav .rsv_col .link_list li:after { height: 13px; }

	#footer .f_btm { margin-top: 45px; padding-top: 15px; flex-direction: column; }
	#footer .f_btm .icon_txt { gap: 10px 20px; font-size: 13px; }
	#footer .f_btm .icon_txt li { gap: 5px; }
	#footer #copyright { font-size: 11px; margin: 0 0 0 auto; text-align: right; }
}

/* ---------------------------------------------------
	Component（各ページで使い回す記述） ※2026/10/05~ 追加
------------------------------------------------------ */
/* 下層ページ MV */
#main_img.c_mv { height: 500px; overflow: clip; }
#main_img.c_mv::before { content:""; position: absolute; inset: 50px 0 0; z-index: 0; background-image: linear-gradient(0deg, rgba(0, 0, 0, .5), rgb(0, 0, 0, 0)); }
#main_img.c_mv .cmn_tit01 { position: absolute; left: 50%; bottom: 70px; z-index: 1; transform: translate(-50%, 0%); }
#main_img.c_mv .cmn_tit01 .tit02 { color: rgba(255,255,255,.5); }
#main_img.c_mv .cmn_tit01 .tit01 { font-weight: 500; font-size: calc(35 * var(--fz)); color: var(--white); position: static; transform: none; }
@media screen and (max-width: 600px) {
	#main_img.c_mv { height: 250px; }
	#main_img.c_mv::before { inset: 25px 0 0; }
	#main_img.c_mv .cmn_tit01 { bottom: 35px; }
	#main_img.c_mv .cmn_tit01 .tit01 { font-size: 20px; }
}

/* アンカーリンク */
.c_anchor .cmn_link01 { font-size: 16px; line-height: calc(32 / 16); letter-spacing: .1em; color: rgba(0,0,0,.7); display: block; padding-block: 0 29px; }
@media screen and (min-width: 601px) {
	.c_anchor { display: grid; grid-template-columns: repeat(auto-fit, minmax(0,1fr)); gap: 20px; }
}
@media screen and (max-width: 600px) {
	.c_anchor .cmn_link01 { font-size: 14px; line-height: calc(21 / 14); text-align: left; position: relative; padding: 12px 35px 12px 0; }
	.c_anchor .cmn_link01::after {
		width: 6px;
		height: 6px;
		left: auto;
		right: 15px;
		bottom: 50%;
		border-bottom: 1px solid var(--black-40);
		border-right: 1px solid var(--black-40);
		background: none;
		transform: translateY(50%) rotate(45deg);
		transform-origin: center;
	}
}

/* 表 01 */
.c_dlist01 { border-top: 1px solid rgba(0,0,0,.15); }
.c_dlist01_item { padding: 30px; border-bottom: 1px solid rgba(0,0,0,.15); }
.c_dlist01_theme { font-weight: 500; font-size: 16px; line-height: calc(30 / 16); letter-spacing: .1em; color: var(--black-50); }
.c_dlist01_txt { font-weight: 500; font-size: 16px; line-height: calc(30 / 16); letter-spacing: .1em; color: var(--black-80); }
.c_dlist01_note { font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3","Hiragino Kaku GothicPro","Osaka","Verdana","Helvetica","Arial","ＭＳ Ｐゴシック", sans-serif; font-weight: 500; font-size: 14px; line-height: calc(24 / 14); letter-spacing: .05em; color: var(--black-60); position: relative; margin-top: 18px; padding-left: 1em; }
.c_dlist01_note::before { content:"\203B"; position: absolute; top: 0; left: 0; }
@media screen and (min-width: 601px) {
	.c_dlist01_item { display: grid; grid-template-columns: 227px 1fr; }
}
@media screen and (max-width: 600px) {
	.c_dlist01_item { padding: 15px 10px; }
	.c_dlist01_theme { font-size: 16px; line-height: calc(23 / 16); }
	.c_dlist01_des { margin-top: 5px; }
	.c_dlist01_txt { font-size: 13px; line-height: calc(23 / 13); }
	.c_dlist01_note {font-size: 11px; line-height: calc(21 / 11);  margin-top: 5px; }
}
/* ---------------------------------------------------
	Utility（わずかなスタイルを調整する便利クラスなどを定義しています。） ※2026/10/05~ 追加
------------------------------------------------------ */
/* 背景色 */
.u_bg_color_light_gray {
	background-color: var(--light-gray);
}
/* css アニメーション */
.u_css_animation_sa {
	opacity: 0;
	animation: u_css_animation_sa .8s	cubic-bezier(0.37, 0, 0.63, 1) forwards;
}
@keyframes u_css_animation_sa { from { opacity: 0; } to { opacity: 1; } }
.u_css_animation_sa_blur {
	opacity: 0;
	filter: blur(10px);
	animation: u_css_animation_sa_blur .8s	cubic-bezier(0.37, 0, 0.63, 1) forwards;
}
@keyframes u_css_animation_sa_blur { from { opacity: 0; filter: blur(10px); } to { opacity: 1; filter: blur(0); } }
