@charset "UTF-8";


/* reset
------------------------------------------*/
/*!
 * ress.css ? v4.0.0
 * MIT License
 * github.com/filipelinhares/ress
 */html{box-sizing:border-box;-webkit-text-size-adjust:100%;word-break:normal;-moz-tab-size:4;tab-size:4}*,:after,:before{background-repeat:no-repeat;box-sizing:inherit}:after,:before{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0;color:inherit}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}input{border-radius:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}[role=button],[type=button],[type=reset],[type=submit],button{cursor:pointer;color:inherit}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button:-moz-focusring{outline:1px dotted ButtonText}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}a:focus,button:focus,input:focus,select:focus,textarea:focus{outline-width:0}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}img{border-style:none}progress{vertical-align:baseline}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}address{font-style:normal}
h1,h2,h3,h4,h5,h6 { font-size: inherit; font-weight: inherit; margin: 0; padding:0;}
ul,li,ol,li { list-style: none;}
a,form,iframe {outline: 0; border: 0;}
img {
	max-width: 100%;
	height:auto;
	line-height:0;
	vertical-align:top;
}

a:link,
a:hover,
a:visited {
	text-decoration: none;
	color: inherit;
}

/* テキストリンク */
a.txtlink {
	color: #d5000a;
	text-decoration: underline;
}
a.txtlink:hover {
	text-decoration: none;
}

/* 電話リンク */
.sp-tel { display: inline-block;}
@media (min-width: 768px){
	a[href^="tel:"], a.sp-tel[href^="tel:"] {
		pointer-events: none;
	}

}

/* font style 親要素引継ぎ */
span {
	font-size: inherit;
  	font-weight: inherit;
}

/* Primary Styles
------------------------------------------*/
html {
	overflow-y: scroll;
	box-sizing: border-box;
	font-size: 62.5%;
}

body {
	position: relative;
	background:#fff;
	text-size-adjust:100%;
	color:#000;
	font-size: 1.6rem;
	font-size: clamp(1.4rem, 1.4rem + 0.27vw, 1.6rem);
    font-family: Arial, Helvetica, "sans-serif";
	letter-spacing: 0.01em;
	line-height: 1.7;
}

body.fixed {
    position: fixed;
    width: 100%;
}

main {
	display:  block;
	padding-top: 220px;
}
@media (max-width: 1200px){
	main {
		padding-top: 140px;
	}
}
@media (max-width: 767px){
	main {
		padding-top: 105px;
	}
}
@media (max-width: 480px){
	main {
		padding-top: 70px;
	}
}

body#home main {
	padding-top: 0;
}


/* Common style
---------------------------------*/
.txt-center,
.stxt-center {
	text-align: center;
}
@media (max-width: 767px){
	.stxt-center {
		text-align: left;
	}
}

.block { display: block;}
.iblock { display: inline-block;}

/*PC SP only*/
@media (min-width: 1281px){.sp-only-ll {display: none;}}
@media (max-width: 1280px){.pc-only-ll {display: none;}}
@media (min-width: 1025px){.sp-only-l {display: none;}}
@media (max-width: 1024px){.pc-only-l {display: none;}}
@media (min-width: 768px){.sp-only {display: none;}}
@media (max-width: 767px){.pc-only {display: none;}}
@media (min-width: 481px){.sp-only-m {display: none;}}
@media (max-width: 480px){.pc-only-m {display: none;}}
@media (min-width: 375px){.sp-only-s {display: none;}}
@media (max-width: 374px){.pc-only-s {display: none;}}

