@charset "UTF-8";

/* --------------------------------------------------
    common
-------------------------------------------------- */
:root {
  --main-color-orange: #ff7e45;
  --main-color-green: #84ac45;
  --main-color-blue: #2ca4a3;
  --sub-color-orange: #f6c4af;
  --sub-color-green: #e3e9a0;
  --sub-color-blue: #c1e5e0;
  --labor-color: #065783;
  --learning-color: #025529;
  --love-color: #8f3520;
  --leisure-color: #81650a;
}

html {
  font-size: 0.0520833333vw;
}

body * {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 18rem;
  font-weight: 500;
  line-height: 2;
  color: #231815;
}

body * sup {
  font-size: smaller;
}

.inner {
  width: 1280rem;
  margin-inline: auto;
}

.noteflex {
  display: flex;
  column-gap: 0.5em;
}

.noteflex .kome {
  flex-shrink: 0;
}

.spIn {
  display: none;
}

.pcIn {
  display: inline;
}

@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

@media screen and (max-width: 768px) {
  html {
    font-size: 0.1333333333vw;
  }

  body * {
    font-size: 36rem;
  }

  .inner {
    width: 670rem;
    padding: 0 !important;
  }

  .spIn {
    display: inline;
  }

  .pcIn {
    display: none;
  }

  .overwrap img {
    max-width: none;
  }
}

/* --------------------------------------------------
    header
-------------------------------------------------- */
/* ===== ヘッダー共通 ===== */
header {
  position: fixed;
  top: 25rem;
  left: 50%;
  transform: translateX(-50%);
  width: 1280rem;
  z-index: 9999;
}

.header_bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #fff;
  border-radius: 12rem;
  padding: 15rem;
  box-shadow: 3rem 3rem 8rem rgba(84, 77, 91, 0.55);
}

header .hd_logo {
  width: 117rem;
}

/* ===== PC用メニュー ===== */
@media screen and (min-width: 769px) {
  header .nav_button {
    display: none !important;
  }

  header .menu_overlay {
    display: none !important;
  }

  .gnav_list {
    display: flex;
    align-items: center;
    gap: 40rem;
    list-style: none;
  }

  .gnav_link {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10rem;
    font-size: 16rem;
    font-weight: 700;
    line-height: 1;
    min-width: 210rem;
    height: 44rem;
    padding: 0 18rem;
    border: 2rem solid #333;
    border-radius: 6rem;
    cursor: pointer;
    /* background: #fff; */
    color: #333;
    transition: all 0.25s;
  }

  header #gnav ul .link_button {
    font-size: 18rem;
    font-weight: 600;
    line-height: 1;
    display: flex;
    align-items: center;
    position: relative;
    height: 40rem;
    padding-inline: 15rem 40rem;
    border: 1rem solid #1f1f1f;
    border-radius: 6rem;
    box-shadow: 3rem 4rem 0 #9f9fa0;
    background-color: #fff;
    transition: color 0.3s, background-color 0.3s;
    min-width: 360rem;
    height: 50rem;
  }

  header #gnav ul .link_button::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10rem;
    width: 12rem;
    height: 12rem;
    border-top: 2rem solid #231815;
    transform: translateX(-50%);
    transition: opacity 0.3s;
  }

  header #gnav ul .link_button::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10rem;
    width: 12rem;
    height: 12rem;
    border-left: 2rem solid #231815;
    transform: translateY(-50%);
    transition: opacity 0.3s;
  }

  header #gnav ul .link_button.is_active::after {
    opacity: 0;
  }

  header #gnav ul .link_button.is_active {
    background-color: #108ccf;
    color: #fff;
  }

  header #gnav ul .link_button.is_active::before {
    border-top-color: #fff;
    border-left-color: #fff;
  }

  header .megamenu ul li .tooltip {
    font-weight: 700;
  }


  .gnav_icon {
    font-size: 18rem;
    font-weight: 400;
  }

  /* ボタン色分け — 非アクティブ */
  .student_link {
    border-color: #333;
    background: #fff;
    color: #333;
  }

  .company_link {
    border-color: #2196F3;
    background: #2196F3;
  }

  .company_link .gnav_icon {
    color: #fff;
  }

  /* ボタン — アクティブ */
  .gnav_link.is_active.student_link {
    border-color: #2196F3;
    background: #2196F3;
    color: #fff;
  }

  .gnav_link.is_active.student_link .gnav_icon {
    color: #fff;
  }

  .gnav_link.is_active.company_link {
    border-color: #333;
    background: #fff;
    color: #333;
  }

  .gnav_link.is_active.company_link .gnav_icon {
    color: #333;
  }

  /* ===== メガメニュー共通 ===== */
  .megamenu {
    display: none;
    width: 100%;
    background: #fff;
    border-radius: 12rem;
    box-shadow: 0 6rem 18rem rgba(0, 0, 0, 0.10);
    /* overflow: hidden; */
    margin-top: 8rem;
  }

  /* 学生メガメニュー */
  .megamenu_inner {
    display: flex;
    gap: 50rem;
    padding: 30rem 40rem;
    border-top: 2rem solid #eee;
  }

  .megamenu_col {
    flex: 1;
  }

  .megamenu_title {
    font-weight: 700;
    color: #333;
    padding: 8rem 14rem;
    border-radius: 12rem;
    margin-bottom: 18rem;
  }

  .title_purple {
    background: #e9dcff;
  }

  .title_blue {
    background: #d9eef6;
  }

  .megamenu_list {
    list-style: none;
  }

  .megamenu_list li {
    margin-bottom: 6rem;
  }

  .megamenu_list a {
    color: #333;
    text-decoration: none;
    display: flex;
    align-items: center;
    padding: 6rem 4rem;
    transition: color 0.2s;
  }

  .megamenu_list a:hover {
    color: #2196F3;
  }

  .megamenu_list .bullet {
    color: #e9dcff;
    margin-right: 8rem;
    font-size: 10rem;
  }

  .megamenu_buttons {
    list-style: none;
  }

  .megamenu_buttons li {
    margin-bottom: 24rem;
    position: relative;
  }

  .mega_btn {
    font-size: 18rem;
    font-weight: 600;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    position: relative;
    min-width: 120rem;
    height: 40rem;
    padding-inline: 15rem 40rem;
    border: 1rem solid #1f1f1f;
    border-radius: 6rem;
    box-shadow: 3rem 4rem 0 #9f9fa0;
    background-color: #fff;
    transition: color 0.3s,
      background-color 0.3s;
    min-width: 400rem;
    height: 50rem;
  }

  .mega_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16rem;
    width: 12rem;
    height: 12rem;

    border-top: 2rem solid #231815;
    border-right: 2rem solid #231815;
    transform: translateY(-50%) rotate(45deg);
    transition: opacity 0.3s;
  }

  .mega_btn:hover {
    background: #231815;
    color: #fff;
  }

  .mega_btn:hover::after {
    border-top-color: #fff;
    border-right-color: #fff;
  }

  .mega_btn .arrow {
    font-size: 13rem;
    color: #999;
  }

  .mega_btn_fill {
    background: #333;
    color: #fff;
  }

  .mega_btn_fill:hover {
    background: #555;
  }

  .mega_btn_fill .arrow {
    color: #ccc;
  }

  .mega_tooltip {
    font-size: 12rem;
    color: #555;
    text-align: right;
    padding-top: 4rem;
    line-height: 1.6;
    z-index: 9999;
  }

  /* 企業サブメニュー */
  .megamenu_sub_inner {
    display: flex;
    gap: 40rem;
    padding: 24rem 40rem;
    border-top: 2rem solid #eee;
  }

  .megamenu_sub_link {
    font-weight: 600;
    color: #333;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 24rem;
    transition: color 0.2s;
    flex: 1;
  }

  .megamenu_sub_link::after {
    content: "";
    position: relative;

    width: 12rem;
    height: 12rem;
    top: 1rem;

    border-top: 2rem solid #231815;
    border-right: 2rem solid #231815;
    transform: rotate(45deg);
    transition: opacity 0.3s;
  }

  .megamenu_sub_link:hover {
    color: #2196F3;
  }

  .megamenu_sub_link .arrow {
    font-size: 12rem;
    color: #999;
  }
}

@media (hover: hover) and (pointer: fine) {
  header .megamenu ul li .tooltip:has(+ .mega_btn:hover) {
    opacity: 1;
  }

  header #gnav ul .link_button:hover {
    color: #fff;
    background-color: #108ccf;
  }

  header #gnav ul .link_button:hover::before,
  header #gnav ul .link_button:hover::after {
    border-color: #fff;
  }

  header #gnav ul .link_normal:hover::after {
    width: 100%;
  }
}

