@charset "UTF-8";


/* =================================
   2026-01 他社制作サイト改修
   対象：
   ・TOPページ
   ・下層ページ（5P）
   ・グローバルナビ
================================= */

figure,figcaption {
	margin: 0;
}
img.radi--50 {
	border-radius: 50%;
}

#wrapper {
	overflow: clip;
}

.page_sticky {
    position: absolute;
}

.page_sticky span {
    position: sticky;
    top: 120px;
    left: 0;
    font-size: calc(15 / 16 * 1rem);
    font-weight: 600;
    letter-spacing: 0.05em;
    color: rgba(0, 0, 0, .5);
	opacity: 1;
}

.page_sticky::after {
    display: none;
}

@media only screen and (max-width: 767px) {

.mb40 {margin-bottom:6% !important;}
.mb60 {margin-bottom:8% !important;}
.mb80 {margin-bottom:10% !important;}
.mb100 {margin-bottom:12% !important;}
.mb110 {margin-bottom:13 !important;}
.mb120 {margin-bottom:14% !important;}
.mb150 {margin-bottom:16% !important;}

}


/* ========================================================
  
  Navi / Header / Footer

======================================================== */
#headerContainer {
    position: absolute;
}

/*---------------------------------------------------------
 g_nav ※既存クラス一部引き継ぎ
---------------------------------------------------------*/
#g_nav {
	height: 100svh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
    background: rgba(220,220,220,0.95);
}
.g_nav_inner {
	padding: 6% 7% 25vw;
}
.g_nav_inner .com-contact {
	padding-top: 8%;
	margin-top: 10%;
	border-top: 1px solid #2d2737;
}
.g_nav_inner .com-cta--reserve a {
	background-color: rgba(255,255,255,0.7);
}

.g_nav_sns {
	width: 80%;
	display: flex;
	align-items: center;
	column-gap: 5%;
	padding-bottom: 4%;
	margin-bottom: 12%;
	border-bottom: 1px solid #2d2737;
}
.g_nav_sns div {
	font-size: 4vw;
	letter-spacing: .08em;
	line-height: 1.5;
}

.g_nav_index {
	position: relative;
	font-size: 120%;
	line-height: 1.5;
	padding-left: 1.4em;
	margin-top: 2em;
	margin-bottom: 1em;
}
.g_nav_index::before {
	position: absolute;
	content: "";
	background-color: currentColor;
	width: .85em;
	height: 1px;
	left: 0;
	top: .6em;
}

.g_nav_menu {
	display: grid;
	gap: 1.2em 1%;
	font-size: 105%;
	line-height: 1.5;
	font-feature-settings: normal;
	margin-left: 1em;
}
.g_nav_menu.col2 {
	grid-template-columns: repeat(2,50%);
}
.g_nav_menu a {
	position: relative;
	display: block;
}
.g_nav_menu a::before {
	position: absolute;
	content: "";
	background-color: currentColor;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	left: -0.8em;
	top: 50%;
	translate: 0 -50%;
	opacity: 0;
	transition: opacity .5s;
}
.g_nav_menu a:hover::before,
.g_nav_menu > li.is-active a::before {
	opacity: 1;
}

.g_nav_medmenu {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	row-gap: .4em;
	font-size: 90%;
	line-height: 1.2;
}
.g_nav_medmenu > li {
	width: 48.5%;
}
.g_nav_medmenu > li.menu_full {
	width: 100%;
}
.g_nav_medmenu a {
	height: 2.65em;
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: #FFF;
	background-color: #878787;
	padding: .2em 1em;
	border-radius: 5px;
}

@media only screen and (min-width: 768px) {
.navInner,
#g_nav {
	display: none !important;
}
}


/* nav - navInner   
==========================================================*/

@media only screen and (max-width: 767px) {
.navInner {
    position: fixed;
	background-color: #fff;
	font-size: 3.2vw;
	width: 18vw;
	height: 18vw;
	right: 0;
	top: 0;
	transition: background-color .8s;
}
.navInner .menu-trigger {
    height: 100%;
	display: flex;
	justify-content: center;
}
.navInner:has(.menu-trigger.active) {
    background-color: transparent;
}
.header_white .menu-trigger {
	filter: none;
}

.menu_line_wrap {
	width: 40%;
	height: 1.2em;
}
.menu-trigger .menu_txt_wrap {
	width: auto;
	line-height: 1.2;
	margin-top: .6em;
}

.menu_line_wrap span:nth-of-type(1) {
	top: 0 !important;
}
.menu_line_wrap span:nth-of-type(2) {
	top: 50%;
	translate: 0 -50%;
}
.menu_line_wrap span:nth-of-type(3) {
	bottom: 0 !important;
}
.menu-trigger.active .menu_line_wrap span:nth-of-type(1) {
	transform: rotate(30deg);
	transform-origin: left top;
}
.menu-trigger.active .menu_line_wrap span:nth-of-type(2) {
    opacity: 0
}
.menu-trigger.active .menu_line_wrap span:nth-of-type(3) {
	transform: rotate(-30deg);
	transform-origin: left bottom;
}
}


/*---------------------------------------------------------
 m_nav ※新設
---------------------------------------------------------*/
#m_nav {
	position: relative;
	width: 100%;
    background: rgba(255,255,255,1);
	box-sizing: border-box;
	padding: 0 2%;
	transform: translateY(-100%); /* スライドイン用設定 */
}
#m_nav::before {
	position: absolute;
	content: "";
	background: url(../images/common/nav_shadow.png) no-repeat center top;
	background-size: 100% 100%;
	width: 100%;
	height: 100%;
	left: 0;
	top: 100%;
}