/* flex ---------------- */
.flex {
	display: flex;
	flex-wrap: wrap;
}
.flex.column {
    flex-direction: column;
}
.flex.between {
	-webkit-box-pack: justify;
    justify-content: space-between;
}
/* 上下左右中央 */
.flex.vc {
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
/* 上下中央横並び */
.flex.vm {
    flex-direction: row;
    align-items: center;
}

/* layout --------------------- */
.wrap, .wrap-l, .wrap-m, .wrap-s {
    box-sizing: border-box;
    width: 90%;
    margin: 0 auto;
}

/* .wrap-l {max-width: 1350px;} */
.wrap-m {max-width: 1250px;}
.wrap-s {max-width: 1140px;}

.wrap-right {
  padding-left: 5%;
  box-sizing: border-box;
}
.wrap-right-l {
	padding-left: max(5% , calc(50% - 675px));
  box-sizing: border-box;
}
@media (max-width: 1024px) {
	.wrap-right.sp-not-l,
	.wrap-right-l.sp-not-l {
		padding-right: 5%;
	}
}
@media (max-width: 767px) {
	.wrap-right.sp-not,
	.wrap-right-l.sp-not {
		padding-right: 5%;
	}
}


/* object fit --------------------- */
.of-wrap {
    width: 100%;
    display: block;
}
.of-wrap img {
    width: 100%;
    height: 100%;
}
.of-wrap.of-1x1 {aspect-ratio: 1/1;}
.of-wrap.of-2x1 {aspect-ratio: 2/1;}
.of-wrap.of-3x2 {aspect-ratio: 3/2;}
.of-wrap.of-4x3 {aspect-ratio: 4/3;}
.of-wrap.of-16x9 {aspect-ratio: 16/9;}

.of-wrap.of-cover img {object-fit: cover}
.of-wrap.of-contain img {object-fit: contain}

/* 縦書き ------------ */
.tb-rl.all {
	-ms-writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	-moz-writing-mode: vertical-rl;
	writing-mode: vertical-rl;
	white-space: nowrap;
	display: inline-block;
}
@media (min-width: 768px) {
	.tb-rl.pc {
			-ms-writing-mode: tb-rl;
			-webkit-writing-mode: vertical-rl;
			-moz-writing-mode: vertical-rl;
			writing-mode: vertical-rl;
			white-space: nowrap;
			display: inline-block;
	}
}
/* @media (min-width: 768px) {
	.tb-rl.pc-s {
			-ms-writing-mode: tb-rl;
			-webkit-writing-mode: vertical-rl;
			-moz-writing-mode: vertical-rl;
			writing-mode: vertical-rl;
			white-space: nowrap;
			display: inline-block;
	}
} */

/* font STYLE ------------------- */
.f-en { font-family: Arial, Helvetica, "sans-serif";}
.f-yug { font-family: Arial, Helvetica, "sans-serif";}
.f-hrg { font-family: Arial, Helvetica, "sans-serif";}
.f-yumin { font-family: 'Crimson Text', "sans-serif";}
.f-noto { font-family: "Roboto", sans-serif; font-weight: 700; letter-spacing: 0;}
.f-play { font-family: 'Playfair Display', serif; font-weight: 700;}
.f-cri { font-family: 'Crimson Text', serif; font-weight: 400; letter-spacing: 0;}
.f-rob { font-family: "Roboto", sans-serif; font-weight: 400; letter-spacing: 0;}

/* font weight --------------------------------------*/
.f-bold { font-weight: bold;}
.f-normal { font-weight: normal;}
.f-w100 { font-weight: 400;}
.f-w200 { font-weight: 400;}
.f-w300 { font-weight: 400;}
.f-w400 { font-weight: 400;}
.f-w500 { font-weight: 500;}
.f-w600 { font-weight: 600;}
.f-w700 { font-weight: 700;}
.f-w900 { font-weight: 900;}


/* font color --------------------------------------*/
.f-red { color: #d5000a;}
.f-wht { color: #fff;}
.f-blk { color: #000;}
.f-gry { color: rgba(0, 0, 0, 0.5);}
.f-222 { color: #222;}
.f-333 { color: #333;}
.f-666 { color: #666;}

/* line height --------------------------------------*/
.f-lh0 { line-height: 0;}
.f-lh1 { line-height: 1;}
.f-lh11 { line-height: 1.1;}
.f-lh12 { line-height: 1.2;}
.f-lh13 { line-height: 1.3;}
.f-lh15 { line-height: 1.5;}
.f-lh17 { line-height: 1.7;}
.f-lh2 { line-height: 1.7;}
.f-lh215 { line-height: 1.7;}
.f-lh225 { line-height: 1.7;}

@media (max-width: 767px) {
	/*.f-lh215 { line-height: 2;}
	.f-lh25 { line-height: 2;}*/
}

@media (max-width: 480px) {
	.f-lh2, .f-lh215, .f-lh225 { line-height: 1.7;}
}

/* letter spacing --------------------------------------*/
.f-ls0 { letter-spacing: 0;}
.f-ls25 { letter-spacing: 0.01em;}
.f-ls50 { letter-spacing: 0.01em;}
.f-ls75 { letter-spacing: 0.01em;}
.f-ls100 { letter-spacing: 0.01em;}
.f-ls150 { letter-spacing: 0.01em;}
.f-ls200 { letter-spacing: 0.01em;}

/* font size --------------------------------------*/
.f-sz10 { font-size: 1.0rem;}
.f-sz11 { font-size: 1.1rem;}
.f-sz12 { font-size: 1.2rem;}
.f-sz13 { font-size: 1.3rem;}
.f-sz14 { font-size: 1.4rem;}
.f-sz15 { font-size: 1.5rem; font-size: clamp(1.35rem, 1.2592rem + 0.20vw, 1.5rem);}
.f-sz16 { font-size: 1.6rem; font-size: clamp(1.4rem, 1.4rem + 0.27vw, 1.6rem);}
.f-sz17 { font-size: 1.7rem; font-size: clamp(1.45rem, 1.3008rem + 0.33vw, 1.7rem);}
.f-sz18 { font-size: 1.8rem; font-size: clamp(1.5rem, 1.32rem + 0.40vw, 1.8rem);}
.f-sz19 { font-size: 1.9rem; font-size: clamp(1.55rem, 1.3392rem + 0.47vw, 1.9rem);}
.f-sz20 { font-size: 2.0rem; font-size: clamp(1.575rem, 1.4208rem + 0.57vw, 2rem);}
.f-sz21 { font-size: 2.1rem; font-size: clamp(1.6rem, 1.3008rem + 0.67vw, 2.1rem);}
.f-sz22 { font-size: 2.2rem; font-size: clamp(1.625rem, 1.3008rem + 0.77vw, 2.2rem);}
.f-sz23 { font-size:2.3rem; font-size: clamp(1.65rem, 1.2592rem + 0.87vw, 2.3rem);}
.f-sz24 { font-size:2.4rem; font-size: clamp(1.675rem, 1.24rem + 0.97vw, 2.4rem);}
.f-sz25 { font-size:2.5rem; font-size: clamp(1.7rem, 1.2208rem + 1.07vw, 2.5rem);}
.f-sz26 { font-size:2.6rem; font-size: clamp(1.725rem, 1.2rem + 1.17vw, 2.6rem);}
.f-sz27 { font-size:2.7rem; font-size: clamp(1.75rem, 1.1808rem + 1.27vw, 2.7rem);}
.f-sz28 { font-size:2.8rem; font-size: clamp(1.775rem, 1.16rem + 1.37vw, 2.8rem);}
.f-sz29 { font-size:2.9rem; font-size: clamp(1.8rem, 1.1392rem + 1.47vw, 2.9rem);}
.f-sz30 { font-size:3rem; font-size: clamp(1.825rem, 1.12rem + 1.57vw, 3rem);}
.f-sz31 { font-size:3.1rem; font-size: clamp(1.85rem, 1.1008rem + 1.67vw, 3.1rem);}
.f-sz32 { font-size:3.2rem; font-size: clamp(1.875rem, 1.08rem + 1.77vw, 3.2rem);}
.f-sz33 { font-size:3.3rem; font-size: clamp(1.9rem, 1.0592rem + 1.87vw, 3.3rem);}
.f-sz34 { font-size:3.4rem; font-size: clamp(1.925rem, 1.04rem + 1.97vw, 3.4rem);}
.f-sz35 { font-size:3.5rem; font-size: clamp(1.95rem, 1.0192rem + 2.07vw, 3.5rem);}
.f-sz36 { font-size:3.6rem; font-size: clamp(1.975rem, 1rem + 2.17vw, 3.6rem);line-height: 1.5;}
.f-sz37 { font-size:3.7rem; font-size: clamp(2rem, 0.9792rem + 2.27vw, 3.7rem);}
.f-sz38 { font-size:3.8rem; font-size: clamp(2.025rem, 0.96rem + 2.37vw, 3.8rem);}
.f-sz39 { font-size:3.9rem; font-size: clamp(2.05rem, 0.9392rem + 2.47vw, 3.9rem);}
.f-sz40 { font-size:4rem; font-size: clamp(2.075rem, 0.92rem + 2.57vw, 4rem);}
.f-sz41 { font-size:4.1rem; font-size: clamp(2.1rem, 0.9008rem + 2.67vw, 4.1rem);}
.f-sz42 { font-size:4.2rem; font-size: clamp(2.125rem, 0.88rem + 2.77vw, 4.2rem);}
.f-sz43 { font-size:4.3rem; font-size: clamp(2.15rem, 0.8608rem + 2.87vw, 4.3rem);}
.f-sz44 { font-size:4.4rem; font-size: clamp(2.175rem, 0.84rem + 2.97vw, 4.4rem);}
.f-sz45 { font-size:4.5rem; font-size: clamp(2.2rem, 0.8208rem + 3.07vw, 4.5rem);}
.f-sz46 { font-size:4.6rem; font-size: clamp(2.225rem, 0.8rem + 3.17vw, 4.6rem);}
.f-sz47 { font-size:4.7rem; font-size: clamp(2.25rem, 0.7808rem + 3.27vw, 4.7rem);}
.f-sz48 { font-size:4.8rem; font-size: clamp(2.275rem, 0.76rem + 3.37vw, 4.8rem);line-height: 1.45;}
.f-sz49 { font-size:4.9rem; font-size: clamp(2.3rem, 0.7392rem + 3.47vw, 4.9rem);}
.f-sz50 { font-size:5rem; font-size: clamp(2.325rem, 0.72rem + 3.57vw, 5rem);}
.f-sz51 { font-size:5.1rem; font-size: clamp(2.35rem, 0.7008rem + 3.67vw, 5.1rem);}
.f-sz52 { font-size:5.2rem; font-size: clamp(2.375rem, 0.68rem + 3.77vw, 5.2rem);}
.f-sz53 { font-size:5.3rem; font-size: clamp(2.4rem, 0.6592rem + 3.87vw, 5.3rem);}
.f-sz54 { font-size:5.4rem; font-size: clamp(2.425rem, 0.64rem + 3.97vw, 5.4rem);}
.f-sz55 { font-size:5.5rem; font-size: clamp(2.45rem, 0.6208rem + 4.07vw, 5.5rem);}
.f-sz56 { font-size:5.6rem; font-size: clamp(2.475rem, 0.6rem + 4.17vw, 5.6rem);}
.f-sz57 { font-size:5.7rem; font-size: clamp(2.5rem, 0.5808rem + 4.27vw, 5.7rem);}
.f-sz58 { font-size:5.8rem; font-size: clamp(2.525rem, 0.56rem + 4.37vw, 5.8rem);}
.f-sz59 { font-size:5.9rem; font-size: clamp(2.55rem, 0.5392rem + 4.47vw, 5.9rem);}
.f-sz60 { font-size:6rem; font-size: clamp(2.575rem, 0.52rem + 4.57vw, 6rem);}
.f-sz61 { font-size:6.1rem; font-size: clamp(2.6rem, 0.5008rem + 4.67vw, 6.1rem);}
.f-sz62 { font-size:6.2rem; font-size: clamp(2.625rem, 0.48rem + 4.77vw, 6.2rem);}
.f-sz64 { font-size:6.4rem; font-size: clamp(2.675rem, 0.44rem + 4.97vw, 6.4rem);}
.f-sz65 { font-size: 6.5rem; font-size: clamp(3.9rem, 2.1664rem + 3.61vw, 6.5rem);}
.f-sz66 { font-size:6.6rem; font-size: clamp(2.725rem, 0.4rem + 5.17vw, 6.6rem);}
.f-sz68  { font-size:6.8rem; font-size: clamp(2.775rem, 0.36rem + 5.37vw, 6.8rem);}
.f-sz70 { font-size:7rem; font-size: clamp(2.8rem, 0.28rem + 5.60vw, 7rem);}
.f-sz72 { font-size:7.2rem; font-size: clamp(2.825rem, 0.2rem + 5.83vw, 7.2rem);}
.f-sz75 { font-size:7.5rem; font-size: clamp(2.825rem, 0.0208rem + 0.00vw, 7.5rem);}
.f-sz76 { font-size:7.6rem; font-size: clamp(2.9rem, 0.08rem + 6.27vw, 7.6rem);}
.f-sz80 { font-size:8rem; font-size: clamp(2.925rem, -0.12rem + 6.77vw, 8rem);}
.f-sz85 { font-size:8.5rem; font-size: clamp(2.95rem, -0.3792rem + 7.40vw, 8.5rem);}
.f-sz90 { font-size:9rem; font-size: clamp(3rem, -0.6rem + 8.00vw, 9rem);}
.f-sz95 { font-size:9.5rem; font-size: clamp(3.025rem, -0.896rem + 8.63vw, 9.5rem);}
.f-sz100 { font-size:10rem; font-size: clamp(3.05rem, -1.192rem + 9.27vw, 10rem);}
.f-sz110 { font-size:11rem; font-size: clamp(3.1rem, -1.64rem + 10.53vw, 11rem);}
.f-sz120 { font-size:12rem; font-size: clamp(3.2rem, -2.08rem + 11.73vw, 12rem);}
.f-sz125 { font-size:12.5rem; font-size: clamp(3.25rem, -2.3008rem + 12.33vw, 12.5rem); letter-spacing: 0.025em; line-height: 1.2;}


/* padding */
.pt130 { padding-top:7.5rem; padding-top: clamp(7.5rem, 3.8336rem + 7.64vw, 13rem);}
.pt120 { padding-top:7rem; padding-top: clamp(7rem, 3.6672rem + 6.94vw, 12rem);}
.pt110 { padding-top:6.5rem; padding-top: clamp(6.5rem, 3.5008rem + 6.25vw, 11rem);}
.pt100 { padding-top:6rem; padding-top: clamp(6rem, 3.3328rem + 5.56vw, 10rem);}
.pt90 { padding-top:5.5rem; padding-top: clamp(5.5rem, 3.1664rem + 4.86vw, 9rem);}
.pt80 { padding-top:5rem; padding-top: clamp(5rem, 3rem + 4.17vw, 8rem);}
.pt70 { padding-top:4.5rem; padding-top: clamp(4.5rem, 2.8336rem + 3.47vw, 7rem);}
.pt60 { padding-top:4rem; padding-top: clamp(4rem, 2.6672rem + 2.78vw, 6rem);}
.pt50 { padding-top:3.5rem; padding-top: clamp(3.5rem, 2.5008rem + 2.08vw, 5rem);}
.pt40 { padding-top:3rem; padding-top: clamp(3rem, 2.3328rem + 1.39vw, 4rem);}
.pt30 { padding-top:2.5rem; padding-top: clamp(2.5rem, 2.1664rem + 0.69vw, 3rem);}
.pt20 { padding-top:1.5rem; padding-top: clamp(1.5rem, 1.1664rem + 0.69vw, 2rem);}
.pt15 {	padding-top: 15px;}
.pt10 {	padding-top: 10px;}
.pt5 { padding-top: 5px;}

.pb130 { padding-bottom:7.5rem; padding-bottom: clamp(7.5rem, 3.8336rem + 7.64vw, 13rem);}
.pb120 { padding-bottom:7rem; padding-bottom: clamp(7rem, 3.6672rem + 6.94vw, 12rem);}
.pb110 { padding-bottom:6.5rem; padding-bottom: clamp(6.5rem, 3.5008rem + 6.25vw, 11rem);}
.pb100 { padding-bottom:6rem; padding-bottom: clamp(6rem, 3.3328rem + 5.56vw, 10rem);}
.pb90 { padding-bottom:5.5rem; padding-bottom: clamp(5.5rem, 3.1664rem + 4.86vw, 9rem);}
.pb80 { padding-bottom:5rem; padding-bottom: clamp(5rem, 3rem + 4.17vw, 8rem);}
.pb70 { padding-bottom:4.5rem; padding-bottom: clamp(4.5rem, 2.8336rem + 3.47vw, 7rem);}
.pb60 { padding-bottom:4rem; padding-bottom: clamp(4rem, 2.6672rem + 2.78vw, 6rem);}
.pb50 { padding-bottom:3.5rem; padding-bottom: clamp(3.5rem, 2.5008rem + 2.08vw, 5rem);}
.pb40 { padding-bottom:3rem; padding-bottom: clamp(3rem, 2.3328rem + 1.39vw, 4rem);}
.pb30 { padding-bottom:2.5rem; padding-bottom: clamp(2.5rem, 2.1664rem + 0.69vw, 3rem);}
.pb20 { padding-bottom:1.5rem; padding-bottom: clamp(1.5rem, 1.1664rem + 0.69vw, 2rem);}
.pb15 {	padding-bottom: 15px;}
.pb10 {	padding-bottom: 10px;}
.pb5 { padding-bottom: 5px;}

.mb130 { margin-bottom:7.5rem; margin-bottom: clamp(7.5rem, 3.8336rem + 7.64vw, 13rem);}
.mb120 { margin-bottom:7rem; margin-bottom: clamp(7rem, 3.6672rem + 6.94vw, 12rem);}
.mb110 { margin-bottom:6.5rem; margin-bottom: clamp(6.5rem, 3.5008rem + 6.25vw, 11rem);}
.mb100 { margin-bottom:6rem; margin-bottom: clamp(6rem, 3.3328rem + 5.56vw, 10rem);}
.mb90 { margin-bottom:5.5rem; margin-bottom: clamp(5.5rem, 3.1664rem + 4.86vw, 9rem);}
.mb80 { margin-bottom:5rem; margin-bottom: clamp(5rem, 3rem + 4.17vw, 8rem);}
.mb70 { margin-bottom:4.5rem; margin-bottom: clamp(4.5rem, 2.8336rem + 3.47vw, 7rem);}
.mb60 { margin-bottom:4rem; margin-bottom: clamp(4rem, 2.6672rem + 2.78vw, 6rem);}
.mb50 { margin-bottom:3.5rem; margin-bottom: clamp(3.5rem, 2.5008rem + 2.08vw, 5rem);}
.mb40 { margin-bottom:3rem; margin-bottom: clamp(3rem, 2.3328rem + 1.39vw, 4rem);}
.mb30 { margin-bottom:2.5rem; margin-bottom: clamp(2.5rem, 2.1664rem + 0.69vw, 3rem);}
.mb20 { margin-bottom:1.5rem; margin-bottom: clamp(1.5rem, 1.1664rem + 0.69vw, 2rem);}
.mb15 { margin-bottom: 15px;}
.mb10 { margin-bottom: 10px;}
.mb5 { margin-bottom: 5px;}

.mt40 { margin-top:3rem; margin-top: clamp(3rem, 2.3328rem + 1.39vw, 4rem);}
.mt30 { margin-top:2.25rem; margin-top: clamp(2.25rem, 1.7504rem + 1.04vw, 3rem);}
.mt20 { margin-top:1.5rem; margin-top: clamp(1.5rem, 1.1664rem + 0.69vw, 2rem);}
.mt15 { margin-top: 15px;}
.mt10 { margin-top: 10px;}
.mt5 { margin-top: 5px;}



.mr20 {margin-right: 20px;}



.indent-1 {
  padding-left: 1em;
  text-indent: -1em;
}



/* iOS タップバグ回避
========================= */
@media screen and (max-width: 640px) {
	.button a{
		pointer-events: none;
	}
	a:hover:after,
	a:active:after,
	a:focus:after
	a:after {
		display: none;
	}
}

/* ----------------------------------------
   header
------------------------------------------*/
/* .site-header */
.site-header {
	width: 100%;
	/*position: fixed;*/
	position: absolute;
	top: 0;
	/* z-index: 1000; */
	/* z-index: 9998; */
}
.site-header.fixed-header {
	/* 小さくなったスタイルなど表記 */
}

/* header-logo --------------------------*/
.site-header .h-left {
	width: 300px;
	position: fixed;
	top: 30px;
	left: max(2%, 20px);
	z-index: 9998;
	transform-origin: left top;
	transition: transform ease 0.25s;
}
.site-header .h-logo > a {
	display: block;
}
.site-header .h-logo img {
	width: 100%;
}

@media (max-width: 767px) {
	.site-header .h-left {
		width: 250px;
		top: 20px;
	}
}
@media (max-width: 480px) {
	.site-header .h-left {
		width: 180px;
		top: 15px;
		left: 15px;
	}
}

.site-header.fixed-header .h-left {
	transform: scale(0.8);
	top: 10px;
	left: 10px;
}

/* h-lang --------------------------*/
.site-header .h-lang {
	display: flex;
	gap: 15px;
	position: absolute;
	top: 58px;
	left: 380px;
	z-index: 9996
}

.site-header .h-lang .list-lang {
	display: flex;
	align-items: center;
	gap: 5px;
	position: relative;
}
.site-header .h-lang .list-lang .link {
	padding: 10px;
}
.site-header .h-lang .list-lang::before {
	content: "/";
	display: block;
	font-size: 1.6rem;
	color: rgba(0,0,0,0.7);
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	position: absolute;
	left: 50%;
	top: 0;
	margin-left: -0.4em;
	z-index: 1;
}
.site-header .list-lang .current {
	color: #db000a;
}
.site-header .list-lang a {
	color: rgba(0,0,0,0.7);
}
@media (min-width: 768px) {
	.site-header .list-lang a:hover {
		color: #db000a;
	}
}
@media (max-width: 767px) {
	.site-header .h-lang {
		display: none;
	}
}

/* .site-header .h-right --------------------------*/
.site-header .h-right {
	display: block;
	/* width: 32%; */
	/* max-width: 480px; */
	position: absolute;
	top: 37px;
	right: 18%;
	z-index: 9996;
}

@media (max-width: 1350px) {
	.site-header .h-right {
		right: 15%;
	}
}
@media (max-width: 1200px) {
	.site-header .h-right {
		display: none;
	}
}

/* gnav --------------------------*/
.site-header .h-right #gnav {
	display: flex;
	align-items: flex-start;
	column-gap: 65px;
}

/* menulist */
.site-header #gnav .menulist {
	/* display: flex; */
	/* flex-wrap: wrap; */
	/* flex-direction: column; */
	height: 160px;
	/* flex: 1; */
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(4, auto);
	column-gap: 40px;
}
.site-header #gnav .menulist > li {
	/* width: 50%; */
}

.site-header #gnav .menulist > li > a {
	display: inline-block;
	padding-left: 20px;
	padding-right: 10px;
	line-height: 40px;
	font-size: clamp(1rem, 1.5vw, 1.6rem);
	white-space: nowrap;
	position: relative;
}
.site-header #gnav .menulist > li > a::before {
	content: "";
	display: block;
	width: 0;
	height: 3px;
	background-color: #d5000a;
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	z-index: 1;
}
.site-header #gnav .menulist > li > a:hover::before,
.site-header #gnav .menulist > li.current > a::before {
	width: 8px;
}

/* h-contact */
.site-header #gnav .h-contact {
	/* max-width: 150px; */
	/* width: 32%; */
	width: 150px;
	white-space: nowrap;
	padding-top: 7px;
}

