/* ====================================================================================
.l-main
==================================================================================== */
.l-main {
  @media screen and (max-width: 1024px) {
    margin-top: 60px;
  }

  @media screen and (min-width: 1025px) {
    margin-top: 100px;
  }
}

/* ====================================================================================
.l-header
==================================================================================== */
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  box-sizing: border-box;
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--wp--preset--color--base);

  @media screen and (max-width: 1024px) {
    padding: 8px 10px 8px 12px;
    position: fixed;
    inset: 0;
    height: 60px;
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.4));
  }

  @media screen and (min-width: 1025px) {
    gap: var(--wp--preset--spacing--40);
  }

  @media screen and (min-width: 1025px) {
    padding: 15px 30px 15px;
    height: 100px;
  }

  & .__logo {
    display: block;
    line-height: normal;

    @media screen and (max-width: 1024px) {
      width: 126px;
    }

    @media screen and (min-width: 1025px) {
      width: 200px;
    }
  }

  & .__logo a {
    transition: opacity .25s;

    &:hover {
      opacity: .8;
    }
  }

  & .__logo img {
    max-width: 100%;
    display: block;
  }

  & .__btn {
    --size: 45px;
    --thickness: 2px;
    --gap: 5px;
    position: relative;
    border-radius: 5px;
    background-color: var(--wp--preset--color--primary);
    border: none;
    margin: 0;
    color: inherit;
    line-height: 1;
    cursor: pointer;
    width: var(--size);
    height: var(--size);
    padding: 15px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;

    &.is-active span:nth-child(1) {
      transform: translateY(calc(var(--gap) + var(--thickness))) rotate(45deg);
    }

    &.is-active span:nth-child(2) {
      opacity: 0;
      transform: scaleX(0.6);
    }

    &.is-active span:nth-child(3) {
      transform: translateY(calc(-1 * (var(--gap) + var(--thickness)))) rotate(-45deg);
    }

    & span {
      display: block;
      width: 100%;
      height: 2px;
      background-color: var(--wp--preset--color--base);
      border-radius: 2px;
      transform-origin: center;
      transition: transform 0.35s cubic-bezier(0.2, 0.9, 0.2, 1),
        opacity 0.2s ease, width 0.35s cubic-bezier(0.2, 0.9, 0.2, 1);
      will-change: transform, opacity;

      &+span {
        margin-top: var(--gap);
      }
    }

    @media screen and (min-width: 1025px) {
      display: none;
    }
  }

  & .__menu {
    @media screen and (min-width: 1025px) {
      display: flex;
      gap: var(--wp--preset--spacing--60);
    }
  }

  & .__tel {
    @media screen and (max-width: 1024px) {
      display: none;
    }
  }

  & .__tel-number {
    white-space: nowrap;
    position: relative;
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    line-height: 1.1;
    margin: 0;

    @media screen and (min-width: 1025px) {
      color: var(--wp--preset--color--primary);
      font-size: var(--wp--preset--font-size--xl-6);
    }

    &::before {
      @media screen and (min-width: 1025px) {
        content: "";
        display: inline-block;
        background-position: center;
        background-size: contain;
        background-image: url('../img/icon_tel.svg');
        background-repeat: no-repeat;
        width: 24px;
        height: 25px;
        margin-right: 10px;
      }
    }
  }

  & .__tel-time {
    margin: 0;
    font-weight: 500;
    text-align: center;

    @media screen and (min-width: 1025px) {
      font-size: 14px;
    }
  }
}

