:root {
  font-size: 62.5%;
  --grid_40_size: 4rem;
  --grid_40_line: rgba(255, 255, 255, 0.10);
  --grid_40_line_04: rgba(255, 255, 255, 0.4);
  --grid_40_line_blue: rgba(53, 131, 198, 0.05);
}

.ab-top-secondary {
  display: none;
}

/* 1rem=10px */
#wpadminbar {
  opacity: 0.1;
  transition: opacity 0.1s ease;
}

/* マウスホバー or 中の要素にフォーカスがあるときはフル表示 */
#wpadminbar:hover,
#wpadminbar:focus-within {
  opacity: 1;
}

html {
  margin-top: 0 !important;
  scroll-behavior: smooth;
}

html,
body {
  height: 100%;
  overflow-x: clip;
}

body {
  color: #4A4A4A;
  font-size: 1.6rem;
  font-family: 'Noto Sans JP', sans-serif;

  @media (max-width: 767px) {
    font-size: 1.5rem;
  }
}

.site-main {
  position: relative;
}

.max_container_1800 {
  margin: 0 auto;
  width: 100%;
  max-width: 1920px;
  padding: 0 6rem;
}

.pc {
  display: block;

  @media (max-width:1023px) {
    display: none;
  }
}

.sp {
  display: none;

  @media (max-width:1023px) {
    display: block;
  }
}

.sp_1279 {
  display: none;

  @media (max-width:1279px) {
    display: block;
  }
}

.sp_767 {
  display: none;

  @media (max-width:767px) {
    display: block;
  }
}

.pc_767 {
  display: block;

  @media (max-width:767px) {
    display: none;
  }
}

.bg_image01 {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: auto;
  pointer-events: none;
}

/* =========================
  Common: External icon (footer etc)
========================= */
.site_icon_external {
  width: 1.4rem;
  height: 1.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;

  img {
    width: 100% !important;
  }

}

.site_icon_external::before {
  /* content: ""; */
  width: 1.2rem;
  height: 1.2rem;
  border: 0.2rem solid currentColor;
  border-left: 0;
  border-bottom: 0;
  transform: rotate(45deg);
  display: block;
  opacity: .9
}

/* =========================
  Reusable button: c_btn_arrow
  - default bg: #3583C6
  - text/arrow/sep: white
  - padding: Y 1.6rem / L 4rem / R 2.4rem
  - gap( text <-> tail ): 2.4rem
  - hover: arrow +0.8rem, bg expands (pseudo) with transform
========================= */
.c_btn_arrow {
  --btn-bg: #3583C6;
  --btn-fg: #fff;
  --btn-pad-y: 1.6rem;
  --btn-pad-l: 4rem;
  --btn-pad-r: 2.4rem;
  --btn-gap: 2.4rem;
  --btn-radius: 8px;

  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--btn-gap);
  padding: var(--btn-pad-y) var(--btn-pad-r) var(--btn-pad-y) var(--btn-pad-l);
  color: var(--btn-fg);
  text-decoration: none;
  border-radius: var(--btn-radius);
  z-index: 0;
  width: fit-content;
  min-width: 22rem;
}

.c_btn_arrow::before {
  content: "";
  position: absolute;
  inset: -0.4rem;
  background: var(--btn-bg);
  border-radius: calc(var(--btn-radius) + 0.4rem);
  transform: scale(0.97);
  transition: transform .3s ease;
  z-index: -1;
}

.c_btn_arrow_label {
  display: block;
  line-height: 1.4
}

.c_btn_arrow_tail {
  display: inline-flex;
  align-items: center;
  gap: 2.4rem;
  flex: 0 0 auto
}

.c_btn_arrow_sep {
  width: 0.1rem;
  height: 2.2rem;
  background: currentColor;
  display: block
}

/* c_btn_arrow_icon : design arrow (shaft + head) */
.c_btn_arrow_icon {
  position: relative;
  display: inline-block;
  width: 1.8rem;
  height: 1.6rem;
  flex: 0 0 auto;
  color: currentColor;
  transition: all .3s ease;
}

.c_btn_arrow_icon::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 1.6rem;
  height: .2rem;
  background: currentColor;
  transform: translateY(-50%);
  border-radius: .1rem;
}

.c_btn_arrow_icon::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: .8rem;
  height: .8rem;
  border-top: .2rem solid currentColor;
  border-right: .2rem solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}

/* hover の「8px 右」(必要なら：親の hover に合わせて) */
.c_btn:hover .c_btn_arrow_icon {
  transform: translateX(.8rem);
  transition: all .3s ease;
}


.c_btn_arrow:hover::before {
  transform: scale(1)
}

.c_btn_arrow:hover .c_btn_arrow_icon {
  transform: translateX(0.8rem)
}
.c_btn_arrow_ext_img {
  transition: all .3s ease;
}
.c_btn_arrow:hover  .c_btn_arrow_ext_img {
  transform: translateX(0.8rem);
}

/* tone */
.c_btn_arrow.is_tone_orange {
  --btn-fg: #F47F53;
  --btn-bg: #FFF;

  .c_btn_arrow_sep {
    background: #F47F53;
    ;
  }
}

.c_btn_arrow.is_tone_green {
  --btn-fg: #63BFA7;
  --btn-bg: #FFF;

  .c_btn_arrow_sep {
    background: #63BFA7;
  }
}

.c_btn_arrow.is_tone_blue {
  --btn-fg: #3583C6;
  --btn-bg: #FFF;

  .c_btn_arrow_sep {
    background: #3683C6;
  }
}

.site_icon_external_img {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0
}

.site_icon_external_img img {
  display: block
}

.c_btn_arrow_ext {
  display: inline-flex;
  align-items: center;
  justify-content: center
}

.c_btn_arrow_ext img {
  width: 1.6rem;
  height: 1.6rem
}