@media (max-width: 1350px) {
	.site-header .h-right #gnav {
		column-gap: 30px;
	}
	.site-header #gnav .menulist {
		column-gap: 10px;
	}
	.site-header #gnav .h-contact {
		width: 130px;
	}
}





/* submenu --------------------------*/
.site-header #gnav .menulist > li.has-submenu .submenu {
	/*display: block;*/
	position: absolute;
	top: calc(100% + 20px);
	left: 50%;
	width: 100%;
	z-index: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-50%);
	min-width: 220px;
}
.site-header #gnav .menulist > li.has-submenu.touch .submenu {
	display: none;
}
.site-header #gnav .menulist > li.has-submenu.touch.active .submenu {
	display: block;
}
.site-header #gnav .menulist > li.has-submenu > span {
	white-space: nowrap;
}

.site-header #gnav .menulist > li.has-submenu.active .submenu,
.site-header #gnav .menulist > li.has-submenu:hover .submenu {
	top: 100%;
	z-index: 0;
	opacity: 1;
	visibility: visible;
	display: block;
	transition: all ease 0.28s;
}
.site-header #gnav .menulist > li.has-submenu.active .submenu li,
.site-header #gnav .menulist > li.has-submenu:hover .submenu li {
	background-color: rgba(200,200,200,0.9);
	margin-bottom: 1px;
    transition: all ease 0.28s;
}
.site-header #gnav .menulist > li.has-submenu:hover .submenu li a {
    line-height: 40px;
    padding: 0 20px;
}

