@charset "UTF-8";
/* =======================================
【BASE】
========================================== */
header {
  background-color: transparent;
  /* position: sticky; */
  position: fixed;
  top: 0;
  z-index: 1000;
  transition: all 0.3s ease;
  /* border-bottom: 1px solid #F0F3F8; */
  width: 100%;
}

header.bg_white {
  background-color: #fff;
  transition: background-color 0.3s ease;
}

header a {
  color: #202945;
}

.hTel span {
  background: url(../img/telB.png) no-repeat center / contain;
  width: 1em;
  height: 1.1em;
  display: inline-block;
}

.header02 {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header02.cl3_7 > *:nth-child(odd) {
  width: 23%;
}

.header02.cl3_7 > *:nth-child(even) {
  width: 76%;
}

.header_nav {
  margin-top: 2%;
  letter-spacing: 0.1em;
  width: 80%;
  margin: 1% 0 0 auto;
}

.header_nav .nav {
  display: flex;
  justify-content: right;
  position: relative;
  z-index: 9;
  align-items: end;
  font-weight: bold;
  gap: 3.5%;
}
.header_nav .nav > li {
  list-style: none;
  /* width: 8em; */
  position: relative;
  padding-bottom: 1%;
  text-align: right;
  white-space: nowrap;
}
/* .header_nav .nav > li:nth-last-of-type(1) {
  width: 3.4%;
} */

.header_nav .nav > li ul li a:hover {
  color: #005ab4;
}

.header_nav .nav > li a::after,
.header_nav .nav > li p::after {
  content: "";
  display: block;
  height: 3px;
  width: 90%;
  background-color: #005ab4;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translate(-50%, -50%) scale(0, 1);
  transition: 0.5s;
}

.header_nav .nav > li a:hover::after,
.header_nav .nav > li p:hover::after {
  transform: translate(-50%, -50%) scale(1, 1);
}

.header_nav .nav > li:nth-last-of-type(1) a::after,
.header_nav .nav > li ul li a:hover::after {
  display: none;
}

.dArrow {
  background: url(../img/dArrow.png) no-repeat center / contain;
  width: 0.8em;
  height: 0.6em;
  margin-left: 5px;
  display: inline-block;
}

/* メガメニューのスタイル - 画面幅100%の白い背景 */
.header_nav .nav > li ul {
  display: none;
  position: fixed;
  z-index: 999;
  background: #fff;
  /* 画面幅100%にするための設定 */
  left: 0;
  right: 0;
  width: 100%;
  /* 親要素の下に配置するためのtop位置計算 */
  top: auto;
  margin-top: 10px !important;
  height: fit-content !important;
  padding: 1% 0 !important;
  box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.1);
  border-top: 1px solid #f0f3f8;
}

.header_nav .nav > li ul li a {
  text-align: left !important;
  padding: 0.5%;
  display: block;
}

/* 各親メニューのサブメニューを個別に配置 - レスポンシブ対応 */
.header_nav .nav > li:nth-child(1) ul {
  transform: translateX(0);
}

.header_nav .nav > li:nth-child(1) ul li {
  margin-left: max(20px, min(28.5vw, 425px));
}

.header_nav .nav > li:nth-child(2) ul li {
  margin-left: max(20px, min(40vw, 580px));
}

.header_nav .nav > li:nth-child(3) ul li {
  margin-left: max(20px, min(49vw, 718px));
}

.header_nav .nav > li:nth-child(6) ul li {
  margin-left: max(20px, min(71vw, 1054px));
}

@media (max-width: 1024px) {
  .header_nav .nav > li:nth-child(1) ul li {
    margin-left: max(15px, min(25vw, 256px));
  }

  .header_nav .nav > li:nth-child(2) ul li {
    margin-left: max(15px, min(35vw, 358px));
  }

  .header_nav .nav > li:nth-child(3) ul li {
    margin-left: max(15px, min(43vw, 440px));
  }

  .header_nav .nav > li:nth-child(6) ul li {
    margin-left: max(15px, min(65vw, 666px));
  }
}

@media (max-width: 768px) {
  .header_nav .nav > li:nth-child(1) ul li {
    margin-left: max(10px, min(20vw, 154px));
  }

  .header_nav .nav > li:nth-child(2) ul li {
    margin-left: max(10px, min(30vw, 230px));
  }

  .header_nav .nav > li:nth-child(3) ul li {
    margin-left: max(10px, min(38vw, 292px));
  }

  .header_nav .nav > li:nth-child(6) ul li {
    margin-left: max(10px, min(60vw, 461px));
  }
}

@media (max-width: 480px) {
  .header_nav .nav > li:nth-child(1) ul li,
  .header_nav .nav > li:nth-child(2) ul li,
  .header_nav .nav > li:nth-child(3) ul li,
  .header_nav .nav > li:nth-child(6) ul li {
    margin-left: 10px !important;
  }

  .header_nav .nav > li ul {
    padding: 20px 0 !important;
  }

  .header_nav .nav > li ul li a {
    padding: 8px 15px;
    font-size: 14px;
  }
}

@media (max-width: 320px) {
  .header_nav .nav > li ul li a {
    padding: 6px 10px;
    font-size: 12px;
  }
}