/* ====================================================================================
.l-nav
==================================================================================== */
.l-nav {
  z-index: 1;

  @media screen and (max-width: 1024px) {
    position: fixed;
    top: 60px;
    left: 0;
    overflow-y: auto;
    background: var(--wp--preset--color--base);
    width: 100%;
    height: 100vh;
    max-height: calc(100vh - 60px);
    padding-bottom: 100px;
    padding-inline: calc(30 / 375 * 100%);
  }

  & .__list {
    padding: 0;
    margin: 0;
    list-style: none;
    display: flex;

    @media screen and (max-width: 1024px) {
      flex-direction: column;
    }

    @media screen and (min-width: 1025px) {
      height: 100%;
      gap: 10px;
    }
  }

  & .__item {
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 700;

    @media screen and (max-width: 1024px) {
      border-bottom: 1px solid var(--wp--preset--color--gray);
    }
  }

  & .__item a {
    position: relative;
    color: var(--wp--preset--color--contrast);

    @media screen and (max-width: 1024px) {
      display: block;
      padding: 20px;

      &::before {
        position: relative;
        content: "";
        display: inline-block;
        width: 7px;
        height: 8px;
        background-image: url('../img/icon_arrow_nav.svg');
        background-position: center;
        background-size: contain;
        left: -10px;
        top: -2px;
      }
    }

    @media screen and (min-width: 1025px) {
      display: flex;
      align-items: center;
      height: 100%;
      padding-inline: var(--wp--preset--spacing--30);
      transition: color .3s;

      &:hover {
        color: var(--wp--preset--color--primary);
      }
    }
  }

  & .__privacy {
    @media screen and (max-width: 782px) {
      text-align: center;
      margin-top: var(--wp--preset--spacing--100);
    }

    @media screen and (min-width: 1025px) {
      display: none;
    }
  }

  & .__privacy a {
    color: var(--wp--preset--color--contrast);
    text-decoration: underline;
  }

  & .__sns {
    list-style: none;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 20px;
    margin-top: var(--wp--preset--spacing--140);

    @media screen and (min-width: 1025px) {
      display: none;
    }
  }

  & .__sns-link {
    background-color: var(--wp--preset--color--contrast);
    display: block;
    width: 55px;
    height: 55px;
    display: inline-flex;
    justify-content: center;
    border-radius: 100vmax;
  }

  & .__sns-link.is-x img {
    width: 23px;
  }

  & .__sns-link.is-insta {
    background-color: #ff0077;
  }

  & .__sns-link.is-insta img {
    width: 29px;
  }
}