.site-header #gnav .menulist > li .submenu li a {
	white-space: nowrap;
}
.site-header #gnav .menulist > li.has-submenu:hover .submenu li:hover {
	background-color: rgba(200,200,200,1);
}


/*---------------------------------------------
 sp-menu
---------------------------------------------*/
.sp-header {
	position: fixed;
	top: 37px;
	right: max(2%, 20px);
	z-index: 9999;
}

/* menu button */
.hamburger-menu.menu-button {
	width: 125px;
	height: 65px;
	position: relative;
	cursor: pointer;
}
body.fixed .site-header .hamburger-menu {
}
.site-header.fixed-header .hamburger-menu {
}

.menu-button .sp-btn-txt {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	transition: opacity ease 0.25s;
}
.fixed-header .menu-button .sp-btn-txt {
	opacity: 0;
}


.menu-button .sp-btn-txt.close  {
	display: none;
}
.menu-button .sp-btn-inner {
	width: 65px;
	height: 65px;
	border-radius: 50%;
	background-color: #fff;
	border: 1px solid rgba(0, 0, 0, 0.2);
	position: absolute;
	top: 0;
	right: 0;
	transition: border-color 0.28s ease;
}

.menu-button .lines {
	width: 12px;
	height: 2px;
	background-color: #000;
	position: absolute;
	transform: translate(-50%, -50%);
	transition: all 0.28s ease;

}
.menu-button .lines:first-child {
	top: calc(50% - 6px);
	left: calc(50% + 5px);
}
.menu-button .lines:nth-child(2) {
	top: 50%;
	left: 50%;
}
.menu-button .lines:nth-child(3) {
	top: calc(50% + 6px);
	left: calc(50% - 5px);
}
/*active*/
.menu-button.active .sp-btn-txt.menu  {
	display: none;
}
.menu-button.active .sp-btn-txt.close  {
	display: block;
}
.menu-button.active .sp-btn-inner  {
	border-color: #d5000a;
}
.menu-button.active .lines {
	background-color: #d5000a;
}
.menu-button.active .lines:first-child,
.menu-button.active .lines:nth-child(3) {
	top: 50%;
	left: 50%;
}
.menu-button.active .lines:first-child {
	transform: translate(-50%, -50%) rotate(-45deg);
}
.menu-button.active .lines:nth-child(2) {
	transform: translate(-50%, -50%) scale(0, 1);
}
.menu-button.active .lines:nth-child(3) {
	transform: translate(-50%, -50%) rotate(45deg);
}

