@charset 'utf-8';

:root {
  --text: #333;
  --title: #000044;
  --subTitle: #949494;
  --bgColor: #F6F6F6;
  --borderColor: #BBBBBB;
  --sbw: 0px; /* scrollbar width */
}

@font-face {
  font-family: "PingFang MO";
  src: url("../fonts/PingFangMO-Medium.otf") format("opentype");
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  background: #fff;
  font-family: "YakuHanJP", "Noto Sans JP", sans-serif;
  color: var(--text);
  box-sizing: border-box;
  overflow-x: hidden;
  letter-spacing: 0.1rem;
}

/* ===== scroll lock（メニュー開閉用） ===== */
body.is-nav-open {
  overflow: hidden;               /* スクロール停止 */
  padding-right: var(--sbw, 0px); /* スクロールバー幅分のガタつき防止 */
}

.p-home-section {
  margin-top: 5rem;
  padding: 7rem 0;
}

.p-sub-section {
  margin-top: 5rem;
  padding: 7rem 0;
}

.p-page__lead {
  margin-top: 10rem;
  font-size: 1.25rem;
  text-align: center;
  line-height: 2;
}

.l-container {
  width: 95%;
  max-width: 1400px;
  margin: 0 auto;
}

.home-section-title {
  font-size: 2.25rem;
  font-weight: 400;
  color: var(--title);
  text-align: center;
  letter-spacing: 0.25rem;
}

.home-section-subTitle {
  margin-top: 0.5rem;
  font-size: 0.8rem;
  font-weight: 300;
  color: var(--subTitle);
  text-align: center;
  letter-spacing: 0.1rem;
}

.c-section-title h2 {
  color: var(--title);
  font-size: 2.5rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1rem;
}

.c-section-title span {
  display: block;
  margin-top: 0.5rem;
  color: var(--subTitle);
  font-size: 0.9rem;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.1rem;
}

.textAccent-y {
  color: #C6A86D;
}

.textAccent-p {
  color: #d99cdb;
}

.textAccent-b {
  color: #5d93f8;
}

.textAccent-g {
  color: #82f366;
}

.textAccent-o {
  color: #f3bd66;
}

.textAccent-r {
  color: #f38066;
}

/* border */
.border {
  width: 95%;
  height: 2px;
  margin: 0 auto;
  background: linear-gradient(
    to right,
    transparent 0%,
    #C6A86D 10%,
    #C6A86D 90%,
    transparent 100%
  );
  transform: scaleX(0);   /* 最初は見えない */
  transform-origin: center; /* 中央から伸びる */
}

.pc {
  display: block;
}

.sp {
  display: none;
}

.tab {
  display: none;
}

@media screen and (max-width: 900px) {
  .p-home-section {
    padding: 3.5rem 0;
  }

  .p-sub-section {
    padding: 5rem 0 0;
  }


  .c-section-title h2 {
    font-size: min(5cqw, 2.5rem);
  }

  .c-section-title span {
    font-size: min(2cqw, 0.9rem);
  }

  .pc {
    display: none;
  }

  .tab {
    display: block;
  }
}

@media screen and (max-width: 580px) {
  .p-home-section {
    margin-top: 3rem;
  }

  .p-sub-section {
    margin-top: 3rem;
    padding: 4rem 0 0;
  }

  .home-section-title {
    font-size: 6cqw;
    letter-spacing: 0.1rem;
  }

  .home-section-subTitle {
    margin-top: 0.5rem;
    font-size: 0.6rem;
  }

  .c-section-title h2 {
    font-size: min(6cqw, 2.5rem);
  }

  .c-section-title span {
    font-size: min(3cqw, 0.9rem);
  }

  .p-page__lead {
    margin: 7rem auto 0;
    width: 95%;
    font-size: 3.75cqw;
    text-align: left;
  }

  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .tab {
    display: none;
  }
}

/*--------------------------------------------------------
header
--------------------------------------------------------*/
header {
  position: relative;
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  height: 80px;
  z-index: 100;
}

.header__logo {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: fit-content;
  height: 60px;
  transition: opacity 0.3s ease;
}

header.is-scrolled .header__logo {
  opacity: 0.5;
  backdrop-filter: blur(2px);
}

.header__logo img {
  height: 100%;
}

.header__toggle {
  position: absolute;
  top: 10px;
  right: 20px;
}

@media screen and (max-width: 900px) {
   .header__logo {
    height: 50%;
  }
}

@media screen and (max-width: 580px) {
  header {
    height: 60px;
  }

  .header__toggle {
    top: 0;
    right: 0;
  }
}

/*------------------------------------------------------------
header__menu
------------------------------------------------------------*/
.header__menu {
  position:fixed;
  top: 0;
  right: -120%;
  width: 650px;
  height: 100vh;
  background: #747477;
  opacity: 0;
  z-index: 999;
  transition: all .6s;
}