/* ====================================================================================
.l-sns
==================================================================================== */
.l-sns {
  position: fixed;
  left: 20px;
  bottom: 2%;
  display: flex;
  align-items: center;
  gap: 7px;
  flex-direction: column;
  z-index: 10;

  @media screen and (max-width: 1024px) {
    display: none;
  }

  & .__lead {
    margin: 0;
    writing-mode: vertical-rl;
    font-family: "Roboto", sans-serif;
    font-weight: 500;
    font-size: var(--wp--preset--font-size--lg);
    text-shadow:
      1px 1px 0 white,
      -1px 1px 0 white,
      1px -1px 0 white,
      -1px -1px 0 white;
  }

  & .__list {
    list-style: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  & .__link {
    background-color: var(--wp--preset--color--contrast);
    display: block;
    width: 55px;
    height: 55px;
    display: inline-flex;
    justify-content: center;
    border-radius: 100vmax;
    border: 1px solid var(--wp--preset--color--base);
    transition: opacity .35s;

    &:hover {
      opacity: .7;
    }
  }

  & .__link.is-x img {
    width: 23px;
  }

  & .__link.is-insta {
    background-color: #ff0077;
  }

  & .__link.is-insta img {
    width: 29px;
  }
}

/* ====================================================================================
.l-contact
==================================================================================== */
.l-contact {
  background-image: url(../img/bg_contact.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  padding-block: var(--wp--preset--spacing--200);
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);


  & .__head {
    text-align: center;
    color: var(--wp--preset--color--primary);
    font-size: var(--wp--preset--font-size--xl-7);
    margin: 0;
  }

  & .__txt {
    text-align: center;
    font-size: var(--wp--preset--font-size--lg);
  }

  & .__content {
    background-color: var(--wp--preset--color--base);
    max-width: var(--wp--style--global--content-size);
    margin-inline: auto;
    border-radius: 20px;
    display: grid;
    padding: var(--wp--preset--spacing--100);
    margin-top: var(--wp--preset--spacing--100);

    @media screen and (max-width: 1024px) {
      gap: var(--wp--preset--spacing--40);
    }

    @media screen and (min-width: 1025px) {
      gap: var(--wp--preset--spacing--100);
      grid-template-columns: 57% 1fr;
    }
  }

  & .__tel {
    @media screen and (max-width: 1024px) {
      font-size: var(--wp--preset--font-size--xl-11) !important;
    }
  }

  & .__tel-head {
    text-align: center;
    border: 2px solid var(--wp--preset--color--primary);
    color: var(--wp--preset--color--primary);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 500;
    border-radius: 100vmax;
    margin: 0;


    @media screen and (max-width: 1024px) {
      max-width: 400px;
      margin-inline: auto;
      font-size: var(--wp--preset--font-size--sm);
    }
  }

  & .__tel img {
    @media screen and (max-width: 1024px) {}
  }

  & .__tel-number {
    position: relative;
    text-align: center;
    font-family: "Roboto", sans-serif;
    color: var(--wp--preset--color--primary);
    font-weight: 500;
    line-height: 1.1;
    margin-top: var(--wp--preset--spacing--30);
    margin-bottom: 0;
    font-size: var(--wp--preset--font-size--xl-10);

    &::before {
      content: "";
      display: inline-block;
      background-image: url('../img/icon_tel.svg');
      background-position: center;
      background-size: contain;
      background-repeat: no-repeat;
      margin-right: 10px;

      @media screen and (max-width: 1024px) {
        width: 24px;
        height: 24px;
      }

      @media screen and (min-width: 1025px) {
        width: 40px;
        height: 40px;
      }
    }
  }

  & .__tel-time {
    text-align: center;
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 500;
    margin-top: var(--wp--preset--spacing--20);
    margin-bottom: 0;

    @media screen and (max-width: 1024px) {
      font-size: var(--wp--preset--font-size--md) !important;
      margin-top: 0 !important;
    }
  }

  & .__links {
    list-style: none;
    padding: 0;
    display: grid;
    gap: var(--wp--preset--spacing--30);
    margin: 0;

    @media screen and (max-width: 1024px) {
      max-width: 400px;
      width: 100%;
      margin-inline: auto;
    }
  }

  & .__links-item {
    display: block;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wp--preset--color--base);
    font-size: var(--wp--preset--font-size--lg);
    font-weight: 700;
    border-radius: 8px;
    padding-inline: var(--wp--preset--spacing--40);
    padding-block: var(--wp--preset--spacing--30);
    transition: box-shadow .3s, opacity .3s;

    &::before {
      content: "";
      display: inline-block;
      background-position: center;
      background-size: contain;
      background-repeat: no-repeat;
      margin-right: 10px;

      @media screen and (max-width: 1024px) {
        width: 18px;
        height: 18px;
      }

      @media screen and (min-width: 1025px) {
        width: 22px;
        height: 22px;
      }
    }

    &:hover {
      opacity: .8;
    }

    &.is-line {
      background-color: var(--wp--preset--color--line);
      box-shadow: 3px 3px #006F00;

      &::before {
        background-image: url('../img/icon_line.svg');
      }

      &:hover {
        box-shadow: 0px 0px #006F00;
      }
    }

    &.is-mail {
      background-color: var(--wp--preset--color--red);
      box-shadow: 3px 3px #9E1509;

      &::before {
        background-image: url('../img/icon_mail.svg');
      }

      &:hover {
        box-shadow: 0px 0px #9E1509;
      }
    }
  }
}