.c_btn_arrow_lower {
  --btn-bg: #3583C6;
  --btn-fg: #fff;
  --btn-pad-y: 1.6rem;
  --btn-pad-l: 4rem;
  --btn-pad-r: 2.4rem;
  --btn-gap: 2.4rem;
  --btn-radius: 8px;

  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--btn-gap);
  padding: var(--btn-pad-y) var(--btn-pad-r) var(--btn-pad-y) var(--btn-pad-l);
  color: var(--btn-fg);
  text-decoration: none;
  border-radius: var(--btn-radius);
  z-index: 0;
  width: fit-content;
  min-width: 22rem;

  &::before {
    content: "";
    position: absolute;
    inset: -0.4rem;
    background: var(--btn-bg);
    border-radius: calc(var(--btn-radius) + 0.4rem);
    transform: scale(0.97);
    transition: transform .3s ease;
    z-index: -1;
  }

  .c_btn_arrow_label {
    display: block;
    line-height: 1.4
  }

  .c_btn_arrow_tail {
    display: inline-flex;
    align-items: center;
    gap: 2.4rem;
    flex: 0 0 auto
  }

  .c_btn_arrow_sep {
    width: 0.1rem;
    height: 2.2rem;
    background: currentColor;
    display: block
  }

  /* c_btn_arrow_icon : design arrow (shaft + head) */
  .c_btn_arrow_icon {
    position: relative;
    display: inline-block;
    width: 1.8rem;
    height: 1.6rem;
    flex: 0 0 auto;
    color: currentColor;
    transition: all .3s ease;
  }

  .c_btn_arrow_icon::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1.6rem;
    height: .2rem;
    background: currentColor;
    transform: translateY(-50%);
    border-radius: .1rem;
  }

  .c_btn_arrow_icon::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    width: .8rem;
    height: .8rem;
    border-top: .2rem solid currentColor;
    border-right: .2rem solid currentColor;
    transform: translateY(-50%) rotate(45deg);
  }

  /* hover の「8px 右」(必要なら：親の hover に合わせて) */
  &:hover .c_btn_arrow_icon {
    transform: translateX(.8rem);
    transition: all .3s ease;
  }


  &:hover::before {
    transform: scale(1)
  }

  &:hover .c_btn_arrow_icon {
    transform: translateX(0.8rem)
  }

}

/*  */
.c_ttl {
  display: flex;
  align-items: baseline;
}

.c_ttl_en {
  display: flex;
  align-items: baseline;
  margin-right: 1rem;
  color: #63BFA7;
  font-size: 2rem;
  font-weight: 500;
  font-family: "Saira", sans-serif;
  letter-spacing: 0.1em;

  img {
    width: 12px;
    aspect-ratio: 1;
    filter: invert(63%) sepia(28%) saturate(546%) hue-rotate(114deg) brightness(102%) contrast(93%);
    margin-right: 8px;
  }
}

.c_ttl_under {
  width: 4rem;
  margin-right: 0.8rem;
  height: 1px;
  background-color: currentColor;
}

.c_ttl_jp {
  font-size: 2.4rem;
  font-weight: bold;

}

@media (max-width: 767px) {
  .c_ttl_en {
    font-size: 1.6rem;

    img {
      width: 8px;
    }
  }

  .c_ttl_jp {
    font-size: 2rem;
  }
}

.c_ttl-2 {
  .c_ttl_en {
    color: #3583C6;
    font-size: 1.2rem;
    font-weight: 500;
    letter-spacing: 0.1em;
    font-family: "Saira", sans-serif;
  }

  .c_ttl_jp {
    font-size: 4rem;
    font-weight: bold;
    margin-top: 5px;
    line-height: 1.5;
    display: inline-block;
  }

  @media (max-width: 767px) {
    text-align: center;

    .c_ttl_en {
      font-size: 1rem;
      justify-content: center;
    }

    .c_ttl_jp {
      font-size: 2.4rem;
    }
  }
}

.c_ttl-3 {
  display: flex;
  align-items: baseline;

  .c_ttl_en {
    display: flex;
    align-items: baseline;
    margin-right: 1rem;
    color: #3583C6;
    font-size: 2rem;
    font-weight: 500;
    font-family: "Saira", sans-serif;
    letter-spacing: 0.1em;

    img {
      width: 12px;
      aspect-ratio: 1;
      filter: invert(46%) sepia(10%) saturate(3522%) hue-rotate(166deg) brightness(99%) contrast(83%);
      margin-right: 8px;
    }
  }

  .c_ttl_under {
    width: 4rem;
    margin-right: 0.8rem;
    height: 1px;
    background-color: currentColor;
  }

  .c_ttl_jp {
    font-size: 2.4rem;
    font-weight: bold;

  }

  @media (max-width: 767px) {
    display: block;

    .c_ttl_en {
      font-size: 1.6rem;

      img {
        width: 8px;
      }
    }

    .c_ttl_jp {
      font-size: 2rem;
      margin-top: 8px;
      display: inline-block;
      line-height: 1.5;
    }
  }

}

.c_ttl-4 {
  position: relative;
  padding-top: 4.4rem;

  @media (max-width: 1279px) {
    padding-top: 4rem;
  }

  @media (max-width: 767px) {
    padding-top: 1rem;
  }
}

.c_ttl-4__tag {
  display: flex;
  font-size: 2rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  font-family: "saira", sans-serif;
  color: #3583C6;
  position: relative;
  width: fit-content;

  @media (max-width: 1440px) {
    font-size: 1.6rem;
  }

  @media (max-width: 767px) {
    position: static;
  }
}

.c_ttl-4__tag-img {
  width: 12px;
  object-fit: contain;
  margin-right: 0.8rem;
  filter: invert(46%) sepia(10%) saturate(3522%) hue-rotate(166deg) brightness(99%) contrast(83%);

  @media (max-width: 1440px) {
    width: 10px;
    margin-right: 6.7px;
  }
}

.c_ttl-4__heading {
  font-size: 2.4rem;
  font-weight: bold;
  margin-top: 8px;

  @media (max-width: 1440px) {
    font-size: 2rem;
  }

  @media (max-width: 767px) {
    margin-top: 4px;
    display: inline-block;
  }
}

.c_ttl-4__asset {
  position: absolute;
  left: 94%;
  bottom: 100%;
  pointer-events: none;
  width: 61px;

  @media (max-width: 1440px) {
    width: 50.85px;
  }

  @media (max-width: 767px) {
    width: 6.1rem;
    left: auto;
    right: 0;
    bottom: auto;
    top: 0;
  }
}

/* 左縦青線 */
.c_ttl-5 {
  font-size: 2.4rem;
  font-weight: bold;
  padding-left: 1.4rem;
  position: relative;
  &::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 0.4rem;
    height: 100%;
    background-color: #3583C6;
    border-radius: 2px;
  }
  @media (max-width: 767px) {
    font-size: 2rem;
    padding-left: 1rem;
    &::before {
      width: 0.3rem;
    }
  }
}

.c_ttl-6 {
  font-size: 2rem;
  font-weight: bold;
  padding-left: 3rem;
  position: relative;
  &::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2rem;
    height: 2px;
    background-color: #3583C6;
    border-radius: 2px;
    transform: translateY(-50%);
  }
   @media (max-width: 767px) {
    font-size: 1.6rem;
    padding-left: 2rem;
    &::before {
      width: 1.5rem;
    }
   }
}