@media screen and (min-width: 769px) {
  header .megamenu ul li .tooltip {
    font-size: 13rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.6;
    text-align: center;
    position: absolute;
    width: 200rem;
    top: 125%;
    left: calc(50% - 100rem);
    padding-block: 10rem;
    border-radius: 8rem;
    background-color: #231815;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
    z-index: 9999;
  }
}

/* ===== SP用 ===== */
@media screen and (max-width: 768px) {
  header {
    width: 100%;
    top: 0;
    left: 0;
    transform: none;
  }

  .header_bar {
    border-radius: 0;
    padding: 10rem 40rem;
    position: relative;
    z-index: 10002;
  }

  header .hd_logo {
    width: 180rem;
  }

  #gnav {
    display: none !important;
  }

  .megamenu {
    display: none !important;
  }

  /* ハンバーガーボタン */
  .nav_button {
    display: block;
    position: relative;
    width: 56rem;
    height: 56rem;
    cursor: pointer;
    z-index: 10003;
    pointer-events: auto;
  }

  .nav_button::after {
    content: "menu";
    font-size: 28rem;
    font-weight: 500;
    line-height: 1;
    position: absolute;
    width: max-content;
    bottom: -16rem;
    left: calc(50% + 2rem);
    transform: translateX(-50%);
  }

  .nav_button span {
    position: absolute;
    left: 6rem;
    width: 52rem;
    height: 6rem;
    background: #1f1f1f;
    transition: all 0.3s;
  }

  .nav_button span:nth-child(1) {
    top: 4rem;
  }

  .nav_button span:nth-child(2) {
    top: 20rem;
  }

  .nav_button span:nth-child(3) {
    top: 36rem;
  }

  .nav_button_text {
    display: block;
    font-size: 20rem;
    font-weight: 600;
    text-align: center;
    margin-top: 36rem;
    line-height: 1;
    transition: none;
    background: none !important;
    height: auto;
    width: auto;
    position: static;
  }

  /* ハンバーガー → X 変形（active時） */
  .nav_button.active span:nth-child(1) {
    top: 20rem;
    transform: rotate(45deg);
  }

  .nav_button.active span:nth-child(2) {
    opacity: 0;
  }

  .nav_button.active span:nth-child(3) {
    top: 20rem;
    transform: rotate(-45deg);
  }

  body.menu_open {
    overflow: hidden;
  }

  /* SP メニューオーバーレイ */
  .menu_overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #fff;
    z-index: 10000;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
    pointer-events: none;
  }

  .menu_overlay.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* SP メニュー本体 */
  .sp_menu_body {
    padding: 120rem 30rem 60rem;
  }

  .accordion_item {
    margin-top: 56rem;
  }

  /* アコーディオントリガー */
  .accordion_trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16rem 30rem;
    /* margin-top: 24rem; */
    font-size: 28rem;
    font-weight: 700;
    border: 2rem solid #333;
    border-radius: 10rem;
    background: #fff;
    color: #333;
    cursor: pointer;
    transition: all 0.25s;
  }

  .accordion_content .accordion_section:first-child {
    margin-bottom: 40rem;
  }

  .accordion_icon {
    font-size: 36rem;
    font-weight: 400;
  }

  .student_accordion {
    border-color: #333;
    background: #fff;
    color: #333;
  }

  .student_accordion .accordion_icon {
    color: #333;
  }

  .company_accordion {
    border-color: #333;
    background: #fff;
    color: #333;
  }

  /* アクティブ状態の切り替え */
  .accordion_trigger.active.student_accordion {
    background: #108ccf;
    border-color: #108ccf;
    color: #fff;
  }

  .accordion_trigger.active.company_accordion {
    background: #108ccf;
    border-color: #108ccf;
    color: #fff;
  }

  .company_accordion+.accordion_content {
    padding-top: 24rem;
  }

  .accordion_content {
    display: none;
    padding: 56rem 0 10rem;
  }

  .accordion_title {
    font-size: 28rem;
    font-weight: 700;
    color: #333;
    padding: 12rem 20rem;
    background: #e9dcff;
    border-radius: 6rem;
    margin-bottom: 20rem;

    &.title_purple {
      background: #e9dcff;
    }

    &.title_blue {
      background: #d9eef6;
    }
  }

  .accordion_list {
    list-style: none;
  }

  .accordion_list li {
    margin-bottom: 8rem;
  }

  .accordion_list a {
    font-size: 28rem;
    color: #333;
    text-decoration: none;
    display: flex;
    align-items: center;
    padding: 10rem 12rem;
  }

  .accordion_list .bullet {
    color: #e9dcff;
    margin-right: 12rem;
    font-size: 24rem;
  }

  .accordion_desc {
    font-size: 24rem;
    color: #555;
    margin: 56rem 0 10rem;
    line-height: 1.5;
  }

  /* SP ボタン */
  .sp_btn {
    font-size: 26rem;
    font-weight: 600;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    position: relative;
    height: 40rem;
    padding-inline: 15rem 40rem;
    border: 1rem solid #1f1f1f;
    border-radius: 6rem;
    box-shadow: 3rem 4rem 0 #9f9fa0;
    background-color: #fff;
    transition: color 0.3s,
      background-color 0.3s;
    width: 100%;
    height: 80rem;

    text-align: center;
    justify-content: center;
  }

  .sp_btn::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16rem;
    width: 12rem;
    height: 12rem;

    border-top: 2rem solid #231815;
    border-right: 2rem solid #231815;
    transform: translateY(-50%) rotate(45deg);
    transition: opacity 0.3s;
  }

  .sp_btn:hover {
    background: #231815;
    color: #fff;
  }

  .sp_btn:hover::after {
    border-top-color: #fff;
    border-right-color: #fff;
  }

  .sp_btn .arrow {
    font-size: 13rem;
    color: #999;
  }

  .sp_btn_fill {
    background: #333;
    color: #fff;
  }

  .sp_btn_fill:hover {
    background: #555;
  }

  .sp_btn_fill .arrow {
    color: #ccc;
  }

  /* SP 直接リンク */
  .sp_direct_link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 28rem;
    font-weight: 500;
    color: #333;
    text-decoration: none;
    padding: 24rem 0;
    border-bottom: 1rem solid #eee;
  }

  .sp_direct_link .arrow {
    font-size: 22rem;
    color: #999;
  }
}

/* --------------------------------------------------
    main
-------------------------------------------------- */
/* section */
.section {
  position: relative;
  padding-block: 120rem;
}

.section:last-of-type {
  padding-bottom: 0;
}

.section+.section {
  margin-top: 40rem;
}

.section+.section::before {
  content: "";
  position: absolute;
  top: -40rem;
  left: 0;
  width: 100%;
  height: 40rem;
  background: url(../img/ribbon.jpg) top left/100% 100%;
}

.section .sec_title {
  font-size: 42rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 80rem;
}

.section .sec_title.center {
  text-align: center;
}

.section .subsection+.subsection {
  margin-top: 120rem;
}

@media screen and (max-width: 768px) {
  .section .sec_title {
    font-size: 54rem;
    line-height: 1.4285714286;
    margin-bottom: 80rem;
  }

  .section+.section {
    margin-top: 70rem;
  }

  .section+.section::before {
    top: -70rem;
    height: 70rem;
    background-image: url(../img/ribbon_sp.jpg);
  }
}

/* kv */
.kv {
  position: relative;
  padding-block: 140rem 40rem;
  background: url(../img/kv.jpg) center center/cover;
}

.kv .kv_title {
  position: absolute;
  width: 630rem;
  top: 175rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 99;
  pointer-events: none;
}

.kv .kv_slider .slick-track {
  display: flex;
  column-gap: 17.5rem;
}

.kv .kv_slider .slick-track::after,
.kv .kv_slider .slick-track::before {
  display: none;
}

.kv .kv_slider .slick-arrow {
  position: absolute;
  font-size: 0;
  width: 60rem;
  height: 60rem;
  top: calc(50% - 30rem);
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: #fff;
  z-index: 99;
}

.kv .kv_slider .slick-arrow::before {
  content: "";
  position: absolute;
  width: 25rem;
  height: 25rem;
  top: calc(50% - 12.5rem);
  transform: rotate(45deg);
}

.kv .kv_slider .slick-arrow.slick-prev {
  left: 15rem;
}

.kv .kv_slider .slick-arrow.slick-prev::before {
  border-bottom: 4rem solid #1f1f1f;
  border-left: 4rem solid #1f1f1f;
  left: calc(50% - 6.25rem);
}

.kv .kv_slider .slick-arrow.slick-next {
  right: 15rem;
}