/* ====================================================================================
.l-footer
==================================================================================== */
.l-footer {
  background-color: var(--wp--preset--color--secondary);
  padding-top: var(--wp--preset--spacing--160);
  padding-bottom: var(--wp--preset--spacing--120);
  padding-right: var(--wp--style--root--padding-right);
  padding-left: var(--wp--style--root--padding-left);

  @media screen and (max-width: 1024px) {
    padding-bottom: var(--wp--preset--spacing--250);
  }

  & .__inner {
    max-width: var(--wp--style--global--wide-size);
    margin-inline: auto;
    box-sizing: border-box;
    display: grid;
    gap: var(--wp--preset--spacing--150);

    @media screen and (min-width: 1025px) {
      grid-template-columns: 25% 1fr 25%;
    }
  }

  & .__profile {
    box-sizing: border-box;
    color: var(--wp--preset--color--base);
  }

  & .__catchcopy {
    font-size: var(--wp--preset--font-size--xs-2);
    margin: 0;
  }

  & .__logo {
    margin-top: var(--wp--preset--spacing--30);

    @media screen and (max-width: 1024px) {
      max-width: 240px;
    }

    @media screen and (min-width: 1025px) {
      max-width: 300px;
    }
  }

  & .__logo img {
    max-width: 100%;
  }

  & .__company {
    font-weight: 700;
    font-size: var(--wp--preset--font-size--lg);
    margin-bottom: 0;
    margin-top: var(--wp--preset--spacing--10);
  }

  & .__address {
    font-size: var(--wp--preset--font-size--sm);
    margin: 0;
  }

  & .__note {
    font-size: var(--wp--preset--font-size--sm);
    margin-bottom: 0;
  }

  & .__sns {
    list-style: none;
    padding: 0;
    display: flex;
    gap: 20px;
    margin-top: var(--wp--preset--spacing--70);
  }

  & .__sns-link {
    width: 55px;
    height: 55px;
    display: inline-flex;
    justify-content: center;
    border-radius: 100vmax;
    border: 1px solid var(--wp--preset--color--base);
    transition: background-color .35s;

    &:hover {
      background-color: rgba(255, 255, 255, 0.2);
    }
  }

  & .__sns-link.is-x {
    background-color: var(--wp--preset--color--contrast);
  }

  & .__sns-link.is-x img {
    width: 23px;
  }

  & .__sns-link.is-insta {
    background-color: #ff0077;
  }

  & .__sns-link.is-insta img {
    width: 29px;
    z-index: 10;
  }

  & .__area-wrap {
    color: var(--wp--preset--color--base);

    @media screen and (max-width: 1024px) {
      border: 1px solid var(--wp--preset--color--base);
      padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
    }
  }

  & .__area-head {
    margin: 0;
    font-size: var(--wp--preset--font-size--lg);
    padding-bottom: var(--wp--preset--spacing--10);
    border-bottom: 1px solid var(--wp--preset--color--base);
  }

  & .__area {
    margin-bottom: 0;
  }

  & .__area dt {
    font-weight: 700;
    font-size: var(--wp--preset--font-size--md);
  }

  & .__area dd {
    margin-left: 0;
    margin-top: var(--wp--preset--spacing--10);
    font-size: var(--wp--preset--font-size--sm);
  }

  & .__area dd+dt {
    margin-top: var(--wp--preset--spacing--50);
  }

  & .__supplement {
    font-size: var(--wp--preset--font-size--sm);
  }

  & .__nav-list {
    padding-left: 0;
    margin: 0;
    list-style: none;
  }

  & .__nav-list li+li {
    margin-top: var(--wp--preset--spacing--10);
  }

  & .__nav-link {
    color: var(--wp--preset--color--base);
    position: relative;
    position: relative;
    padding-left: 20px;
    transition: opacity .3s;

    &::before {
      content: '';
      width: 7px;
      height: 7px;
      border-top: solid 2px var(--wp--preset--color--base);
      border-right: solid 2px var(--wp--preset--color--base);
      position: absolute;
      top: 50%;
      left: 0;
      transform: translateY(-50%) rotate(45deg);
    }

    &:hover {
      opacity: .7;
    }
  }

  & .__privacy {
    margin-top: var(--wp--preset--spacing--100);

    @media screen and (min-width: 1025px) {
      text-align: center;
    }
  }

  & .__privacy a {
    color: var(--wp--preset--color--base);
    display: inline-block;
    font-size: var(--wp--preset--font-size--sm);
    text-decoration: underline;
  }

  & .__copyright {
    color: var(--wp--preset--color--base);
    margin-top: var(--wp--preset--spacing--60);
    font-size: var(--wp--preset--font-size--sm);
    text-align: center;
  }
}

