/*
Theme Name: reform
Theme URI:
Author: zeal
Author URI:
Description:
Version: 
License:
License URI:
Tags:

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

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300..700;1,300..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
/*----------------------------------------
	全体
----------------------------------------*/

html{
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
	font-size:62.5%;
	color: #333;
	-webkit-text-size-adjust:100%;
	line-height:1.5;
	font-weight: 500;
}

.yugo{
	font-family:'游ゴシック体', 'Yu Gothic', YuGothic,'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
}
.yumin{
	font-family:'游明朝体','Yu Mincho','ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro','ＭＳ Ｐ明朝','ＭＳ 明朝','Sawarabi Mincho',serif;
	font-weight: 400;
}
.meiryo{
	font-family:'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif;
}

.zenkaku_gothic{
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 500;
	font-style: normal;
}

.poppins{
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	font-style: normal;
}


.bebas {
	font-family: "Bebas Neue", sans-serif;
	font-weight: normal;
	font-style: normal;
}
.noto{
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.noto_serif{
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
}
.golden{
	font-family: "Cormorant Garamond", serif; /*Goldenbookの代替案*/
	font-optical-sizing: auto;
	font-weight: 100;
	font-style: normal;
}


body{
	font-size:1.4rem;
	font-size: 1.4em;
	font-weight: 500;
}

#container{
	/* overflow: hidden; */
		color: #000;
}
img{ vertical-align: bottom; }
a{
	color:#1c1c1c;
	transition: all 0.4s;
	text-decoration: none;
}
a:hover,
.op:hover{
	opacity: 0.7;
	transition: all 0.4s;
}

.nolink{
	pointer-events: none;
	opacity: 0.3!important;
}
.nolink1{
	pointer-events: none;
}



.nowrap{
	white-space: nowrap;
}
/*----------------------------------------
	画像中央配置
----------------------------------------*/

.photo_frame{
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;
}
.photo_frame.w200{
	max-width: 200px;
}
.photo_frame.w300{
	max-width: 300px;
}
.photo_frame.media{
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1.5;
}
.photo_frame img{
	width: 100%;
	height: 100%;
	object-fit: cover;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate3d(-50%, -50%, 0);
}
.photo_frame img:not(:target){
	left: 0\9;
	top: 0\9;
}
.photo_frame img{
	left: 0\9;
	top: 0\9;
}
@media all and (-ms-high-contrast: none){
.photo_frame img{
		left: 50%\9 !important;
		top: 50%\9 !important;
	}
}
.photo_frame{ z-index: 1; }/*chrome対策*/
@media screen and (max-width: 599px){
	.photo_frame.w200,.photo_frame.w300{
		max-width: 100%;
	}

}/*END*/

/*----------------------------------------
	iframe比率維持
----------------------------------------*/

.map {
    position: relative;
    overflow: hidden;
    text-align: center;
    aspect-ratio: 7 / 4.4;
}
.map iframe{
	width: 100%;
	height: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate3d(-50%, -50%, 0);
	-ms-transform: translate3d(-50%, -50%, 0);
	transform: translate3d(-50%, -50%, 0);
}
.map iframe:not(:target){
	left: 0\9;
	top: 0\9;
}
.map iframe{
	left: 0\9;
	top: 0\9;
}
@media all and (-ms-high-contrast: none){
.map iframe{
		left: 50%\9 !important;
		top: 50%\9 !important;
	}
}
.map{ z-index: 2; }/*chrome対策*/

@media screen and (max-width: 599px){
	.map {
		aspect-ratio: 1 / 1;
	}
	.map.nanago{
		aspect-ratio: 1.2 / 1;
	}

}/*END*/


/*----------------------------------------
	text
----------------------------------------*/