/* wrap */
#m_nav-wrap {
	position: relative;
	width: 100%;
	z-index: 100;
}
#m_nav-wrap:not(.is-fixed) {
	max-width: 1103px;
	margin-inline: auto;
	transform: translateY(100%); /* FV内にある時のズレを相殺 */
}
#m_nav-wrap.is-fixed {
	position: fixed;
    background: rgba(255,255,255,1);
    inset: 0 0 auto 0;
	z-index: 10;
}
#m_nav-wrap.is-fixed #m_nav {
	display: flex;
	justify-content: space-between;
	transition: transform 1s ease;
}
#m_nav-wrap.is-fixed.is-show #m_nav {
	transform: translateY(0);
}

#m_nav-wrap:not(.is-fixed) .com-contact {
	display: none;
}
.kv_img-on_wrap #m_nav-wrap:not(.is-fixed) {
	position: absolute;
	width: 90vw;
	inset: auto 0 min(5vw,70px) 0;
	margin: auto;
}
#ind_mv #m_nav-wrap:not(.is-fixed) {
	position: absolute;
	width: 80vw;
	inset: auto 0 -30px 0;
	margin: auto;
}

@media only screen and (max-width: 767px) {

#m_nav-wrap {
	display: none;
}
}

/* m_nav
==========================================================*/
.m-nav {
	width: 100%;
	height: 5.1em;
	display: flex;
	justify-content: center;
	column-gap: 3%;
	font-size: min(1.8vw,1.25rem);
	line-height: 1.3;
	letter-spacing: .15em;
	font-feature-settings: normal;
}
.m-nav > li {
	text-align: center;
}
.m-nav > li:has(.in-menu.in--long) {
	position: relative;
}
.m-nav > li > a {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.m-nav > li > a > div {
	position: relative;
}
.m-nav > li > a > div[lang="en"] {
	font-size: 60%;
	letter-spacing: .12em;
}
.m-nav > li > a > div:first-of-type::before {
	position: absolute;
	content: "";
	background-color: currentColor;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	left: -1em;
	top: 50%;
	translate: 0 -50%;
	opacity: 0;
	transition: opacity .5s;
}
.m-nav > li > a:hover > div:first-of-type::before,
.m-nav > li.is-active > a > div:first-of-type::before {
	opacity: 1;
}
.m-nav > li > a > div > br {
	display: none;
}

#m_nav-wrap.is-fixed .m-nav {
	justify-content: flex-start;
	font-size: min(1.3vw,1.1rem);
}
.m-nav > li > a > div:first-of-type::before {
	left: -0.8em;
}

@media only screen and (min-width: 768px) and (max-width: 959px) {

.m-nav > li > a > div:first-of-type::before {
	width: 3px;
	height: 3px;
	left: -0.6em;
}
#m_nav-wrap.is-fixed .m-nav > li > a > div > br {
	display: block;
}
#m_nav-wrap.is-fixed .m-nav {
	column-gap: 1.5em;
	font-size: min(1.5vw,110%);
}
}

/* inmenu
==========================================================*/
.m-nav .in-menu {
	position: absolute;
	width: 100%;
	max-width: 965px;
	min-width: 200px;
	color: #FFF;
	font-size: min(1.6vw,1.05rem);
	background: rgba(14,19,16,0.6);
	box-sizing: border-box;
	padding: 25px;
	top: 100%;
	left: 50%;
	translate: -50% 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity .3s ease,
				visibility 0s linear .3s;
	z-index: 200;
}
.m-nav .in-menu.in--long {
	width: 18em;
}

.m-nav .has-inmenu.is-open .in-menu {
	opacity: 1;
	visibility: visible;
	transition: opacity .3s ease,
				visibility 0s;
}
#m_nav-wrap.open-top .m-nav .in-menu {
	top: auto;
	bottom: 100%;
}



/*---------------------------------------------------------
 Header
---------------------------------------------------------*/
#logo {
    width: 41%;
}
.logo_white {
	filter: drop-shadow(0 0 10px rgba(0,0,0,0.6));
	will-change: filter;
}

@media only screen and (min-width: 768px) {
.header_inner {
	display: flex;
	justify-content: space-between;
}
.header_white #headerContact .com-cta--tel {
    color: #FFF;
	text-shadow: 0 0 10px rgba(0,0,0,0.6);
}
.header_white #headerContact .com-cta--reserve a {
	background-color: rgba(255,255,255,0.7);
}
}

@media only screen and (max-width: 767px) {
#logo {
	width: 68vw;
}
#headerContact {
	position: fixed;
	background-color: rgba(220,220,220,0.8);
	padding: 2vw;
	inset: auto 0 0 0;
}
.header_white #headerContact .com-cta--reserve a {
	background-color: rgba(255,255,255,0.7);
}
}

/* Header - lang-select
==========================================================*/
.lang-select--update {
	width: 120px;
	text-align: center;
	color: #FFF;
	line-height: 1.4;
	letter-spacing: .06em;
	background-color: rgba(45,39,55,0.3);
	border: 1px solid #FFF;
	border-radius: 1em;
	margin-top: 1em;
	margin-left: auto;
}
.lang-select--update .open-btn {
	font-size: 105%;
	padding: .2em 0;
}
.lang-select--update ul {
	font-size: 94%;
}
.lang-select--update ul > li {
	margin-top: .6em;
}
.lang-select--update .open-btn:hover,
.lang-select--update ul > li a:hover {
	color: #fcfaa7;
}

@media only screen and (max-width: 767px) {
.lang-select--update {
	width: 22vw;
	font-size: 3vw;
}
}

/*---------------------------------------------------------
 footer
---------------------------------------------------------*/
.f_sns_wrap {
	display: flex;
	align-items: center;
	column-gap: 1em;
}




/* ========================================================
  
  components

======================================================== */
.w1220 {
    max-width: 1220px;
    width: 85%;
    margin-inline: auto;
}
.w1300 {
    max-width: 1300px;
    width: 85%;
    margin-inline: auto;
}

