/* レイアウト (prefix: ly- )
----------------------------------------------------------------- */
.ly-main {
  background-color: unset;
  padding-block-start: unset;

  & .ly-inner.--contents {
    padding-block: 0 60px;
  }

  @media (max-width: 767px) {
    & .ly-inner.--contents {
      padding-block: 0 50px;
    }
  }
}

/* ユニーク (prefix: un- )
----------------------------------------------------------------- */
.un-topHero {
  background: #fffdee;
  margin-block-end: 30px;
  padding-block: 50px 100px;

  @media (max-width: 767px) {
    & {
      padding-block: 15px 50px;
    }
  }
}

.un-topHero_item {
  & + & {
    margin-block-start: 50px;
  }

  @media (max-width: 767px) {
    & + & {
      margin-block-start: 75px;
    }
  }
}

.un-topHero_title {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  justify-content: center;
  gap: 0 10px;
  position: relative;
}
@media screen and (width < 768px) {
  .un-topHero_title {
    flex-direction: column;
    align-items: center;
    gap: 24px 0;
    padding-block-end: 96px;

    & .bl-supervision {
      bottom: 0;
    }
  }
}

.un-topHero_titleTxt {
  display: block;
  width: 581px;
  padding-block-start: 18px;
}
@media screen and (width < 768px) {
  .un-topHero_titleTxt {
    width: calc(343 / 375 * 100vw);
    padding-block-start: 0;

    img {
      width: 100%;
      max-width: none;
      height: auto;
    }
  }
}

.un-topHero_titleImg {
  display: block;
  flex: 1 0 0;
  object-fit: contain;
}
@media screen and (width < 768px) {
  .un-topHero_titleImg {
    width: calc(343 / 375 * 100vw);
  }
}

.un-topHero_subTitle {
  --_border: 1px solid #fb4d02;

  display: grid;
  grid-auto-flow: column;
  justify-content: space-between;
  gap: 10px;
  width: fit-content;
  border-top: var(--_border);
  border-bottom: var(--_border);
  font-size: calc(20 * var(--rem-ratio));
  font-weight: bold;
  line-height: calc(38 / 20);
  text-align: center;
  margin-inline: auto;
  padding-block: calc(50px + var(--leading-trim));

  &::before,
  &::after {
    font-size: calc(80 * var(--rem-ratio));
    color: #fb4d02;
    line-height: 1;
  }

  &::before {
    content: "“";
    align-self: start;
    margin-block-start: -15px;
  }

  &::after {
    content: "”";
    align-self: end;
    margin-block-end: -45px;
  }

  @media (max-width: 767px) {
    & {
      gap: 0;
      width: unset;
      font-size: calc(18 * var(--rem-ratio));
      line-height: calc(38 / 18);
      padding-block: calc(30px + var(--leading-trim));
    }

    &::before,
    &::after {
      font-size: calc(63 * var(--rem-ratio));
    }

    &::before {
      margin-block-start: -2px;
    }

    &::after {
      margin-block-end: -22px;
    }
  }
}

.un-topSection {
  isolation: isolate;
  margin-block-start: 70px;

  & + & {
    margin-block-start: 45px;
  }

  @media (max-width: 767px) {
    & {
      margin-block-start: 65px;
    }
  }
}

.un-topSection_title {
  display: inline-grid;

  font-size: calc(20 * var(--rem-ratio));
  font-weight: bold;
  line-height: calc(30 / 20);
  border: 1px solid #fd9d02;
  box-shadow: 6px 6px 0 0 #fd9d02;
  background: #fcf8ea;
  margin-inline-end: 70px;
  margin-block-end: -1em;
  padding: 12px 24px 12px 60px;
  translate: 0 0.5em;
  position: relative;
  z-index: 1;

  &::before {
    content: "";
    width: 67px;
    aspect-ratio: 1;
    background: url(/sites/default/files/images/custom/icon_clip.svg) 0 0
      no-repeat;
    position: absolute;
    inset: -20px 0 0;
    z-index: 1;
  }
}