/* spnav */
.spnav.hide-nav {
	opacity: 0;
	visibility: hidden;
}
.spnav {
	width: 100%;
	height: 100vh;
	height: 100dvh;
	position: fixed;
	z-index: 9997;
	pointer-events: none;
	transition: .5s cubic-bezier(.77,0,.175,1);

	/*上から
	bottom: 101%;
	right: 0;
	left: 0;*/

	/*左から
	top: 0;
	bottom: 0;
	right: 101%;*/

	/*右から*/
	top: 0;
	bottom: 0;
	left: 101%;

	/*下から
	top: 101%;
	right: 0;
	left: 0;*/
}

.spnav.show-nav {
	pointer-events: auto;
	transform: scaleY(1);
	visibility: visible;
	opacity: 1;

	/*上から
	bottom: 0;*/

	/*左から
	right: 0;*/

	/*右から*/
	left: 0;

	/*下から
	top: 0;*/
}
.wrap-spnav {
	width: 100%;
	background-color: #fff;
	position: relative;
	z-index: 2;
}
.wrap-spnav .inner-spnav {
	width: 100%;
	height: 100vh;
	height: 100dvh;
	box-sizing: border-box;
	overflow: auto;
}
.wrap-spnav .sp-menu {
	padding-top: 145px;
	padding-left: min(6.3%, 100px);
}

/* sp-lang */
.wrap-spnav .sp-menu .sp-lang {
	display: flex;
	align-items: center;
	column-gap: 10px;
	padding-bottom: 60px;
}
.wrap-spnav .sp-lang .list-lang{
	display: flex;
	align-items: center;
	gap: 15px;
	position: relative;
}
.wrap-spnav .sp-lang .list-lang::before {
	content: "/";
	color: rgba(0, 0, 0, 0.7);
	font-size: clamp(1.8rem, 1.6672rem + 0.28vw, 2rem);
	font-family: 'Playfair Display', serif;
	font-weight: 700;
	position: absolute;
	left: 50%;
	top: 0;
	margin-left: -0.4em;
	z-index: 0;
}
.wrap-spnav .sp-lang .list-lang .link {
	padding: 10px;
}
.wrap-spnav .list-lang a {
	color: rgba(0,0,0,0.7);
}
.wrap-spnav .list-lang .current {
	color: #db000a;
}