/*---------------------------------------------------------
 anchor
---------------------------------------------------------*/

@media only screen and (min-width: 768px) {
[id] {
	scroll-margin-top: min(7vw,90px);
}
}

/* accordion
==========================================================*/
.open-btn {
	cursor: pointer;
	transition-property: color, background-color;
	transition-duration: .5s;
}
.open-btn::after {
	display: inline-block;
	content: "";
	background-color:currentColor;
	opacity: 0.7;
	width: .35em;
	height: .35em;
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	margin-left: .3em;
	translate: scale .5s;
}
.open-btn.active::after {
	scale: 1 -1;
}
.open-btn + * {
	display: none;
	padding-bottom: 1em;
}


/* scroll
==========================================================*/
.scl-area {
	position: relative;
}
.scl-txt {
	text-align: center;
	color: #9194A1;
	font-size: 85%;
	letter-spacing: normal;
	line-height: 1.4;
	margin-bottom: 1em;
}
/* scrollbar */
.scl-area::-webkit-scrollbar {
	width: 5px;
	height: 5px;
}

.scl-area::-webkit-scrollbar-track {
	background: #f0f0f0;
	border-radius: 0;
}

.scl-area::-webkit-scrollbar-thumb {
	background-color: #666;
	border-radius: 0;
}

.scl-area::-webkit-scrollbar-thumb:hover {
	background-color: #666;
}

/* Firefox */
@-moz-document url-prefix(){
.scl-area {
	scrollbar-width: thin;         /* auto, thin, none */
	scrollbar-color: #666 #f0f0f0; /* thumb track */
}
}
/* Mobile (Portrait)
------------------------------------------*/
@media only screen and (max-width: 767px) {
.scl-area {
	overflow-x: scroll;
	padding-bottom: 8%;
}
}

/* hover
==========================================================*/
.com-dot {
	position: relative;
	display: block;
	width: 1em;
	aspect-ratio: 1;
}
.com-dot::before,
.com-dot::after {
    position: absolute;
	display: block;
    content: "";
    width: 25%;
	aspect-ratio: 1;
    background: #5a5a5a;
    border-radius: 50%;
	left: 50%;
	top: 50%;
	translate: -50% -50%;
	transition-property: scale, background-color;
	transition-duration: .5s;
	transform-origin: center center;
	pointer-events: none;
}
a:hover .com-dot::before {
	scale: 4;
}
a:hover .com-dot::after {
    background: #fff;
}

/* .hov--dot::before,
.hov--dot::after {
    position: absolute;
    content: "";
    width: .35em;
    height: .35em;
    background: #5a5a5a;
    border-radius: 50%;
    top: 50%;
    right: 0;
	translate: -50% -50%;
    transition: all .4s;
	pointer-events: none;
}
.hov--dot:hover::before {
	scale: 5;
}
.hov--dot:hover::after {
    background: #fff;
} */


/*---------------------------------------------------------
 Menu
---------------------------------------------------------*/

/* Menu - com-menu--dot
==========================================================*/
.com-menu--dot {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 2em;
	line-height: 1.5;
}
.com-menu--dot a {
	position: relative;
	display: block;
	text-align: left;
	padding-left: 1.5em;
}
.com-menu--dot a .com-dot {
	position: absolute;
	left: 0;
	top: 50%;
	translate: 0 -50%;
}
.com-menu--dot a .com-dot::before {
	background-color: rgba(255,255,255,0.2);
}
.com-menu--dot a .com-dot::after {
	background-color: #fff;
}

@media only screen and (min-width: 768px) {

}

@media only screen and (max-width: 767px) {

}

/* com-snslist
==========================================================*/
.com-snslist {
	display: flex;
	gap: .5em;
}
.com-snslist .sns_item {
	max-width: 45px;
	margin: 3%;
}
.com-snslist .sns_item a {
	display: block;
	background-color: #fff;
	border-radius: 50%;
	aspect-ratio: 1;
	transition: background-color .5s;
}
.com-snslist .sns_item a:hover {
	background-color: rgba(255,255,255,0.8);
}
.com-snslist .sns_item img {
	display: block;
}

.ind-snslist {
	position: absolute;
	flex-direction: column;
	right: 3.3%;
	bottom: 5.5%;
}

@media only screen and (max-width: 767px) {

.ind-snslist {
	display: none;
}
}


/*---------------------------------------------------------
 Contact
---------------------------------------------------------*/
.com-contact {
	display: flex;
	justify-content: center;
	align-items: center;
	column-gap: 3%;
}
.com_contact_txt {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	text-align: center;
	gap: .1em 1em;
	font-size: 94%;
	line-height: 1.5;
	margin-top: 1.2em;
}
.com_contact_txt > li:last-of-type {
	width: 100%;
}

/* Contact ー tel
==========================================================*/
.com-cta--tel {
	white-space: nowrap;
	font-size: min(5vw,348%);
}
.com-cta--tel span {
	font-size: 47%;
	margin-right: .4em;
}

@media only screen and (min-width: 768px) {
header .com-cta--tel {
	font-size: min(3.8vw,271%);
}
#m_nav-wrap .com-cta--tel {
	font-size: min(2.8vw,220%);
}
}

@media only screen and (max-width: 767px) {
.com-cta--tel {
	font-size: 6.5vw;
}
}