.header__menu.panelactive {
  right: 0;
  opacity: 1;
}


.header__nav {
  width: 75%;
  margin: 6rem auto 0;
}

.header__nav__logo {
  width: 80px;
  margin: 0 auto;
}

.header__nav__logo img {
  width: 100%;
}

.header__nav__list {
  display: grid;
  grid-template-columns: max-content max-content;
  justify-content: center;
  column-gap: 120px;
  row-gap: 32px;
  margin-top: 3rem;
}

.header__nav__list li {
  width: auto;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 400;
  transition: all .3s;
}

.header__nav__list li:hover {
  opacity: 0.8;
}

.header__nav__list li span {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.7rem;
}

.drawer__meta {
  margin-top: 3rem;
  color: #fff;
  font-weight: 400;
  text-align: center;
  line-height: 2;
}

@media screen and (max-width: 580px) {
  .header__menu {
    width: 100%;
    height: 100vh;
    padding: 3rem 0;
  }

  .header__nav {
    width: 90%;
    margin: 2rem auto 0;
  }

  .header__nav__list {
    width: 80%;
    margin: 1rem auto 0;
  }

  .header__nav__list li {
    margin-top: 2.5rem;
    font-weight: 300;
  }
}

.openbtn{
	/*ボタン内側の基点となるためrelativeを指定。
追従するナビゲーションの場合はfixed＋top、rightといった位置をセットで指定*/
	position: relative;
	cursor: pointer;
  width: 70px;
  height:70px;
	border-radius: 25%;
  z-index: 1000;
}

/*ボタン内側*/
.openbtn span{
  display: inline-block;
  transition: all .4s;/*アニメーションの設定*/
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background: var(--title);
}


.openbtn span:nth-of-type(1) {
	top:15px;	
  width: 45%;
}

.openbtn span:nth-of-type(2) {
	top:25px;
  width: 35%;
}

.openbtn span:nth-of-type(3) {
	top:35px;
  width: 20%;
}

/*activeクラスが付与されると線が回転して×になる*/
.openbtn.active {
  background: transparent;
}

.openbtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-135deg);
  width: 30%;
  background: #fff;
}

.openbtn.active span:nth-of-type(2) {
	opacity: 0;

}

.openbtn.active span:nth-of-type(3){
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(135deg);
  width: 30%;
  background: #fff;
}

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

}

/*--------------------------------------------------------
page__header
--------------------------------------------------------*/
.page-hero__title {
  margin: 10rem 0 13rem;
  color: var(--title);
  font-size: 8rem;
  font-family: "Orbitron", sans-serif;
  font-weight: 600;
  text-align: center;
}

.page-hero__kv {
  width: 100vw;
  height: 400px;
}

.page-hero__kv img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (max-width: 900px) {
  .page-hero__title {
    margin: 10rem 0 13rem;
    color: var(--title);
    font-size: 15cqw;
    font-family: "Orbitron", sans-serif;
    font-weight: 600;
    text-align: center;
  }

  .page-hero__kv {
    height: 300px;
  }
}

@media screen and (max-width: 580px) {
  .page-hero__title {
    margin: 5rem 0 7rem;
    color: var(--title);
    font-size: 15cqw;
    font-family: "Orbitron", sans-serif;
    font-weight: 600;
    text-align: center;
  }

  .page-hero__kv {
    height: 250px;
  }
}

/*---------------------------------------------------
パンくずリスト
---------------------------------------------------*/
.l-breadcrumb {
  margin: 5rem 0 0 2rem;
}
.breadcrumb {
  /* margin-top: 2rem; */
  list-style: none;
  overflow: hidden;
}

.breadcrumb li {
  position: relative;
  display: inline;/*横に並ぶように*/
  list-style: none;
  font-size: 0.8rem;
  font-weight: 500;
}

.breadcrumb li {
  color: var(--subTitle);
}

.breadcrumb li:last-child {
  color: var(--title);
}

.breadcrumb li:nth-of-type(n + 2):before {
  content: '/';
}

.breadcrumb li a {
  transition: color .3s ease-out;
}

.breadcrumb li a:hover {
  color: var(--title);
}

@media screen and (max-width: 1000px) {
  .breadcrumb {
    top: 150px;
    right: 5%;
    padding: 0;
    list-style: none;
    overflow: hidden;
  }

  .breadcrumb li:nth-of-type(n + 2):before {
    content: '/';
    padding: 0 0.5rem;
  }

  .breadcrumb li span {
    /* font-size: 2.5cqw; */
    font-size: min(2.75cqw, 0.9rem);
  }
}

