@charset "utf-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital@1&display=swap');
#contract {
  	font-family: -apple-system, BlinkMacSystemFont, Roboto, "游ゴシック体", YuGothic, "Yu Gothic Medium", Meiryo, メイリオ, "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;
    color: #222;
    font-size: 16px;
}
#contract header,#contract footer{
	font-family: 'Lucida Grande', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', Meiryo, メイリオ, sans-serif;
}

main#brand {
    line-height: 1.8;
    letter-spacing: 0.08em;
}

main#brand * {
	box-sizing: border-box;
}

/*main#brand a {
    -webkit-transition: all 0.3s ease-in-out 0.2s;
    transition: all 0.3s ease-in-out 0.2s;
} */

main#brand a:hover, main#brand a:focus {
	text-decoration: none;
	outline: 0;
}

main#brand img {
    max-width: 100%;
}

.page_inner {
    max-width: 1200px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

@media (min-width: 64em) {
	#contract:not(.lp2022) .page_inner {
		width: calc(100% - 80px);
	}
}
@media (min-width: 75em) {
	#contract.lp2022 .page_inner {
		width: calc(100% - 80px);
	}
}

.w_1024 {
    max-width: 1024px;
}
#contract.lp2022 .w_1024 {
    max-width: 1200px;
}

.text_center {
    text-align: center;
}

.text_left {
    text-align: left;
}

.text_right {
    text-align: right;
}

/*section */
section {
    position: relative;
    padding: 3rem 0
}

@media (min-width: 64em) {
	#contract:not(.lp2022) section {
		position: relative;
		padding: 5rem 0
	}
}
@media (min-width: 75em) {
	#contract.lp2022 section {
		position: relative;
		padding: 5rem 0
	}
}

/* section_tittle */
.section_tittle {
    margin-bottom: 3rem;
}

.section_tittle p {
    position: relative;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.section_tittle h2 {
	position: relative;
	font-size: 16px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: 0.08em;
}
	
.section_tittle p.subtitle {
    font-size: 16px;
    text-transform: none;
}

@media (max-width: 767px) {
.section_tittle {
    margin-bottom: 2rem;
}

.section_tittle p {
    font-size: 26px;
    letter-spacing: 0.05em;
}

.section_tittle h2 {
    letter-spacing: 0.05em;
}
}

/* color */ 
.color-primary {
    color: #944c82;    
 }
    
.color-accent {
    color: #ff7800;    
 }
    
.bgcolor-secondary {
    background-color: #fdf7f9;    
 }

/* button */
.button {
    width: 400px;
    max-width: 100%;
}

.button a {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 60px;
    padding: 10px 38px 10px 14px;
    background-color: transparent;
    font-size: 14px;
    color: #222;
    border: 1px solid #b5b8bb;
    transition: all .4s;
}

.button a::after {
    content: "";
    position: absolute;
    display: block;
    right: 1.5em;
    width: 0.5em;
    height: 0.5em;
    top: 50%;
    margin-top: -0.34em;
    border-top-width: 1px;
    border-top-style: solid;
    border-right-width: 1px;
    border-right-style: solid;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
    transition: all .4s;
}
    
.button a:hover {
	border: 1px solid #222;
} 

.button a:hover::after {
    right: 1em;
}

.button.white a {
    color: #fff;
    border: 1px solid #b5b8bb;
}

.button.white a:hover {
	border: 1px solid #fff;
}

@media (max-width: 1023px) {
	#contract:not(.lp2022) .button {
		margin-right: auto;
		margin-left: auto;
	}
}
@media (max-width: 1199px) {
	#contract.lp2022 .button {
		margin-right: auto;
		margin-left: auto;
	}
}

/* mainv */
#mainv {
    position: relative;
    width: 100%;
    height: 500px;
    background-image: url("/web/jp/contract/brand/images/mainv_bg.png");
	background-size: cover;
    background-position: center bottom; 
}

#mainv::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: #1d1415;
	opacity: 0.5;
}

#mainv .page_inner {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    height: 100%;
}

.mainv_wrap {
    width: 100%;
    padding-bottom: 2rem;
    z-index: 1;
}

.mainv_wrap h1 {
    margin-bottom: 1rem;
    color: #fff;
	font-size: 18px;
    font-weight: bold;
    line-height: 1.2; 
    text-align: center;
}

.mainv_wrap h1 span {
    display: block;
    font-size: 64px;
    font-family: 'Cormorant', serif;
    /*font-family: YuMincho, "Yu Mincho", "Hiragino Mincho ProN", "serif";*/
    letter-spacing: 0.1em;
} 

.mainv_wrap p {
    color: #fff;
    font-size: 16px;
    line-height: 1.6;
    font-weight: bold;
    text-align: left;
}

@media (min-width: 48em) {
.mainv_wrap {
    max-width: 690px;
    padding-bottom: 3rem;
}

.mainv_wrap h1 {
    letter-spacing: 0.1em;
}
    
.mainv_wrap p {
    font-size: 18px;
    line-height: 2;
}
}

@media (min-width: 64em) {
	#contract:not(.lp2022) #mainv .page_inner {
		margin-top: 88px;
	}
	#contract.lp2022 #mainv .page_inner {
		margin-top: 72px;
	}
}