.un-topSection_body {
  filter: drop-shadow(0 0 30px rgb(251 157 2 / 0.3));
  margin-inline-start: 40px;

  @media (max-width: 767px) {
    & {
      filter: drop-shadow(0 0 10px rgb(251 157 2 / 0.3));
      margin-inline-start: 20px;
    }
  }
}

.un-topSection_bodyInner {
  border: 1px solid #fb9d02;
  background: #fff;
  padding: 60px 80px 40px 50px;
  clip-path: polygon(0 0, calc(100% - 35px) 0, 100% 28px, 100% 100%, 0 100%);
  position: relative;

  &::before {
    content: "";
    width: 50px;
    height: 1px;
    background: #fb9d02;
    position: absolute;
    inset: 0px -17px auto auto;
    rotate: 38deg;
    transform-origin: top left;
  }

  &::after {
    content: "";
    width: 30px;
    height: 24px;
    border-left: 1px solid #fb9d02;
    border-bottom: 1px solid #fb9d02;
    position: absolute;
    inset: 10px 10px auto auto;
    z-index: 1;
  }

  @media (max-width: 767px) {
    & {
      padding: 60px 23px 30px;
    }
  }
}

.un-topLinks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 calc((70 / 984) * 100%);

  @media (max-width: 767px) {
    & {
      grid-template-columns: 1fr;
      gap: 0;
    }
  }
}

.un-topLinks_item {
  @media (max-width: 767px) {
    & + & {
      border-top: 1px dashed #707070;
      margin-block-start: calc(20px + var(--leading-trim));
      padding-block-start: calc(20px + var(--leading-trim));
    }
  }
}

.un-topLinks_link {
  color: currentColor;

  & + & {
    border-top: 1px dashed #707070;
    margin-block-start: calc(20px + var(--leading-trim));
    padding-block-start: calc(20px + var(--leading-trim));
  }

  &:has(> .el-linkIcon) {
    display: grid;
    grid-auto-flow: column;
    justify-content: space-between;
  }

  & .el-linkIcon {
    margin-block-start: calc(((1lh - 1rem) / 2) + ((1rem - 18px) / 2));
    transition: var(--transition-time);
  }

  @media (any-hover: hover) {
    &:where(:hover) {
      color: var(--color-link);
      opacity: 1;

      .el-linkIcon {
        background-color: #fb4d02;
      }
    }
  }

  @media (max-width: 767px) {
    & {
      gap: 10px;
    }

    &:has(> .el-linkIcon) {
      align-items: center;
    }

    & .el-linkIcon {
      margin-block-start: unset;
    }
  }
}

.un-toplinksBtn {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 calc((50 / 1024) * 100%);
  margin-block-start: 50px;

  @media (max-width: 767px) {
    & {
      grid-template-columns: 1fr;
      gap: 45px;
      margin-block-start: 40px;
    }
  }
}

.un-toplinksBtn_link {
  font-size: calc(20 * var(--rem-ratio));
  font-weight: bold;
  line-height: calc(30 / 20);
  color: currentColor;
  border: 1px solid #fd9d02;
  box-shadow: 6px 6px 0 0 #fd9d02;
  background: #fcf8ea;
  padding: 16px 30px 16px 60px;
  position: relative;

  &:has(> .el-linkIcon) {
    display: grid;
    grid-auto-flow: column;
    justify-content: space-between;
    align-items: center;
    min-height: 64px;
    padding-block: 0;
  }

  &::before {
    content: "";
    display: block;
    width: 67px;
    aspect-ratio: 1;
    background: url("/sites/default/files/images/custom/icon_clip.svg") 0 0 no-repeat;
    position: absolute;
    inset: -20px 0 0;
    z-index: 1;
  }

  & .el-linkIcon {
    margin-block-start: calc(((1lh - 1rem) / 2) + ((1rem - 18px) / 2));
  }

  @media (max-width: 767px) {
    & {
      padding: 26px 20px 26px 60px;
      gap: 10px;
    }

    &:has(> .el-linkIcon) {
      min-height: 84px;
    }
  }
}

.bl-btn {
  max-width: 604px;
}