.link_arrow {
  position: relative;
  border-radius: 8px;
  aspect-ratio: 1;
  width: 3.2rem;
  transition: all .3s ease;

  &::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 8px;
    background-color: #3583C6;
    transition: transform .3s ease;
  }

  .link_arrow_icon {
    position: absolute;
    display: block;
    width: 6px;
    object-fit: contain;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
  }

  .link_arrow_bottom {
    position: absolute;
    top: 98%;
    left: 50%;
    transform: translateX(-50%);
    width: 10px;
    transition: transform .3s ease;
  }
}

a:hover .link_arrow {
  &::after {
    transform: scale(1.125);
  }

  .link_arrow_bottom {
    transform: translateX(-50%) translateY(2px);
  }
}

/* =========================
  FV header (TOP PC only)
========================= */
.site_header_fv {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
}

.site_header_fv a,
.site_header_fv button {
  pointer-events: auto
}

.site_fv_brand_link {
  position: absolute;
  top: 0rem;
  left: 0rem;
  display: grid;
  align-items: center;
  background: #fff;
  padding: 1.2rem 3.4rem 1rem 1.6rem;
  text-decoration: none;
  font-family: "Saira", sans-serif;
  font-size: 1.2rem;
  gap: 10px;
  filter: drop-shadow(0 .4rem 1.2rem rgba(0, 0, 0, .12));
  border-bottom-right-radius: 8px;
}

.site_fv_brand_logo {
  height: 4.8rem;
  width: auto;
  display: block
}

.site_fv_brand_text {
  font-weight: bold;
}

.site_fv_top_links {
  position: absolute;
  top: 0rem;
  left: 24rem;
}

.site_fv_top_list {
  margin: 0;
  padding: 1.8rem 3.2rem;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 2rem;
  background: #fff;
  border-radius: 0 0 8px 8px;
}


.site_fv_top_item {
  display: flex;
  align-items: center;
}

.site_fv_top_link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  color: #3583C6;
  font-weight: bold;
  font-size: 1.6rem;
}

.site_fv_top_link_icon {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 0.4rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.site_fv_top_link_icon_img {
  width: 100%;
}


.site_fv_top_inner {
  display: flex;
  align-items: stretch;
  gap: 1.2rem;
}

.site_fv_top_sep {
  width: 1px;
  height: 2.2rem;
  background: #3583C6;
}

.site_fv_top_item_line {
  margin-left: 0.4rem
}

.site_fv_top_line {
  width: 6rem;
  height: 6rem;
  background: #FFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0 0 8px 8px;
}

.site_fv_top_line_img {
  width: 4.2rem;
  height: auto;
  display: block;
}


.site_fv_side_nav {
  position: absolute;
  top: 6rem;
  right: 1.6rem;
}

.site_fv_side_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2.2rem;
  align-items: flex-end;
  line-height: 1.43;
}

.site_fv_side_link {
  text-decoration: none;
  color: #fff;
  font-size: 1.6rem;
  display: inline-flex;
  align-items: center;
  gap: 1.6rem;
  svg {
  transition: all .1s ease;
  }
}

.site_fv_side_link::after {
  content: "";
  width: 1.6rem;
  height: 0.4rem;
  background: #F4D321;
}

.site_fv_side_label {
  display: grid;
  align-items: center;
  text-align: right;
}

.site_fv_side_en,
.site_fv_side_ja {
  grid-area: 1/1;
  transition: opacity .3s ease
}

.site_fv_side_ja {
  opacity: 0;
  letter-spacing: .01em;
  font-weight: bold;
  font-size: 1.8rem;
}

.site_fv_side_en {
  letter-spacing: .01em;
  font-family: "Saira", sans-serif;
  font-weight: 600;
  font-size: 2rem;
  letter-spacing: 0.1em;
}
.site_fv_side_link:hover svg {
  transform: translateX(1.2rem);
}

.site_fv_side_link:hover .site_fv_side_en {
  opacity: 0;

}

.site_fv_side_link:hover .site_fv_side_ja {
  opacity: 1
}

.site_fv_sentinel {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.1rem;
  height: 0.1rem
}

.cta_right {
  position: fixed;
  right: 0rem;
  bottom: 2rem;
  display: grid;
  gap: 8px;
  z-index: 30;

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

.cta_right_link {
  display: block;
  width: 24rem;
  height: 6.4rem;
  border: #FFF solid 1px;
  border-radius: 8px 0 0 8px;
  font-size: 1.6rem;
  font-weight: 900;
  color: #FFF;
  letter-spacing: 0.05em;
  line-height: 1.5;
  display: flex;
  align-items: center;
  padding-left: 2rem;
  transition: all 0.3s ease;
  transform: translateX(18rem);

  img {
    width: 2.4rem;
    margin-right: 2rem;
    display: block;
  }

  .cta_right_bar {
    width: 1px;
    height: 24px;
    border-radius: 1px;
    background-color: #FFF;
    margin-right: 2rem;
  }

  &:hover {
    transform: translateX(0rem);
    transition: all 0.3s ease;
  }
}

.cta_right_link_green {
  background-color: #63BFA7;
}

.cta_right_link_orange {
  background-color: #F47F53;
}

.cta_bottom {
  position: fixed;
  right: 1rem;
  bottom: 0rem;
  display: none;
  gap: 8px;
  z-index: 30;

  img {
    width: 7.2rem;
  }

  @media (max-width: 1024px) {
    display: flex;
  }
}

/* =========================
  Sticky header (PC)
========================= */
.site_header_sticky {
  position: fixed;
  top: 1.2rem;
  left: 50%;
  transform: translateX(-50%) translateY(-1.2rem);
  width: min(180rem, calc(100% - 3.2rem));
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
  z-index: 50;
}

@media (min-width:1280px) {
  body.is_header_sticky .site_header_sticky {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
    pointer-events: auto;
  }
}

@media (min-width:1280px) {
  body.is_footer_inview .site_header_sticky {
    opacity: 0;
    transform: translateX(-50%) translateY(-1.2rem);
    pointer-events: none;
  }
}

.site_header_sticky_inner {
  height: 6.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4rem;
  background: #fff;
  border-radius: 5rem;
  padding: 0 4rem;
  box-shadow: 0 1.2rem 3.2rem rgba(0, 0, 0, .18);

  @media (max-width:1540px) {
    gap: 2.4rem;
    padding: 0 2.4rem;
  }
}

.site_header_brand {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  text-decoration: none;
  color: #111;
  transition: all .15s ease;

  &:hover {
    opacity: 0.8;
  }
}

.site_header_brand_logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
}

.site_header_brand_logo img {
  width: 97px;
  display: block;

  @media (max-width: 1540px) {
    width: 60px;
  }
}