/* ====================================================================================
.l-cv
==================================================================================== */
.l-cv {
  position: fixed;
  z-index: 9999;

  @media screen and (max-width: 1024px) {
    bottom: 0;
    left: 0;
    right: 0;
    display: grid;
    gap: 1px;
    grid-template-columns: 1fr calc(55 / 375 * 100%) calc(56 / 375 * 100%);
    max-height: 55px;
  }

  @media screen and (min-width: 1025px) {
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  & .__tel {
    @media screen and (max-width: 1024px) {
      background-color: var(--wp--preset--color--primary);
      text-align: center;
      z-index: 10;
      padding: 10px 5px;
      border-radius: 8px 8px 0 0;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;

      &::before {
        content: "";
        display: inline-block;
        background-position: center;
        background-size: contain;
        margin-right: 10px;
        width: 23px;
        height: 24px;
        background-color: var(--wp--preset--color--base);
        mask: url("../img/icon_tel.svg") no-repeat center / contain;
        -webkit-mask: url("../img/icon_tel.svg") no-repeat center / contain;
      }
    }

    @media screen and (min-width: 1025px) {
      display: none;
    }
  }

  & .__tel-number {
    position: relative;
    font-family: "Roboto", sans-serif;
    font-weight: 700;
    line-height: 1.1;
    margin: 0;

    @media screen and (max-width: 1024px) {
      color: var(--wp--preset--color--base);
      font-size: 22px;
    }
  }

  & .__tel-time {
    margin: 0;
    font-weight: 500;
    text-align: center;
    line-height: 1.1;

    @media screen and (max-width: 1024px) {
      font-size: 9px;
      color: var(--wp--preset--color--base);
    }
  }

  & .__line {
    background-color: #00B900;
    font-weight: 500;
    color: var(--wp--preset--color--base);
    line-height: 1.1;
    text-align: center;
    display: inline-block;

    @media screen and (max-width: 1024px) {
      border-radius: 8px 8px 0 0;
      font-size: 10px;
      padding: 10px;
    }

    @media screen and (min-width: 1025px) {
      height: 136px;
      width: 65px;
      font-size: 21px;
      display: grid;
      align-content: center;
      border-radius: 8px 0 0 8px;
    }
  }

  & .__line figure {
    margin-bottom: 0;
  }

  & .__line span {
    @media screen and (max-width: 1024px) {
      display: none;
    }

    @media screen and (min-width: 1025px) {
      display: block;
      font-size: 12px;
    }
  }

  & .__mail {
    line-height: 1.1;
    font-weight: 500;
    background-color: #EC4637;
    color: var(--wp--preset--color--base);
    text-align: center;
    display: inline-block;

    @media screen and (max-width: 1024px) {
      border-radius: 8px 8px 0 0;
      font-size: 10px;
      padding: 10px;
    }

    @media screen and (min-width: 1025px) {
      height: 136px;
      width: 65px;
      font-size: 17px;
      display: grid;
      align-content: center;
      border-radius: 8px 0 0 8px;
    }
  }

  & .__mail figure {
    margin-bottom: 0;
  }

  & .__mail span {
    @media screen and (max-width: 1024px) {
      display: none;
    }

    @media screen and (min-width: 1025px) {
      display: block;
      font-size: 12px;
    }
  }

  & .__tel,
  & .__line,
  & .__mail {
    transition: opacity .3s;

    @media screen and (max-width: 1024px) {
      border: 1px solid var(--wp--preset--color--base);
    }

    @media screen and (min-width: 1025px) {
      box-shadow: 0px 0px 5px #767676;
    }

    &:hover {
      opacity: .7;
    }
  }
}

/* ====================================================================================
.l-page-header
==================================================================================== */
.l-page-header {
  background-image: url(../img/bg_pageheader.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  padding-block: var(--wp--preset--spacing--100);
}