@charset "utf-8";

header{
	position: absolute;
	z-index: 1000;
  width: 100%;
  box-sizing: border-box;
  top: 0;
  color: var(--c_white);
  pointer-events: none;
}
header::before{
  content: "";
  display: block;
  width: 100%;
  height: 200%;
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
  background: #000000;
  background: linear-gradient(180deg, rgba(0, 0, 20, 0.75) 0%, rgba(0, 0, 20, 0) 100%);
  display: none;
}
header._bg{
	background-color: var(--c_bg_header);
}
header > *{
  position: relative;
  z-index: 2;
}
header a{
  pointer-events: all;
}
header .area{
  width: 100%;
  padding: 1em;
  box-sizing: border-box;
}
header .area .logo{
  padding-left: 1em;
}
header .area .logo img{
  height: auto;
}
header .area .logo .rep{
  padding-left: 20%;
  white-space: nowrap;
}
@media screen and (max-width: 1400px){
  header{
    --font_size: 14;
    font-size: calc(var(--font_size) * 1px);
  }
  header .area .logo{
    min-width: 18em;
    max-width: 22vw;
  }
}
@media screen and (max-width: 1100px){
  header{
    /* background-color: var(--c_bg_header); */
  }
  header .area{
    padding: .75em 1em 1.25em 1em;
  }
}
@media screen and (max-width: 520px){
	header{

	}
  header .area{
    padding: .75em 1em 1em 1em;
  }
  header .area .logo{
    min-width: 0;
    max-width: 12.5em;
    padding-left: 0;
  }
  header .area .logo .rep{
    padding-left: .25em;
    font-size: 3vw;
    white-space: nowrap;
    margin-top: .25em;
  }
}

/**********************************************************************/
/* ヘッドライン
/**********************************************************************/

header .headline{
  padding: .1em 1em;
  border-bottom: 1px solid rgba(255,255,255,.2);
}
header .headline a{
  display: inline-block;
}
header .headline .link{
  display: inline-flex;
  align-items: center;
  margin: 0 1em;
}
header .icon{
  display: inline-flex;
  align-items: center;
}
@media screen and (max-width: 520px){
  header .headline{
    padding: .1em 0;
    font-size: 3.3vw;
  }
  header .headline .link{
    margin: 0 .5em;
  }
}

/*--------------------------------------------------------------------*/
/*tel*/
header .headline .tel{
  pointer-events: all;
}
header .headline .tel a{
  margin-top: .1em;
}

/*--------------------------------------------------------------------*/

@media screen and (min-width: 1100px){
  header .menu{
    display: none;
  }
}
@media screen and (max-width: 1100px){
  header .menu{
    pointer-events: all;
    position: relative;
    align-items: stretch;
    border-radius: 3px;
    display: inline-block;
    z-index: 3;
    margin-left: auto;
  }
  header .menu .button{
    position: relative;
    z-index: 1100;
    width: 22px;
    height: 18px;
    margin: 10px;
  }
  header .menu .button .line{
    display: inline-block;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
    width: 100%;
    height: 2px;
    background-color: var(--c_white);
    border-radius: 4px;
    transition: all .3s;
  }
  header .menu .button .line:nth-of-type(1){
    top:0;
  }
  header .menu .button .line:nth-of-type(2){
    top: 0;
    bottom: 0;
  }
  header .menu .button .line:nth-of-type(3){
    bottom: 0;
  }
  header.active .menu .button .line:nth-of-type(1){
    top: 0;
    bottom: 0;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
  }
  header.active .menu .button .line:nth-of-type(2){
    opacity: 0;
  }
  header.active .menu .button .line:nth-of-type(3){
    top: 0;
    bottom: 0;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
  }
}
@media screen and (max-width: 520px){
  header .menu .button{
    width: 18px;
    height: 14px;
  }
}

/**********************************************************************/
/* パターン出し分け
/**********************************************************************/

header.scrolled{
  position: fixed;
  transform: translate(0, -120%);
  background-color: var(--c_bg_header);
}

/*--------------------------------------------------------------------*/
/* on content */

