@charset "UTF-8";
/* ===========================================
 * ----------------------------------
  Structure
  ----------------------------------
  01_page head
  02_switch tab
  03_card
  04_table
  05_qa
  06_pagination
  07_breadcrumb
 * ======================================== */


/* ===========================================
 * 01_page head
 * ======================================== */
.c-head {
  container-type: inline-size;
  padding-top: var(--spc-120-60);
}

.c-head__bg {
  background-image: url('../img/img_struct_head.webp');
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  padding-block: var(--spc-60-30);
}

.c-head__title {
  --clamp-min: 27;
  --clamp-max: 54;
  color: var(--color-font-wh);
  background: var(--color-bg);
  display: inline-block;
  padding-inline: var(--spc-20-10);
}



/* ===========================================
 * 02_switch tab
 * ======================================== */
.c-tabs__inner {
  margin-inline: auto;
}

.c-tabs__list {
  display: grid;
  gap: var(--spc-40-20) var(--spc-20-10);
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  @media (max-width: 768px) {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
  }
}

.c-tabs__item {  
  --clamp-min: 12;
  --clamp-max: 20;
  color: var(--color-font);
  border-radius: 50px;
  border: 1px solid var(--color-border);
  padding: var(--spc-10-5) var(--spc-30-15);
  flex: 1;
  text-align: center;
  transition: opacity 0.3s ease;

  /* 状態（属性セレクタ）のネスト */
  &[aria-selected="true"] {
    color: var(--color-font-wh);
    background: var(--color-bg);
    border: 1px solid var(--color-primary);
    font-weight: bold;
    pointer-events: none;
  }

  /* メディアクエリと擬似クラス（状態）のネスト */
  @media(any-hover: hover) {
    &[aria-selected="false"]:hover {
      cursor: pointer;
      opacity: .7;
    }
  }
}

.c-tabs__contents {
  padding-block: var(--spc-60-30);
  margin-inline: auto;
}

/* JSによる表示切り替えラップ */
.c-tabs__content-wrap {
  opacity: 0;
  visibility: hidden;
  height: 0;
  translate: 0 20px;
  transition: opacity 0.3s ease, translate 0.3s ease;
  overflow: hidden;

  /* Modifier（状態）のネスト */
  &.js-show {
    opacity: 1;
    visibility: visible;
    height: fit-content;
    translate: 0;
    overflow: visible;
  }
}

/* ===========================================
 * 03_card
 * ======================================== */
.c-card {
  max-width: 1200px;
  width: 100%;
  margin-inline: auto;
  display: grid;
  
  /* 基本は2列 */
  grid-template-columns: repeat(2, minmax(0, 500px));
  justify-content: space-between;
  gap: var(--spc-80-40) var(--spc-40-20);
  padding-top: var(--spc-40-20);

  /* メディアクエリのネスト */
  @media (max-width: 768px) {
    grid-template-columns: minmax(0, 500px);
    justify-content: center;
  }
}

.c-card__item {
  width: 100%;
  display: grid;
  grid-template-rows: subgrid;
  align-items: start;
  
  /* 画像、タイトル、テキストの3要素分をまたぐ */
  grid-row: span 3; 
  row-gap: var(--spc-20-10);
}

.c-card__img {
  width: 100%;
}

.c-card__title {
  --clamp-min: 18;
  --clamp-max: 30;
  display: flex;
  align-items: center;
  color: var(--color-font-or);
}

.c-card__text {
  --clamp-min: 16;
  --clamp-max: 20;
  text-align: justify;
}



/* ===========================================
 * 04_table
 * ======================================== */
.c-table_wrap {
  width: 100%;

}
.c-table__items {
  border: 1px solid var(--color-border);
}
.c-table__item {
  display: grid;



  dt {
    text-align: center;
    background: var(--color-bg-lgr);
  }


}
@container (width <= 768px) {
  .c-table__item {
    grid-template-columns: 1fr;
  }
  .c-table__item {
    dt {
      padding: var(--spc-8-4);
    }

    dd {
      padding: var(--spc-8-4) var(--spc-20-10);
    }
}
}

/* ===========================================
 * 05_QA list
 * ======================================== */
.c-qa-list {
  max-width: 800px;
  width: 100%;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  gap: var(--spc-50-25);
}

.c-qa-list__item {
  display: grid;
  gap: var(--spc-20-10);
}

.c-qa-list__q {
  --clamp-min: 18;
  --clamp-max: 24;
  color: var(--color-font-wh);
  font-weight: bold;
  background: var(--color-bg);
  border-radius: 50px;
  text-align: center;
  padding: var(--spc-10-5);
}

.c-qa-list__a {
  --clamp-min: 16;
  --clamp-max: 20;
}

/* ===========================================
 * 06_ページネーション
 * ======================================== */
.pagination {
  display: flex;
  justify-content: center;
  gap: var(--spc-20-10);
}

.page-numbers {
  --clamp-min: 16;
  --clamp-max: 18;
  border: 1px solid var(--color-font);
  
  /* 正方形にする */
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: var(--len-40-20);
  height: var(--len-40-20);
  
  /* 枠線の指定 */
  border: 1px solid var(--color-border);
  transition: opacity 0.3s ease;

  &.current {
    color: var(--color-font-wh);
    background: var(--color-bg);
  }
  &.next,
  &.prev {
    border: none;
  }
}
@media (hover: hover) {
  .page-numbers:hover {
    opacity: 0.7;
  }
}

@container (width <= 768px) {
  .page-numbers {
    width: var(--len-60-30);
    height: var(--len-60-30);
  }
}

/* ===========================================
 *  07_breadcrumb
 * ======================================== */
.breadcrumb-inner {
  padding-block: var(--spc-20-10);
}
.c-breadcrumb {
  display: flex;
  flex-wrap: wrap;
}
.c-breadcrumb__list:not(:last-of-type)::after {
  content: ">";
  margin: var(--spc-20-10);
}
