@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700&family=Lato:wght@700;900&family=Outfit:wght@100..900&family=Rowdies:wght@300&display=swap');

/*====================================================
HTML, BODY
====================================================*/
html {
  &:has(.header__nav_button.is-active) {
    overflow: hidden;
  }
}
body {
  padding-top: 12.5rem;
  @media screen and (min-width: 768px) and (max-width: 1300px) {
    padding-top: 9.59001041vw;
  }
  @media screen and (max-width: 767px) {
    padding-top: 18.82133333vw;
  }
}

#header {
  /*====================================================
  ALL UNSET
  ====================================================*/
  all: unset;
  * {
    all: unset;
  }

  /*====================================================
  RESET
  ====================================================*/
  &,
  *,
  :after,
  :before {
    box-sizing: border-box;
    border-style: solid;
    border-width: 0;
  }
  html {
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
  body {
    margin: 0;
  }
  main {
    display: block;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
    margin: 0;
  }
  dl,
  figure,
  form,
  iframe,
  ol,
  p,
  table,
  ul {
    margin: 0;
  }
  ol,
  ul {
    padding: 0;
    list-style: none;
  }
  dt {
    font-weight: 400;
  }
  dd {
    margin-left: 0;
  }
  a {
    background-color: transparent;
    text-decoration: none;
    color: inherit;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  iframe,
  img {
    vertical-align: bottom;
  }
  button,
  input,
  select,
  textarea {
    -webkit-appearance: none;
    appearance: none;
    vertical-align: middle;
    color: inherit;
    font: inherit;
    background: 0;
    padding: 0;
    margin: 0;
    border-radius: 0;
    text-align: inherit;
  }
  [type='checkbox'] {
    -webkit-appearance: checkbox;
    appearance: checkbox;
  }
  [type='radio'] {
    -webkit-appearance: radio;
    appearance: radio;
  }
  button,
  input {
    overflow: visible;
  }
  button,
  select {
    text-transform: none;
  }
  [type='button'],
  [type='reset'],
  [type='submit'],
  button {
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }
  [type='button'][disabled],
  [type='reset'][disabled],
  [type='submit'][disabled],
  button[disabled] {
    cursor: default;
  }
  fieldset,
  option {
    padding: 0;
  }
  fieldset {
    margin: 0;
    min-width: 0;
  }
  textarea {
    overflow: auto;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  td,
  th {
    vertical-align: top;
    padding: 0;
  }
  th {
    text-align: left;
    font-weight: 400;
  }

  /*====================================================
  COMMON
  ====================================================*/
  line-height: 1.6;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  color: #000;
  overflow-wrap: anywhere;
  word-break: normal;
  line-break: strict;

  p,
  div,
  layer,
  article,
  aside,
  footer,
  header,
  hgroup,
  main,
  nav,
  section,
  address,
  blockquote,
  figcaption,
  figure,
  center,
  hr,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  ul,
  menu,
  dir,
  ol,
  dd,
  dl,
  dt,
  form,
  legend,
  fieldset,
  pre,
  xmp,
  plaintext,
  listing,
  ruby > rt,
  frameset,
  frame,
  details,
  summary {
    display: block;
  }
  header,
  footer {
    width: 100%;
  }
  .inner {
    width: 1000px;
    max-width: 95%;
    margin-inline: auto;
  }
  @media (hover: hover) {
    button,
    a:where([href]) {
      cursor: pointer;
      transition: opacity 0.3s;
      &:hover {
        opacity: 0.7;
      }
    }
  }
  a,
  button {
    &:focus-visible {
      outline: 2px solid #005fcc;
      outline-color: AccentColor;
      outline: -webkit-focus-ring-color auto 1px;
    }
  }
  img {
    width: auto;
    height: auto;
    max-width: 100%;
  }
  :where(button, input:is([type='button' i], [type='submit' i], [type='reset' i]), [role='tab' i], [role='button' i], [role='option' i]),
  ::file-selector-button {
    /*
    * On iOS, double-tapping a button can cause zooming, which harms usability.
    * `touch-action: manipulation` is specified to disable zooming on double-tap.
    * Third-party plugins such as Swiper sometimes use div elements with these roles as buttons, since double-tapping a div can still trigger zooming, it's advisable to specify this property.
    */
    touch-action: manipulation;
  }
  .flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
  }
  .grid {
    display: grid;
  }
  .tab_display,
  .sp_display {
    display: none;
  }
  @media screen and (min-width: 768px) and (max-width: 1053px) {
    .tab_display {
      display: block;
    }
  }
  @media screen and (max-width: 767px) {
    .pc_display {
      display: none;
    }
    .sp_display {
      display: block;
    }
    .tab_display {
      display: none;
    }
    .inner {
      max-width: 92%;
    }
    img {
      width: 100%;
    }
  }

  /*====================================================
  HEADER
  ====================================================*/
  position: relative;
  z-index: 100;
  font-size: 16px;
  position: fixed;
  top: 0;
  left: 0px;
  width: 100%;
  height: 0;

  .header__inner {
    background-color: #fff;
    display: grid;
    grid-template-columns: repeat(2, auto);
    grid-template-rows: auto 1fr;
    justify-content: space-between;
    padding-right: 2.6em;
  }
  .header__logo_wrap {
    grid-row: 1/3;
    padding: 1.8em 2.2em;
  }
  .header__logo {
    width: 17.2em;
    display: block;
  }
  .header__text {
    font-size: 0.75em;
    text-align: right;
    padding: 2em 0;
    grid-row: 1/2;
  }
  .header__nav_list {
    column-gap: 1.8em;
    position: relative;
  }
  .header__nav_list_item {
    display: block;
  }
  .header__nav_list_item_link {
    font-size: 1.125em;
    position: relative;
    cursor: pointer;
    &:where(.header__nav_list_item:nth-child(n + 2) &) {
      &::before {
        content: '';
        display: block;
        width: 1px;
        height: 60%;
        background-color: #000;
        position: absolute;
        top: 50%;
        right: calc(100% + 0.9em);
        transform: translate(50%, -56%);
        pointer-events: none;
      }
    }
    &:hover {
      @media (hover: hover) {
        opacity: 1;
        color: #eb610f;
      }
    }
  }
  /* SUB LIST */
  .header__nav_list_item_sub_list_wrap {
    position: absolute;
    width: 100%;
    z-index: 1000;
    top: 100%;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    padding-top: 2.3em;
    left: 0;

    &:where(.header__nav_list_item:hover &, .header__nav_list_item:focus-within &) {
      visibility: visible;
      opacity: 1;
      pointer-events: auto;
    }
  }
  .header__nav_list_item_sub_list_inner {
    background-color: #fff;
    padding: 1.2em 2.4em;
  }
  .header__nav_list_item_sub_list_title_wrap {
    align-items: center;
    justify-content: flex-start;
    column-gap: 1.3em;
    border-bottom: 2px solid #000;
    padding-bottom: 0.9em;
    margin-bottom: 0.9em;

    &:where(a) {
      position: relative;
      &::before {
        content: '';
        display: block;
        width: 2.2em;
        height: auto;
        aspect-ratio: 1/1;
        background-color: #eb610f;
        background-image: url(../img/common/arrow_right_white.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 0.8em;
        border-radius: 50%;
        position: absolute;
        top: 50%;
        right: 0;
        transform: translateY(-50%);
      }
      &:hover {
        @media (hover: hover) {
          opacity: 1;
          color: #eb610f;
        }
      }
    }
  }
  .header__nav_list_item_sub_list_title_image {
    width: 8.75em;
  }
  .header__nav_list_item_sub_list_title_text {
    font-size: 1.25em;
    font-weight: 700;
  }
  .header__nav_list_item_sub_list_title_text_hyphen {
    display: none;
  }
  .header__nav_list_item_sub_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px 4px;
    overflow: hidden;
    border-bottom: 1px solid #e5e5e5;
    padding-bottom: 2px;

    &:where(.header__nav_list_item:nth-child(2) &) {
      grid-template-columns: repeat(5, 1fr);
    }
  }
  .header__nav_list_item_sub_list_item {
    position: relative;
    &::before {
      content: '';
      display: block;
      width: 1px;
      height: 54.69818324%;
      background-color: #e5e5e5;
      position: absolute;
      top: 50%;
      left: calc(100% + 2px);
      transform: translate(50%, -56%);
    }
    &::after {
      content: '';
      display: block;
      width: 100vw;
      height: 1px;
      background-color: #e5e5e5;
      position: absolute;
      bottom: calc(100% + 2px);
      left: 0;
    }
  }
  .header__nav_list_item_sub_list_item_link {
    color: #000;
    display: block;
    padding: 0.8em 0.6em;
    border-radius: 0.25em;
    background-image: url(../img/common/arrow_right_black.svg);
    background-repeat: no-repeat;
    background-position: right 0.8em center;
    background-size: 0.8em;
    &:hover {
      @media (hover: hover) {
        background-color: #000;
        color: #fff;
        opacity: 1;
        background-image: url(../img/common/arrow_right_white.svg);
      }
    }
  }
  .header__nav_list_item_sub_list_item_link_hyphen {
    display: none;
  }
  .header__nav_button {
    display: none;
  }
  @media screen and (min-width: 768px) and (max-width: 1300px) {
    font-size: 1.23076923vw;
  }
  @media screen and (max-width: 767px) {
    font-size: 4.26666667vw;
    .header__inner {
      padding: 0 0 3.4vw;
      z-index: 1;
      position: relative;
    }
    .header__logo_wrap {
      padding: 0 0 0 0.5em;
      grid-row: 2/3;
    }
    .header__logo {
      width: 9.5em;
    }
    .header__text {
      font-size: 0.5em !important;
      padding: 0.8em 0 0.2em 1em;
    }
    .header__sp_nav {
      grid-row: 1/3;
      width: 11.6em;
    }
    .header__sp_nav_list {
      grid-template-columns: repeat(3, 1fr);
      grid-template-rows: repeat(2, 1fr);
    }
    .header__sp_nav_list_item_link {
      background-color: #f0f0f0;
      align-items: center;
      height: 100%;
      grid-template-rows: subgrid;
      grid-row: span 2;
      &:nth-child(1) {
        border-right: 1px solid #fff;
      }
      &:where(:nth-child(3)) {
        background-color: #eb610f;
        color: #fff;
      }
    }
    .header__sp_nav_list_item_link_icon {
      width: 1.1em;
      margin: 0.3em auto 0.16em;
      display: block;
      &:where(.header__sp_nav_list_item:nth-child(3) *) {
        transform: translateY(0.4vw);
      }
    }
    .header__sp_nav_list_item_link_text {
      font-size: 0.625em;
      text-align: center;
      display: flex;
      justify-content: center;
      line-height: 1.3;
      padding-bottom: 0.4em;
      letter-spacing: -0.08em;
    }
    .header__nav {
      position: fixed;
      overflow: auto;
      width: 100vw;
      height: 100vh;
      top: 0;
      background-color: #fcfbfa;
      padding: 27.82133333vw 10.6vw;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s;
      &:where(html:has(.header__nav_button.is-active) &) {
        opacity: 1;
        pointer-events: auto;
      }
    }
    .header__nav_list {
      flex-direction: column;
    }
    .header__nav_list_item {
      border-bottom: 1px solid #aaa9a9;
      padding-block: 0.84em;
    }
    .header__nav_list_item_link {
      font-weight: 700;
      font-size: 0.875em;
      display: grid;
      width: 100%;
      grid-template-columns: 1fr 0.44fr;
      align-items: center;
      &::before {
        content: none;
      }
      &:where(button) {
        position: relative;
        &::before,
        &::after {
          content: '';
          display: block;
          width: 3.2vw;
          height: 2px;
          background-color: #000;
          position: absolute;
          top: 50%;
          right: 1vw;
          transition: rotate 0.3s;
          transform: none;
        }
        &::after {
          rotate: 90deg;
        }
        &.is-active {
          &::after {
            rotate: 0deg;
          }
        }
      }
    }
    .header__nav_list_item_link_en {
      font-size: 0.625em;
      color: #eb610f;
      font-family: 'Lato', sans-serif;
      white-space: nowrap;
    }
    .header__nav_list_item_sub_list {
      display: flex;
      padding-bottom: 0;
      border-bottom: none;
      gap: 5vw 0;
      flex-direction: column;
      padding-left: 0.6em;
    }
    .header__nav_list_item_sub_list_wrap {
      position: static;
      visibility: visible;
      opacity: 1;
      pointer-events: auto;
      padding-top: 0;
      display: none;
    }
    .header__nav_list_item_sub_list_inner {
      background-color: #fcfbfa;
      padding: 0;
      padding-block: 1.2em 0.8em;
      display: flex;
      flex-direction: column;
      row-gap: 5vw;
    }
    .header__nav_list_item_sub_list_title_wrap {
      margin-bottom: 0;
      padding-bottom: 0;
      border-bottom: none;
      padding-left: 0.6em;

      &::before {
        content: none;
      }
      &:where(:not(a)) {
        display: none;
      }
    }
    .header__nav_list_item_sub_list_title_image {
      display: none;
    }
    .header__nav_list_item_sub_list_title_text,
    .header__nav_list_item_sub_list_item_link {
      font-size: 0.8125em;
      font-weight: 500;
    }
    .header__nav_list_item_sub_list_title_text_hyphen {
      display: inline-block;
    }
    .header__nav_list_item_sub_list_item {
      &::before,
      &::after {
        content: none;
      }
    }
    .header__nav_list_item_sub_list_item_link {
      background-image: none;
      padding: 0;
    }
    .header__nav_list_item_sub_list_item_link_hyphen {
      display: inline-block;
    }
    .header__nav_button {
      display: block;
      width: 25vw;
      height: auto;
      position: fixed;
      right: 1vw;
      bottom: 1vw;
      aspect-ratio: 1/1;
      background-image: url(../img/common/header_nav_button.png);
      z-index: 1000;
      background-size: cover;
      transition: background-image 0.3s;
      &.is-active {
        background-image: url(../img/common/header_nav_close.png);
      }
    }
    .header__nav_bottom_button_list {
      font-size: 3.564vw;
      display: flex;
      justify-content: center;
      margin-top: 1.6em;
      column-gap: 1em;
    }
    .header__nav_bottom_button_list_item_link {
      border-radius: 0.5798728em;
      border: 1px solid #eb610f;
      padding-block: 1.3em;
      display: block;
      width: 8.8em;
      text-align: center;

      &:where(.header__nav_bottom_button_list_item:nth-child(1) &) {
        background-color: #eb610f;
        color: #fff;
      }
      &:where(.header__nav_bottom_button_list_item:nth-child(2) &) {
        background-color: #fff;
      }
    }
  }
}