header.scrolled.oncontent{
  transform: translate(0, 0%);
  transition: transform .6s ease-in-out;
}
header.scrolled.oncontent .headline{
  font-size: 12px;
}
header.scrolled.oncontent .area{
  padding: .2em;
}
header.scrolled.oncontent .image{
  max-width: 240px;
}
@media screen and (max-width: 1100px){
  header.scrolled.oncontent .headline{
    display: none;
  }
  header.scrolled.oncontent .area{
    padding: .5em 1em .75em 1em;
  }
  header.scrolled.oncontent .image{
    max-width: none;
  }
}

/**********************************************************************/
/* グローバルナビ　PC版
/**********************************************************************/

.global_navigation[data-navigation-type="heading"]{
  margin-left: auto;
  padding: .5em 1em;
  gap: 2em;
}
@media screen and (max-width: 1200px){
  .global_navigation[data-navigation-type="heading"]{
    gap: 1em;
  }
}
@media screen and (max-width: 1100px){
  .global_navigation[data-navigation-type="heading"]{
    display: none;
  }
}

/*--------------------------------------------------------------------*/
/*page*/

.global_navigation[data-navigation-type="heading"] .page ul{
  gap: 1.5em;
}
.global_navigation[data-navigation-type="heading"] .page ul a{
  padding: .5em 1em;
}
@media screen and (max-width: 1200px){
  .global_navigation[data-navigation-type="heading"] .page ul{
    gap: .5em;
  }
}

/*--------------------------------------------------------------------*/
/*action*/

.global_navigation[data-navigation-type="heading"] .action ul{
  gap: 1em;
}
.global_navigation[data-navigation-type="heading"] .action ul a i{
  margin-left: .25em;
}

/**********************************************************************/
/* グローバルナビ オーバーレイ（TB.SP）
/**********************************************************************/

.global_navigation[data-navigation-type="overlay"]{
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  background-color: var(--c_bg_header);
  z-index: 999;
  color: var(--c_white);
  padding-top: 120px;
  overflow: auto;
}
.global_navigation[data-navigation-type="overlay"] nav{
  max-width: 500px;
  margin: 7vw auto 3vw auto;
  padding: 0 7vw;
}
.global_navigation[data-navigation-type="overlay"] nav ul.pagenav li{
}
.global_navigation[data-navigation-type="overlay"] nav ul.pagenav a{
  display: block;
  padding: 1em 1em;
  border-bottom: 1px solid rgba(255,255,255,.1);
  position: relative;
  padding-right: 2em;
}
.global_navigation[data-navigation-type="overlay"] nav ul.pagenav a::after{
  content: "";
  display: block;
  width: .5em;
  height: .5em;
  border-top: 2px solid var(--c_white);
  border-right: 2px solid var(--c_white);
  transform: translate(-50%, 0) rotate(45deg);
  position: absolute;
  right: 0;
  top: 50%;
}
header.active + .global_navigation[data-navigation-type="overlay"]{
  display: block;
}
.global_navigation[data-navigation-type="overlay"] .bg_button{
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  margin-bottom: 20vh;
}

/*--------------------------------------------------------------------*/
/* CTA */

.global_navigation[data-navigation-type="overlay"] .action{
  padding-block: 2em;
}
.global_navigation[data-navigation-type="overlay"] .action ul{
  flex-direction: column;
  align-items: stretch;
  gap: .5em;
}
.global_navigation[data-navigation-type="overlay"] .action ul a{
  padding-block: 1.25em;
}

/*--------------------------------------------------------------------*/
/* 電話、ログイン */

.global_navigation[data-navigation-type="overlay"] .lower{
  max-width: 500px;
  margin: 2em auto;
  padding: 0 7vw;
}
.global_navigation[data-navigation-type="overlay"] .lower .link{
  margin-block: .25em;
}
.global_navigation[data-navigation-type="overlay"] .lower a{
  display: block;
  background-color: rgba(0,0,0,.2);
  border-radius: .25em;
  padding: .5em 1em;
}
.global_navigation[data-navigation-type="overlay"] .lower a .icon{
  display: flex;
  align-items: center;
  justify-content: center;
}
.global_navigation[data-navigation-type="overlay"] .lower a .icon i{
  transform: translate(0, -3%);
}
.global_navigation[data-navigation-type="overlay"] .lower .link.tel i + .label{
  font-size: 120%;
}
.global_navigation[data-navigation-type="overlay"] .lower .link.login a{
  padding-block: 1em;
}