/* Contact ー com-cta--reserve
==========================================================*/
.com-cta--reserve {
	position: relative;
	padding: 0;
	border: none;
	max-width: max-content;
}
.com-cta--reserve > a {
	width: 14em;
	max-width: 100%;
	height: 3.1em;
	display: flex;
	align-items: center;
	font-size: min(2.8vw,1.43rem);
	line-height: 1.1;
	letter-spacing: .1em;
	background-color: #dcdcdc;
	border-radius: .42em;
	box-sizing: border-box;
	padding: .2em 1.2em;
	transition-property: color, background-color;
	transition-duration: .5s;
}
.com-cta--reserve small {
	font-size: 72%;
	margin-right: .8em;
}
.com-cta--reserve span {
	font-size: 130%;
}
.com-cta--reserve > a::before {
	display: block;
	content: "";
	background: url(../images/common/icon_rsv.svg) no-repeat center center;
	background-size: contain;
	width: 1.8em;
	height: 1.8em;
	margin-right: .8em;
}
.com-cta--reserve .com-dot {
	position: absolute;
	width: 1.4em;
	right: 8%;
}

@media only screen and (min-width: 768px) {
header .com-cta--reserve > a  {
	font-size: min(1.7vw,1.1rem);
}
#m_nav-wrap .com-cta--reserve > a  {
	font-size: min(1.3vw,1rem);
}
}

@media only screen and (max-width: 767px) {
.com-cta--reserve > a {
	width: 13em;
	font-size: 3.2vw;
	padding: .2em 1em;
}
.com-cta--reserve .com-dot {
	right: 4%;
}
}



/*---------------------------------------------------------
 Title / Heading
---------------------------------------------------------*/

/* Title
==========================================================*/
.com-ttl--enjp {
	color: #666;
	font-size: min(2.2vw,1.56rem);
	line-height: 1.4;
	letter-spacing: .12em;
	font-feature-settings: normal;
	margin-bottom: 4em; 
}
.com-ttl--enjp [lang="en"] {
	font-size: var(--en-size);
	line-height: 1;
	margin-bottom: 1.5rem;
}
.com-ttl--enjp.is-lg {
	--en-size: clamp(2rem, 10vw, 320%);
}
.com-ttl--enjp.is-xl {
	--en-size: clamp(3rem, 12vw, 520%);
}

@media only screen and (max-width: 767px) {

.com-ttl--enjp {
	font-size: 120%;
	margin-bottom: 10%;
}

}


/* Heading
==========================================================*/
.com-h--bg {
	position: relative;
	text-align: center;
	color: #fff;
	font-size: min(3vw,206%);
	line-height: 1.3;
	letter-spacing: .02em;
	font-feature-settings: normal;
	background-color: #666666;
	padding: 1em 3%;
	margin-bottom: 2em; 
}

.com-h--radi {
	position: relative;
	text-align: center;
	color: #fff;
	font-size: min(2vw,125%);
	line-height: 1.3;
	letter-spacing: .02em;
	font-feature-settings: normal;
	background-color: #666666;
	padding: .4em 3%;
	border-radius: 2em;
	margin: 0 auto 1.4em; 
}

.com-h--bdr {
	position: relative;
	font-size: min(3vw,175%);
	line-height: 1.4;
	letter-spacing: .2em;
	padding-bottom: 1em;
	margin-bottom: 2em;
	border-bottom: 1px solid currentColor;
}
.com-h--bdr small {
	font-size: 82%;
}

.com-h--center {
	position: relative;
	text-align: center;
	font-size: min(2.6vw,187%);
	line-height: 1.6;
	letter-spacing: .1em;
	font-feature-settings: normal;
	margin-bottom: .8em; 
}
.com-h--center.has--bdr {
	padding-bottom: .8em;
	border-bottom: 1px solid #666;
	margin-bottom: 1.4em;
}
.com-h--center.has--bar::after {
	display: block;
	content: "";
	background-color: #666;
	width: 30%;
	height: 1px;
	margin: 2em auto;
}

.com-h--accent {
	position: relative;
	font-size: min(2.6vw,187%);
	line-height: 1.6;
	letter-spacing: .12em;
	margin-bottom: .5em; 
}
.com-h--accent > span {
	display: inline-block;
}
.com-h--accent > small {
	display: inline-block;
	color: #000;
	font-size: clamp(14px,56%,17px);
	vertical-align: 0.1em;
	margin-right: .8em;
}

.com-h--arw {
	position: relative;
	font-size: min(2.3vw,156%);
	line-height: 1.5;
	letter-spacing: .12em;
	padding-left: 1.5em;
	margin-bottom: .5em;
}
.com-h--arw::before {
	position: absolute;
	display: block;
	content: "";
	width: .36em;
	height: .36em;
	border-top: 1px solid #ab9949;
	border-right: 1px solid #ab9949;
	rotate: 45deg;
	left: 0;
	top: .4em;
}

.com-h--en {
	position: relative;
	text-align: center;
	color: #ab9949;
	font-size: min(1.6vw,94%);
	line-height: 1;
	letter-spacing: .08em;
	margin-bottom: 1.2em; 
}