.site_header_brand_text {
  font-family: "Saira", sans-serif;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.2;

  @media (max-width: 1540px) {
    font-size: 1rem;
  }
}

.site_header_nav {
  flex: 1;
  display: flex;
  justify-content: right;
}

.site_header_nav_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  gap: 4rem;
  align-items: center;

  @media (max-width: 1540px) {
    gap: 2.4rem;
  }
}

.site_header_nav_link {
  font-size: 1.4rem;
  transition: all .15s ease;
  position: relative;

  @media (max-width: 1540px) {
    font-size: 1.3rem;
  }

  img {
    position: absolute;
    display: block;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 17px;
    opacity: 0;
    transition: opacity .15s ease;
  }
}

.site_header_nav_link:hover {
  color: #3583C6;
  font-weight: 500;

  img {
    opacity: 1;
  }
}

/* 親（li）を基準にする */
.site_header_nav_item {
  position: relative;
}

/* サブメニュー本体 */
.site_header_submenu {
  position: absolute;
  top: calc(100% + 2rem);
  left: -2rem;
  transform: translateX(0%) translateY(.6rem);

  margin: 0;
  padding: 2rem 1.6rem;
  list-style: none;

  min-width: 22rem;
  border-radius: 0 0 8px 8px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .12);
  z-index: 200;

  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

/* hoverでもfocusでも開く（キーボードでもOK） */
.site_header_nav_item.has-submenu:hover>.site_header_submenu,
.site_header_nav_item.has-submenu:focus-within>.site_header_submenu {
  opacity: 1;
  transform: translateX(0%) translateY(0);
  pointer-events: auto;
}

/* サブメニューリンク */
.site_header_submenu_link {
  display: block;
  font-size: 1.4rem;
  color: #3583C6;
  white-space: nowrap;
}


/* サブメニューと親の間に“隙間”があると hover が切れやすいので保険 */
.site_header_nav_item.has-submenu::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  height: 3rem;
  /* topの隙間分と同じくらい */
}

.site_header_actions {
  display: flex;
  align-items: center;
  gap: 1.6rem;
}

.site_header_cta_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  gap: 0.8rem;
  align-items: center;
}

.site_header_cta_link {
  font-size: 1.4rem;
  color: #FFF;
  font-weight: 500;
  border-radius: 8px;
  padding: 1rem 2.2rem;
  transition: all .15s ease;
  border: 1px solid transparent;

  @media (max-width: 1540px) {
    font-size: 1.3rem;
    padding: 0.8rem 1.8rem;
  }
}

.site_header_cta_link__green {
  background: #63BFA7;

  &:hover {
    background-color: #FFF;
    color: #63BFA7;
    border: 1px solid #63BFA7;
  }
}

.site_header_cta_link__orange {
  background: #F47F53;

  &:hover {
    background-color: #FFF;
    color: #F47F53;
    border: 1px solid #F47F53;
  }
}

/* =========================
  Hamburger button (SP)
========================= */
.site_drawer_btn {
  display: none;
  width: 4.8rem;
  height: 4rem;
  border: 0;
  border-radius: 0.6rem;
  background: #fff;
  box-shadow: 0 .6rem 1.6rem rgba(0, 0, 0, .12);
  cursor: pointer;
  position: relative;
}

.site_drawer_btn_text {
  position: absolute;
  left: -9999rem;
}

.site_drawer_btn_icon {
  display: block;
  width: 2.4rem;
  height: 1.8rem;
  /* ← ここは維持 */
  margin: 0 auto;
  position: relative;
}

.site_drawer_btn_icon i {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  /* ← 線幅 2px */
  background: #3583C6;
  border-radius: 2px;
  transform-origin: 50% 50%;
  transition: transform .3s ease, opacity .3s ease, top .3s ease;
}

/* 閉：2本線（中心-中心 = 10px） */
.site_drawer_btn_icon i:nth-child(1) {
  top: calc(50% - 6px);
}

/* center=50%-5px -> top= -5px -1px */
.site_drawer_btn_icon i:nth-child(2) {
  opacity: 0;
}

/* 真ん中は常に非表示 */
.site_drawer_btn_icon i:nth-child(3) {
  top: calc(50% + 4px);
}

/* center=50%+5px -> top= +5px -1px */

/* 開：×（45°じゃない）
   角度は「閉の見た目の高さ（だいたい同じ）」を保つために浅め（≈24.6°） */
body.is_drawer_open .site_drawer_btn_icon i:nth-child(1),
body.is_drawer_open .site_drawer_btn_icon i:nth-child(3) {
  top: calc(50% - 1px);
  /* 線幅2pxの中心合わせ */
}

body.is_drawer_open .site_drawer_btn_icon i:nth-child(1) {
  transform: rotate(24.6deg);
}

body.is_drawer_open .site_drawer_btn_icon i:nth-child(3) {
  transform: rotate(-24.6deg);
}

/* =========================
  Drawer (SP)
========================= */
.site_drawer {
  position: fixed;
  z-index: 60;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s ease;
  inset: 0;
}


body.is_drawer_open .site_drawer {
  opacity: 1;
  pointer-events: auto;
}

.site_drawer_overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, .3);
}

.site_drawer_panel {
  width: 37.5rem;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  outline: none;
  background-color: #3683C6;
  height: auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.site_drawer_head {
  height: auto;
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2rem;
}

.site_drawer_brand {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  text-decoration: none;
  outline: none; 
  -webkit-tap-highlight-color: transparent;
}

.site_drawer_brand_logo {
  padding: 8px 12px;
  width: 104px;
  border-radius: 4px;
  background-color: #FFF;
}

.site_drawer_brand_text {
  font-size: 1.2rem;
  padding: 8px 14px;
  background-color: #fff;
  color: #4A4A4A;
  font-size: 1rem;
  border-radius: 24px;
  font-weight: bold;
  font-family: "Saira", sans-serif;
}

.site_drawer_close {
  width: 4.8rem;
  height: 4rem;
  border: 0;
  border-radius: 0.6rem;
  background: #fff;
  box-shadow: 0 .6rem 1.6rem rgba(0, 0, 0, .12);
  cursor: pointer;
  position: relative;
}

.site_drawer_close_icon {
  position: absolute;
  inset: 0;
}

/* さっきの仕様に合わせた角度（必要ならここだけ調整） */
.site_drawer_close {
  --drawer_x_angle: 24.6deg;
}

.site_drawer_close_icon::before,
.site_drawer_close_icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 2.6rem;
  height: 2px;
  background: #3583C6;
  border-radius: 2px;
  transform-origin: 50% 50%;
}