.kv .kv_slider .slick-arrow.slick-next::before {
  border-top: 4rem solid #1f1f1f;
  border-right: 4rem solid #1f1f1f;
  left: calc(50% - 18.75rem);
}

.kv .kv_slider .kv_slide {
  position: relative;
  width: 415rem;
  cursor: pointer;
  pointer-events: all;
}

.kv .kv_slider .kv_slide .kv_slide_btn {
  font-size: 18rem;
  font-weight: 500;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 190rem;
  height: 40rem;
  position: absolute;
  bottom: 25rem;
  left: calc(50% - 95rem);
  border: 1rem solid #1f1f1f;
  border-radius: 6rem;
  box-shadow: 3rem 4rem 0 #9f9fa0;
  background-color: #fff;
  transition: color 0.3s, background-color 0.3s;
}

.kv .serif_slider {
  position: relative;
}

.kv .serif_slider .serif_slide {
  position: relative;
  width: 100%;
}

.kv .serif_slider .serif_slide::before {
  content: "";
  position: absolute;
  width: 60rem;
  height: 50rem;
  top: 0;
  left: 208rem;
  clip-path: polygon(0 100%, 50% 0, 100% 100%);
  z-index: 1;
}

.kv .serif_slider .serif_slide:nth-of-type(3n + 1)::before {
  background-color: var(--main-color-orange);
}

.kv .serif_slider .serif_slide:nth-of-type(3n + 2)::before {
  background-color: var(--main-color-green);
}

.kv .serif_slider .serif_slide:nth-of-type(3n + 3)::before {
  background-color: var(--main-color-blue);
}

.kv .serif_slider .serif_slide .serif_item {
  display: flex;
  padding-top: 35rem;
  position: relative;
  z-index: 2;
}

.kv .serif_slider .serif_slide .serif_item dt {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  row-gap: 20rem;
  width: 460rem;
  border-radius: 12rem 0 0 12rem;
}

.kv .serif_slider .serif_slide .serif_item dt:where(.serif_slide:nth-of-type(3n + 1) *) {
  background-color: var(--main-color-orange);
}

.kv .serif_slider .serif_slide .serif_item dt:where(.serif_slide:nth-of-type(3n + 2) *) {
  background-color: var(--main-color-green);
}

.kv .serif_slider .serif_slide .serif_item dt:where(.serif_slide:nth-of-type(3n + 3) *) {
  background-color: var(--main-color-blue);
}