/* color */
.c--gry {color: #666;}

/* size */
.fz--ss {font-size: min(2vw,125%);}
.fz--sm {font-size: min(2.2vw,156%);}
.fz--lg {font-size: min(2.9vw,218%);}
.fz--xl {font-size: min(3.2vw,250%);}

@media only screen and (max-width: 767px) {

.com-h--bg {
	font-size: 125%;
	padding: .8em 3%;
	margin-bottom: 1.2em;
}

.com-h--radi {
	font-size: 110%; 
}

.com-h--bdr {
	font-size: 125%;
}

.com-h--center {
	font-size: 120%;
	letter-spacing: .08em;
}
.com-h--center.has--bar::after {
	margin: 1em auto 1.2em;
}

.com-h--accent {
	font-size: 120%;
}

.com-h--arw {
	font-size: 115%;
}

.com-h--en {
	font-size: 80%;
}

/* size */
.fz--ss {font-size: 115%;}
.fz--sm {font-size: 120%;}
.fz--lg {font-size: 130%;}
.fz--xl {font-size: 140%;}
}



/*---------------------------------------------------------
 Bg
---------------------------------------------------------*/
.com-bg--color {
	position: absolute;
	content: "";
	background-color: #f0f0f0;
	width: 100%;
	height: 100%;
	left: 0;
	bottom: 0;
}


/*---------------------------------------------------------
 Box / Space
---------------------------------------------------------*/


/* Space
==========================================================*/
.com-in--1200 {
	max-width: 1200px;
	margin-inline: auto;
}

/*border*/
.bdr-b {
	padding-bottom: 6.6%;
	margin-bottom: 6.6%;
	border-bottom: 1px solid #f0f0f0;
}

@media only screen and (min-width: 768px) {
.com-in--min {
	padding-left: 3.8%;
	padding-right: 3.8%;
}
}

@media only screen and (max-width: 767px) {
.com-in--1200 {
	padding-left: 0 2%;
	padding-right: 0 2%;
}

/*border*/
.bdr-b {
	padding-bottom: 8%;
	margin-bottom: 8%;
}
}


/* Box
==========================================================*/
.com-box--bg {
	position: relative;
	background-color: #f5f5f5;
	background-position: left top;
	background-repeat: no-repeat;
	box-sizing: border-box;
	padding: min(6vw,60px) 3.8%;
	margin-inline: auto;
}

.com-box--bg__col2,
.com-box--bg__col3 {
	display: grid;
	justify-content: space-between;
	row-gap: 2.5em;
}

@media only screen and (min-width: 768px) {

.com-box--bg__col2 {
	grid-template-columns: repeat(2, min(555px,48%));
}
.com-box--bg__col3 {
	grid-template-columns: repeat(3, 31%);
}
}

@media only screen and (max-width: 767px) {

.com-box--bg {
	padding: 10% 6%;
}

.com-box--bg__col2,
.com-box--bg__col3 {
	row-gap: 1.5em;
}
}


/* Float
==========================================================*/
.com-flt {
	position: relative;
	text-align: left;
}
.com-flt::after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}
.com-flt__img--l,
.com-flt__img--r {
	position: relative;
	max-width: max-content;
}
.com-flt__img__abs {
	position: relative;
}

@media only screen and (min-width: 768px) {

.com-flt__img--r,
.com-flt__txt--r {
	float: right;
}
.com-flt__img--l,
.com-flt__txt--l {
	float: left;
}
.com-flt__img--l,
.com-flt__img--r {
	width: 40%;
	margin-bottom: 1em;
}
.com-flt__img--l {
	margin-right: 5%;
}
.com-flt__img--r {
	margin-left: 5%;
}
.com-flt__txt--l,
.com-flt__txt--r {
	width: 55%;
}
}

@media only screen and (min-width: 768px) and (max-width: 959px) {
.com-flt .sp_img_w {
	width: 45%;
}
.com-flt__txt--l,
.com-flt__txt--r {
	width: 100% !important;
	float: none;
}
}

@media only screen and (max-width: 767px) {
.com-flt__img--l,
.com-flt__img--r {
	width: 80%;
	margin: 0 auto 6%;
}
/* .com-flt .sp_img_w {
	width: 90%;
} */
}


/* Parts
==========================================================*/
p.is-sm {
	font-size: 94%;
}
p.is-md {
	font-size: 106%;
}
p.is-lg {
	font-size: 118%;
}

@media only screen and (max-width: 767px) {
p.is-lg {
	font-size: 105%;
}
}


/*---------------------------------------------------------
 Text
---------------------------------------------------------*/
.com-txt--center {
	text-align: center;
	font-size: min(1.8vw,125%);
	line-height: 1.8;
	font-feature-settings: normal;
}
.com-txt--center.fz--25 {
	font-size: min(2vw,156%);
}

.com-txt--ast {
	display: block;
	font-size: 94%;
	line-height: 1.3;
	margin-top: 1em;
}

/*com-txt--fuki*/
.com-txt--fuki {
	position: relative;
	text-align: center;
	max-width: max-content;
	font-size: min(2.1vw,1.56rem);
	letter-spacing: .1em;
	font-feature-settings: normal;
	line-height: 1.3;
	margin: 0 auto 1.2em;
}
.com-txt--fuki::before,
.com-txt--fuki::after {
	position: absolute;
	display: inline-block;
	content: "";
	background-color: currentColor;
	width: 1px;
	height: 1.4em;
	bottom: -0.1em;
}
.com-txt--fuki::before {
	rotate: -30deg;
	right: calc(100% + 1.3em);
}
.com-txt--fuki::after {
	rotate: 30deg;
	left: calc(100% + 1.2em);
}
/* com-txt--ccl */
.com-txt--ccl {
    position: relative;
    display: flex;
	flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
	color: #FFF;
	font-size: min(2vw,1.37rem);
	line-height: 1.4;
	letter-spacing: .02em;
	background: rgba(69,70,101,0.8);
    width: min(8.8em);
    height: min(8.8em);
    box-sizing: border-box;
    border-radius: 50%;
}

@media only screen and (max-width: 767px) {

.com-txt--center {
	font-size: 115%;
	letter-spacing: .05em;
}
.com-txt--center.fz--25 {
	font-size: 118%;
}
/*com-txt--fuki*/
.com-txt--fuki {
	font-size: 4.2vw;
	letter-spacing: .08em;
}
/* com-txt--ccl */
.com-txt--ccl {
    font-size: 5vw;
}
}


/*---------------------------------------------------------
 List
---------------------------------------------------------*/
.com-list > li {
	position: relative;
	text-align: left;
	line-height: 1.5;
	padding-left: 1.2em;
	margin-bottom: .4em;
}
.com-list > li:last-of-type {
	margin-bottom: 0 !important;
}
.com-list > li::before {
	position: absolute;
	display: block;
	content: "";
	background-repeat: no-repeat;
	background-size: contain;
	font-weight: normal;
	left: 0;
	top: 0;
}