.site_drawer_close_icon::before {
  transform: translate(-50%, -50%) rotate(var(--drawer_x_angle));
}

.site_drawer_close_icon::after {
  transform: translate(-50%, -50%) rotate(calc(var(--drawer_x_angle) * -1));
}

.site_drawer_nav {
  padding: 5rem 4rem 0;
  overflow: visible;
  flex: 0 0 auto;
  min-height: auto;
}

.site_drawer_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.site_drawer_link {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  position: relative;
  padding-left: 2.2rem;
  letter-spacing: 0.1em;
}

.site_drawer_link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1.2rem;
  height: 1.2rem;

  background: url("../img/index/arrow_right_yellow.svg") center / contain no-repeat;
}

.site_drawer_sub_list {
  margin: 1.2rem 0 0 2.2rem;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.site_drawer_sub_link {
  text-decoration: none;
  color: #fff;
  font-weight: bold;
  font-size: 1.5rem;
  position: relative;
  padding-left: 1.8rem;
}

.site_drawer_sub_link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 52%;
  background-color: #FFF;
  width: 8px;
  height: 1px;
}

.site_drawer_cta {
  padding: 5rem 4rem 4.8rem;
}

.site_drawer_cta_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.site_drawer_cta_link {
  height: 5.3rem;
  background: #fff;
  border-radius: 4px;
  text-decoration: none;
  color: #3583C6;
  font-weight: bold;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 2.4rem;
}

.site_drawer_cta_arrow {
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 0.6rem;
  position: relative;
  flex: 0 0 auto;
}

.site_drawer_cta_arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background: url("../img/index/icon_arrow_right01.png") center / contain no-repeat;
  transform: translate(-50%, -50%);
  border: 0;
}

.site_drawer_cta_link__line {
  color: #63BFA7;
  justify-content: flex-start;

  .site_drawer_cta_arrow {
    margin-left: auto;
  }
}

.site_drawer_cta_link__line .site_drawer_cta_arrow::before {
  background: url("../img/index/icon_arrow_right_green.png") center / contain no-repeat;
}

.site_drawer_cta_icon {
  width: 3.2rem;
  margin-right: 1.2rem;

  img {
    width: 100%;
    display: block;
  }
}

/* =========================
  Footer
========================= */
.site_footer {
  position: relative;
  background: #F3F8FB;
  color: #4A4A4A;
}

.site_footer::before {
  /* content: ""; */
  position: absolute;
  left: 50%;
  top: -14rem;
  width: 140%;
  height: 22rem;
  background: #F3F8FB;
  border-radius: 50%;
  transform: translateX(-50%);
  z-index: 0;
}

.site_footer_inner {
  max-width: 1440px;
  position: relative;
  z-index: 1;
  margin: 0 auto;
  padding: 4rem 0rem 0;

  @media (max-width: 1440px) {
    padding: 4rem 6rem 0;
  }
}

.site_footer_badge {
  position: absolute;
  left: 50%;
  top: -10px;
  transform: translate(-50%, -100%);
  width: 12.4rem;
  height: 12.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 5;
}

.site_footer_badge img {
  width: 100%;
}

.site_footer_contact {
  text-align: center;
}

.site_footer_contact_ttl {
  display: inline-flex;
  align-items: center;
  font-size: 4rem;
  letter-spacing: .1em;
  font-family: "Saira", sans-serif;
  font-weight: 500;
  line-height: 1.5;

  img {
    width: 20px;
    aspect-ratio: 1;
    margin-right: 20px;
    filter: invert(46%) sepia(10%) saturate(3522%) hue-rotate(166deg) brightness(99%) contrast(83%);
  }
}

.site_footer_contact_ttl::before {
  /* content: ""; */
  width: 0;
  height: 0;
  border-left: 0.8rem solid #3583C6;
  border-top: 0.5rem solid transparent;
  border-bottom: 0.5rem solid transparent;
  transform: translateY(0.1rem);
}

.site_footer_contact_cards {
  margin-top: 2.4rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;

  .c_btn_arrow {
    width: 100%;
    font-weight: bold;
    padding: 3.2rem 3.2rem 3.2rem 4rem;
    gap: 2rem;
    filter: drop-shadow(0 .4rem 1.2rem rgba(174, 197, 217, .13));

    @media (max-width: 1440px) {
      padding: 2.4rem 2rem 2.4rem 2rem;
      font-size: 1.4rem;
      gap: 1.6rem;

      .c_btn_arrow_tail {
        gap: 1.6rem;
      }
    }

    .c_btn_arrow_ext_img {
      filter: invert(73%) sepia(24%) saturate(626%) hue-rotate(114deg) brightness(89%) contrast(93%);
    }

  }
}

.site_footer_nav {
  margin-top: 6rem;
  border-top: 0.1rem solid #3583C6;
  padding-top: 6rem;
}

.site_footer_columns {
  display: grid;
  grid-template-columns: repeat(4, auto);
  column-gap: 0;
  align-items: start;

  @media (max-width: 1440px) {
    row-gap: 4rem;

  }

}


.site_footer_col:first-of-type {
  padding-right: 6rem;

  @media (max-width: 1440px) {
    grid-column: 1 / 5;
    display: grid;
    justify-content: center;
    padding-right: 0;
  }
}

.site_footer_col+.site_footer_col {
  border-left: 1px solid #D6E4F5;
  padding: 0 6rem;

}

.site_footer_col:last-of-type {
  border-right: 1px solid #D6E4F5;

}

.site_footer_brand_ttl {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 2.2rem;
  font-weight: 800;
  margin: 0;
}

.site_footer_brand_logo {
  width: 24.7rem;
  height: auto;
  display: block;

}

.site_footer_brand_link {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.2rem;
  color: #3583C6;
  text-decoration: none;
  font-size: 1.3rem;
  font-weight: 700;
  transition: all .15s ease;
}

.site_footer_brand_link:hover {
  color: #63BFA7;
  transform: translateX(0.4rem);
}

.site_footer_nav_corporate {
  margin-top: 3.2rem;
  color: #3583C6;
  font-weight: 500;
  display: flex;
  gap: 1.2rem;
  transition: all .15s ease;

  @media (max-width: 1440px) {
    margin-top: 2rem;
  }

  img {
    filter: invert(46%) sepia(10%) saturate(3522%) hue-rotate(166deg) brightness(99%) contrast(83%);
  }

  &:hover {
    color: #63BFA7;

    img {
      filter: invert(74%) sepia(39%) saturate(407%) hue-rotate(114deg) brightness(85%) contrast(88%);
    }
  }
}

.site_footer_heading {
  margin: 0;
}