p{ 
	line-height: 2; 
	font-feature-settings: "palt";
}
.text_kon{ color: #003567; }
.text_gray{ color: #bfbfbf; }
.text_gray_2{ color:#7d7d7d; }
.text_gray_3{color: #616161;}
.text_remon{ color:#fff100 }
.text_deepred{ color:#d90303; }
.text_red{ color:#ec3f4d; }
.text_black{ color:#000; }
.text_white{ color:#fff; }
.text_gold{ color:#e6b422; }
.text_blue{ color: #336699; }
.text_lightblue{ color: #81ccfa;}
.text_brown{ color:#83552f; }
.text_lighter{ font-weight: lighter !important; }
.text_bold{ font-weight: bold !important; }
.text_bolder{ font-weight: bolder !important; }
.text_500{ font-weight: 500 !important; }
.text_900{ font-weight: 900 !important; }
.text_normal{ font-weight: normal; }
.yu_min{ font-family:'游明朝体', 'Yu Mincho', YuMincho, 'ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro','ＭＳ Ｐ明朝','ＭＳ 明朝',serif; }
.meiryo{ font-family:'メイリオ',Meiryo,'ヒラギノ角ゴ Pro W3','Hiragino Kaku Gothic Pro','ＭＳ ゴシック',sans-serif; }

:root {
	--page-top-bottom: 2%;
	--color-gray: #898989;
	--color-blue: #349ccd;
	--color-lightblue: #7ecef4;
	--color-navy: #435b72;
	--color-whiteblue: #e8f1f5;
	--color-blackgray: #1b1b1b;
	--color-beige: #f8f8f2;
	--text11: clamp(1.1rem, 1.0vw, 1.1rem);
	--text12: clamp(1.2rem, 1.1vw, 1.2rem);
	--text13: clamp(1.3rem, 1.25vw, 1.3rem);
	--text14: clamp(1.4rem, 1.34vw, 1.4rem);
	--text15: clamp(1.4rem, 1.4vw, 1.5rem);
	--text16: clamp(1.4rem, 1.5vw, 1.6rem);
	--text18: clamp(1.5rem, 1.7vw, 1.8rem);
	--text20: clamp(1.6rem, 1.9vw, 2rem);
	--text21: clamp(1.7rem, 2vw, 2.1rem);
	--text22: clamp(1.7rem, 2.1vw, 2.2rem);
	--text24: clamp(1.8rem, 2.3vw, 2.4rem);
	--text25: clamp(1.8rem, 2.35vw, 2.5rem);
	--text26: clamp(1.9rem, 2.5vw, 2.6rem);
	--text28: clamp(1.9rem, 2.6vw, 2.8rem);
	--text30: clamp(2rem, 2.8vw, 3rem);
	--text32: clamp(2rem, 3vw, 3.2rem);
	--text34: clamp(2rem, 3.2vw, 3.4rem);
	--text36: clamp(2rem, 3.3vw, 3.6rem);
	--text38: clamp(2.1rem, 3.4vw, 3.8rem);
	--text40: clamp(2.2rem, 3.8vw, 4rem);
	--text48: clamp(2.5rem, 4.5vw, 4.8rem);
	--text60: clamp(3.2rem, 5.7vw, 6rem);
}
.text_11 { font-size: var(--text11); }
.text_12 { font-size: var(--text12); }
.text_13 { font-size: var(--text13); }
.text_14 { font-size: var(--text14); }
.text_15 { font-size: var(--text15); }
.text_16 { font-size: var(--text16); }
.text_18 { font-size: var(--text18); }
.text_20 { font-size: var(--text20); }

.text_21 { font-size: var(--text21); }
.text_22 { font-size: var(--text22); }
.text_24 { font-size: var(--text24); }
.text_25 { font-size: var(--text25); }
.text_26 { font-size: var(--text26); }
.text_28 { font-size: var(--text28); }
.text_30 { font-size: var(--text30); }
.text_32 { font-size: var(--text32); }
.text_34 { font-size: var(--text34); }
.text_36 { font-size: var(--text36); }
.text_38 { font-size: var(--text38); }
.text_40 { font-size: var(--text40); }
.text_48 { font-size: var(--text48); }
.text_60 { font-size: var(--text60); }
/*line-height*/
.lh_06{ line-height: 0.6; }
.lh_08{ line-height: 0.8; }
.lh_09{ line-height: 0.9; }
.lh_10{ line-height: 1.0 !important; }
.lh_11{ line-height: 1.1 !important; }
.lh_12{ line-height: 1.2 !important; }
.lh_13{ line-height: 1.3 !important; }
.lh_14{ line-height: 1.4 !important; }
.lh_15{ line-height: 1.5 !important; }
.lh_16{ line-height: 1.6 !important; }
.lh_17{ line-height: 1.7 !important; }
.lh_18{ line-height: 1.8 !important; }

/*letter-spacing*/
.ls_no{letter-spacing: normal;}
.ls_-2{ letter-spacing: -2px; }
.ls_-1{ letter-spacing: -1px; }
.ls_01{ letter-spacing: 0.1px; }
.ls_02{ letter-spacing: 0.2px; }
.ls_025{ letter-spacing: 0.25px; }
.ls_03{ letter-spacing: 0.3px; }
.ls_04{ letter-spacing: 0.4px; }
.ls_05{ letter-spacing: 0.5px; }
.ls_06{ letter-spacing: 0.6px; }
.ls_07{ letter-spacing: 0.7px; }
.ls_08{ letter-spacing: 0.8px; }
.ls_09{ letter-spacing: 0.9px; }
.ls_1{ letter-spacing: 1px; }
.ls_12{ letter-spacing: 1.2px; }
.ls_13{ letter-spacing: 1.3px; }
.ls_14{ letter-spacing: 1.4px; }
.ls_2{ letter-spacing: 2px; }
.ls_3{ letter-spacing: 3px; }
.ls_-01em{ letter-spacing: -0.1em; }
.text_r{text-align:right;}

a.link_tex{ color: #0199cc; }
a.link_tex:hover{ opacity: 0.7; }

@media print, screen and (min-width: 821px){

	/*line-height*/
	.lh_19{ line-height: 1.9 !important; }
	.lh_20{ line-height: 2 !important; }
	.lh_21{ line-height: 2.1 !important; }
	.lh_22{ line-height: 2.2 !important; }
	.lh_23{ line-height: 2.3 !important; }
	.lh_24{ line-height: 2.4 !important; }
	.lh_25{ line-height: 2.5 !important; }
	.lh_26{ line-height: 2.6 !important; }
	.lh_28{ line-height: 2.8 !important; }
	.lh_30{ line-height: 3 !important; }
	.lh_32{ line-height: 3.2 !important; }
	.lh_34{ line-height: 3.4 !important; }
	.lh_36{ line-height: 3.6 !important; }

	/*letter-spacing*/
	.ls_4{ letter-spacing: 4px; }
	.ls_5{ letter-spacing: 5px; }
	.ls_6{ letter-spacing: 6px; }
	.ls_7{ letter-spacing: 7px; }
	.ls_8{ letter-spacing: 8px; }

}/*END*/

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

	/*letter-spacing*/
	.ls_4{ letter-spacing: 3px; }
	.ls_5{ letter-spacing: 4px; }
	.ls_6{ letter-spacing: 4px; }
	.ls_7{ letter-spacing: 4px; }
	.ls_8{ letter-spacing: 4px; }

	/*line-height*/
	.lh_19,
	.lh_20,
	.lh_21,
	.lh_22,
	.lh_23,
	.lh_24,
	.lh_25{
		line-height: 1.8 !important;
	}

}/*END*/

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

	/*letter-spacing*/
	.ls_4{ letter-spacing: 2px; }
	.ls_5{ letter-spacing: 2px; }
	.ls_6{ letter-spacing: 2px; }
	.ls_7{ letter-spacing: 2px; }
	.ls_8{ letter-spacing: 2px; }

}/*END*/

li{ list-style:none; }
.center{ text-align:center; }
.text_center{text-align: center;}
.text_left{ text-align:left; }
.text_right{ text-align:right; }
.clear{ clear:both; }

.op:hover{
	filter: alpha(opacity=60);
	-moz-opacity:060;
	opacity:0.60;
}

.status{
	display:inline-block;
	background:#f7e4ac;
	padding: 1px 4px;
	margin-right:4px;
}

@media screen and (max-width: 599px){
	.text_center{text-align: left;}

}/*END*/


/*----------------------------------------
	共通
----------------------------------------*/

.bg_white{ background: #fff; }

/*ぱんくず*/
.pan_nav {
    display: flex;
    flex-wrap: wrap;
	
}
.pan_nav li{
    font-size: var(--text12);
    color: var(--color-blackgray);
    line-height: 1.5;
	font-family:'游明朝体','Yu Mincho','ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro','ＭＳ Ｐ明朝','ＭＳ 明朝','Sawarabi Mincho',serif;
}
.pan_nav a{
	color: var(--color-blackgray);
	text-decoration: none;
	font-family:'游明朝体','Yu Mincho','ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro','ＭＳ Ｐ明朝','ＭＳ 明朝','Sawarabi Mincho',serif;
}
.pan_nav a:hover{
	color: var(--color-blackgray);
}
.pan_nav a:after{
    content: "";
    width: 7px;
    height: 7px;
    border-top: 1px solid var(--color-blackgray);
    border-right: 1px solid var(--color-blackgray);
    transform: rotate(45deg);
    display: inline-block;
	margin-left: 15px;
    margin-right: 15px;
}
.pan_nav li:last-child a:after {
	content: none;
}

/*----------------------------------------
	layout
----------------------------------------*/

.max_respon{
	max-width:100%;
}
.pc_block{
	display: block;
}
.sp_block{
	display: none;
}
.tb_block{
	display: none;
}
.inner_frame{
	max-width: 1080px;
	width: 100%;
	position: relative;
	box-sizing: border-box;
	margin-inline: auto;
	padding-right: 20px;
	padding-left: 20px;
}
.inner_frame760{
	max-width: 760px;
	width: 100%;
	box-sizing: border-box;
	margin-inline: auto;
}
.inner_frame900{
    max-width: 900px;
    width: 100%;
    box-sizing: border-box;
    margin-inline: auto;
}
.inner_frame1350{
	max-width: 1390px;
	width: 100%;
	box-sizing: border-box;
	margin-inline: auto;
}

.rela{
	position: relative;
}
.rela_z1{
	position: relative;
	z-index: 1;
}
.ab{
	position: absolute;
}
.text_line{
	display: inline-block;
	border-bottom: 1px solid #000;
}
.palt{
	font-feature-settings: "palt";
}
.nogap{
	gap:0;
}

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

	.inner_frame{
		padding-right: 3.5%;
		padding-left: 3.5%;
	}

}/*END*/

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

	.inner_frame{
		padding-right: 4.3%;
		padding-left: 4.3%;
	}

}/*END*/

@media screen and (max-width: 599px){
	.pc_block{
		display: none!important;
	}
	.sp_block{
		display: block!important;
	}
}/*END*/

/*----------------------------------------
	header
----------------------------------------*/
header{
    width: 100%;
    z-index: 10;
    box-sizing: border-box;
    position: absolute;
    top: 0;
    left: 0;
    padding: 20px;
}
header .logo{
	display: block;
	max-width: 211px;
	width: 100%;
	aspect-ratio: 211/26;
}
header li{ list-style: none; }
header a{
	display: block;
	color: inherit;
	text-decoration: none;
	color: inherit;
}


@media screen and (max-width: 599px){
	.logo{

	}
}/*END*/

/*----------------------------------------
	ドロワー home
----------------------------------------*/
.menu_btn{
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	gap: 6px;
	position: fixed;
	width: 60px;
	height: 60px;
	cursor: pointer;
	transition: all .6s;
	z-index: 999;
	background: #000;
	top: 15px;
	right: 15px;
	border-radius: 50%;
	box-sizing: border-box;
}

.menu_btn span{
	display: block;
	transition: all .4s;
}

.menu_btn span:nth-child(1),
.menu_btn span:nth-child(2){
	width: 26px;
	height: 1px;
	background: #fff;
	transform-origin: center;
}

.menu_btn span:nth-child(3){
	font-size: 1rem;
	line-height: 1;
	color: #fff;
	letter-spacing: .05em;
}

/* 開いた時 */
.open .menu_btn span:nth-child(1){
	transform: translateY(7px) rotate(45deg);
}

.open .menu_btn span:nth-child(2){
	transform: translateY(-1px) rotate(-45deg);
}

.open .menu_btn span:nth-child(3){
    margin-top: 8px;
}

@media screen and (max-width: 768px){
	.menu_btn{
		width: 50px;
		height: 50px;
		gap: 5px;
	}

	.menu_btn span:nth-child(1),
	.menu_btn span:nth-child(2){
		width: 22px;
	}

	.menu_btn span:nth-child(3){
		font-size: .8rem;
	}
	.open .menu_btn span:nth-child(3){
		margin-top: 5px;
	}
	.open .menu_btn span:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}
}

/* SP */
@media screen and (max-width: 599px){
	.menu_btn{
		width: 40px;
		height: 40px;
		gap: 4px;
	}

	.menu_btn span:nth-child(1),
	.menu_btn span:nth-child(2){
		width: 18px;
	}

	.menu_btn span:nth-child(3){
		font-size: .6rem;
	}
	
	.open .menu_btn span:nth-child(3){
		margin-top: 4px;
	}
	.open .menu_btn span:nth-child(1) {
		transform: translateY(5px) rotate(45deg);
	}
}
/*----------------------------------------
	ドロワーコンテンツ
----------------------------------------*/
.drawer{
    position: fixed;
    inset: 0;

    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);

    transition:
        opacity .5s ease,
        transform .5s ease,
        visibility 0s .5s;
}
.drawer_inner{
    height: 100dvh;
    overflow-y: auto;
    display: flex;
    justify-content: center;
    align-items: center;
    /* padding: 120px 4.3%; */
}

.drawer::before,
.drawer::after{
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    background-repeat: no-repeat;
	background-position: top center;
    background-size: cover;
    z-index: -1;
}
.drawer::before{
    left: 0;
    background-image:
        linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.3)),
        url(./images/common/bg_left.jpg);
	transform: translateY(-100%);
    transition: transform .7s cubic-bezier(.22,1,.36,1);
}

.drawer::after{
    right: 0;
    background-image:
        linear-gradient(rgba(0,0,0,.3), rgba(0,0,0,.3)),
        url(./images/common/bg_right.jpg);
	transform: translateY(100%);
    transition: transform .7s cubic-bezier(.22,1,.36,1);
}

.open .drawer::before,
.open .drawer::after{
    transform: translateY(0);
}
.open .drawer{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);

    transition:
        opacity .5s ease,
        transform .5s ease;
}
.open .drawer ul li{
	transform: translateX(0);
}
.drawer nav{
    height: fit-content;
	position: relative;
    padding: 20px 4.3%;
}
.drawer nav ul{
	background: rgba(27, 27, 27, 0.5);
    max-width: 380px;
    padding: 10%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 3em;
}
.drawer ul li{
    opacity: 0;
    transform: translateY(20px);
    transition: .5s ease;
}

.open .drawer ul li{
    opacity: 1;
    transform: translateY(0);
}
.open .drawer ul li:nth-child(1){ transition-delay: .1s; }
.open .drawer ul li:nth-child(2){ transition-delay: .15s; }
.open .drawer ul li:nth-child(3){ transition-delay: .2s; }
.open .drawer ul li:nth-child(4){ transition-delay: .25s; }
.open .drawer ul li:nth-child(5){ transition-delay: .3s; }
.open .drawer ul li:nth-child(6){ transition-delay: .35s; }
.open .drawer ul li:nth-child(7){ transition-delay: .4s; }
.open .drawer ul li:nth-child(8){ transition-delay: .45s; }
.drawer nav ul li a{
	color: #fff;
	font-family:'游明朝体','Yu Mincho','ヒラギノ明朝 Pro W3', 'Hiragino Mincho Pro','ＭＳ Ｐ明朝','ＭＳ 明朝','Sawarabi Mincho',serif;
}
.drawer .deco{
    top: 50%;
    left: calc(50% - 380px);
    transform: translate(-50%, -50%);
}
@media screen and (max-width:1000px){
	.drawer .deco {
		position: unset;
        display: block;
        text-align: center;
        align-items: center;
        margin-bottom: 15px;
        transform: unset;
	}
	.drawer .deco .logo{
		margin-inline: auto;
	}

}
@media (max-height: 800px){
    .drawer_inner{
        align-items: flex-start;
    }
	.drawer nav{
		height: 100%;
	}
}
@media screen and (max-width:599px){
	.drawer::before, .drawer::after {
		height: 50%;
		width: 100%;

	}
	.drawer::after {
		bottom: 0%;
		top: unset;
	}
	.drawer::before{
		transform: translateX(-100%);
		transition: transform .7s cubic-bezier(.22,1,.36,1);
	}

	.drawer::after{
		transform: translateX(100%);
		transition: transform .7s cubic-bezier(.22,1,.36,1);
	}

	.open .drawer::before,
	.open .drawer::after{
		transform: translateX(0);
	}
}
/*----------------------------------------
	page_top
----------------------------------------*/
.page_top{
	display: none;
	width: auto;
	max-width: 84px;
	position: fixed;
	right: 1.2%;
	bottom: var(--page-top-bottom);
	z-index: 2;
}

@media screen and (max-width: 768px){
	.page_top{
		width: 40px;
		right: 10px;
	}
}/*END*/
@media screen and (max-width:599px){
	.page_top{
		width: 45px;
		right: 6px;
	}
}/*END*/

/*----------------------------------------
	追従ボタン
----------------------------------------*/
.pc_menu {
	display: block;
    width: fit-content;
    position: fixed;
    right: 0;
    bottom: 15vh;
    width: 45px;
}
.sp_menu{
	display: none;
}
.pc_menu,.sp_menu{
	z-index: 9;
}
@media screen and (max-width: 599px){
	.pc_menu{
		display: none;
	}
	.sp_menu{
		display: flex;
		position: fixed;
		bottom: 0;
	}
}


/*----------------------------------------
	共通
----------------------------------------*/
/* デコレーション */
.deco{
    position: absolute;
}
@media screen and (max-width: 599px){
	.deco.vertical_en{
		display: none;
	}
}
/* レイアウト */
.z_-1{
	z-index: -1;
}
.z_0{
	z-index: 0;
}
.z_1{
	z-index: 1;
}
.z_2{
	z-index: 2;
}
.z_3{
	z-index: 3;
}
.flex{
	display: flex;
}
.flex_wrap{
    display: flex;
    flex-wrap: wrap;
}
.flex_column{
    display: flex;
    flex-direction: column;
}
.j_center{
	justify-content: center;
}
.j_between{
    justify-content: space-between;
}
.j_around{
    justify-content: space-around;
}
.j_end{
	justify-content: end;
}
.al_center{
	align-items: center;
}
.gap2{
	column-gap: 2%;
	row-gap: 20px;
}
.gap3{
	column-gap: 3%;
	row-gap: 30px;
}
.gap4{
	column-gap: 4%;
	row-gap: 35px;
}
.gap5{
	column-gap: 5%;
	row-gap: 40px;
}
.gap1em{
	gap: 1em;
}
.gap2em{
	gap: 2em;
}
.grid2{
	display: grid;
	grid-template-columns: repeat(2,1fr);
}
.grid3{
	display: grid;
	grid-template-columns: repeat(3,1fr);
}
.grid4{
	display: grid;
	grid-template-columns: repeat(4,1fr);
}
.grid6{
	display: grid;
	grid-template-columns: repeat(6,1fr);
}
.grid2 li,.grid3 li,.grid4 li,.grid6 li{
	justify-self: center;
}
.w25{ width:25%; }
.w30{ width:30%; }
.w35{ width:35%; }
.w40{ width:40%; }
.w45{ width:45%; }
.w50{ width:50%; }
.w55{ width:55%; }
.w60{ width:60%; }
.w65{ width:65%; }
.w70{ width:70%; }
.w75{ width:75%; }
.w80{ width:80%; }
.w85{ width:85%; }
.w90{ width:90%; }
.w95{ width:95%; }

.flex.template1 >.narrow{
	width: 35%;
}
.flex.template1 >.wide{
	width: 56.7%;
}

.m_auto{
	margin: auto;
}
.m_inline{
	margin-inline: auto;
}
.block{
	display: block;
}

.block_768{
	display: none!important;
}

@media screen and (min-width: 600px) and (max-width: 768px){
	.block_768{
		display: block!important;
	}
}
@media (max-width:1200px){
	.box.w25,
	.box.w30,
	.box.w35{ width:45%; }
	.box.w40,
	.box.w45{ width:55%; }
	.box.w50,
	.box.w55{ width:65%; }
	.box.w60,
	.box.w65{ width:75%; }
	.box.w70,
	.box.w75,
	.box.w80{ width:85%; }
	.box.w85{ width:95%; }

	.flex.template1 >.narrow{
		width: 40%;
	}
}
@media (max-width:768px){
	.box.w25,
	.box.w30,
	.box.w35{ width:50%; }
	.box.w40,
	.box.w45{ width:60%; }
	.box.w50,
	.box.w55{ width:70%; }
	.box.w60,
	.box.w65{ width:80%; }
	.box.w70,
	.box.w75,
	.box.w80{ width:90%; }
	.box.w85{ width:100%; }

	.tb_mt_none{
		margin-top: 0;
	}
}
@media screen and (max-width: 599px){
	.sp_m_t90{
		margin-top: 90px!important;
	}
	.sp_m_b90{
		margin-bottom: 90px!important;
	}
	.sp_p_t90{
		padding-top: 90px!important;
	}
	.sp_p_t100{
		padding-top: 100px!important;
	}
	.sp_p_b90{
		padding-bottom: 90px!important;
	}
	.sp_p_b100{
		padding-bottom: 100px!important;
	}
	.sp_mt_none{
		margin-top: 0;
	}
	.sp_mb_none{
		margin-bottom: 0;
	}
	.flex{
		flex-direction: column;
	}
	.flex.reverse{
		flex-direction: column-reverse;
	}
	.w25,
	.w30,
	.w35,
	.w40,
	.w45,
	.w50,
	.w55,
	.w60,
	.w65,
	.w70,
	.w75,
	.w80,
	.w85,
	.w90,
	.w95{
		width:100%!important;
	}
	.flex.template1 >.narrow,.flex.template1 >.wide{
		width: 100%;
	}
	.grid2{
		grid-template-columns: repeat(1, 1fr);
	}
	.grid3{
		grid-template-columns: repeat(2, 1fr);
		gap: 10px!important;
	}
	.grid3 li:nth-child(1){
		grid-column: 1 / 3; 
		width: calc((100% - 10px) / 2);
	}
	.grid4{
		grid-template-columns: repeat(2,1fr);
	}
	.grid6{
		grid-template-columns: repeat(3,1fr);
	}
	.between{
		flex-direction: column;
	}
}

/* ボタン */
.btn{
	font-family: "Cormorant Garamond", serif; /*Goldenbookの代替案*/
    font-size: var(--text14);
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
	max-width: 250px;
	height: 50px;
    padding: 0.3em 1em;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    border: 1px solid #fff;
	box-sizing: border-box;
}
.btn.ver2{
    background: var(--color-blackgray);
    color: #fff;
    border: 1px solid var(--color-blackgray);
}
.btn.ver3{
    background: #fff;
    color: #000;
    border: 1px solid #fff;
}
.btn_190{
	max-width: 190px;
	height: 40px;
}
.btn_400{
	max-width: 400px;
}
.btn{
	position:relative;
	overflow:hidden;
}

.btn::after{
	content:"";
	position:absolute;
	top:0;
	left:-120%;
	width:60%;
	height:100%;
	background:linear-gradient(
		120deg,
		transparent,
		rgba(255,255,255,.45),
		transparent
	);
	transform:skewX(-25deg);
}

.btn:hover::after{
	left:160%;
	transition:left .9s ease;
}
.btn.ver3::after{
	background:linear-gradient(
		120deg,
		transparent,
		rgba(0,0,0,.08),
		transparent
	);
}
@media screen and (max-width: 599px){
	.btn{
		margin-inline: auto;
	}

}
/* 文字 */
.vertical_flex{
	display: flex;
	justify-content: center;
}
.vertical {
   writing-mode: vertical-rl; /* 縦書き、右から左 */
   text-orientation: upright; /* 文字を正立させる */
}
.vertical_en {
   writing-mode: vertical-rl; /* 縦書き、右から左 */
}
span.block{
	display: block;
}
.text_whitegray{
	color: #7d7d7d;
}
.text_whitegray2{
    color: #a7a7a7;
}
.text_whitegray3{
	color: #959595;
}
.text_blackgray{
	color: var(--color-blackgray);
}
.text_shadow{
    text-shadow:
        0 0 30px rgba(0,0,0,.58),
        0 0 60px rgba(0,0,0,.45),
        0 0 120px rgba(0,0,0,.3),
        0 0 166px rgba(0,0,0,.15);
}
.kakko_left {
    margin-left: -7px;
}
.kakko_right {
    margin-right: -7px;
}
/* 背景 */
.sticky{
    position: sticky;
    top: 0;
    width: 100%;
    box-sizing: border-box;
}
.bg_blackgray{
	background: var(--color-blackgray);
}
.bg_rightbrown {
	background-color: #96876d;
}
.bg_whitegray{
	background: #f5f5f5;
}
.bg_beige{
	background: var(--color-beige);
}
/* ボーダー */
hr{
    border: none;
    background: #434343;
    height: 1px;
}
.border{
	border: 1px solid #000;
}
.border_t_w{
	border-top: 1px solid #fff;
}
.border_t_b{
	border-top: 1px solid var(--color-navy);
}
.border_b_b{
	border-bottom: 1px solid var(--color-navy);
}
.border_b{
	border-bottom: 1px solid #000;
}
.border_dot {
	position: relative;
}
.border_dot::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background-image: radial-gradient(#000 3px, transparent 2px);
    background-size: 9px 2px;
    background-repeat: repeat-x;
}
/* ロゴ */
.logo img{
	width: 100%;
	max-width: 211px;
	aspect-ratio: 211/26;
}
@media screen and (max-width: 599px){
	.logo img{
		width: 85%;
	}
}
/* -------------------------TOPページ---------------------- */
.top_flex_box .w43{
	width: 43%;
}

@media screen and (max-width: 768px){
	.top_flex_box .w40 {
		width: 50%;
	}
	.top_flex_box .w43 {
        width: 45%;
    }
	.top_flex_box .w35{
		width: 45%;
	}
}
@media screen and (max-width: 599px){
	.top_flex_box .w40,
	.top_flex_box .w43,
	.top_flex_box .w35{
		width: 100%;
	}
}
/*----------------------------------------
	MV
----------------------------------------*/
.mv_bg{
	height: 100vh;
    display: flex;
    justify-content: center;
    align-items: end;
    padding: 3%;
    box-sizing: border-box;
	position: relative;
    overflow: hidden;
}
.cover{
    position: absolute;
    inset: 0;
    background: #1b1b1b; /* お好きな色 */
    transform-origin: top center;
    z-index: 31;
    pointer-events: none;
}
body.open .cover{
	z-index: 9;
}
.mv_bg.left{
	background: url(./images/common/bg_left.jpg);
	background-size: cover;
	background-position: top center;
}
.mv_bg.right{
	background: url(./images/common/bg_right.jpg);
	background-size: cover;
	background-position: top center;
}
.mv_box{
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
	text-align: center;
	position: relative;
    z-index: 3;
}
.mv_copy,
.mv_scroll{
    z-index: 3;
}
.mv_copy{
	position: absolute;
    top: 33%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.mv_scroll{
	position: absolute;
	bottom: 3%;
	left: 50%;
	transform: translateX(-50%);
	text-align: center;
}
.mv_scroll::after{
	content: "▼";
	display: block;
	font-size: 1.2em;
	line-height: 1;
	animation: scrollArrow 1.8s ease-in-out infinite;
}
@keyframes scrollArrow{
	0%, 100%{
		transform: translateY(0);
	}
	50%{
		transform: translateY(6px);
	}
}
@media screen and (max-width: 599px){
	.mv_bg {
		height: 550px;
		align-items: center;
	}
	.mv_copy {
		top: 50%;
		transform: translate(-50%, -50%);
	}
	.cover{
		clip-path: inset(0 0% 0 0);
	}
}
/*----------------------------------------
	EVENT
----------------------------------------*/
.event_deco{
    left: 2%;
    top: 22%;
}
/*----------------------------------------
	INSULATION
----------------------------------------*/

.insulation_bg{
    background: url(./images/top/insulation_bg.jpg);
    background-size: cover;
    background-repeat: no-repeat;
	background-position: top center;
	height: 95vh;
	display: flex;
	align-items: center;
}
@media screen and (max-width: 599px){
	.insulation_bg{
		background-size: contain;
		background-position: top center;
		height: 150vh;
		display: flex;
		align-items: flex-start;
	}
	.insulation_bg .top_flex_box{
		padding-top: 10vh;
	}
	.insulation_bg .top_flex_box .w40{
		text-align: end;
	}
	.insulation_bg .top_flex_box .w40 > img{
		width: 70%;
	}
}
/*----------------------------------------
	SEISMIC
----------------------------------------*/
.sesmic_bg{
	background: var(--color-blackgray);
	height: 95vh;
	display: flex;
	align-items: center;
}
@media screen and (max-width: 599px){
	.sesmic_bg{
		height: 150vh;
		display: flex;
		align-items: flex-start;
	}
	.sesmic_bg .top_flex_box{
		padding-top: 10vh;
	}
	.sesmic_bg .top_flex_box .w40 > img{
		width: 70%;
	}
}
/*----------------------------------------
	RENOVATION / OTHER REFORM
----------------------------------------*/
.reform_bg{
    background-size: cover;
    background-repeat: no-repeat;
	background-position: top center;
	height: 95vh;
	display: flex;
	align-items: center;
    background: url(./images/top/reform_bg.jpg) center/cover no-repeat;
}
.reform_view_box > a{
	max-width: 410px;
    width: 100%;
    aspect-ratio: 41 / 26;
    padding: 1em;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
}
.reform_view_box > a:nth-child(1){
	background: url(./images/top/reform_view01.png);
	background-size: cover;
	background-position: center center;
}
.reform_view_box > a:nth-child(2){
	background: url(./images/top/reform_view02.png);
	background-size: cover;
	background-position: center center;
}
@media screen and (max-width: 599px){
	.reform_bg{
		height: 145vh;
		display: flex;
        align-items: center;
	}
	.reform_bg .inner_frame{
		padding-top: 20%;
	}
	.reform_view_box > a {
		max-width: 100%;
	}

}
/*----------------------------------------
	ABOUT US
----------------------------------------*/
.about_bg{
	background: url(./images/top/about_bg.jpg);
    background-size: cover;

}
/*----------------------------------------
	footer
----------------------------------------*/
footer hr{
    color: #b5b5b5;
}
@media screen and (max-width: 599px){
	footer .text_right{
		text-align: left;
	}
}


/* -------------------------templateページ---------------------- */
/*----------------------------------------
	reform-style.php
----------------------------------------*/
.reformstyle_bg{
	background: url(./images/common/reformstyle_bg.jpg);
    background-size: cover;
    background-position: center center;
}

/* -------------------------サイトマップページ--------------------- */
.site_nav ul li{
    padding: 2em 0;
}
.site_nav ul li:not(:last-child){
    border-bottom: 1px solid #1b1b1b;
}
/* -------------------------プライバシーポリシーページ----------------*/
.privacy_box h3{
	max-width: 760px;
	width: 100%;
    border-bottom: 1px solid #1b1b1b;
}