.com-list.icon--point > li::before {
	font-family: 'fontello';
	content: '\e801';
	color: rgba(0,91,63,0.4);
}
.com-list.icon--ccl > li::before {
	background-color: #ab9949;
	width: .66em;
	height: .66em;
	border-radius: 50%;
	top: .4em;
}
.com-list.icon--dot > li::before {
	content: "・";
}
.com-list.icon--dash > li::before {
	content: '-';
}

.com-list.icon--mer > li,
.com-list.icon--dem li {
	padding: .24em 0;
	padding-left: 2.6em;
}
.com-list.icon--mer > li::before,
.com-list.icon--dem li::before {
	width: 1.95em;
	height: 1.95em;
}
.com-list.icon--mer li::before {
	background-image: url(../images/common/icon_merit.svg);
}
.com-list.icon--dem li::before {
	background-image: url(../images/common/icon_demerit.svg);
}

.com-list.icon--ast {
	display: flex;
	flex-wrap: wrap;
	gap: .2em 1em;
	font-size: 81%;
	margin-top: 1.4em;
}

@media only screen and (min-width: 768px) {
.com-list.com-list.icon--col2 {
	column-count: 2;
}
}


/*---------------------------------------------------------
 Button
---------------------------------------------------------*/
.com-btn-list {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 2.5em;
	margin-top: 2em;	
}
.com-btn-list > li {
	margin-top: 0;
}

/* Button - com-btn--bg
==========================================================*/
.com-btn--bg {
	margin-top: 1em;
}
.com-btn--bg a {
	position: relative;
	height: 3.5em;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0 1em;
	color: #FFF;
	text-align: left;
	font-size: min(2.4vw,137%);
	letter-spacing: .1em;
	line-height: 1.5;
	background-color: #767576;
	box-sizing: border-box;
	padding: .5em 2.5em .5em 1.2em;
}
.com-btn--bg a span {
	display: inline-block;
	font-size: 64%;
	line-height: 1;
	letter-spacing: .08em;
}
.com-btn--bg .com-dot {
	position: absolute;
	width: 2em;
	right: 1em;
	top: 50%;
	translate: 0 -50%;
}
.com-btn--bg .com-dot::after {
	width: 20%;
	background-color: #fff;
}

@media only screen and (max-width: 768px) {
.com-btn--bg a {
	font-size: 4.6vw;
}
}

/* Button - com-btn--arw
==========================================================*/
.com-btn--arw {
	margin-top: 2em;	
}
.com-btn--arw a {
	position: relative;
	display: inline-block;
	font-size: 94%;
	line-height: 1.4;
	padding-right: 4.4em;
	transition: color .5s;
}
.com-btn--arw a::after {
	position: absolute;
	content: "";
	background: url(../images/common/arrow_long.svg) no-repeat center center;
	background-size: contain;
	width: 3.4em;
	height: 1em;
	right: 0;
	top: 50%;
	translate: 0 -50%;
	transition: right .5s;
}
.com-btn--arw a:hover {
	color: #666;
}
.com-btn--arw a:hover::after {
	right: -0.5em;
}

@media only screen and (max-width: 767px) {

}



/* ========================================================
  
  Index

======================================================== */

/* Index - FV
==========================================================*/
#ind_mv {
    background: none;
	min-height: min(calc(100vw * 0.6), 800px);
}
#ind_mv::before {
	position: absolute;
	content: "";
	background: linear-gradient(to bottom, rgba(255,255,255,0.75), rgba(255,255,255,0));
	background-repeat: no-repeat;
	width: 100%;
	height: 220px;
	inset: 0 0 auto 0;
}

.mv_slide,
.mv_slide .slick-list,
.mv_slide .slick-track {
	width: 100%;
	height: 100%;
}
.mv_slide {
	z-index: -1;
}
.mv_slide .slick-track > div {
	animation: none !important;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	box-sizing: border-box;
	padding: min(9%,130px) 0;
}
.mv_slide .slick-track > div::before {
	position: absolute;
	content: "";
	background: linear-gradient( to right, rgba(16,24,40,0), rgba(16,24,40,0.3)) no-repeat;
	width: 86%;
	height: 40%;
	right: 0;
	bottom: 0;
	clip-path: polygon(100% 0, 100% 100%, 0 100%);
	z-index: -1;
}
.mv_slide .slide1 {	background-image: url(../images/index/ind_mv1.jpg); }
.mv_slide .slide2 {	background-image: url(../images/index/ind_mv2.jpg); }
.mv_slide .slide3 {	background-image: url(../images/index/ind_mv3.jpg); }
.mv_slide .slide4 {	background-image: url(../images/index/ind_mv4.jpg); }

.mv_copy_wrap {
	position: relative;
	width: 92vw;
	max-width: 1360px;
	color: #FFF;
	box-sizing: border-box;
	margin-inline: auto;
	opacity: 0;
	transition: opacity 2s 1s;
}
.mv_slide .slick-current .mv_copy_wrap {
	opacity: 1;
	scale: 1;
}

.mv_copy_wrap .copy {
	max-width: 1050px;
}
.mv_copy_wrap p {
	font-family: "Hiragino Kaku Gothic ProN","Hiragino Sans","游ゴシック","Yu Gothic",Meiryo,sans-serif;
	font-size: min(2vw,150%);
	font-weight: 600;
	line-height: 1.7;
	letter-spacing: .1em;
}
.mv_copy_wrap .point {
	position: relative;
	opacity: 0;
	scale: 0.8;
	transition-property: opacity, scale;
	transition-duration: 1.5s;
	transition-delay: 1.5s;
}
.mv_slide .slick-current .mv_copy_wrap .point {
	opacity: 1;
	scale: 1;
}