.wrap-spnav .sp-menunav {
	width: 100%;
}
.wrap-spnav .sp-menulist > li > a {
	display: block;
	position: relative;
	border-top: 1px solid rgba(0, 0, 0, 0.2);
	padding: 40px 20px 40px 60px;
}
.wrap-spnav .sp-menulist > li:last-child > a {
	border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.wrap-spnav .sp-menulist > li > a:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 20px;
	width: 8px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: #ccc;
	transform: translateY(-50%);
	transition: background-color 0.28s ease;
}
.wrap-spnav .sp-menulist > li.current > a:before,
.wrap-spnav .sp-menulist > li > a:hover:before {
	background-color: #d5000a;
}

.wrap-spnav .sp-menulist > li .txt-en {
	padding-bottom: 15px;
}

.wrap-spnav .sp-menulist > .privacy > a {
	transition: opacity 0.28s ease;
}
.wrap-spnav .sp-menunav .privacy > a:hover {
	opacity: 0.8;
}
.wrap-spnav .sp-contact {
	background-color: #000;
}
.wrap-spnav .sp-info {
	padding-left: 40px;
}
.spnav .spnav-mask {
	width: 100vw;
	height: 100vh;
	display: none;
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 0;
}
.spnav.show-nav .spnav-mask {
	display: block;
}
@media (min-width: 1025px) {
	.wrap-spnav .inner-spnav {
		display: grid;
		grid-template-columns: auto 1fr;
		grid-template-rows: 1fr auto;
		overflow: visible;
	}
	.wrap-spnav .sp-menu {
		grid-column: 2;
		grid-row: 1 / 3;
		border-left: 7px solid #d5000a;
		overflow: auto;
		padding-bottom: 0;
	}
	.wrap-spnav .sp-menunav > *:last-child {
		padding-bottom: 100px;
	}
	.wrap-spnav .sp-contact {
		grid-column: 1;
		grid-row: 2;
		padding-left: 40px;
		padding-right: 40px;
		overflow: auto;
	}
	.wrap-spnav .sp-info {
		grid-column: 1;
		grid-row: 1;
		padding-left: 40px;
        padding-right: 40px;
		margin-top: auto;
		padding-top: 145px;
	}
}
@media (min-width: 768px) {
	.wrap-spnav .list-lang a:hover {
		color: #db000a;
	}
}
@media (max-width: 1024px) {
	.hamburger-menu.menu-button {
		width: 115px;
	}
	.wrap-spnav .inner-spnav > *:last-child {
		padding-bottom: 100px;
		padding-right: 5%;
	}
	.wrap-spnav .sp-menu {
		border-bottom: 7px solid #d5000a;
		padding-left: 5%;
		padding-right: 5%;
	}
	.wrap-spnav .sp-menu .sp-lang {
		padding-bottom: 40px;
	}
	.wrap-spnav .sp-menulist > li > a {
		padding: 30px 20px 30px 60px;
	}
	.wrap-spnav .sp-menunav > .privacy {
		text-align: right;
	}
	.wrap-spnav .sp-contact {
		padding-left: 5%;
		padding-right: 5%;
	}
}
@media (max-width: 767px) {
	.sp-header {
		top: 20px;
	}
	.wrap-spnav .sp-menu .sp-lang {
		padding-bottom: 30px;
	}
	.wrap-spnav .sp-menulist > li > a {
	    padding: 20px 0 20px 40px;
	}
	.wrap-spnav .sp-menulist > li > a:before {
	    left: 15px;
	}
	.wrap-spnav .sp-menulist > li .txt-en {
		padding-bottom: 5px;
	}
	.wrap-spnav .sp-menunav > .privacy a {
		font-size: 1.3rem;
	}
	.wrap-spnav .sp-contact .btnarea .btn-txt {
		font-size: 2.2rem;
	}
	.wrap-spnav .inner-spnav > *:last-child {
		padding-bottom: 60px;
	}
}

@media (max-width: 480px) {
	.sp-header {
		top: 10px;
		right: 10px;
	}
	.wrap-spnav .sp-menu {
		padding-top: 95px;
	}
	.sp-header {
		transform: scale(0.8);
		transform-origin: right top;
	}
	.wrap-spnav .sp-info {
		padding-left: 5%;
	}
}
@media (max-width: 375px) {
	.wrap-spnav .sp-contact .ttl .ttl-en {
		font-size: 9vw;
	}
}

/*---------------------------------------------
PCメニューとSPボタン切り替え
---------------------------------------------*/
@media (min-width: 768px) {
	.spnav {
		/* display: none; */
	}
}
@media (max-width: 767px) {
	.sp-header {
		/* display: block; */
	}
	.site-header .pc-menu {
		/* display: none; */
	}
}



/*---------------------------------------------
 共通スタイル
---------------------------------------------*/

/* ページタイトル ------------------------*/
.pagettl {

}
.pagettl .ttl-en {
	font-size: min(16vw, 23rem);
	line-height: 1;
	padding-left: 5%;
	padding-right: 5%;
}
.pagettl .ttl-jp {
	/* position: relative; */
	/* padding-left: 5%; */
}
.pagettl .ttl-jp:before {
	content:"";
	display: block;
	width: 0;
	height: 5px;
	background-color: #d5000a;
	/* position: absolute; */
	/* top: 50%; */
	/* left: 0; */
	/* margin-top: -2.5px; */
	/* z-index: 0; */

	animation-name: pgttl-border;
	animation-duration: 0.8s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	animation-delay: 0.5s;
}
@keyframes pgttl-border {
	0% {
		width: 0;
	}
	100% {
		width: 100%;
	}
}


.pagettl .ttl-jp span {
	display: inline-block;
	background-color: #fff;
	padding: 0 3%;
	position: relative;
	left: -3%;
}
.pagettl .topic-path {
	display: flex;
    align-items: center;
    justify-content: flex-end;
}
.pagettl .topic-path li:not(:first-child) {
	padding-left: 55px;
	position: relative;
}
.pagettl .topic-path li:not(:first-child):before {
	content: "";
	display: block;
	width: 20px;
	height: 1px;
	background-color: #bfc0c3;
	position: absolute;
	left: 18px;
	top: 50%;
	z-index: 1;
}

@media (max-width: 480px) {
	.pagettl .ttl-en {
		margin-bottom: 35px;
	}
	.pagettl .topic-path li:not(:first-child) {
		padding-left: 35px;
	}
	.pagettl .topic-path li:not(:first-child):before {
		width: 15px;
		left: 9px;
	}
}