.site_footer_heading_link {
  display: inline-flex;
  align-items: center;
  gap: 1.0rem;
  color: #4A4A4A;
  text-decoration: none;
  font-weight: 500;
  font-size: 1.6rem;
  transition: all .15s ease;

  span {
    transition: all .15s ease;
    transform: translateX(0);
  }

  & img:first-of-type {
    width: 8px;
  }
}

.site_footer_heading_link::before {
  /* content: ""; */
  width: 0;
  height: 0;
  border-left: 0.7rem solid #3583C6;
  border-top: 0.45rem solid transparent;
  border-bottom: 0.45rem solid transparent;
  transition: all .15s ease;
}

.site_footer_heading_link:hover {
  span {
    transform: translateX(4px);
    color: #3583C6;
  }
}

.site_footer_heading_link:hover::before {
  border-left-color: #63BFA7;
}

.site_footer_list {
  list-style: none;
  margin: 1.6rem 0 0;
  padding: 0;
}

.site_footer_list_item {
  margin-top: 1.6rem;
}

.site_footer_link {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  color: #7E7E7E;
  text-decoration: none;
  font-size: 1.4rem;
  transition: all .15s ease;
  line-height: 20px;

  span {
    transition: all .15s ease;
  }
}

.site_footer_link::before {
  content: "";
  width: 9px;
  height: 1px;
  background: #3583C6;
  display: inline-block;
  transition: all .15s ease;
}

.site_footer_link:hover span {
  color: #3583C6;
  transform: translateX(0.4rem)
}

.site_footer_link:hover::before {
  background: #3583C6;
}

.site_footer_block {
  margin-top: 2.2rem;
}

.site_footer_external {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  font-weight: 500;
  transition: all .15s ease;

  &:hover {
    span {
      color: #3583C6;
      transform: translateX(0.4rem);

      img {
        filter: invert(46%) sepia(10%) saturate(3522%) hue-rotate(166deg) brightness(99%) contrast(83%);
      }
    }

  }
}

.site_footer_bottombar {
  margin-top: 6rem;
  background: #3583C6;
}