@media only screen and (min-width: 768px) {
.mv_copy_wrap {
	padding-left: min(18%,260px);
}
.mv_copy_wrap .point {
	position: absolute;
	width: 20vw;
	max-width: 259px;
	left: 0;
	top: 50%;
	translate: 0 -50%;
}
}

@media only screen and (max-width: 767px) {

#ind_mv {
	height: 100svh;
	min-height: calc(100vw * 1.4);
	max-height: calc(100vw * 1.8);
}
#ind_mv::before {
	background: linear-gradient(to bottom, rgba(255,255,255,0.85), rgba(255,255,255,0));
	height: 36vw;
}
.mv_slide .slick-track > div {
	padding: 3% 0;
}
.mv_slide .slick-track > div::before {
	width: 90%;
	height: 30vw;
}
.mv_slide .slide1 {	background-image: url(../images/index/ind_mv1_sp.jpg); }
.mv_slide .slide2 {	background-image: url(../images/index/ind_mv2_sp.jpg); }
.mv_slide .slide3 {	background-image: url(../images/index/ind_mv3_sp.jpg); }
.mv_slide .slide4 {	background-image: url(../images/index/ind_mv4_sp.jpg); }

.mv_copy_wrap {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}
.mv_copy_wrap .copy {
	width: 110%;
	margin-left: -5%;
}
.mv_copy_wrap .point {
	width: 36%;
	width: 35vw;
}
.mv_copy_wrap p {
	width: 58%;
	font-size: 3.5vw;
	text-shadow: 0 0 6px rgba(0,0,0,0.6);
	margin-left: auto;
}

.mv_slide .slide1 .mv_copy_wrap .point {
	translate: 0 18%;
}
.mv_slide .slide3 .mv_copy_wrap .point {
	translate: 0 -40%;
}
.mv_slide .slide3 .mv_copy_wrap p {
	translate: 1em 0;
}
.mv_slide .slide4 .mv_copy_wrap .point {
	translate: 160% -160%;
}
.mv_slide .slide4 .mv_copy_wrap p {
	translate: 1.5em 0;
}
}


/* Index - RESERVE
==========================================================*/
#ind_reserve {
	position: relative;
    padding: min(10%,110px) 0 min(7%,80px);
}
#ind_reserve .com-bg--color {
    background-color: #dcdcdc;
}

.ind_reserve_inner {
	position: relative;
    text-align: center;
	box-sizing: border-box;
    padding: 3.5% 7.2%;
}
.ind_reserve_inner::before {
	position: absolute;
	background-color: rgba(255,255,255,0.5);
	content: "";
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: -1;
}

.ind_reserve_ttl {
	text-align: center;
    font-size: min(2.2vw,125%);
    letter-spacing: .15em;
    line-height: 1.5;
    font-feature-settings: normal;
    margin-bottom: 1em;
}
.ind_reserve_ttl > span {
    font-size: 205%;
    letter-spacing: .08em;
}
.ind_reserve_ttl > span > span {
    position: relative;
}
.ind_reserve_ttl > span > span::before {
    position: absolute;
    content: "";
    background: linear-gradient(to right, rgba(156,203,226,0.4), rgba(255,255,255,0.4));
    width: 4.3em;
    height: 10px;
    border-radius: 5px;
    left: 50%;
    bottom: 0;
    translate: -50% 0;
    rotate: -2.5deg;
	z-index: -1;
}
.ind_reserve_ttl > span > span:nth-of-type(2):before {
    background-image: linear-gradient(to right, rgba(136,216,167,0.4), rgba(255,255,255,0.4));
}

#ind_reserve p.is-sm {
	opacity: 0.7;
	margin-top: .5em;
}

#ind_reserve .com-contact {
	padding-top: 3%;
	margin-top: 3%;
    border-top: 1px solid rgba(45,39,55,0.5);
}

@media only screen and (min-width: 768px) {

}

@media only screen and (max-width: 767px) {
#ind_reserve {
    padding: 15% 0 12%;
}

.ind_reserve_inner {
	width: 96vw;
	text-align: left;
    padding: 8% 6%;
	left: 50%;
	translate: -50% 0;
}
.ind_reserve_ttl {
	font-size: 105%;
}
.ind_reserve_ttl > span {
	display: block;
    font-size: 180%;
}

#ind_reserve .com-contact {
	padding-top: 6%;
	margin-top: 6%;
}
}



/* Index - kids
==========================================================*/

@media only screen and (max-width: 650px) {
#ind_general .fn_size32 {
	font-size: 22px;
}
}



/* Index - Problem
==========================================================*/
#ind_problem {
    position: relative;
    padding: min(10%,100px) 0 min(12%,120px);
}

.ind_problem_inbox {
	width: 92vw;
	max-width: 1364px;
	margin-inline: auto;
}

.ind_problem_ttl {
	position: relative;
    text-align: center;
	font-size: min(3.2vw,218%);
	line-height: 1.2;
	letter-spacing: .1em;
	font-feature-settings: "halt";
	padding-bottom: 4em;
}
.ind_problem_ttl span {
	position: relative;
	font-size: 195%;
	padding: .5em .5em;
}
.ind_problem_ttl span::before {
	position: absolute;
	content: "";
	background: url(../images/index/ind_problem_abs.png) no-repeat center top;
	background-size: contain;
	width: 4.66em;
	height: 3.8em;
	left: 34%;
	top: 0;
	translate: -50% 0;
	z-index: -1;
}
.ind_problem_ttl::after {
	display: inline-block;
	content: "";
	background: url(../images/index/ind_problem_q.svg) no-repeat center top;
	background-size: contain;
	width: 1.6em;
	height: 3.15em;
	vertical-align: -0.3em;
}