/* btn ----------------------------*/

/* ---------------------------------------------------------
btn共通
--------------------------------------------------------- */
.btnarea {
	display: flex;
	gap:20px;
}
.btnarea.btn-center {
	justify-content: center;
}
.btnarea.btn-right {
	justify-content: flex-end;
}

/* btn ----------------- */
.btn {
	display: inline-block;
	vertical-align: middle;
	width: 100%;
	cursor: pointer;
/*	overflow: hidden;*/
	position: relative;
	transition: all ease 0.28s;
}
/* ボタン内容 */
.btn-cont {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 5px 10px;
	line-height: 1.4;
	height: 100%;
	position: relative;
	z-index: 1;
}



/* ---------------------------------------------------------
 option
--------------------------------------------------------- */
/* ボタンの幅 */
.btnW-s {max-width: 160px;}
.btnW-m {max-width: 280px;}
.btnW-l {max-width: 380px;}
@media (max-width: 480px) {
	.btnW-l {
		max-width: none;
	}
    .btnarea:has(.btnW-s),
	.btnarea:has(.btnW-m) {
        justify-content: center; 
    }
}

/* ボタンの高さ */
.btnH-s {min-height: 54px;}
.btnH-m {min-height: 64px;}
.btnH-l {min-height: 100px;}
@media (max-width: 480px) {
	.btnH-l {
		min-height: 80px;
	}
}

.btn-map {
	min-height: 36px;
	width: 140px;
}
.btn-map .btn-cont {
	padding-right: 0;
}


/* ---------------------------------------------------------
btn-style
--------------------------------------------------------- */
/* btn-style01（背景） */
.btn.btn-style01 {
	/* border: 1px solid transparent; */
/*	background-color: #000;*/
	color: #fff;
	border-radius: 99999px;
	background-image: linear-gradient(0deg, rgba(0, 0, 0, 1) 50%, rgba(213, 0, 10, 1) 50%);
}
.btn.btn-style01:before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: #000;
	clip-path: polygon(0 0, 100% 0, 100% 51%, 0% 51%);
	position: absolute;
	left: 0;
	top: 0;
	z-index: 0;
	border-radius: 9999px;
	perspective: 500px;
	transform: rotateX(0);
	transition: transform ease 0.28s, background-color ease 0.28s;
}
.btn.btn-style01 .btn-cont {
	padding: 10px 30px;
	justify-content: center;
}

 @media (min-width: 768px) {
	.btn.btn-style01:hover:before {
		background-color: #d5000a;
		transform: rotateX(180deg);
	}
}

/* btn-style02（枠線） */
.btn.btn-style02 {
	background-color: transparent;
	border-radius: 100px;
	transition: color 0.28s ease, background-color 0.28s ease;
}
.btn.btn-style02.blk {
	color: #000;
	border: 1px solid #000;
}
.btn.btn-style02.wht {
	color: #fff;
	border: 1px solid #fff;
}

@media (min-width: 768px) {
	.btn.btn-style02.blk:hover {
		color: #fff;
		background-color: #000;
	}
	.btn.btn-style02.wht:hover {
		color: #000;
		background-color: #fff;
	}
}


/* btn-style03（CONTACT） */
.btn.btn-style03 {
	/* border: 1px solid transparent; */
	background-color: #d5000a;
	color: #fff;
	border-radius: 100px;
}
.btn.btn-style03 .btn-cont {
	padding: 10px 30px;
	justify-content: center;
}

/* btn-style04（more） */
.btn.btn-style04 {
	width: fit-content;
}
.btn.btn-style04 .btn-cont {
	padding: 0;
}




/* ---------------------------------------------------------
アイコンボタン：デザイン案に合わせて編集
--------------------------------------------------------- */
/*icon-共通*/
.btn .icon {
	/* width: 1.2em; */
	/* height: 1.2em; */
	background-size: contain;
}

/*ボタン付き--------------------------*/
/*icon-left*/
.icon-left .btn-cont  {
	padding-left: 30px;
}
.icon-left .icon {
	position: absolute;
	top: 50%;
	left: 10px;
	transform: translateY(-50%);
}
/*icon-right*/
/* .icon-right .btn-cont  {
	padding-right: 55px;
}
.icon-right .icon {
	position: absolute;
	top: 50%;
	right: 20px;
	transform: translateY(-50%);
} */

/*文字付き--------------------------*/
/*icon-tleft*/
/* .icon-tleft .btn-cont  {
	justify-content: flex-start;
	column-gap: 10px;
}
.icon-tleft .btn-cont .btn-txt {
	max-width: calc(100% - (1.2em + 10px));
} */
/*icon-tcenter*/
/* .icon-tcenter .btn-cont  {
	justify-content: center;
	column-gap: 10px;
}
.icon-tcenter .btn-cont .btn-txt {
	max-width: calc(100% - (1.2em + 10px));
} */
/*icon-tright*/
/* .icon-tright .btn-cont  {
	justify-content: flex-end;
	column-gap: 10px;
}
.icon-tright .btn-cont .btn-txt {
	max-width: calc(100% - (1.2em + 10px));
} */


/*アイコン各種--------------------------*/
/* Instagram(画像アイコン)*/
.icon {
	background-repeat: no-repeat;
	background-position: center;
}

.icon.i-map {
	width: 13px;
	height: 17px;
	transition: background-image 0.28s ease;
}
.blk .icon.i-map {
	background-image: url(../img/common/icon_map_bk.svg);
}
.wht .icon.i-map {
	background-image: url(../img/common/icon_map_wh.svg);
}
.blk .icon.i-map {
	background-image: url(../img/common/icon_map_bk.svg);
}

@media (min-width: 768px) {
	.btn-map.blk:hover .icon.i-map {
		background-image: url(../img/common/icon_map_wh.svg);
	}
	.btn-map.wht:hover .icon.i-map {
		background-image: url(../img/common/icon_map_bk.svg);
	}
}

.circle-arrow {
	position: relative;
	display: block;
	width: 40px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: #d5000a;
}
.circle-arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 7px;
	aspect-ratio: 1 / 1;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	transform: translateX(-50%) rotate(45deg);
	transform-origin: top right;
}
.icon.icon-tright {
	margin-left: 20px;
}



/* --------------------------------------
セクションスタイル
-------------------------------------- */
/* セクションタイトル */
.secttl-block::before {
  content: "";
  display: block;
  width: 100%;
  height: 5px;
  background-color: #d5000a;
  position: absolute;
  right: 0;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform ease 1s;
}

.secttl-block.active::before {
  transform: scaleX(1);
}