.site_footer_bottombar_inner {
  max-width: 1440px;
  margin: 0 auto;
  padding: 1.8rem 2.4rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.site_footer_policy {
  color: #FFF;
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 700;
  transition: all .3s ease;
}

.site_footer_policy:hover {
  opacity: .85;
}

.site_footer_copy {
  color: #FFF;
  font-size: 1.2rem;
}

@media (max-width: 1024px) {
  .site_footer_contact_ttl {
    font-size: 2.4rem;

    img {
      width: 12px;
      margin-right: 12px;
    }
  }

  .site_footer_contact_cards {
    grid-template-columns: repeat(2, 1fr);
  }

  .site_footer_col+.site_footer_col {
    padding: 0 2rem;
  }

  .site_footer_inner {
    padding: 4rem 2.2rem 0;
  }

  .site_footer_nav {
    padding-top: 4rem;
    margin-top: 4rem;
  }

  .site_footer_badge {
    width: 10.4rem;
    height: 10.4rem;
    top: 1rem;
  }
  .site_footer_bottombar_inner {
    padding-bottom: 7rem;
  }
}

@media (max-width: 767px) {
  .site_footer_badge {
    width: 10rem;
    top: 4rem;
  }
}

/* =========================
  Responsive: Footer
========================= */
@media (max-width:767px) {
  .site_footer_contact_ttl {
    font-size: 2rem;
  }

  .site_footer_inner {
    padding: 7.2rem 2rem 0;
  }

  .site_footer_contact_cards {
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem 9px;

    .c_btn_arrow {
      padding: 1.4rem;
      min-width: 0;
      text-align: left;
      gap: 11px;
      font-size: 1.3rem;

      .c_btn_arrow_sep {
        display: none;
      }

      .c_btn_arrow_icon {
        width: 14px;
      }
    }
  }

  .site_footer_brand_logo {
    width: 18rem;
    justify-self: center;
  }

  .site_footer_nav_corporate {
    margin-top: 2.4rem;

    img {
      width: 14px;
    }
  }

  .site_footer_list {
    margin-top: 2rem;
    padding-left: 2.4rem;
  }

  .site_footer_columns {
    grid-template-columns: 1fr;
    row-gap: 0rem;
  }

  .site_footer_block {
    margin-top: 0;
  }

  .site_footer_heading {
    margin-top: 3.6rem !important;
  }

  .site_footer_heading_link {
    font-size: 1.5rem;
    gap: 1.2rem;

    img:first-of-type {
      width: 7px;
    }
  }

  .site_footer_col {
    padding: 0;
  }

  .site_footer_col:first-of-type {
    grid-column: 1 / 2;
    padding: 0;
  }

  .site_footer_col+.site_footer_col {
    border-left: none;
    padding: 0rem 2rem 0;
  }

  .site_footer_col:last-of-type {
    border-right: none;
  }

  .site_footer_bottombar {
    margin-top: 13rem;
    font-size: 1.4rem;
  }

  .site_footer_bottombar_inner {
    flex-direction: column;
    padding-bottom: 7rem;
    padding-top: 2rem;
    gap: 1.2rem;
  }
}

/* =========================
  Responsive: Header (<=1024)
  - FV header hidden
  - sticky header becomes normal top bar
  - PC CTA/nav hidden
  - hamburger visible
========================= */
@media (max-width:1279px) {
  .site_header_fv {
    display: none;
  }

  .site_header_sticky {
    top: 0;
    left: 0;
    transform: none;
    width: 100%;
    opacity: 1;
    pointer-events: auto;
  }

  .site_header_sticky_inner {
    height: auto;
    margin-top: 1rem;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    box-shadow: 0 .6rem 1.6rem rgba(0, 0, 0, .14);
    padding: 0 2rem;
    background-color: transparent;
    box-shadow: none;
  }

  .site_header_brand_logo {
    padding: 8px 12px;
    width: 104px;
    border-radius: 4px;

    img {
      width: 100%;
    }
  }

  .site_header_nav {
    display: none;
  }

  .site_header_cta_list {
    display: none;
  }

  .site_drawer_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .site_header_brand_text {
    font-size: 1.2rem;
    padding: 8px 24px;
    background-color: #fff;
    color: #4A4A4A;
    font-size: 1rem;
    border-radius: 24px;

  }

  .site_header_brand {
    gap: 8px;
  }
}

@media (max-width: 767px) {
  .site_header_sticky_inner {
    padding: 0 1rem;
  }

  .site_drawer_head {
    padding: 0 1rem;
  }

  .site_header_brand_text {
    padding: 8px 14px;
  }

  .site_drawer_brand {
    gap: 8px;
    line-height: 1.2;
  }
}

.to_top {
  position: absolute;
  right: 6rem;
  top: 7rem;
  width: 8rem;
  z-index: 5;

  img {
    width: 100%;
  }

  @media (max-width:1800px) {
    top: auto;
    bottom: 10rem;
    right: 8em;
  }

  @media (max-width:1024px) {
    right: 6rem;
    width: 6rem;
  }

  @media (max-width:767px) {
    right: 2rem;
    bottom: 15rem;
    width: 6rem;
  }
}

/* 共通バナー */
.banner {
  padding: 0 6rem 12rem;
  background-color: #FFF;
  position: relative;
}

.banner_container {
  background-color: #F47F53;
  border-radius: 40px;
  max-width: 1800px;
  margin: 0 auto;
  padding: 2.4rem 2.4rem 6rem;
  position: relative;
  background-image:
    linear-gradient(to right, var(--grid_40_line) 0.1rem, transparent 1px),
    linear-gradient(to bottom, var(--grid_40_line) 0.1rem, transparent 1px);
  background-size: var(--grid_40_size) var(--grid_40_size);
  background-position: 0 0;

  @media (max-width:1440px) {
    padding: 2rem 2rem 4.4rem;
  }

  img {
    width: 100%;
  }

  img.banner_img_deco01 {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 87.10045662100457%;
  }

}

.banner_img {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}

.banner_txt {
  color: #FFF;
  font-size: 2rem;
  font-weight: bold;
  margin-top: 4rem;
  text-align: center;

  @media (max-width:1440px) {
    font-size: 1.4rem;
  }
}

.banner_link {
  display: grid;
  gap: 2.4rem;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  justify-content: center;
  margin-top: 4rem;
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;

  .c_banner_btn {
    --btn-bg: #FFF;
    --btn-fg: #3583C6;
    width: 100%;
    font-size: 2rem;
    font-weight: bold;
    padding: 3.2rem 4rem 3.2rem 6rem;

    @media (max-width:1440px) {
      font-size: 1.4rem;
      padding: 2.4rem 2.9rem 2.4rem 4.4rem;
    }

  }


  .c_banner_btn_line {
    --btn-fg: #63BFA7;
  }

  .c_btn_arrow_sep {
    height: 2.9rem;
  }

  .c_btn_arrow_icon {
    width: 2.2rem;
    height: 2rem;
  }

  .c_btn_arrow_icon::before {
    width: 2rem;
    height: 3px;
  }

  .c_btn_arrow_icon::after {
    border-top-width: 3px;
    border-right-width: 3px;
    width: 1rem;
    height: 1rem;
  }

  .c_btn_arrow_tail {
    gap: 4rem;
  }

  .c_btn_arrow_ext_img {
    width: 2.2rem;
    filter: invert(73%) sepia(24%) saturate(626%) hue-rotate(114deg) brightness(89%) contrast(93%);
  }

}

@media (max-width: 1279px) {
  .banner {
    padding: 0 2rem 8rem;
  }

  .banner_container {
    padding: 1.7rem 1.8rem 4rem;
  }

  .banner_txt {
    margin-top: 2rem;
  }

  .banner_link {
    margin-top: 2rem;
    gap: 2rem;

    .c_banner_btn {
      padding: 2.4rem 2rem;
      gap: 1.8rem;
    }

    .c_btn_arrow_tail {
      gap: 1.8rem;
    }
  }
}

@media (max-width: 1024px) {
  .banner_link {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 2rem;

    .c_banner_btn {
      width: 30rem;
    }
  }
}

@media (max-width: 767px) {
  .banner {
    padding: 0 0 8rem 0;
  }

  .banner_container {
    padding: 2.4rem 2rem 5rem;
    border-radius: 20px;
  }

  .banner_img_main {
    aspect-ratio: 335 / 180;
    object-fit: cover;
    border-radius: 2rem;
  }

  .banner_txt {
    line-height: 1.5;
    font-size: 1.6rem;
    margin-top: 3.2rem;
  }

  .banner_link {
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-top: 4rem;

    .c_banner_btn {
      font-size: 1.6rem;
      padding: 2.4rem 4rem;
      width: 100%;
    }
  }
}






/* 下層ページ */
.lower_head {
  position: fixed;
  background-color: #3583C6;
  height: 44rem;
  width: 100%;
  background-image: linear-gradient(to right, var(--grid_40_line) 0.1rem, transparent 1px), linear-gradient(to bottom, var(--grid_40_line) 0.1rem, transparent 1px);
  background-size: var(--grid_40_size) var(--grid_40_size);
  background-position: 0 0;
  top: 0;
  left: 0;
  border-right: 1.6rem solid #FCD42D;
  z-index: -1;
  overflow: hidden;

  &::after {
    content: "";
    position: absolute;
    top: 10.8rem;
    right: 0;
    width: 16px;
    height: calc(100% - 10.8rem);
    background-image: linear-gradient(180deg,
        #FCD42D 0px,
        #FCD42D 4px,
        transparent 4px,
        transparent 100%);
    background-size: 100% 4.7rem;
    background-repeat: repeat-y;
    z-index: 12;
    pointer-events: none;
  }
}

.lower_head_ttl {
  position: relative;
  margin: auto;
  width: 100%;
  max-width: 1440px;
  color: #FFF;
  top: 12rem;
  display: flex;
  justify-content: center;
}

.lower_head_en {
  opacity: 0.1;
  font-size: clamp(5.6rem, 10.4vw, 20rem);
  font-family: "Saira", sans-serif;
  font-weight: bold;
  text-align: center;
  white-space: nowrap;
  line-height: 1.2;
}

.lower_head_jp {
  font-size: clamp(2.8rem, 2.6vw, 5rem);
  font-weight: bold;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: 0.05em;
  width: fit-content;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 1024px) {
  .lower_head {
    border-right: 1.2rem solid #FCD42D;
    height: 39rem;

    &::after {
      top: 12rem;
      height: calc(100% - 12rem);
      background-size: 100% 3.2rem;
      width: 12px;
      background-image: linear-gradient(180deg,
        #FCD42D 0px,
        #FCD42D 3px,
        transparent 3px,
        transparent 100%);
    }
  }
}

@media (max-width: 767px) {
  .lower_head {
    height: 29rem;
    &::after {
      top: 9.6rem;
      height: calc(100% - 9.6rem);
      background-size: 100% 2.4rem;
      width: 8px;
      background-image: linear-gradient(180deg,
        #FCD42D 0px,
        #FCD42D 2px,
        transparent 2px,
        transparent 100%);
    }
  }

  .lower_head_en {
    font-size: min(5.6rem, 13vw);
  }

  .lower_head_jp {
    font-size: min(2.8rem, 6.5vw);
  }

  .lower_head_ttl {
    top: 12rem;
  }
}

.lower_section {
  width: 100%;
}

.lower_section_wrapper {
  background-color: #FFF;
  border-radius: 40px;
  padding-top: 12rem;
  margin-top: 40rem;
  position: relative;
}

/* ナビ用オーバーレイ */
.lower_section_nav_layer {
  position: absolute;
  inset: 0;
  top: 12rem;
  z-index: 5;
  pointer-events: none;
  line-height: 1.5;
}

.lower_section_nav_position {
  position: sticky;
  top: 12rem;
  height: var(--lower_nav_h, 1px);
}

.lower_section_nav {
  pointer-events: auto;
  position: absolute;
  top: 0;
  left: 0;

  background-color: #3583C6;
  width: fit-content;
  padding: 8rem 2rem 8rem 9rem;
  color: #B3B3B3;
  font-size: 1.8rem;
  font-weight: 500;
  display: grid;
  gap: 2rem;
  border-radius: 0 40px 40px 0;
  min-width: 38.6rem;
}

.lower_section_nav_item {
  display: block;
  transition: all .15s ease;
  position: relative;

  &.active {
    color: #FFF;
    transform: translateX(-1rem);

    &::before {
      content: "";
      position: absolute;
      left: -2rem;
      top: 50%;
      transform: translateY(-50%);
      width: 12px;
      height: 14px;
      background: url("../img/index/arrow_right_white.svg") center / contain no-repeat;
    }
  }
}

.lower_container {
  max-width: 96rem;
  margin-left: 60rem;
  margin-right: 6rem;
}

@media (min-width: 1921px) {
  .lower_container {
    margin: auto;
  }
}

@media (max-width: 1440px) {
  .lower_container {
    margin-left: 40rem;
  }

  .lower_section_nav {
    padding: 6rem 2rem 6rem 7rem;
    min-width: 30.6rem;
  }
}

@media (max-width: 1024px) {
  .lower_section_wrapper {
    padding-top: 8rem;
    margin-top: 34rem;
    border-radius: 32px;
  }

  .lower_container {
    margin: auto;
    padding: 0 2rem;
  }

  .lower_section_nav_layer {
    position: static;
    padding: 0 2rem;
  }

  .lower_section_nav_position {
    position: relative;
    top: 0;
  }

  .lower_section_nav {
    position: static;
    transform: none;
    width: 100%;
    padding: 4rem 5.6rem;
    border-radius: 8px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    justify-content: center;
    min-width: 0;
    color: #FFF;
    gap: 1.6rem 0;
    line-height: 1.5;
  }

  .lower_section_nav_item {
    &.active {
      transform: none;
    }

    &::before {
      content: "";
      position: absolute;
      left: -2rem;
      top: 50%;
      transform: translateY(-50%);
      width: 12px;
      height: 14px;
      background: url(../img/index/arrow_right_white.svg) center / contain no-repeat;
    }
  }
}

@media (max-width: 767px) {
  .lower_section_wrapper {
    border-radius: 20px;
    margin-top: 26rem;
    padding-top: 6.4rem;
  }

  .lower_section_nav {
    grid-template-columns: 1fr;
    gap: 1.6rem;
    font-size: 1.6rem;
  }
}



/* ロググループをもっと知る */
.more_contents {
  padding: 17rem 0 16rem;
  margin: 0 auto 0;
  background-color: #FFF;
  position: relative;
}

.more_contents_2col {
  display: flex;
  justify-content: space-between;
  gap: 4rem;
  max-width: 1440px;
  margin: 0 auto 0;

}

.more_contents_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
  max-width: 98rem;
}