.kv .serif_slider .serif_slide .serif_item dt p {
  font-size: 21rem;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.kv .serif_slider .serif_slide .serif_item dt figure {
  width: 243rem;
}

.kv .serif_slider .serif_slide .serif_item dd {
  width: calc(100% - 460rem);
  background-color: #fff;
  border-radius: 0 12rem 12rem 0;
  padding: 20rem 35rem;
}

.kv .serif_slider .serif_slide .serif_item dd p {
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.875;
  color: #333333;
}

@media (hover: hover) and (pointer: fine) {
  .kv .kv_slider .kv_slide:hover .kv_slide_btn {
    color: #fff;
    background-color: #1f1f1f;
  }
}

@media screen and (max-width: 768px) {
  .kv {
    background-image: url(../img/kv_sp.jpg);
    padding-top: 150rem;
  }

  .kv .inner {
    width: 100%;
  }

  .kv .slick-slider .slick-list {
    padding-inline: 40rem;
  }

  .kv .kv_slider .kv_slide {
    width: 670rem;
  }

  .kv .kv_slider .kv_slide img {
    width: 100%;
  }

  .kv .kv_slider .kv_slide .kv_slide_btn {
    font-size: 36rem;
    width: 380rem;
    height: 80rem;
    bottom: 50rem;
    left: calc(50% - 190rem);
    border-radius: 12rem;
    border-width: 2rem;
    box-shadow: 6rem 8rem 0 #9f9fa0;
  }

  .kv .serif_slider {
    margin-top: 40rem;
  }

  .kv .serif_slider .serif_slide::before {
    width: 118rem;
    height: 102rem;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }

  .kv .serif_slider .serif_slide .serif_item {
    display: block;
    padding-top: 70rem;
  }

  .kv .serif_slider .serif_slide .serif_item dt,
  .kv .serif_slider .serif_slide .serif_item dd {
    width: 100%;
  }

  .kv .serif_slider .serif_slide .serif_item dt {
    row-gap: 30rem;
    padding-block: 80rem;
    border-radius: 24rem 24rem 0 0;
  }

  .kv .serif_slider .serif_slide .serif_item dt p {
    font-size: 42rem;
  }

  .kv .serif_slider .serif_slide .serif_item dt figure {
    width: 484rem;
  }

  .kv .serif_slider .serif_slide .serif_item dd {
    border-radius: 0 0 24rem 24rem;
    padding: 60rem 40rem;
  }

  .kv .serif_slider .serif_slide .serif_item dd p {
    font-size: 28rem;
    line-height: 2;
  }
}

/* news */
.news .news_title {
  font-size: 36rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  margin-bottom: 60rem;
}

.news .news_list * {
  color: #333333;
}

.news .news_list li {
  border-top: 2rem solid #cacaca;
}

.news .news_list li:last-of-type {
  border-bottom: 2rem solid #cacaca;
}

.news .news_list li .news_item {
  display: flex;
  align-items: center;
  column-gap: 20rem;
  padding-block: 25rem;
}

.news .news_list li .news_item .cat {
  font-size: 16rem;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  flex-shrink: 0;
  width: 165rem;
  padding-block: 10rem;
  border-radius: 9999px;
}

.news .news_list li .news_item .cat.cat01 {
  background-color: var(--sub-color-orange);
}

.news .news_list li .news_item .cat.cat02 {
  background-color: var(--sub-color-green);
}

.news .news_list li .news_item .cat.cat03 {
  background-color: var(--sub-color-blue);
}

.news .news_list li .news_item .cat.cat04 {
  background-color: #efedca;
}

.news .news_list li .news_item .text {
  width: 100%;
}

.news .news_list li .news_item .text .date {
  font-size: 14rem;
  font-weight: 500;
  line-height: 1;
  margin-bottom: 5rem;
}

.news .news_list li .news_item .text .lead {
  font-weight: 500;
  line-height: 1.4;
}

@media screen and (max-width: 768px) {
  .news .news_title {
    font-size: 56rem;
    margin-bottom: 80rem;
  }

  .news .news_list li .news_item {
    display: block;
    padding-block: 40rem;
  }

  .news .news_list li .news_item .cat {
    font-size: 28rem;
    width: 100%;
    padding-block: 15rem;
    margin-bottom: 40rem;
  }

  .news .news_list li .news_item .text .date {
    font-size: 25rem;
    margin-bottom: 15rem;
  }

  .news .news_list li .news_item .text .lead {
    font-size: 32rem;
  }
}

_::-webkit-full-page-media,
_:future,
:root .news .news_list li .news_item .cat {
  padding-block: 0;
}

/* fourL */
.fourL {
  background-color: #fff8ee;
}

.fourL .fourL_content {
  position: relative;
}

.fourL .fourL_content .fourL_title {
  position: absolute;
  top: 50rem;
  left: 0;
}

.fourL .fourL_content .fourL_title span {
  text-align: center;
  display: block;
}

.fourL .fourL_content .fourL_title span.line01,
.fourL .fourL_content .fourL_title span.line03 {
  font-size: 21rem;
  font-weight: 500;
  line-height: 1;
}

.fourL .fourL_content .fourL_title span.line02 {
  font-size: 42rem;
  font-weight: 700;
  line-height: 1.4285714286;
  margin-block: 10rem;
}

.fourL .fourL_content .fourL_slider {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  overflow: hidden;
}

.fourL .fourL_content .fourL_slider * {
  min-width: 0;
  min-height: 0;
}

.fourL .fourL_content .fourL_slider .slick-track {
  display: flex;
}

.fourL .fourL_content .fourL_slider .slick-track::before,
.fourL .fourL_content .fourL_slider .slick-track::after {
  display: none;
}

.fourL .fourL_content .fourL_slider .fourL_slide {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  flex-direction: row-reverse;
  column-gap: 75rem;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_image {
  width: 485rem;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text {
  position: relative;
  width: 550rem;
  border-radius: 12rem;
  padding-block: 35rem;
  margin-bottom: 40rem;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text * {
  color: #fff;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text::after {
  content: "";
  position: absolute;
  width: 40rem;
  height: 40rem;
  top: 50%;
  right: -39rem;
  transform: translateY(-50%);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(1) *) {
  background-color: var(--labor-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(1) *)::after {
  background-color: var(--labor-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(2) *) {
  background-color: var(--learning-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(2) *)::after {
  background-color: var(--learning-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(3) *) {
  background-color: var(--love-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(3) *)::after {
  background-color: var(--love-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(4) *) {
  background-color: var(--leisure-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text:where(.fourL_slide:nth-of-type(4) *)::after {
  background-color: var(--leisure-color);
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dt {
  margin-bottom: 15rem;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dt span {
  font-weight: 700;
  line-height: 1;
  text-align: center;
  display: block;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dt span.line01 {
  font-size: 42rem;
  margin-bottom: 10rem;
}

.fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dd {
  font-size: 24rem;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  font-feature-settings: "palt";
}

.fourL .fourL_content .fourL_slider .slick-dots {
  flex-shrink: 0;
}

.fourL .fourL_content .fourL_slider .slick-dots li button {
  font-size: 0;
  position: relative;
  width: 134rem;
  aspect-ratio: 1/1;
  background-size: cover;
  border: none;
  padding: 0;
  border-radius: 12rem;
  overflow: hidden;
}

.fourL .fourL_content .fourL_slider .slick-dots li button::before {
  font-size: 42rem;
  color: #fff;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 12rem;
  transition: background-color 0.3s;
}

.fourL .fourL_content .fourL_slider .slick-dots li+li {
  margin-top: 17rem;
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(1) button {
  background-image: url(../img/fourL_dot_01.jpg);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(1) button::before {
  content: "仕事";
  background-color: rgba(6, 87, 131, 0.8);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(2) button {
  background-image: url(../img/fourL_dot_02.jpg);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(2) button::before {
  content: "学習";
  background-color: rgba(2, 85, 41, 0.8);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(3) button {
  background-image: url(../img/fourL_dot_03.jpg);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(3) button::before {
  content: "愛";
  background-color: rgba(143, 53, 32, 0.8);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(4) button {
  background-image: url(../img/fourL_dot_04.jpg);
}

.fourL .fourL_content .fourL_slider .slick-dots li:nth-of-type(4) button::before {
  content: "余暇";
  background-color: rgba(129, 101, 10, 0.8);
}

.fourL .fourL_content .fourL_slider .slick-dots li.slick-active button::before {
  content: "";
  background-color: transparent;
  border: 5rem solid #454545;
}

.fourL .fourL_content .fourL_lead {
  font-weight: 500;
  text-align: justify;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  margin-block: 80rem;
}

.fourL .fourL_content .fourL_column {
  border: 2rem solid #1f1f1f;
  border-radius: 12rem;
  background-color: #fff;
  padding: 35rem 40rem;
}

.fourL .fourL_content .fourL_column dt {
  font-size: 21rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 10rem;
}

@media (hover: hover) and (pointer: fine) {
  .fourL .fourL_content .fourL_slider .slick-dots li button:hover::before {
    content: "";
    background-color: transparent;
  }
}

@media screen and (max-width: 768px) {
  .fourL .fourL_content .fourL_title {
    position: static;
    margin-bottom: 80rem;
  }

  .fourL .fourL_content .fourL_title span.line01,
  .fourL .fourL_content .fourL_title span.line03 {
    font-size: 36rem;
    line-height: 2;
  }

  .fourL .fourL_content .fourL_title span.line02 {
    font-size: 56rem;
    margin-bottom: 45rem;
  }

  .fourL .fourL_content .fourL_slider {
    flex-direction: column-reverse;
  }

  .fourL .fourL_content .fourL_slider .slick-list {
    max-width: 100%;
  }

  .fourL .fourL_content .fourL_slider .slick-dots {
    display: flex !important;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 40rem;
  }

  .fourL .fourL_content .fourL_slider .slick-dots li+li {
    margin-top: 0;
  }

  .fourL .fourL_content .fourL_slider .slick-dots li button {
    width: 150rem;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide {
    display: block;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_image {
    width: 670rem;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text {
    width: 670rem;
    margin-block: 85rem 0;
    padding-block: 40rem;
    border-radius: 24rem;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text::after {
    width: 75rem;
    height: 63rem;
    right: 50%;
    top: -62rem;
    transform: translateX(50%);
    clip-path: polygon(0 100%, 50% 0, 100% 100%);
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dt {
    margin-bottom: 30rem;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dt span.line01 {
    font-size: 56rem;
    margin-bottom: 20rem;
  }

  .fourL .fourL_content .fourL_slider .fourL_slide .fourL_slide_text dd {
    font-size: 42rem;
  }

  .fourL .fourL_content .fourL_lead {
    margin-block: 120rem 100rem;
  }

  .fourL .fourL_content .fourL_column {
    border-radius: 24rem;
    padding: 80rem 40rem;
  }

  .fourL .fourL_content .fourL_column dt {
    font-size: 36rem;
    margin-bottom: 80rem;
  }
}

.fourL_media h3 {
  font-size: 28rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 40rem;
}

@media screen and (max-width: 768px) {
  .fourL_media h3 {
    font-size: 56rem;
    line-height: 1.2;
    margin-bottom: 60rem;
  }
}

.fourl_media_contnets {
  margin-bottom: 80rem;
}

.fourl_tabs {
  display: flex;
  justify-content: center;
  gap: 40rem;
  margin-bottom: 40rem;
}

.fourl_tabs .btn-fourl {
  flex: 1;
  font-weight: 700;
  position: relative;
  padding: 16rem;
  border: none;
  text-align: center;
  background-color: #fff;
  box-shadow: 4rem 4rem 0rem #1f1f1f;
  border: 2rem solid #1f1f1f;
  border-radius: 12rem;
  opacity: .8;
}

.fourl_tabs .btn-fourl.active {
  opacity: 1;
}


.btn-fourl.btn-orange {
  background-color: #f6c4af;
}

.btn-fourl.btn-green {
  background-color: #e3e9a0;
}

.btn-fourl.btn-blue {
  background-color: #c1e5e0;
}

.fourl_tabs .btn-fourl.active:after {
  content: "";
  position: absolute;
  width: 24rem;
  height: calc(20rem * sin(60deg));
  bottom: -20rem;
  left: 50%;
  clip-path: polygon(0 0, 100% 0, 100% 0, 50% 100%);
  transform: translateX(-50%);
  background-color: #1f1f1f;

}

.fourl_media_content {
  display: none;
  grid-template-columns: repeat(2, 1fr);
  gap: 40rem;
  padding: 24rem 40rem;
  background-color: #fff;
  border-radius: 12rem;
}

.fourl_media_content.active {
  display: grid;
}

@media screen and (max-width: 768px) {
  .fourl_media_content {
    grid-template-columns: 1fr;
  }

  .fourL_media {
    display: flex;
    flex-direction: column;
  }

  .fourL_media h3 {
    order: 0;
  }

  .fourl_tabs,
  .fourl_media_contnets {
    display: contents;
  }

  .fourl_tabs .btn-fourl {
    width: 100%;
    margin-bottom: 56rem;
    opacity: 1;
    position: relative;
  }


  .fourl_tabs .btn-fourl .icon {
    flex: 0;
    display: block;
    position: absolute;
    top: 50%;
    right: 20rem;
    transform: translateY(-50%);
    width: 32rem;
    transform-origin: center 43%;
    transition: transform 0.4s;

    /* アイコンのバーのスタイル */
    &::before,
    &::after {
      content: "";
      position: absolute;
      display: block;
      width: 20rem;
      height: 2rem;
      background-color: #1f1f1f;
    }

    &::before {
      left: 0;
      transform: rotate(45deg);
    }

    &::after {
      right: 0;
      transform: rotate(-45deg);
    }
  }

  .fourl_tabs .btn-fourl.active .icon {
    transform: translateY(-50%) rotate(180deg);
  }

  .fourl_tabs .btn-fourl.active:after {
    display: none;
  }

  .fourl_tabs .btn-fourl:nth-child(1) {
    order: 1;
  }

  .fourl_media_contnets .fourl_media_content:nth-child(1) {
    order: 2;
  }

  .fourl_tabs .btn-fourl:nth-child(2) {
    order: 3;
  }

  .fourl_media_contnets .fourl_media_content:nth-child(2) {
    order: 4;
  }

  .fourl_tabs .btn-fourl:nth-child(3) {
    order: 5;
  }

  .fourl_media_contnets .fourl_media_content:nth-child(3) {
    order: 6;
  }

  .fourl_media_content {
    gap: 56rem;
    border: 2rem solid #1f1f1f;
    padding: 56rem 40rem;
    margin-bottom: 56rem;
  }
}


.fourl_media_content .media--container .media--title {
  display: flex;
  align-items: center;
  gap: 8rem;
  margin-bottom: 10rem;
}

.fourl_media_content .media--container .media--title:before {
  content: "";
  display: block;
  width: 16rem;
  height: 16rem;

  background-color: #f6c4af;
  border-radius: 50%;
}

#highschool.fourl_media_content .media--container .media--title:before {
  background-color: #f6c4af;
}

#university.fourl_media_content .media--container .media--title:before {
  background-color: #e3e9a0;
}

#society.fourl_media_content .media--container .media--title:before {
  background-color: #c1e5e0;
}

.fourl_media_content .media--container .media--wrapper {
  width: 100%;
  aspect-ratio: 16/9;
}

.fourl_media_content .media--container .media--wrapper iframe {
  width: 100%;
  height: 100%;
}

/* diary */
.diary {
  background-color: #f2f4de;
}

.diary .inner {
  padding-inline: 15rem;
}

.diary .diary_flex {
  display: flex;
  justify-content: space-between;
}

.diary .diary_flex .diary_flex_text {
  width: min(800rem, 100%);
}

.diary .diary_flex .diary_flex_text .buttons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32rem 20rem;
  margin-top: 40rem;
}

.diary .diary_flex .diary_flex_text .diary_desc {
  margin-top: 40rem;
  font-weight: 700;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
}

.diary .diary_flex .diary_flex_text .buttons .item04 {
  grid-column: 1 / -2;
}

.diary .diary_flex .diary_flex_text .buttons .button a,
.diary .diary_flex .diary_flex_image .btn-wrapper a {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20rem;
  font-weight: 700;
  color: #1a1a1c;
  line-height: 1.5;
  text-align: center;
  position: relative;
  width: 390rem;
  margin: 1rem;
  height: 80rem;
  background-color: #fff;
  border: 3rem solid #9f9fa0;
  border-radius: 6rem;
  box-shadow: 3rem 5rem 0 #108ccf;
  transition: all 0.3s;

}

/* .diary .diary_flex .diary_flex_text .buttons.sample {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 64rem;
  gap: 20rem;
} */

.diary .diary_flex .diary_flex_text .buttons.sample .button a {
  width: unset;
  /* line-height: 1 !important; */
  /* font-size: 18rem; */
}

.diary .diary_flex .diary_flex_image .btn-wrapper a {
  width: unset;
  line-height: 1.2;
  font-size: 18rem;
  font-feature-settings: "palt";

  @media screen and (max-width: 768px) {
    font-size: 32rem;
    margin-block: 24rem;
    height: 140rem;
    line-height: 1.5;
    letter-spacing: 0.05em;
  }
}

.diary .diary_flex .diary_flex_text .buttons.sample .button.btn-orenge a {
  background-color: #f6c4af;
}

.diary .diary_flex .diary_flex_text .buttons.sample .button.btn-green a {
  background-color: #e3e9a0;
}

.diary .diary_flex .diary_flex_text .buttons.sample .button.btn-blue a {
  background-color: #c1e5e0;
}

.diary .diary_flex .diary_flex_text .buttons .button a::before,
.diary .diary_flex .diary_flex_image .btn-wrapper a::before {
  content: "";
  position: absolute;
  width: calc(100% + 2rem + 6rem);
  height: calc(100% + 2rem + 6rem);
  border-radius: 6rem;
  top: -4rem;
  left: -4rem;
  border: 1rem solid #231815;
}

.diary .diary_flex .diary_flex_text .buttons .button a::after,
.diary .diary_flex .diary_flex_image .btn-wrapper a::after {
  content: "";
  position: absolute;
  width: 12rem;
  height: 12rem;
  border-right: 3rem solid #000;
  border-top: 3rem solid #000;
  top: calc(50% - 7rem);
  right: 20rem;
  transform: rotate(45deg);
}

.diary .diary_flex .diary_flex_image {
  width: 340rem;
  text-align: center;
}

.diary .diary_flex .diary_flex_image a {
  transition: opacity 0.3s;
}

.diary .diary_flex .diary_flex_image a figcaption {
  font-size: 16rem;
  line-height: 1.6;
  text-align: justify;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  padding-top: 10rem;
}

.diary .diary_flex .diary_flex_image .btn-wrapper {
  margin-top: 20rem;
}

.diary .diary_flex .diary_flex_image .btn-wrapper p {
  font-size: 14rem;
  line-height: 1.6;
  text-align: justify;
  font-feature-settings: "palt";
  letter-spacing: -0.05em;
  padding-top: 10rem;
  text-indent: -1em;
  padding-left: 1em;

  @media screen and (max-width: 768px) {
    font-size: 24rem;
  }
}

.diary .diary_flow {
  margin-top: 80rem;

  @media screen and (max-width: 768px) {
    margin-top: 120rem;
  }
}

.diary .diary_flow .flow_head {
  font-size: 28rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 40rem;
}

.diary .diary_flow .flow_steps {
  margin-top: 40rem;
}

.diary .diary_flow .flow_steps .tabs {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 40rem;
}

.diary .diary_flow .flow_steps .tabs .tab_button {
  position: relative;
  width: 200rem;
  padding: 0;
  border: none;
}

.diary .diary_flow .flow_steps .tabs .tab_button::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 12rem;
  background-color: #1f1f1f;
  bottom: -5rem;
  right: -5rem;
  z-index: 1;
}

.diary .diary_flow .flow_steps .tabs .tab_button span {
  font-weight: 700;
  text-align: center;
  line-height: 1;
  display: block;
  position: relative;
  z-index: 2;
}

.diary .diary_flow .flow_steps .tabs .tab_button .tab_button_green {
  font-size: 14rem;
  background-color: #e3e9a0;
  padding-block: 10rem 5rem;
  border: 2rem solid #1f1f1f;
  border-bottom: none;
  border-radius: 12rem 12rem 0 0;
}

.diary .diary_flow .flow_steps .tabs .tab_button .tab_button_green strong {
  font-size: 21rem;
  font-weight: 700;
  line-height: 1;
}

.diary .diary_flow .flow_steps .tabs .tab_button .tab_button_white {
  font-size: 16rem;
  background-color: #fff;
  padding-block: 10rem;
  border: 2rem solid #1f1f1f;
  border-top: none;
  border-radius: 0 0 12rem 12rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content {
  display: none;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content.active {
  display: block;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box {
  background-color: #fff;
  border-radius: 12rem;
  padding: 50rem 40rem 45rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex .flex_text {
  width: 485rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex .flex_image {
  width: 645rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box .tab_box_number {
  font-size: 24rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  width: 100%;
  background-color: #e3e9a0;
  border-radius: 12rem;
  padding-block: 10rem;
  margin-bottom: 40rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box .tab_box_title {
  font-size: 24rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  margin-bottom: 30rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box p {
  font-size: 16rem;
  font-weight: 700;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style {
  margin-top: 40rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_title {
  font-size: 24rem;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 20rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_lead {
  font-weight: 700;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  border: 2rem solid #9f9fa0;
  border-radius: 12rem;
  padding: 30rem 40rem;
  margin-top: 30rem;
  background-color: #fff;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list .style_list_item {
  font-size: 16rem;
  line-height: 2.375;
  display: flex;
  column-gap: 8rem;
  width: 565rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list .style_list_item::before {
  content: "●";
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column {
  width: 100%;
  border: 2rem solid #9f9fa0;
  border-radius: 12rem;
  padding: 30rem 40rem;
  margin-top: 40rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column dt {
  font-weight: 700;
  line-height: 1;
  margin-bottom: 25rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column dd p {
  font-size: 16rem;
  font-weight: 500;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword {
  margin-top: 50rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_title {
  font-size: 24rem;
  line-height: 1;
  font-weight: 700;
  margin-bottom: 40rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  row-gap: 40rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item {
  width: 600rem;
  border-radius: 12rem;
  overflow: hidden;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dt {
  font-weight: 700;
  color: #fff;
  line-height: 1;
  padding: 20rem 25rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd {
  display: flex;
  background-color: #fff;
  padding: 15rem 30rem 20rem;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p {
  font-size: 16rem;
  font-weight: 700;
  font-feature-settings: "palt";
  width: 33.3333333333%;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p span {
  font-size: 16rem;
  font-weight: 700;
  font-feature-settings: "palt";
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p .tag {
  display: inline-flex;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p .tag::before {
  content: "#";
  flex-shrink: 0;
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.labor {
  border: 2rem solid var(--labor-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.labor dt {
  background-color: var(--labor-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.learning {
  border: 2rem solid var(--learning-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.learning dt {
  background-color: var(--learning-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.love {
  border: 2rem solid var(--love-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.love dt {
  background-color: var(--love-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.leisure {
  border: 2rem solid var(--leisure-color);
}

.diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item.leisure dt {
  background-color: var(--leisure-color);
}

@media (hover: hover) and (pointer: fine) {

  .diary .diary_flex .diary_flex_text .buttons .button a:hover,
  .diary .diary_flex .diary_flex_image .btn-wrapper a:hover {
    transform: translateX(3rem) translateY(5rem);
    box-shadow: none;
  }


  .diary .diary_flex .diary_flex_image a:hover {
    opacity: 0.7;
  }

  .diary .diary_flex .diary_flex_image .btn-wrapper a:hover {
    opacity: 1;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:hover {
    opacity: 1;
  }
}

@media screen and (min-width: 769px) {
  .diary .diary_flow .flow_steps .tabs .tab_button {
    opacity: 0.5;
    transition: opacity 0.3s;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button::after {
    content: "";
    position: absolute;
    width: 25rem;
    height: 14rem;
    background-color: #1f1f1f;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    bottom: -18rem;
    left: 50%;
    transform: translateX(-50%);
    opacity: 0;
    transition: opacity 0.3s;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button.active {
    opacity: 1;
    pointer-events: none;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button.active::after {
    opacity: 1;
  }
}

@media screen and (max-width: 768px) {
  .diary .diary_flex {
    display: block;
  }

  .diary .diary_flex .diary_flex_text .buttons {
    display: block;
    margin-top: 56rem;
  }

  .diary .diary_flex .diary_flex_text .buttons .button+.button {
    margin-top: 56rem;
  }

  .diary .diary_flex .diary_flex_text .buttons .button a {
    font-size: 36rem;
    width: 100%;
    height: 140rem;
    border-width: 6rem;
    border-radius: 16rem;
    /* padding-block: 60rem; */
    box-shadow: 8rem 6rem 0 #108ccf;
    line-height: 1.5;
  }

  .diary .diary_flex .diary_flex_text .buttons .button a::before {
    top: -7rem;
    left: -7rem;
    width: calc(100% + 12rem + 2rem);
    height: calc(100% + 12rem + 2rem);
    border-radius: 16rem;
  }

  .diary .diary_flex .diary_flex_text .buttons .button a::after {
    width: 22rem;
    height: 22rem;
    top: calc(50% - 11rem);
    right: 40rem;
    border-top-width: 4rem;
    border-right-width: 4rem;
  }

  .diary .diary_flex .diary_flex_image {
    width: 100%;
    margin-top: 120rem;
  }

  .diary .diary_flex .diary_flex_image a figcaption {
    font-size: 32rem;
    padding-top: 40rem;
  }

  .diary .diary_flow .flow_head {
    font-size: 56rem;
    margin-bottom: 60rem;
  }

  .diary .diary_flow .flow_steps {
    display: flex;
    flex-direction: column;
    margin-top: 80rem;
  }

  .diary .diary_flow .flow_steps .tabs,
  .diary .diary_flow .flow_steps .tab_contents {
    display: contents;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button {
    width: 100%;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button+.tab_button {
    margin-top: 50rem;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button::before {
    border-radius: 24rem;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(1) {
    order: 1;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(2) {
    order: 3;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(3) {
    order: 5;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(4) {
    order: 7;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(5) {
    order: 9;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button:nth-child(6) {
    order: 11;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button .tab_button_green {
    font-size: 42rem;
    border-width: 4rem;
    border-radius: 24rem 24rem 0 0;
    padding-block: 15rem;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button .tab_button_green strong {
    font-size: 63rem;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button .tab_button_green::after {
    position: absolute;
    content: "";
    width: 30rem;
    height: 30rem;
    top: calc(50% - 22.5rem);
    right: 30rem;
    border-right: 4rem solid #1f1f1f;
    border-bottom: 4rem solid #1f1f1f;
    transform: rotate(45deg);
    transition: transform 0.3s, top 0.3s;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button .tab_button_white {
    font-size: 48rem;
    border-width: 4rem;
    border-radius: 0 0 24rem 24rem;
    padding-block: 25rem;
  }

  .diary .diary_flow .flow_steps .tabs .tab_button.active .tab_button_green::after {
    top: calc(50% - 7.5rem);
    transform: rotate(225deg);
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content {
    margin-top: 30rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(1) {
    order: 2;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(2) {
    order: 4;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(3) {
    order: 6;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(4) {
    order: 8;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(5) {
    order: 10;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content:nth-child(6) {
    order: 12;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box {
    padding: 40rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box p {
    font-size: 32rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex {
    border: 4rem solid #1f1f1f;
    border-radius: 24rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex .flex_text,
  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex .flex_image {
    width: 100%;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box.flex .flex_image {
    order: -1;
    margin-bottom: 40rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box .tab_box_number {
    font-size: 48rem;
    border-radius: 24rem;
    padding-block: 20rem;
    margin-bottom: 60rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content .tab_box .tab_box_title {
    font-size: 48rem;
    margin-bottom: 60rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style {
    margin-top: 80rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_title {
    font-size: 48rem;
    margin-bottom: 40rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list {
    border-width: 4rem;
    border-radius: 24rem;
    margin-top: 60rem;
    padding-block: 60rem 50rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list .style_list_item {
    font-size: 28rem;
    line-height: 1.5;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab2 .style .style_list .style_list_item+.style_list_item {
    margin-top: 30rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column {
    padding-block: 40rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column dt {
    font-size: 32rem;
    margin-bottom: 20rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column dd p,
  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .tab_box .column dd span {
    font-size: 32rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword {
    margin-top: 80rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_title {
    font-size: 48rem;
    margin-bottom: 80rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item {
    width: 320rem;
    border-width: 3rem;
    border-radius: 24rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dt {
    font-size: 24rem;
    text-align: center;
    padding: 25rem 0;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd {
    display: block;
    height: 100%;
    padding: 30rem 40rem;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p {
    font-size: 24rem;
    font-weight: 500;
    line-height: 1.75;
    width: 100%;
  }

  .diary .diary_flow .flow_steps .tab_contents .tab_content#tab4 .keyword .keyword_list .keyword_item dd p span {
    font-size: 24rem;
    font-weight: 500;
  }
}


/* hint */

.hint {
  background-color: #fffeee;
}

.hint .sec_d-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 40rem;
  margin-top: 80rem;

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

.hint .sec_d-flex .sec_d-flex_title {
  flex-shrink: 0;

  @media screen and (max-width: 768px) {
    flex-shrink: 1;
  }
}

.hint .sec_d-flex .sec_d-flex_image {
  flex: 1;
}

.hint .sec_d-flex .sec_d-flex_title .sec_title {
  margin-bottom: 56rem;
}

.hint .sec_d-flex .sec_d-flex_title .sec_title_sub {
  display: block;
  font-size: 24rem;
  margin-bottom: 12rem;

  @media screen and (max-width: 768px) {
    font-size: 32rem;
    margin-bottom: 0;
  }
}

.hint .hint_list {
  margin-top: 80rem;
}

.hint .hint_list .hint_itemlist {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40rem;

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

.hint .hint_list .hint_itemlist li {
  flex: 1;

  display: flex;
  flex-direction: column;
  align-items: center;
}

.hint .hint_list .hint_itemlist li figure {
  width: 140rem;
}

.hint .hint_list .hint_itemlist li .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20rem;
  font-weight: 700;
  color: #1a1a1c;
  line-height: 1;
  text-align: center;
  position: relative;
  width: 100%;
  margin: 1rem;
  height: 60rem;
  background-color: #fff;
  border: 3rem solid #9f9fa0;
  border-radius: 6rem;
  box-shadow: 3rem 5rem 0 #108ccf;
  transition: all 0.3s;
}

.hint .hint_list .hint_itemlist li .btn::before {
  content: "+";
  font-size: 32rem;
  font-weight: 300;
  position: absolute;
  top: 50%;
  right: 16rem;
  transform: translateY(-50%);
}

.hint .hint_list .hint_itemlist li p {
  margin-top: 20rem;
  font-size: 16rem;
  text-align: center;
  line-height: 1.4;
}


/* hint-content modal */
.hint-contents {
  position: relative;
}

.hint-content {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  background-color: rgba(0, 0, 0, 0.7);
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.hint-content.is-active {
  display: flex;
  opacity: 1;
}

.hint-content_inner {
  background-color: #fff;
  border-radius: 16rem;
  max-width: 1240rem;
  width: 90%;
  max-height: 85vh;
  overflow-y: auto;
  position: relative;
  transform: translateY(20px);
  animation: hintSlideUp 0.3s ease forwards;
}

@keyframes hintSlideUp {
  from {
    transform: translateY(20px);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.hint-content_inner h3 {
  font-size: 40rem;
  font-weight: 700;
  padding-block: 15rem;
  text-align: center;
}

.hint-content_inner h4 {
  font-size: 22rem;
  font-weight: 700;
  margin-bottom: 40rem;
  letter-spacing: 0.05em;
  text-align: center;
  border-radius: 12rem;
}

.hint-content_inner>section {
  padding: 60rem 60rem 50rem;

  @media screen and (max-width: 768px) {
    padding: 40rem 40rem 80rem;
  }
}

.hint-content_inner .hint-content_title {
  /* font-size: 18rem; */
  /* font-weight: 700; */
  line-height: 1.6;
  margin-bottom: 20rem;
  padding-bottom: 4rem;
  border-bottom: 3rem solid #9f9fa0;

}

.hint-content.working h3,
.hint-content.working .hint-content_inner h4 {
  background-color: #c1e5e0;
}

.hint-content.marriage h3,
.hint-content.marriage .hint-content_inner h4 {
  background-color: #e3e9a0;
}

.hint-content.child h3,
.hint-content.child .hint-content_inner h4 {
  background-color: #f6c4af;
}

.hint-content.living h3,
.hint-content.living .hint-content_inner h4 {
  background-color: #efedca;
}

.hint-content_inner .help_text {
  font-size: 14rem;
  line-height: 1.6;
  margin-top: 20rem;
}

.hint-content .hint-content_close {
  position: absolute;
  top: 15rem;
  right: 15rem;
  width: 40rem;
  height: 40rem;
  background: none;
  border: 2rem solid #999;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20rem;
  color: #999;
  line-height: 1;
  transition: all 0.3s;
  z-index: 10;
}

.hint-content .hint-content_close:hover {
  border-color: #333;
  color: #333;
}

.hint .hint_list .hint_itemlist li .btn.is-active {
  background-color: #108ccf;
  color: #fff;
  border-color: #108ccf;
}

.hint .hint_list .hint_itemlist li .btn.is-active::before {
  content: "−";
  color: #fff;
}

body.hint-modal-open {
  overflow: hidden;
}

.hint-content.living .btn-wrapper {

  & .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20rem;
    font-weight: 700;
    color: #1a1a1c;
    line-height: 1;
    text-align: center;
    position: relative;
    max-width: 480rem;
    width: 100%;
    margin: 1rem auto;
    height: 80rem;
    background-color: #fff;
    border: 3rem solid #9f9fa0;
    border-radius: 6rem;
    box-shadow: 3rem 5rem 0 #108ccf;
    transition: all 0.3s;

    &::before {
      content: "";
      display: block;
      width: 24rem;
      height: 24rem;
      background-image: url(../img/icon_external-link.svg);
      background-size: contain;
      background-repeat: no-repeat;
      background-position: center;
      position: absolute;
      top: 50%;
      right: 16rem;
      transform: translateY(-50%);
    }

  }
}

@media (hover: hover) and (pointer: fine) {

  .hint-content.living .btn-wrapper .btn:hover {
    transform: translateX(3rem) translateY(5rem);
    box-shadow: none;
  }

}


@media screen and (max-width: 768px) {
  .hint-content_inner {
    border-radius: 24rem;
    width: 95%;
    max-height: 90vh;
  }

  .hint-content_inner h3 {
    font-size: 48rem;
    margin-bottom: 40rem;
    padding-bottom: 20rem;
    border-bottom-width: 4rem;
  }

  .hint-content_inner h4 {
    font-size: 36rem;
    margin-bottom: 56rem;
    line-height: 1.4;
    padding-block: 20rem;
  }

  .hint-content_inner .hint-content_title {
    font-size: 32rem;
    margin-bottom: 30rem;
  }

  .hint-content_inner .help_text {
    font-size: 28rem;
    margin-top: 56rem;
  }

  .hint-content .hint-content_close {
    width: 70rem;
    height: 70rem;
    font-size: 36rem;
    top: 20rem;
    right: 20rem;
    border-width: 3rem;
  }

  .hint .hint_list .hint_itemlist li .btn {
    font-size: 36rem;
    height: 100rem;
    border-width: 4rem;
    border-radius: 12rem;
  }

  .hint .hint_list .hint_itemlist li .btn::before {
    font-size: 48rem;
  }

  .hint .hint_list .hint_itemlist li p {
    font-size: 28rem;
  }

  .hint .hint_list .hint_itemlist {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40rem;
  }

  .hint .hint_list .hint_itemlist li figure {
    width: 200rem;
  }

  .hint-content .overwrap img {
    width: 1280rem;
    max-width: none;
  }

}


/* operate */
.operate {
  background-color: #e3f3f1;
}

.operate .inner {
  padding-inline: 15rem;
}

.operate .operate_list {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  flex-wrap: wrap;
  row-gap: 40rem;
  margin-top: 80rem;
}

.operate .operate_list .operate_item {
  background-color: #fff;
  border-radius: 12rem;
}

.operate .operate_list .operate_item.third {
  width: 390rem;
  padding: 20rem 20rem 40rem;
}

.operate .operate_list .operate_item.image {
  width: 100%;
  padding: 60rem 190rem;
}

.operate .operate_list .operate_item.image figure {
  margin-inline: auto;
}

.operate .operate_list .operate_item .icon {
  width: 56rem;
  margin: 0 auto 25rem;
}

.operate .operate_list .operate_item .head {
  font-size: 24rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  margin-bottom: 30rem;
}

.operate .operate_list .operate_item .lead {
  font-size: 16rem;
  font-weight: 700;
  line-height: 1.8;
  font-feature-settings: "palt";
}

@media screen and (max-width: 768px) {
  .operate .sec_title {
    text-align: center;
  }

  .operate .operate_list .operate_item.third {
    width: 100%;
    padding: 40rem 40rem 30rem;
  }

  .operate .operate_list .operate_item.image {
    padding: 80rem 40rem;
  }

  .operate .operate_list .operate_item .icon {
    width: 112rem;
    text-align: center;
    margin-bottom: 40rem;
  }

  .operate .operate_list .operate_item .head {
    font-size: 48rem;
    margin-bottom: 40rem;
  }

  .operate .operate_list .operate_item .lead {
    font-size: 32rem;
  }
}

/* future_contents */
.future_contents {
  display: flex;
  align-items: center;
  justify-content: center;
}

.future_contents .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20rem;
  font-weight: 700;
  color: #1a1a1c;
  line-height: 1.5;
  text-align: center;
  position: relative;
  width: 390rem;
  margin: 1rem;
  height: 80rem;
  background-color: #fff;
  border: 3rem solid #9f9fa0;
  border-radius: 6rem;
  box-shadow: 3rem 5rem 0 #108ccf;
  transition: all 0.3s;

  @media screen and (max-width: 768px) {
    font-size: 32rem;
    margin-block: 24rem;
    height: 140rem;
    line-height: 1.5;
    letter-spacing: 0.05em;
    width: 100%;
  }

}

.btn-external-link {
  display: flex;

  &::before {
    content: "";
    display: block;
    width: 24rem;
    height: 24rem;
    background-image: url(../img/icon_external-link.svg);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    top: 50%;
    right: 16rem;
    transform: translateY(-50%);
  }

  &::after {
    display: none;
  }

}


@media (hover: hover) and (pointer: fine) {

  .future_contents .btn:hover {
    transform: translateX(3rem) translateY(5rem);
    box-shadow: none;
  }
}


.seminar {
  margin-top: 80rem;
  margin-bottom: 80rem;

  @media screen and (max-width: 768px) {
    margin-top: 120rem;
  }
}

.seminar_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /* align-items: end; */
  gap: 32rem;

  @media screen and (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.seminar_list .list-box {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.seminar_list .list-box {
  &:nth-child(1) .list-image {
    width: 280rem;
  }

  &:nth-child(2) .list-image {
    width: 230rem;
  }

  &:nth-child(3) .list-image {
    width: 240rem;
  }
}

.list-title {
  width: 100%;
  border-radius: 12rem;

  & summary {
    width: 100%;
    height: 240rem;
    flex-direction: column;
    display: flex;
    align-items: center;
    justify-content: end;

    @media screen and (max-width: 768px) {
      height: 300rem;
    }
  }

  & summary div {
    width: 100%;
    border-radius: 12rem;

    display: grid;
    /* 初期値の display: list-item 以外を指定したので、デフォルトの三角形アイコンは非表示になる */
    grid-template-columns: 1fr 24px;
    gap: 6px;
    align-items: center;
    justify-items: center;
    padding: 16px 20px;

    @media screen and (max-width: 768px) {
      padding: 16px;
    }
  }

  &.highschool summary div {
    background-color: #f6c4af;
  }

  &.university summary div {
    background-color: #e3e9a0;
  }

  &.society summary div {
    background-color: #c1e5e0;
  }
}

details.list-title .icon {
  display: block;
  position: relative;
  width: 20rem;
  transform-origin: center 43%;
  transition: transform 0.4s;

  /* アイコンのバーのスタイル */
  &::before,
  &::after {
    content: "";
    position: absolute;
    display: block;
    width: 12rem;
    height: 2rem;
    background-color: #1f1f1f;
  }

  &::before {
    left: 0;
    transform: rotate(45deg);
  }

  &::after {
    right: 0;
    transform: rotate(-45deg);
  }
}

details {

  /* --------アコーディオンの中身のスタイル-------- */
  &::details-content {
    transition:
      height 0.4s,
      opacity 0.4s,
      content-visibility 0.4s allow-discrete;
    height: 0;
    opacity: 0;
    overflow: clip;
  }

  /* --------アコーディオンの中身のスタイル（開いている時）-------- */
  &[open]::details-content {
    opacity: 1;
  }

  /* アコーディオンが開いた時のスタイル */
  &[open] .icon {
    transform: rotate(180deg);
  }
}

@supports (interpolate-size: allow-keywords) {
  :root {
    interpolate-size: allow-keywords;
    /* height:0（数値型） → auto（文字型） のアニメーションを可能にするための指定 */
  }

  details[open]::details-content {
    height: auto;
    max-height: 1500rem;
  }
}

/* height:0→autoへのアニメーションが対応していない場合は、固定値にアニメーションさせる */
@supports not (interpolate-size: allow-keywords) {
  details[open]::details-content {
    height: auto;
    max-height: 1500rem;
    overflow-y: scroll;
  }
}

.list-content .lead {
  margin-block: 32rem;
  line-height: 1.5;

  @media screen and (max-width: 768px) {
    margin-block: 40rem;
  }
}

.list-content .btn-list {
  display: flex;
  flex-direction: column;
  padding-bottom: 6rem;
  padding-right: 4rem;
}

.list-content .caption:nth-of-type(1) {
  margin-top: 40rem;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  align-self: justify;
  line-height: 1.4;

  @media screen and (max-width: 768px) {
    font-size: 26rem;
  }
}

.list-content .caption:nth-of-type(2) {
  margin-top: 8rem;
  font-size: 16rem;

  @media screen and (max-width: 768px) {
    font-size: 26rem;
  }
}

.list-content .btn-list .btn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16rem;
  font-weight: 700;
  color: #1a1a1c;
  line-height: 1.2;
  text-align: center;
  position: relative;
  width: 100%;
  /* margin: 1rem; */
  height: 60rem;
  background-color: #fff;
  border: 3rem solid #9f9fa0;
  border-radius: 6rem;
  box-shadow: 3rem 5rem 0 #108ccf;
  transition: all 0.3s;
  font-feature-settings: "palt";
  letter-spacing: 0.05em;

  @media screen and (max-width: 768px) {
    font-size: 26rem;
    height: 120rem;
  }

  &:not(:first-child) {
    margin-top: 32rem;

    @media screen and (max-width: 768px) {
      margin-top: 40rem;
    }
  }

  &::after {
    content: "";
    position: absolute;
    width: 12rem;
    height: 12rem;
    border-right: 3rem solid #000;
    border-top: 3rem solid #000;
    top: calc(50% - 7rem);
    right: 20rem;
    transform: rotate(45deg);

    @media screen and (max-width: 768px) {
      right: 32rem;
      width: 20rem;
      height: 20rem;
    }
  }

  &.btn-download::after {
    content: url("../img/icon-download.svg");
    position: absolute;
    width: 24rem;
    height: 24rem;
    border: none;
    top: calc(50% - 7rem);
    right: 12rem;
    transform: unset;

    @media screen and (max-width: 768px) {
      width: 32rem;
      height: 32rem;
      right: 24rem;
    }
  }


}

@media (hover: hover) and (pointer: fine) {

  .list-content .btn-list .btn:hover {
    transform: translateX(3rem) translateY(5rem);
    box-shadow: none;
  }

}


/* content */
.content .overwrap img {
  width: 1293rem;
}

/* faq */
.faq .faq_item {
  border: 1rem solid #1f1f1f;
  border-radius: 6rem;
  overflow: hidden;
}

.faq .faq_item+.faq_item {
  margin-top: 30rem;
}

.faq .faq_item .question,
.faq .faq_item .answer {
  display: flex;
}

.faq .faq_item .question::before,
.faq .faq_item .answer::before {
  font-size: 24rem;
  font-weight: 700;
  text-align: center;
  line-height: 1;
  width: 60rem;
  flex-shrink: 0;
}

.faq .faq_item .question {
  align-items: center;
  border-bottom: 1rem solid #1f1f1f;
}

.faq .faq_item .question::before {
  content: "Q";
  color: var(--labor-color);
}

.faq .faq_item .question span {
  font-size: 21rem;
  font-weight: 700;
  text-align: justify;
  line-height: 1;
  padding: 20rem;
}

.faq .faq_item .answer::before {
  content: "A";
  color: #fff;
  background-color: var(--love-color);
  padding-top: 20rem;
}

.faq .faq_item .answer span {
  font-size: 16rem;
  line-height: 1.5;
  text-align: justify;
  background-color: #efefef;
  padding: 20rem 20rem;
}

@media screen and (max-width: 768px) {
  .faq .faq_item {
    border-width: 2rem;
    border-radius: 12rem;
  }

  .faq .faq_item+.faq_item {
    margin-top: 80rem;
  }

  .faq .faq_item .question {
    align-items: flex-start;
    border-bottom-width: 2rem;
  }

  .faq .faq_item .question::before {
    font-size: 40rem;
    line-height: 1.4;
    width: 90rem;
    padding-top: 40rem;
  }

  .faq .faq_item .question span {
    font-size: 40rem;
    line-height: 1.4;
    padding: 40rem;
  }

  .faq .faq_item .answer::before {
    font-size: 40rem;
    line-height: 1.4;
    width: 90rem;
    padding-top: 40rem;
  }

  .faq .faq_item .answer span {
    font-size: 28rem;
    line-height: 1.6;
    padding: 40rem;
  }
}

/* deco */
.deco figure {
  width: 975rem;
  margin-inline: auto;
}

@media screen and (max-width: 768px) {
  .deco {
    position: relative;
    padding-bottom: 585rem;
  }

  .deco figure {
    text-align: center;
    position: absolute;
    top: 0;
    left: 50%;
    width: 750rem;
    transform: translateX(-50%);
  }
}

/* --------------------------------------------------
    footer
-------------------------------------------------- */
footer {
  margin-top: 60rem;
}

footer .ft_logo {
  width: 455rem;
  margin-inline: auto;
}

footer .ft_address,
footer .ft_address a {
  font-size: 16rem;
  font-weight: 400;
  text-align: center;
  line-height: 1.5;
  margin-top: 40rem;
}

footer .ft_copy {
  font-size: 16rem;
  font-weight: 400;
  text-align: center;
  line-height: 1;
  padding-block: 15rem;
  background: url(../img/copyright.jpg) top left/100% 100%;
  margin-top: 80rem;
}

@media screen and (max-width: 768px) {
  footer {
    margin-top: 120rem;
  }

  footer .ft_logo {
    width: 670rem;
    text-align: center;
  }

  footer .ft_address,
  footer .ft_address a {
    font-size: 28rem;
    margin-top: 80rem;
  }

  footer .ft_copy {
    font-size: 28rem;
    padding-block: 30rem;
  }
}

/* 251015 */
.impTitle {
  font-size: 24rem;
  color: #fff;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
  align-items: center;
  column-gap: 15rem;
  height: 60rem;
  padding-inline: 40rem;
  margin-bottom: 40rem;
  border-radius: 12rem;
  background-color: #d70c19;
}

.impTitle::before {
  content: "";
  display: block;
  width: 32rem;
  aspect-ratio: 32/29;
  background: url(../img/imp_icon.png) top left/100% 100%;
  flex-shrink: 0;
}

.mb50 {
  margin-bottom: 50rem;
}

@media screen and (max-width: 768px) {
  .impTitle {
    font-size: 32rem;
    height: auto;
    align-items: center;
    column-gap: 30rem;
    margin-bottom: 80rem;
    padding-block: 30rem;
    border-radius: 24rem;
  }

  .impTitle::before {
    width: 64rem;
    transform: translateY(5rem);
  }
}