/* ind_problem_list */
.ind_problem_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: flex-start;
	gap: 1em 2.6%;
}
.ind_problem_list > li {
	width: 14.5%;
	background: url(../images/index/ind_problem_bbl_l.svg) no-repeat center top;
	background-size: contain;
	transition: translate .8s;
}
.ind_problem_list > li:nth-of-type(even) {
	background-image: url(../images/index/ind_problem_bbl_r.svg);
}
.ind_problem_list a {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 11.5em;
	text-align: center;
	font-size: min(1.4vw,118%);
	line-height: 1.3;
	padding-bottom: 2em;
	box-sizing: border-box;
}
.ind_problem_list a div {
	white-space: nowrap;
}
.ind_problem_list a div::after {
	display: block;
	content: "";
	background: #FFF url(../images/common/icon_arrow.svg) no-repeat;
	background-size: contain;
	width: 1.7em;
	height: 1.7em;
	border-radius: 50%;
	margin: .4em auto 0;
	box-shadow: 0 0 6px rgba(0,0,0,0.1);
	transition: background-color .5s;
}
.ind_problem_list a span {
	color: #9c875f;
	-webkit-text-stroke: 0.2px currentColor;
	font-size: 131%;
	vertical-align: -0.1em;
}

.ind_problem_list > li:hover {
	translate: 0 -5%;
}
.ind_problem_list > li:hover a div::after {
	background-color: #d8d3cb;
}

@media only screen and (min-width: 768px) {

.ind_problem_list > li:nth-of-type(odd) {
	margin-top: 3%;
}

}

@media only screen and (max-width: 767px) {

#ind_problem {
    padding: 12% 0 14%;
}

.ind_problem_inbox {
	width: 92vw;
}

.ind_problem_ttl {
	font-size: 130%;
	margin-bottom: 5%;
}

/* ind_problem_list */
.ind_problem_list {
	gap: 0 4%;
}
.ind_problem_list > li {
	width: 30.6%;
}
.ind_problem_list > li:nth-of-type(3n-1) {
	margin-top: -5%;
}
.ind_problem_list > li:nth-of-type(3n-1):last-of-type {
	margin-top: 0;
}
.ind_problem_list a {
	font-size: 3vw;
}
}


/* Index - Treatment ※既存クラスを調整
==========================================================*/

.ind_treatment_item > a {
	padding: 15px 0;
}
.ind_treatment_item_img {
	height: 100%;
	max-height: none;
}
.ind_treatment_item_img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ind_treatment_item.item_ceramic .ind_treatment_item_img img {
	height: 125%;
    object-position: center top;
}
.ind_treatment_item.item_houcecall .ind_treatment_item_img img {
    object-position: left center;
}

@media screen and (min-width: 861px) {
.ind_treatment_item {
	width: 45%;
}
.ind_treatment_item_img {
    opacity: 0;
    transition: all .4s;
}
.ind_treatment_item a:hover .ind_treatment_item_img {
    opacity: 0.7;
}
}

@media only screen and (min-width: 768px) and (max-width: 959px) {

.ind_treatment_item.item_surgery .ind_treatment_item_img img {
    object-position: right top;
}
}

@media only screen and (max-width: 600px) {
.ind_treatment_item_img {
    opacity: 1;
}
.ind_treatment_item_img {
	aspect-ratio: 4/3;
}

.ind_treatment_item.item_denture .ind_treatment_item_img img {
	height: 110%;
    object-position: right top;
}
}





/* Index - About
==========================================================*/
#ind_about .bnr_parking {
	max-width: 402px;
	margin-top: 25%;
}
@media only screen and (max-width: 767px) {
#ind_about .bnr_parking {
	margin-top: 10%;
}
}




/* ========================================================
  
  下層

======================================================== */


/*---------------------------------------------------------
 FV
---------------------------------------------------------*/
.kv--wrap {
	position: relative;
}
/* .kv_img-on_inner {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
    height: 100vh;
	min-height: min(calc(100vw * 0.6), 600px);
	box-sizing: border-box;
    padding: 0 6.6% min(5%,70px);
	overflow: auto;
} */
.kv_img-on_inner {
    height: 100vh;
	min-height: min(calc(100vw * 0.6), 600px);
	padding: 0;
}
.kv_img-on_inner::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 100%;
    background-repeat: no-repeat;
	background-position: center center;
    background-size: cover;
    inset: 0;
}
.kv_img-on_inner::after {
    position: absolute;
    content: "";
	background: linear-gradient(to bottom, rgba(16,24,40,0.5), rgba(16,24,40,0));
    width: 100%;
    height: 200px;
	top: 0;
	right: 0;
}

.kv_img-on_h1ttl--update {
	font-size: min(8vw,712%);
	letter-spacing: .16em;
	line-height: 1.2;
}
.kv_img-on_h1ttl--update span {
	display: block;
}
.kv_img-on_h1ttl--update span.en {
	font-size: 22%;
	letter-spacing: .02em;
	margin-top: .2em;
}
.kv_img-on_h1ttl--update small {
	display: inline-block;
	font-size: 70%;
	letter-spacing: .05em;
}

.kv_img-on_inner .kv_img-on_h1ttl--update {
	position: absolute;
	color: #FFF;
    left: 7%;
    bottom: min(18vw,240px);
}

@media only screen and (max-width: 767px) {

.kv_img-on_inner {
	height: calc(100vh - 155px);
}
.kv_img-on_h1ttl--update {
	font-size: 9vw;
}
.kv_img-on_h1ttl--update span.en {
	font-size: 4vw;
}
}


/*---------------------------------------------------------
 
---------------------------------------------------------*/

/* 
==========================================================*/


/* 
==========================================================*/




@media only screen and (min-width: 768px) {

}

@media only screen and (min-width: 768px) and (max-width: 959px) {

}

@media only screen and (max-width: 767px) {


}