@media screen and (max-width: 580px) {
  .breadcrumb {
    position: absolute;
    top: 15rem;
    left: 1.5rem;
    margin-top: 0;
    list-style: none;
    overflow: hidden;
  }

  .breadcrumb li:nth-of-type(n + 2):before {
    content: '/';
    padding: 0;
  }
}


/*--------------------------------------------------------
btn viewmore
--------------------------------------------------------*/
/*矢印が右に移動する*/
.c-link {
  margin-top: 6rem;
  text-align: center;
}

.c-link-btn{
  position: relative;
  display: inline-block;
  padding: 0 20px;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1rem;
  color: #333;
  text-decoration: none;
  outline: none;
}

/*矢印と下線の形状*/
.c-link-btn::before{
  content: '';
  position: absolute;
  bottom: -5px;
  left: 20%;
  width: 85%;
  height: 2px;
  background:#333;
  transition: all .3s;
}

.c-link-btn::after{
  content: '';
  position: absolute;
  bottom: 1.4px;
  right: -14.5px;
  width: 18px;
  height:2px;
  background:#333;
  transform: rotate(50deg);
  transition: all .3s;
}

/*hoverした際の移動*/
.c-link-btn:hover::before{
    left: 25%;
}

.c-link-btn:hover::after{
    right:-11.2%;
}

@media screen and (max-width: 580px) {
  .c-link {
    margin-top: 4rem;
  }
  
  .c-link-btn{
    font-size: 1rem;
  }

  /*矢印と下線の形状*/
  .c-link-btn::before{
    left: 25%;
    width: 75%;
    height: 1.5px;
  }

  .c-link-btn::after{
    content: '';
    position: absolute;
    bottom: 1.4px;
    right: -4px;
    width: 18px;
    height:1.5px;
    background:#333;
    transform: rotate(50deg);
    transition: all .3s;
  }
}

/*-----------------------------------------------------
cta
-----------------------------------------------------*/
.cta {
  margin-top: 12rem;
  width: 100vw;
  height: 400px;
  background: #1f1f22;
  display: flex;
  align-items: center;
}

.cta__inner {
  width: 60%;
  max-width: 900px;
  margin: 0 auto;
  container-type: inline-size;
  color: #fff;
  text-align: center;
}

.cta__title {
  font-size: 4cqw;
  font-weight: 600;
}

.cta__sub {
  margin-top: 2rem;
  font-size: 2.75cqw;
}

.cta__btn {
  display: inline-block;
  margin-top: 4rem;
  transition: all .3s ease-out;
}

.cta__btn:hover {
  opacity: 0.6;
}

.cta__btn:hover .cta__arrow {
  transform: translateX(10px);
}

.cta__arrow {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 2px;
  margin: 6.4px 0;
  border-radius: 9999px;
  background-color: #fff;
  transition: all .3s ease-out;
}

.cta__arrow::before,
.cta__arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 11px;
  height: 2px;
  border-radius: 9999px;
  background-color: #fff;
  transform-origin: calc(100% - 1px) 50%;
}

.cta__arrow::before {
  transform: rotate(45deg);
}

.cta__arrow::after {
  transform: rotate(-45deg);
}

@media screen and (max-width: 900px) {
  .cta {
    margin-top: 10rem;
    height: 350px;
  }

  .cta__inner {
    width: 95%;
    max-width: none;
  }

  .cta__title {
    font-size: 4cqw;
  }

  .cta__sub {
    margin-top: 2rem;
    font-size: 2.75cqw;
  }
}

@media screen and (max-width: 580px) {
  .cta {
    margin-top: 7rem;
    height: 300px;
  }

}

/*--------------------------------------------------------
footer
--------------------------------------------------------*/
footer {
  padding: 12rem 0 3rem;
}

.footer__brand {
  font-size: 1.5rem;
}

.footer__nav {
  margin-top: 5rem;
}

.footer__nav a {
  display: block;
  width: fit-content;
  margin-top: 1.5rem;
  font-size: 1.5rem;
}

.footer__meta {
  margin-top: 5rem;
}

.footer__meta a {
  display: block;
  margin-top: 0.5rem;
}

.footer__copy {
  font-size: 0.8rem;
  text-align: right;
}

@media screen and (max-width: 900px) {
  footer {
    padding-top: 10rem;
  }

  .footer__copy {
    margin-top: 5rem;
    text-align: center;
  }
}

@media screen and (max-width: 580px) {
  footer {
    padding-top: 7rem;
  }

  .footer__nav {
    margin-top: 3rem;
    margin-left: 1rem;
  }

  .footer__nav a {
    font-size: 5cqw;
  }

  .footer__meta {
    text-align: center;
  }
}
/*--------------------------------------------------------
tel
--------------------------------------------------------*/
@media (min-width: 751px) {
  a[href*="tel:"] {
  pointer-events: none;
  cursor: default;
  text-decoration: none;
  }
}