.more_contents_item {
  p {
    line-height: 2;
    margin-top: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    font-weight: 500;
    transition: all .15s ease;

    img {
      width: .8rem;
    }
  }
}

.more_contents_img {
  border-radius: 8px;
  overflow: hidden;

  img {
    width: 100%;
    transition: all .15s ease;
  }
}

.more_contents_item:hover {
  .more_contents_img img {
    transform: scale(1.0666);
    transition: all .3s ease;
  }

  p {
    color: #3583C6;
  }
}


@media (max-width: 1440px) {
  .more_contents {
    padding: 12rem 6rem 12rem;

    .c_ttl-4 {
      flex-shrink: 0;
    }
  }
}

@media (max-width: 1024px) {
  .more_contents {
    padding: 12rem 2rem 12rem;
  }

  .more_contents_2col {
    flex-direction: column;
    gap: 4.4rem;
  }

  .more_contents_list {
    gap: 2.4rem 2rem;
  }
}

@media (max-width: 767px) {
  .more_contents {
    padding: 8rem 2rem;

  }

  .more_contents_2col {
    gap: 4rem;
  }

  .more_contents_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 2rem;
  }

  .more_contents_item {
    p {
      font-size: 1.2rem;
      gap: 0.8rem;

      img {
        width: 6px;
      }
    }

    /* SP無効 */
    &:hover {
      .more_contents_img img {
        transform: none;
        transition: none;
      }

      p {
        color: inherit;
      }
    }
  }

  .more_contents_img {
    border-radius: 2px;
  }
}

.breadcrumb {
  max-width: 1440px;
  margin: 0 auto;
  padding-bottom: 12.7rem;
  display: flex;
  align-items: center;
  font-size: 1.4rem;
  line-height: 2;

  a {
    text-decoration: underline;
    transition: all .15s ease;

    &:hover {
      color: #3583C6;
    }
  }
}

.breadcrumb_sep {
  width: 9px;
  height: 1px;
  background: #3583C6;
  margin: 0 1.2rem;
  display: inline-block;
}

.breadcrumb_current {
  color: #7E7E7E;
}

@media (max-width: 1440px) {
  .breadcrumb {
    padding: 0 6rem 12.7rem;
  }
}

@media (max-width: 767px) {
  .breadcrumb {
    padding: 0 2rem 10.4rem;
    font-size: 1.2rem;
    flex-wrap: wrap;
  }
}

.front_about_track {
  display: flex;
  gap: 5rem;
  animation: about_move 120s linear infinite;
  will-change: transform;
  width: max-content;
  font-size: 20rem;
  font-family: "Saira", sans-serif;
  font-weight: bold;
  opacity: 0.1;
  line-height: 1;
  color: #3583C6;

  p {
    white-space: nowrap;
  }

  @media (max-width: 767px) {
    font-size: 10rem;
  }
}

@keyframes about_move {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }

}

.white_wrap {
  background-color: #FFF;
  position: relative;
}