.secttl-en {
  display: inline-block;
  font-size: clamp(0rem, 13.4vw, 20rem);
  line-height: 0.86;
  background-color: #fff;
}

.secttl-en .letter {
	position: relative;
}
.secttl-en .letter::before {
	content: "";
	display: block;
	width: 100%;
	height: 100%;
	background-color: #fff;
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 1;
	transition: width ease 0.75s;
}
.active .secttl-en .letter::before {
	width: 0;
}


/* 縦書きセクション ------------- */
/* vertical-ttl-sec */
.vertical-ttl-sec {
	display: flex;
	position: relative;
}
.vertical-ttl-sec .secttl-block {
	background-color: #fff;
	padding-right: min(5.2%, 90px);
}
.vertical-ttl-sec .secttl-block::before {
	top: 0;
	margin-top: 0;
}
.vertical-ttl-sec .contents-block {
	padding-top: min(9vw, 130px);
	flex: 1;
}

@media (min-width: 768px) {
	.vertical-ttl-sec .secttl-en .letter::before {
		transition: height ease 0.75s;
		width: 100%;
	}
	.vertical-ttl-sec .active .secttl-en .letter::before {
		height: 0;
	}
}

@media (max-width: 767px) {
	.vertical-ttl-sec {
		display: block;
		position: static;
	}
	.vertical-ttl-sec .secttl-block {
		background-color: transparent;
		padding-right: 0;
		position: relative;
	}
	.vertical-ttl-sec .secttl-block::before {
	    top: 58%;
	}
	.vertical-ttl-sec .secttl-block .secttl-en {
		padding-right: min(11%, 70px);
	}
}

@media (max-width: 480px) {
	.vertical-ttl-sec .secttl-block::before {
	    top: 45%;
	}
	.vertical-ttl-sec > .contents-block {
		padding-top: 10px !important;
	}
}


/* 横書きセクション ------------- */
/* holizon-ttl-sec */
.holizon-ttl-sec {
}
.holizon-ttl-sec .secttl-block {
	position: relative;
}
.holizon-ttl-sec .secttl-block::before {
	top: 58%;
}
.holizon-ttl-sec .secttl-block .secttl-en {
	padding-right: min(11%, 70px);
}

@media (max-width: 480px) {
	.holizon-ttl-sec .secttl-block::before {
		top: 45%;
	}
    .holizon-ttl-sec .secttl-block {
        margin-bottom: 10px;
    }
}


/* inner-pl ------------- */
.inner-pl {
/*  padding-left: min(17.5vw, 265px);*/
}
/*
@media (min-width: 768px) {
  .inner-pl.secttl-inner {
    position: relative;
  }
  .inner-pl.secttl-inner.secttl-inner::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    z-index: -1;
		width: calc(100% - min(17.5vw, 265px));
    height: 5px;
    background-color: #d5000a;
  }
  .inner-pl.secttl-inner .secttl-block {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
  }
  .inner-pl.secttl-inner .secttl-en {
    position: relative;
    background-color: #fff;
    padding-right: 0.25em;
    margin-left: -0.07em;
    margin-top: -0.06em;
  }
  .inner-pl.secttl-inner .secttl-en::before {
    display: none;
  }
}
@media (max-width: 767px) {
  .inner-pl {
    padding-top: 0;
    padding-left: 0;
  }
  .inner-pl.secttl-inner .secttl-block {
    width: 100%;
  }
}
*/

/* --------------------------------------
generic-list
-------------------------------------- */
.generic-list > .list-item {
	display: flex;
	flex-wrap: wrap;
	border-bottom: 1px solid rgba(0, 0, 0, 0.15);

	padding-top: clamp(2.5rem, 2.1664rem + 0.69vw, 3rem);
	padding-bottom: clamp(2.5rem, 2.1664rem + 0.69vw, 3rem);

    padding-left: 10px;
	padding-right: 10px;
}
.generic-list > .list-item > .ttl {
}
.generic-list > .list-item > .desc {
	flex: 1;
}
@media (min-width: 767px) {
	.generic-list > .list-item > .ttl a:hover {
		opacity: 0.8;
	}
}
@media (max-width: 1024px) {
	.generic-list.sp-l > .list-item {
		padding-left: 5px;
		padding-right: 5px;
	}
	.generic-list.sp-l > .list-item > .ttl {
		width: 100%;
		padding-bottom: 5px;
	}
}
@media (max-width: 767px) {
	.generic-list.sp-m > .list-item > .desc {
		padding-right: 0;
	}
}

/* --------------------------------------
dot-list
-------------------------------------- */
.dot-list > li {
	position: relative;
	padding-left: 1em;
	line-height: 1.5;
}
.dot-list > li:not(:last-child) {
	margin-bottom: 15px;
}
.dot-list > li::before {
	content: "";
	position: absolute;
	top: 0.45em;
	left: 0;
	display: block;
	width: 11px;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background-color: #cacaca;
}
.dot-list > li .indent-number {
  padding-left: 1.75em;
  text-indent: -1.75em;
}
.dot-list > li .indent-number:not(:last-child) {
  margin-bottom: 15px;
}

@media (max-width: 767px) {
	.dot-list > li::before {
		top: 0.4em;
	}
}

@media (max-width: 480px) {
	.dot-list > li:not(:last-child) {
		margin-bottom: 10px;
	}
	.dot-list > li::before {
		top: 0.3em;
	}
	.dot-list > li .indent-number:not(:last-child) {
		margin-bottom: 10px;
	}
}


/* --------------------------------------
c-number-list
-------------------------------------- */
.c-number-list {
  counter-reset: number 0;
}
.c-number-list .item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  column-gap: 20px;
}
.c-number-list .item:before {
  counter-increment: number 1;
  content: counter(number, decimal-leading-zero);
  font-family: 'Playfair Display';
  font-weight: 400;
  font-size:2.6rem; font-size: clamp(1.725rem, 1.2rem + 1.17vw, 2.6rem);
  letter-spacing: 0.05em;
  color: #fff;
  width: 70px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background-color: #000;
  display: grid;
  place-content: center;
  padding-bottom: 0.2em;
}
.c-number-list .item:not(:first-child) {
  margin-top: 25px;
}
@media (max-width: 767px) {
  .c-number-list .item:before {
    width: 60px;
  }
}
@media (max-width: 575px) {
  .c-number-list .item:before {
    width: 50px;
  }
}
@media (max-width: 480px) {
  .c-number-list .item {
    grid-template-columns: auto;
    row-gap: 10px;
  }
  .c-number-list .item:before {
    justify-self: center;
  }
  .c-number-list .item .ttl {
    width: fit-content;
		margin-left: auto;
		margin-right: auto;
  }
}

/* --------------------------------------
プライバシーポリシー
-------------------------------------- */
.txt-privacy em {
	font-style: normal;
}