/*  */
.concept_wrap .concept_img {
    padding-top: 70vw;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.concept_wrap .concept_img.concept01 {
    background-image: url(/web/jp/contract/brand/images/concept01.jpg);
}

.concept_wrap .concept_img.concept02 {
    background-image: url(/web/jp/contract/brand/images/concept02.jpg);
}

.concept_wrap .concept_img.concept03 {
    background-image: url(/web/jp/contract/brand/images/concept03.jpg);
}

.concept_wrap .concept_img.concept04 {
    background-image: url(/web/jp/contract/brand/images/concept04.jpg);
}

.concept_wrap .concept_img.concept05 {
    background-image: url(/web/jp/contract/brand/images/concept05.jpg);
}

.concept_wrap .concept_img.concept06 {
    background-image: url(/web/jp/contract/brand/images/concept06.jpg);
}

.concept_wrap .concept_text {
    margin-top: 2rem;
}

.concept_wrap .concept_text .discription > div + div {
    margin-top: 2rem;
}

.concept_wrap .concept_text .discription h3 {
    font-weight: bold;
    line-height: 1.6;
    margin-bottom: 1rem;
    padding-bottom: 4px;
    border-bottom: 1px dotted #333;
}

.concept_wrap .concept_text .discription p {
    line-height: 2.0;
}

@media (min-width: 64em) {
	#contract:not(.lp2022) .concept_wrap {
		display: flex;
		align-items: center;
	}

	#contract:not(.lp2022) .concept_wrap .concept_img {
		order: 2;
		width: calc(100% - 500px + 50vw);
		padding-top: 640px;
		margin-right: calc(50% - 50vw);
	}

	#contract:not(.lp2022) .concept_wrap.left .concept_img {
		box-shadow: 30px 30px 25px -20px rgb(47 72 88 / 40%);
	} 

	#contract:not(.lp2022) .concept_wrap .concept_text {
		order: 1;
		flex-shrink: 0;
		width: 500px;
		margin-top: 0;
		padding-right: 6rem;
	}

	#contract:not(.lp2022) .concept_wrap.right .concept_img {
		order: 1;
		margin-right: 0;
		margin-left: calc(50% - 50vw);
		box-shadow: -30px 30px 25px -20px rgb(47 72 88 / 40%);
	}

	#contract:not(.lp2022) .concept_wrap.right .concept_text {
		order: 2;
		padding-right: 0;
		padding-left: 6rem;
	}
}

@media (min-width: 72em) {
	#contract.lp2022 .concept_wrap {
		display: flex;
		align-items: center;
	}

	#contract.lp2022 .concept_wrap .concept_img {
		order: 2;
		width: calc(100% - 500px + 50vw);
		padding-top: 640px;
		margin-right: calc(50% - 50vw);
	}

	#contract.lp2022 .concept_wrap.left .concept_img {
		box-shadow: 30px 30px 25px -20px rgb(47 72 88 / 40%);
	} 

	#contract.lp2022 .concept_wrap .concept_text {
		order: 1;
		flex-shrink: 0;
		width: 500px;
		margin-top: 0;
		padding-right: 6rem;
	}

	#contract.lp2022 .concept_wrap.right .concept_img {
		order: 1;
		margin-right: 0;
		margin-left: calc(50% - 50vw);
		box-shadow: -30px 30px 25px -20px rgb(47 72 88 / 40%);
	}

	#contract.lp2022 .concept_wrap.right .concept_text {
		order: 2;
		padding-right: 0;
		padding-left: 6rem;
	}
}

/* sec_cta */
.sec_cta {
    position: relative;
    padding: 4rem 0;
}

.sec_cta::after {
    content: "";
    display: block;
    width: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    background-color: #1d1415;
    opacity: .7;
}

.cta_image {
    position: absolute;
    width: 100%;
    top: 0;
    bottom: 0;
    left: 0;
}

.cta_image img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}

.cta_wrap {
    position: relative;
    display: block;
    margin: 0 auto;
    padding-bottom: 3rem;
    z-index: 1;
}

.cta_text {
    display: block;
    max-width: 620px;
    margin-right: auto;
    margin-left: auto;
}

.cta_text p {
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    line-height: 2.2;
}
 
.sec_cta .button {
    margin-top: 2rem;
}

.sec_cta .button a {
    height: 60px;
    font-size: 16px;
    font-weight: bold;
}

.sec_cta .button.white a {
    color: #fff;
    background-color:rgba(0,0,0,.4)
}

.sec_cta .button.white a:hover {
    background-color:rgba(0,0,0,.6)
}

@media (min-width: 64em) {
	#contract:not(.lp2022) .sec_cta {
		padding: 8rem 0;
	} 

	#contract:not(.lp2022) .cta_wrap {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		padding-bottom: 1rem;
	}

	#contract:not(.lp2022) .cta_wrap .cta_text {
		flex: 1;
		padding-right: 4rem;
	}

	#contract:not(.lp2022) .cta_text p {
		font-size: 18px;
	}    

	#contract:not(.lp2022) .sec_cta .button {
		margin-top: 0;
	}

	#contract:not(.lp2022) .sec_cta .button a {
		height: 80px;
		font-size: 18px;
	}
}
@media (min-width: 75em) {
	#contract.lp2022 .sec_cta {
		padding: 8rem 0;
	} 

	#contract.lp2022 .cta_wrap {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		padding-bottom: 1rem;
	}

	#contract.lp2022 .cta_wrap .cta_text {
		flex: 1;
		padding-right: 4rem;
		margin-left: 0;
	}

	#contract.lp2022 .cta_text p {
		font-size: 18px;
	}    

	#contract.lp2022 .sec_cta .button {
		margin-top: 0;
	}

	#contract.lp2022 .sec_cta .button a {
		height: 80px;
		font-size: 18px;
	}
}

/* Animation */
.border {
    position: relative;
    display: block;
    border-bottom: 1px solid #fff;
    z-index: 1;
}

.fadelinear {
    animation: border_Anime 1s linear forwards;
}

@keyframes border_Anime {
  0%{
    width: 0%;
  }
  100%{
    width: 100%;
  }
}
   
/* commont 調整 */
.drawer-menu-item {
    padding: 0.8em;
}

#btn_Pagetop a::after {
    left: 13px;
}