@charset "utf-8";

/***************************************
改修した固定ページ（新デザイン）
- 本文 HTML は page/{slug}.html（管理画面に貼り付け）
- 共通部品は pg_、ページ固有は pg{略称}_（コンセプト: pgccpt_）
- body に .pg_new（header.php の body の is_page() で指定したページ）
***************************************/

/**************************************
/* 共通
***************************************/
/* 本文の最後のグレーとフッター（パンくず）をつなげる */
.pg_new #footer {
  margin-top: 0;
}

/* 本文がグレーで終わるページ（コンセプト・コスト）はパンくずもグレー */
.pg_new:has(.pgccpt_container, .pgcst_container) .pls_wrap {
  background-color: #f2f3f4;
}

/* SPは見出し（英字・日本語）と、その下の区切り線・見出し画像までの空白を詰める */
.pg_new .page-head_outer {
  padding-bottom: 1.5rem;
}

.pg_new .head-bfont {
  margin-bottom: 0.6rem;
}

/*||見出し画像（header.php）||*/
.pg_head_visual {
  width: calc(100% - 2.1rem);
  margin: 0 auto;
  height: 260px;
  padding-top: 1.5rem;
  border-top: 1px solid #eee;
}

.pg_head_visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*||見出し下の区切り線（header.php／見出し画像なしのページ）||*/
.pg_head_border {
  width: calc(100% - 2.1rem);
  margin: 0 auto;
  border-top: 1px solid #eee;
}

/*||見出し右のページ内リンク（header.php）||*/
.pg_head_link {
  display: flex;
  gap: 1.5rem;
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
}

.pg_head_link li {
  flex: 1;
  max-width: 13.75rem;
}

.pg_head_link a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid #ccc;
  font-size: 0.86rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #555;
  text-decoration: none;
  transition: opacity 0.3s;
}

.pg_head_link a:hover {
  color: #555;
  text-decoration: none;
  opacity: 0.7;
}

/* 下向きの矢印 */
.pg_head_link a::after {
  content: "";
  flex-shrink: 0;
  width: 0.6rem;
  height: 0.6rem;
  margin-left: 1rem;
  background: url("../images/arrow_triangle_black.svg") no-repeat center / contain;
  transform: rotate(90deg);
}

/*||レイアウト||*/
.pg_inner {
  width: calc(100% - 5.4rem);
  margin: 0 auto;
}

.pg_gray {
  background-color: #f2f3f4;
}

/*||見出し||*/
.pg_label {
  font-size: 0.93rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  margin-bottom: 1rem;
}

.pg_sec_head {
  text-align: center;
  margin-bottom: 2.4rem;
}

.pg_sec_en {
  font-size: 1.715rem;
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #222;
  margin-bottom: 0.7rem;
}

.pg_sec_ja {
  font-size: 0.86rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #737477;
  margin-bottom: 0;
}

.pg_title {
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.08em;
  color: #000;
  margin-bottom: 1.6rem;
}

/*||本文||*/
.pg_txt p {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #1a1a1a;
  margin-bottom: 1.1rem;
}

.pg_txt p:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 576px) {
  .pg_head_visual {
    height: auto;
  }

  .pg_head_visual img {
    height: auto;
  }
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pg_txt p {
    font-size: 1.07rem;
    line-height: 1.8;
  }

  .pg_new .page-head_outer {
    padding-bottom: 2.5rem;
  }

  .pg_new .head-bfont {
    margin-bottom: 1.4rem;
  }

  .pg_head_visual {
    width: 94%;
    padding-top: 3rem;
  }

  .pg_head_border {
    width: 94%;
  }

  .pg_inner {
    width: 90%;
    max-width: 85rem;
  }
}

@media screen and (min-width: 992px) {

  /* 見出しの左にタイトル、右にページ内リンク */
  .pg_head_2col {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
  }

  .pg_head_link {
    flex-shrink: 0;
    gap: 2.5rem;
    margin: 0;
  }

  .pg_head_link li {
    flex: none;
    width: 13.125rem;
  }
}

@media screen and (min-width: 1200px) {

  /* 見出しの位置（Figma PC） */
  .pg_new .page-head_outer {
    padding: 11.55rem 0 4.3rem;
  }

  .pg_new .head-bfont {
    margin-bottom: 1.125rem;
  }

  .pg_head_link a {
    font-size: 1.125rem;
    padding-bottom: 1rem;
  }

  .pg_head_visual {
    padding-top: 3.75rem;
  }

  .pg_head_visual img {
    width: 91.4%;
    margin: 0 auto;
  }

  .pg_label {
    font-size: 1rem;
    margin-bottom: 3.05rem;
  }

  .pg_sec_head {
    margin-bottom: 3.7rem;
  }

  .pg_sec_en {
    font-size: 1.875rem;
    margin-bottom: 0.875rem;
  }

  .pg_sec_ja {
    font-size: 0.8125rem;
  }

  .pg_title {
    font-size: 2.125rem;
    margin-bottom: 3.6rem;
  }

  .pg_txt p {
    font-size: 1rem;
    margin-bottom: 1.25rem;
  }
}

/**************************************
/* コンセプト（pgccpt_）
***************************************/
/*||CONCEPT||*/
.pgccpt_top {
  padding: 3rem 0 2rem;
}

.pgccpt_top_title {
  font-size: 1.715rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #000;
  margin-bottom: 1.6rem;
}

/* SPは画像を本文の下へ（head の枠を外して並び替え） */
.pgccpt_top_inner {
  display: flex;
  flex-direction: column;
}

.pgccpt_top_head {
  display: contents;
}

.pgccpt_top_txt {
  margin-bottom: 2.2rem;
}

/* 見出し下のリード文（本文より少し大きく） */
.pg_txt .pgccpt_top_lead {
  font-size: 1.143rem;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #000;
  margin-bottom: 1.6rem;
}

.pgccpt_top_img {
  order: 1;
  width: 12rem;
}

.pgccpt_top_img img,
.pgccpt_mis_img img,
.pgccpt_val_img img {
  display: block;
  width: 100%;
  height: auto;
}

/*||MISSION||*/
.pgccpt_mis {
  padding: 3rem 0 0;
}

.pgccpt_mis_body {
  margin-bottom: 2.2rem;
}

/*||VALUE||*/
.pgccpt_val {
  padding: 4rem 0 5rem;
}

.pgccpt_val .pg_inner {
  border-top: 1px solid #d5d6d8;
  padding-top: 4rem;
}

.pgccpt_val_item + .pgccpt_val_item {
  margin-top: 0;
}

.pgccpt_val_item:not(:last-child) {
  margin-bottom: 4rem;
}

.pgccpt_val_img {
  margin-bottom: 2.6rem;
}

.pgccpt_val_head {
  position: relative;
}

/* 大きな数字（見出しの後ろ） */
.pgccpt_val_num {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 9.5rem;
  z-index: 0;
  font-size: 6.5rem;
  font-weight: 300;
  line-height: 1;
  color: #fff;
  pointer-events: none;
}

.pgccpt_val_head .pg_title {
  position: relative;
  z-index: 1;
}

@media screen and (min-width: 768px) {

  /*||CONCEPT||*/
  .pgccpt_top {
    padding-bottom: 3.5rem;
  }

  /* 縦長画像が1カラムで大きくなりすぎないよう横長に切り抜く */
  .pgccpt_val_img img {
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

  /* 数字の位置はSPのみ見出しと水平。768px以上は元の位置に戻す */
  .pgccpt_val_num {
    top: -2.6rem;
    transform: none;
  }
}

@media screen and (min-width: 992px) {

  /*||CONCEPT||*/
  .pgccpt_top_inner {
    flex-direction: row;
    padding-left: 4rem;
  }

  .pgccpt_top_head {
    display: block;
    flex-shrink: 0;
    width: 38.5%;
  }

  .pgccpt_top_txt {
    flex: 1;
    padding-top: 5.5rem;
    margin-bottom: 0;
  }

  .pgccpt_top_img {
    width: 17.3rem;
    margin-bottom: 0;
  }

  /*||MISSION||*/
  .pgccpt_mis_row {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .pgccpt_mis_body {
    flex: 1;
    padding-right: 1.5rem;
    margin-bottom: 0;
  }

  .pgccpt_mis_img {
    flex-shrink: 0;
    width: 58.8%;
  }

  /*||VALUE||*/
  .pgccpt_val_item {
    display: flex;
    align-items: center;
  }

  .pgccpt_val_item:not(:last-child) {
    margin-bottom: 0;
  }

  .pgccpt_val_item_rev {
    flex-direction: row-reverse;
  }

  .pgccpt_val_img {
    flex-shrink: 0;
    width: 50%;
    margin-bottom: 0;
  }

  .pgccpt_val_img img {
    aspect-ratio: auto;
  }

  .pgccpt_val_body {
    flex: 1;
    padding: 0 1.5rem 0 7.4%;
  }

  .pgccpt_val_num {
    top: -3rem;
    left: 11rem;
    font-size: 8rem;
  }
}

@media screen and (min-width: 1200px) {

  /*||CONCEPT||*/
  .pgccpt_top {
    padding: 4.8rem 0 8.5rem;
  }

  .pgccpt_top_inner {
    padding-left: 5rem;
  }

  .pgccpt_top_head {
    width: 37.7%;
  }

  .pgccpt_top_title {
    font-size: 2.5rem;
    line-height: 1.625;
    margin-bottom: 2.5rem;
  }

  .pgccpt_top_txt {
    padding-top: 5.05rem;
  }

  .pg_txt .pgccpt_top_lead {
    font-size: 1.25rem;
    margin-bottom: 2rem;
  }

  /*||MISSION||*/
  .pgccpt_mis {
    padding-top: 4.5rem;
  }

  .pgccpt_mis_row {
    margin-bottom: 7.3rem;
  }

  /*||VALUE||*/
  .pgccpt_val {
    padding: 0 0 7.3rem;
  }

  .pgccpt_val .pg_inner {
    padding-top: 5.7rem;
  }

  /* 02は文章ブロックをやや下げる（Figma） */
  .pgccpt_val_item_rev .pgccpt_val_body {
    padding-top: 2.75rem;
  }

  .pgccpt_val_num {
    top: -3.1rem;
    left: 13.45rem;
    font-size: 11rem;
  }
}

/**************************************
/* ハウスデザインの家づくり（pgadv_）
***************************************/
.pgadv_intro {
  padding: 2rem 0 4.5rem;
}

.pgadv_title {
  font-size: 1.43rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #000;
  text-align: center;
  margin-bottom: 2rem;
}

/*||DESIGN × SPEC × COST||*/
.pgadv_circle {
  --pgadv-gap: 1.4rem;
  --pgadv-x: 0.9rem;
  display: flex;
  justify-content: center;
  gap: var(--pgadv-gap);
  list-style: none;
  padding: 0;
  margin: 0 0 2.6rem;
}

.pgadv_circle_item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: calc((100% - var(--pgadv-gap) * 2) / 3);
  aspect-ratio: 1 / 1;
  /* 円の線は背景で描き、× 側だけ白で切り欠く（--pgadv-gl：左／--pgadv-gr：右） */
  --pgadv-gl: transparent;
  --pgadv-gr: transparent;
  background:
    linear-gradient(var(--pgadv-gl), var(--pgadv-gl)) left center / 6% 32% no-repeat,
    linear-gradient(var(--pgadv-gr), var(--pgadv-gr)) right center / 6% 32% no-repeat,
    radial-gradient(closest-side, transparent calc(100% - 1.5px), #cdcdcd calc(100% - 1px), #cdcdcd calc(100% - 0.5px), transparent 100%);
  text-align: center;
}

/* 1つ目は右側、2つ目は両側、3つ目は左側を切り欠く */
.pgadv_circle_item:not(:last-child) {
  --pgadv-gr: #fff;
}

.pgadv_circle_item:not(:first-child) {
  --pgadv-gl: #fff;
}

/* × の「＼」の線は交差部分を切り欠く */
.pgadv_circle_item::before {
  --pgadv-xline: linear-gradient(to right, #555 42%, transparent 42% 58%, #555 58%);
}

/* 円と円の間の × */
.pgadv_circle_item + .pgadv_circle_item::before,
.pgadv_circle_item + .pgadv_circle_item::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(var(--pgadv-gap) / -2);
  width: calc(var(--pgadv-x) * 1.414);
  height: 1px;
  background: var(--pgadv-xline, #555);
  transform: translate(-50%, -50%) rotate(45deg);
}

.pgadv_circle_item + .pgadv_circle_item::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.pgadv_circle_en {
  display: block;
  font-size: 1.15rem;
  line-height: 1.2;
  letter-spacing: 0.03em;
  color: #1a1a1a;
  margin-bottom: 0.3rem;
}

.pgadv_circle_ja {
  display: block;
  font-size: 0.75rem;
  line-height: 1.4;
  letter-spacing: 0.03em;
  color: #1a1a1a;
}

/*||本文（SPは左揃え、768px以上は中央揃え）||*/
.pgadv_txt {
  text-align: left;
  margin-bottom: 3rem;
}

.pgadv_txt p {
  font-size: 0.93rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  margin-bottom: 1.15rem;
}

.pgadv_txt p:last-child {
  margin-bottom: 0;
}

/*||各ページへのリンク（「3つの強み」「2つの安心」の2グループ）||*/
.pgadv_group:not(:last-child) {
  margin-bottom: 2.5rem;
}

/* グループの小見出し（左右に線） */
.pgadv_group_title {
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.15em;
  color: #333;
  margin-bottom: 1rem;
}

.pgadv_group_title::before,
.pgadv_group_title::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: #cdcdcd;
}

.pgadv_link {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px;
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgadv_link_item {
  width: 100%;
}

.pgadv_link_box {
  position: relative;
  display: flex;
  align-items: center;
  height: 6.4rem;
  padding: 0 2.6rem 0 1.2rem;
  background-color: #f2f3f4;
  color: #000;
  text-decoration: none;
  transition: opacity 0.3s;
}

.pgadv_link_box:hover {
  color: #000;
  text-decoration: none;
  opacity: 0.7;
}

/* 矢印 */
.pgadv_link_box::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.2rem;
  width: 0.75rem;
  height: 0.85rem;
  background: url("../images/arrow_triangle_black.svg") no-repeat center / contain;
  transform: translateY(-50%);
}

.pgadv_link_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 4.6rem;
  height: 4.6rem;
  margin-right: 1.1rem;
  background-color: #fff;
  border-radius: 50%;
}

.pgadv_link_icon img {
  display: block;
  width: 2.9rem;
  height: auto;
}

.pgadv_link_en {
  display: block;
  font-size: 1.3rem;
  line-height: 1.2;
  letter-spacing: 0.02em;
  margin-bottom: 0.25rem;
}

.pgadv_link_ja {
  display: block;
  font-size: 0.79rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #808080;
}

@media screen and (min-width: 768px) {
  .pgadv_circle {
    --pgadv-gap: 4rem;
    --pgadv-x: 2rem;
  }

  .pgadv_circle_item {
    max-width: 11rem;
  }

  .pgadv_circle_en {
    font-size: 1.5rem;
  }

  .pgadv_circle_ja {
    font-size: 0.875rem;
    letter-spacing: 0.1em;
  }

  .pgadv_title {
    font-size: 1.6rem;
  }

  .pgadv_txt {
    text-align: center;
  }

  .pgadv_link {
    gap: 0.5rem;
  }

  .pgadv_link_item {
    width: calc((100% - 0.5rem) / 2);
  }
}

@media screen and (min-width: 1200px) {
  .pgadv_intro {
    padding: 4.5rem 0 8.55rem;
  }

  .pgadv_title {
    font-size: 1.875rem;
    margin-bottom: 3.2rem;
  }

  .pgadv_circle {
    --pgadv-gap: 5.2rem;
    --pgadv-x: 2.6rem;
    margin-bottom: 3.875rem;
  }

  .pgadv_circle_item {
    max-width: 13.2rem;
  }

  .pgadv_circle_en {
    font-size: 1.875rem;
    margin-bottom: 0.9rem;
  }

  .pgadv_circle_ja {
    font-size: 1.1875rem;
  }

  .pgadv_txt {
    margin-bottom: 5.95rem;
  }

  .pgadv_txt p {
    font-size: 1rem;
    letter-spacing: 0.03em;
  }

  .pgadv_group:not(:last-child) {
    margin-bottom: 3.5rem;
  }

  .pgadv_group_title {
    font-size: 1.125rem;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .pgadv_link_item {
    width: calc((100% - 1rem) / 3);
  }

  /* 1200〜1499pxは「保証・アフターサポート」が1行に収まるようアイコンと余白を小さく */
  .pgadv_link_box {
    height: 9.375rem;
    padding: 0 3rem 0 1.25rem;
  }

  .pgadv_link_box::after {
    right: 1.5rem;
  }

  .pgadv_link_icon {
    width: 5.5rem;
    height: 5.5rem;
    margin-right: 1rem;
  }

  .pgadv_link_icon img {
    width: 3.5rem;
  }

  .pgadv_link_en {
    font-size: 1.875rem;
    margin-bottom: 0.35rem;
  }

  .pgadv_link_ja {
    font-size: 0.9375rem;
  }
}

@media screen and (min-width: 1500px) {
  .pgadv_link_box {
    padding: 0 4rem 0 1.875rem;
  }

  .pgadv_link_box::after {
    right: 2rem;
  }

  .pgadv_link_icon {
    width: 6.875rem;
    height: 6.875rem;
    margin-right: 1.5rem;
  }

  .pgadv_link_icon img {
    width: 4.3125rem;
  }
}

/**************************************
/* デザイン（pgdsn_）
- 既存のデザインページ用 pgdes_ は page.css で使用中のため、pgdsn_ にしている
***************************************/
/*||設計で大切にしていること||*/
.pgdsn_intro {
  padding: 2rem 0 0;
}

.pgdsn_intro_title {
  font-size: 1.43rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #000;
  text-align: center;
  margin-bottom: 1.6rem;
}

.pgdsn_intro_txt {
  font-size: 0.93rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: center;
  margin-bottom: 2.6rem;
}

.pgdsn_col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.8rem 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgdsn_col_link {
  display: block;
  color: #222;
  text-align: center;
  text-decoration: none;
  transition: opacity 0.3s;
}

.pgdsn_col_link:hover {
  color: #222;
  text-decoration: none;
  opacity: 0.7;
}

/* 下向き矢印 */
.pgdsn_col_link::after {
  content: "";
  display: block;
  width: 0.6rem;
  height: 0.6rem;
  margin: 0 auto;
  border-right: 1px solid #555;
  border-bottom: 1px solid #555;
  transform: rotate(45deg);
}

.pgdsn_col_img {
  display: block;
  margin-bottom: 0.9rem;
}

.pgdsn_col_img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.pgdsn_col_title {
  display: block;
  font-size: 0.86rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

/*||各項目（01〜05）共通||*/
.pgdsn_sec {
  padding: 0 0 4rem;
  scroll-margin-top: 6rem;
}

.pgdsn_intro + .pgdsn_sec {
  padding-top: 4rem;
}

.pgdsn_sec + .pgdsn_sec > .pg_inner {
  border-top: 1px solid #e5e5e5;
  padding-top: 4rem;
}

.pgdsn_sec:last-child {
  padding-bottom: 3rem;
}

/* 見出しの後ろの大きな数字 */
.pgdsn_num {
  position: absolute;
  z-index: 0;
  font-size: 6.5rem;
  font-weight: 300;
  line-height: 1;
  color: #efefef;
  pointer-events: none;
}

.pgdsn_row_head,
.pgdsn_center_head {
  position: relative;
}

.pgdsn_row_head .pg_title,
.pgdsn_center_head .pg_title {
  position: relative;
  z-index: 1;
}

/*||画像＋文章（01・03・05）||*/
/* SPは画像を文章の下へ */
.pgdsn_row_inner {
  display: flex;
  flex-direction: column;
}

.pgdsn_row_img {
  order: 1;
}

.pgdsn_row_body {
  margin-bottom: 3rem;
}

.pgdsn_row_img img {
  display: block;
  width: 100%;
  height: auto;
}

/* SPは見出しと上下中央をそろえる */
.pgdsn_row .pgdsn_num {
  top: 50%;
  left: 9.5rem;
  transform: translateY(-50%);
}

/*||中央見出し＋グレーボックス（02・04）||*/
.pgdsn_center > .pg_inner {
  text-align: center;
}

.pgdsn_sec + .pgdsn_center > .pg_inner {
  padding-top: 4rem;
}

.pgdsn_center_head {
  margin-bottom: 1.4rem;
}

.pgdsn_center_head .pg_title {
  margin-bottom: 0;
}

/* SPは見出しと上下中央をそろえる */
.pgdsn_center .pgdsn_num {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

/* 下のボックスの本文（14px）より大きく */
.pgdsn_center_txt {
  font-size: 1.07rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  margin-bottom: 2.6rem;
}

.pgdsn_box {
  background-color: #f2f3f4;
  padding: 2.6rem 1.4rem 2.8rem;
  text-align: left;
}

.pgdsn_box_list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgdsn_box_item:not(:last-child) {
  margin-bottom: 3rem;
}

.pgdsn_box_img {
  position: relative;
  margin-bottom: 1.6rem;
}

.pgdsn_box_img > img {
  display: block;
  width: 100%;
  height: auto;
}

/* 本文（14px）より大きく */
.pgdsn_box_title {
  position: relative;
  font-size: 1.15rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #222;
  padding-left: 0.85rem;
  margin-bottom: 0.9rem;
}

/* 見出し左の金色の線 */
.pgdsn_box_title::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 2px;
  height: 1.1em;
  background-color: #c59b04;
  transform: translateY(-50%);
}

.pgdsn_box_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

/*||スライダー（02）js/page.js||*/
.pgdsn_fea_slider {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgdsn_fea_slider .slick-track {
  display: flex;
}

.pgdsn_fea_slider .slick-slide {
  height: auto;
}

.pgdsn_fea_slide {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 466 / 310;
  background-color: #fff;
}

.pgdsn_fea_slide img,
.pgdsn_fea_slide video {
  display: block;
  width: 81.5%;
  height: auto;
  max-height: 100%;
}

/* ドット（SPは画像の下に横並び） */
.pgdsn_fea_slider .slick-dots {
  position: static;
  display: flex;
  justify-content: center;
  gap: 0.7rem;
  margin-top: 0.9rem;
  transform: none;
}

.pgdsn_fea_slider .slick-dots li {
  width: auto;
  height: auto;
  margin: 0;
}

.pgdsn_fea_slider .slick-dots li button {
  position: relative;
  width: 6px;
  height: 6px;
  padding: 0;
  border-radius: 50%;
  background-color: #c8c8c8;
}

.pgdsn_fea_slider .slick-dots li button::before {
  display: none;
}

.pgdsn_fea_slider .slick-dots li.slick-active button {
  background-color: #222;
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pgdsn_box_txt {
    font-size: 0.86rem;
    line-height: 1.8;
  }


  /*||設計で大切にしていること||*/
  .pgdsn_intro_title {
    font-size: 1.6rem;
  }

  .pgdsn_col {
    grid-template-columns: repeat(3, 1fr);
  }

  /*||各項目||*/
  .pgdsn_num {
    font-size: 8rem;
  }

  /* 768px以上は数字を見出しの上側に（SPの指定を戻す） */
  .pgdsn_row .pgdsn_num {
    top: -2.4rem;
    transform: none;
  }

  .pgdsn_sec + .pgdsn_center > .pg_inner {
    padding-top: 2rem;
  }

  .pgdsn_center_head {
    min-height: 8rem;
    padding-top: 2.6rem;
  }

  .pgdsn_center .pgdsn_num {
    top: 0;
    transform: translateX(-50%);
  }

  .pgdsn_box {
    padding: 3rem 4rem 3.2rem;
  }

  .pgdsn_box_list {
    display: flex;
    justify-content: space-between;
    max-width: 62.5rem;
    margin: 0 auto;
  }

  .pgdsn_box_item {
    width: calc((100% - 3rem) / 2);
  }

  .pgdsn_box_item:not(:last-child) {
    margin-bottom: 0;
  }

  .pgdsn_box_img > img {
    aspect-ratio: 466 / 310;
    object-fit: cover;
  }

  /* ドット（768px以上は画像の外側に縦並び） */
  .pgdsn_fea_slider .slick-dots {
    position: absolute;
    top: 50%;
    right: -1.7rem;
    left: auto;
    bottom: auto;
    flex-direction: column;
    gap: 0.6rem;
    margin: 0;
    transform: translateY(-50%);
  }

  .pgdsn_fea_slider.pgdsn_fea_slider_left .slick-dots {
    right: auto;
    left: -1.7rem;
  }
}

@media screen and (min-width: 992px) {

  /*||設計で大切にしていること（5列・区切り線）||*/
  .pgdsn_col {
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
  }

  .pgdsn_col_item {
    border-left: 1px solid #eee;
    padding-bottom: 0.8rem;
  }

  .pgdsn_col_item:last-child {
    border-right: 1px solid #eee;
  }

  .pgdsn_col_img {
    width: 73.5%;
    margin: 0 auto 1.3rem;
  }

  .pgdsn_col_title {
    margin-bottom: 1rem;
  }

  /*||画像＋文章||*/
  .pgdsn_row_inner {
    flex-direction: row;
    align-items: center;
  }

  .pgdsn_row_img {
    order: 0;
    flex-shrink: 0;
    width: 56%;
  }

  .pgdsn_row_body {
    flex: 1;
    padding: 2.5rem 0 0 5.8%;
    margin-bottom: 0;
  }

  .pgdsn_row .pgdsn_num {
    top: -2.8rem;
    left: 11rem;
  }
}

@media screen and (min-width: 1200px) {

  /*||設計で大切にしていること||*/
  .pgdsn_intro {
    padding-top: 4.5rem;
  }

  .pgdsn_intro_title {
    font-size: 1.875rem;
    margin-bottom: 2.25rem;
  }

  .pgdsn_intro_txt {
    font-size: 1rem;
    letter-spacing: 0.03em;
    line-height: 1.75;
    margin-bottom: 3.6rem;
  }

  .pgdsn_col_title {
    font-size: 0.9375rem;
    letter-spacing: 0.1em;
  }

  .pgdsn_col_link::after {
    width: 0.7rem;
    height: 0.7rem;
  }

  /*||各項目||*/
  .pgdsn_sec {
    padding-bottom: 6.25rem;
  }

  .pgdsn_intro + .pgdsn_sec {
    padding-top: 5.5rem;
  }

  .pgdsn_sec + .pgdsn_sec > .pg_inner {
    padding-top: 6.25rem;
  }

  .pgdsn_sec:last-child {
    padding-bottom: 7.3rem;
  }

  .pgdsn_num {
    font-size: 11rem;
  }

  .pgdsn_row_body {
    padding-top: 3.375rem;
  }

  .pgdsn_row .pgdsn_num {
    top: -3.3rem;
    left: 14.125rem;
  }

  .pgdsn_sec + .pgdsn_center > .pg_inner {
    padding-top: 2.125rem;
  }

  .pgdsn_center_head {
    min-height: 10.6rem;
    padding-top: 3.45rem;
    margin-bottom: 1.9rem;
  }

  .pgdsn_center_txt {
    font-size: 1.25rem;
    letter-spacing: 0.03em;
    margin-bottom: 3.9rem;
  }

  .pgdsn_box {
    padding: 3.75rem 0 3.45rem;
  }

  .pgdsn_box_item {
    width: calc((100% - 4.2rem) / 2);
  }

  .pgdsn_box_img {
    margin-bottom: 1.875rem;
  }

  .pgdsn_box_title {
    font-size: 1.25rem;
    letter-spacing: 0.12em;
    margin-bottom: 1.1rem;
  }

  .pgdsn_box_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.08em;
  }

  .pgdsn_fea_slider .slick-dots {
    right: -1.5rem;
  }

  .pgdsn_fea_slider.pgdsn_fea_slider_left .slick-dots {
    left: -1.5rem;
  }
}

/**************************************
/* 性能（pgspc_）
***************************************/
.pgspc_intro {
  padding: 2rem 0 4.5rem;
}

.pgspc_title {
  font-size: 1.43rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
  color: #000;
  text-align: center;
  margin-bottom: 2rem;
}

/*||断熱・遮熱・耐震||*/
.pgspc_card {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.8rem;
  max-width: 75rem;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

/* 背景を黒にして、画像の透過分を暗く見せる */
.pgspc_card_item {
  position: relative;
  aspect-ratio: 12 / 5;
  overflow: hidden;
  background-color: #000;
}

/* page.css の #page-main img { height: auto; } に負けないよう #page-main を付ける */
#page-main .pgspc_card_item img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.8;
}

.pgspc_card_item::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.5);
}

.pgspc_card_title {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 1;
  font-size: 1.57rem;
  line-height: 1;
  letter-spacing: 0.2em;
  color: #fff;
  white-space: nowrap;
  margin: 0;
  transform: translate(-50%, -50%);
}

/*||本文（SPは左揃え、768px以上は中央揃え）||*/
.pgspc_txt {
  font-size: 0.93rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: left;
  margin-bottom: 3rem;
}

/*||性能の数値||*/
.pgspc_data {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  max-width: 75rem;
  list-style: none;
  padding: 0;
  margin: 0 auto 1.2rem;
}

.pgspc_data_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 7rem;
  padding: 1rem 0.5rem;
  background-color: #818181;
  color: #fff;
  text-align: center;
}

.pgspc_data_main {
  font-size: 1.07rem;
  line-height: 1.3;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}

.pgspc_data_num {
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.02em;
  margin-left: 0.25rem;
}

/* ※印は数字の上端にそろえる */
.pgspc_data_note {
  position: relative;
  top: 0.3rem;
  vertical-align: top;
  font-size: 0.5625rem;
  line-height: 1;
  letter-spacing: 0;
  color: #cfcfcf;
  margin-left: 0.3rem;
}

.pgspc_data_sub {
  font-size: 0.72rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #e8e8e8;
  margin-bottom: 0;
}

.pgspc_data_sub_lg {
  font-size: 1.15em;
  letter-spacing: 0.03em;
}

.pgspc_data_sub_sm {
  font-size: 0.85em;
}

.pgspc_notes {
  max-width: 75rem;
  margin: 0 auto 3rem;
}

.pgspc_notes p {
  font-size: 0.72rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #808080;
  margin-bottom: 0;
}

/*||工法（3つを横一列。円と円の間に ×）||*/
.pgspc_circle {
  --pgspc-gap: 1rem;
  --pgspc-x: 0.7rem;
  display: flex;
  justify-content: center;
  gap: var(--pgspc-gap);
  list-style: none;
  padding: 0;
  margin: 0 0 3rem;
}

.pgspc_circle_item {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc((100% - var(--pgspc-gap) * 2) / 3);
  max-width: 9.5rem;
  aspect-ratio: 1 / 1;
  /* 円の線は背景で描き、× 側だけ白で切り欠く（--pgspc-gl：左／--pgspc-gr：右） */
  --pgspc-gl: transparent;
  --pgspc-gr: transparent;
  background:
    linear-gradient(var(--pgspc-gl), var(--pgspc-gl)) left center / 6% 32% no-repeat,
    linear-gradient(var(--pgspc-gr), var(--pgspc-gr)) right center / 6% 32% no-repeat,
    radial-gradient(closest-side, transparent calc(100% - 1.5px), #a3a3a3 calc(100% - 1px), #a3a3a3 calc(100% - 0.5px), transparent 100%);
  font-size: 0.68rem;
  line-height: 1.75;
  letter-spacing: 0.02em;
  color: #222;
  text-align: center;
}

/* 1つ目は右側、2つ目は両側、3つ目は左側を切り欠く */
.pgspc_circle_item:not(:last-child) {
  --pgspc-gr: #fff;
}

.pgspc_circle_item:not(:first-child) {
  --pgspc-gl: #fff;
}

/* × の「＼」の線は交差部分を切り欠く */
.pgspc_circle_item::before {
  --pgspc-xline: linear-gradient(to right, #555 42%, transparent 42% 58%, #555 58%);
}

/* 円と円の間の × */
.pgspc_circle_item + .pgspc_circle_item::before,
.pgspc_circle_item + .pgspc_circle_item::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(var(--pgspc-gap) / -2);
  width: calc(var(--pgspc-x) * 1.414);
  height: 1px;
  background: var(--pgspc-xline, #555);
  transform: translate(-50%, -50%) rotate(45deg);
}

.pgspc_circle_item + .pgspc_circle_item::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media screen and (min-width: 768px) {
  .pgspc_title {
    font-size: 1.6rem;
  }

  .pgspc_txt {
    text-align: center;
  }

  .pgspc_card {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem;
  }

  .pgspc_card_item {
    aspect-ratio: 377 / 250;
  }

  .pgspc_data {
    grid-template-columns: repeat(3, 1fr);
  }

  .pgspc_circle {
    --pgspc-gap: 2.6rem;
    --pgspc-x: 1.8rem;
  }

  .pgspc_circle_item {
    max-width: 11rem;
    font-size: 0.86rem;
    letter-spacing: 0.1em;
  }
}

@media screen and (min-width: 992px) {
  .pgspc_card_title {
    font-size: 1.75rem;
  }

  .pgspc_data_item {
    min-height: 8.75rem;
  }

  .pgspc_data_main {
    font-size: 1.3rem;
  }

  .pgspc_data_num {
    font-size: 2.1rem;
  }

  .pgspc_data_sub {
    font-size: 0.8rem;
  }
}

@media screen and (min-width: 1200px) {
  .pgspc_intro {
    padding: 4.5rem 0 7.3rem;
  }

  .pgspc_title {
    font-size: 1.875rem;
    margin-bottom: 3.75rem;
  }

  .pgspc_card {
    gap: 2.2rem;
  }

  .pgspc_card_title {
    font-size: 1.875rem;
  }

  .pgspc_txt {
    font-size: 1.125rem;
    letter-spacing: 0.03em;
    line-height: 1.95;
    margin-bottom: 4.9rem;
  }

  .pgspc_data {
    margin-bottom: 1.6rem;
  }

  .pgspc_data_main {
    font-size: 1.5rem;
    margin-bottom: 0.55rem;
  }

  .pgspc_data_num {
    font-size: 2.375rem;
    margin-left: 0.3rem;
  }

  .pgspc_data_sub {
    font-size: 0.8125rem;
  }

  .pgspc_notes {
    margin-bottom: 4.5rem;
  }

  .pgspc_circle {
    margin-bottom: 4.5rem;
  }

  .pgspc_notes p {
    font-size: 0.75rem;
  }

  .pgspc_circle {
    --pgspc-gap: 5.2rem;
    --pgspc-x: 2.6rem;
  }

  .pgspc_circle_item {
    max-width: 13.2rem;
    font-size: 1.25rem;
  }
}

/**************************************
/* コストバランス（pgcst_）
***************************************/
.pgcst_intro {
  padding: 2rem 0 4.5rem;
}

.pgcst_title {
  font-size: 1.43rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: #000;
  text-align: center;
  margin-bottom: 1.6rem;
}

/* 本文（3段落。SPは左揃え、768px以上は中央揃え） */
.pgcst_txt {
  font-size: 0.86rem;
  line-height: 1.9;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: left;
  margin-bottom: 2.6rem;
}

.pgcst_txt p {
  margin-bottom: 1.2rem;
}

.pgcst_txt p:last-child {
  margin-bottom: 0;
}

/*||グラフ（画像）SPは横スクロール||*/
.pgcst_graph {
  max-width: 75rem;
  margin: 0 auto;
  overflow-x: auto;
}

.pgcst_graph img {
  display: block;
  width: 100%;
  min-width: 46rem;
  height: auto;
}

/*||独自のコストマネジメント||*/
.pgcst_point {
  padding: 4rem 0 4.5rem;
}

.pgcst_point_title {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #000;
  text-align: center;
  margin-bottom: 1.4rem;
}

.pgcst_list {
  max-width: 67rem;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.pgcst_list_item {
  display: flex;
  padding: 1.8rem 0;
  border-bottom: 1px solid #ececee;
}

.pgcst_list_num {
  flex-shrink: 0;
  width: 2.8rem;
  margin-top: -0.3rem;
  font-size: 2.8rem;
  font-weight: 300;
  line-height: 1;
  color: #c9c8ca;
}

.pgcst_list_body {
  flex: 1;
}

.pgcst_list_title {
  font-size: 1.29rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: #c89e05;
  margin-bottom: 0.9rem;
}

.pgcst_list_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pgcst_list_txt {
    font-size: 0.86rem;
    line-height: 1.8;
  }

  .pgcst_title {
    font-size: 1.6rem;
  }

  /* 中央揃えは文の幅を絞り、行の長さをそろえて折り返す（対応ブラウザのみ） */
  .pgcst_txt {
    max-width: 46em;
    margin-right: auto;
    margin-left: auto;
    font-size: 0.93rem;
    text-align: center;
    text-wrap: balance;
    word-break: auto-phrase;
  }

  .pgcst_graph img {
    min-width: 0;
  }

  .pgcst_point_title {
    font-size: 1.43rem;
  }

  .pgcst_list_num {
    width: 4.5rem;
    margin-top: -0.4rem;
    font-size: 3.6rem;
  }
}

@media screen and (min-width: 1200px) {
  .pgcst_intro {
    padding: 4.5rem 0 7rem;
  }

  .pgcst_title {
    font-size: 1.875rem;
    margin-bottom: 2rem;
  }

  .pgcst_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.03em;
    margin-bottom: 4.5rem;
  }

  .pgcst_point {
    padding: 6.9rem 0 7.3rem;
  }

  .pgcst_point_title {
    font-size: 1.625rem;
    margin-bottom: 2.5rem;
  }

  .pgcst_list_item {
    padding: 2.25rem 0 2.3rem;
  }

  .pgcst_list_num {
    width: 5.625rem;
    margin-top: -0.45rem;
    font-size: 4.25rem;
  }

  .pgcst_list_title {
    font-size: 1.375rem;
    margin-bottom: 1.875rem;
  }

  .pgcst_list_txt {
    font-size: 1rem;
    letter-spacing: 0.03em;
  }
}

/**************************************
/* 品質と施工管理（pgqlt_）
***************************************/
/*||帯画像（品質へのこだわり／プロフェッショナル）||*/
.pgqlt_mv {
  position: relative;
  scroll-margin-top: 6rem;
  height: 13rem;
  overflow: hidden;
  background-color: #8a8178;
}

/* page.css の #page-main img { height: auto; } に負けないよう #page-main を付ける */
#page-main .pgqlt_mv img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 帯画像の暗さ：1枚目（品質へのこだわり）0.1／2枚目（プロフェッショナル）0.3 */
.pgqlt_mv::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.1);
}

.pgqlt_mv ~ .pgqlt_mv::after {
  background-color: rgba(0, 0, 0, 0.3);
}

.pgqlt_mv_body {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 1;
  width: 100%;
  text-align: center;
  color: #fff;
  transform: translateY(-50%);
}

.pgqlt_mv_title {
  font-size: 1.43rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin-bottom: 0.4rem;
}

.pgqlt_mv_en {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

/*||共通の見出し・リード文||*/
.pgqlt_sec {
  padding: 3.5rem 0 4.5rem;
  overflow: hidden;
}

.pgqlt_title {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin-bottom: 1.6rem;
}

/* リード文（SPは左揃え、768px以上は中央揃え） */
.pgqlt_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: left;
  margin-bottom: 3rem;
}

/* 区切り線のある広めの枠（COMMITMENT・技術者集団） */
.pgqlt_wide {
  width: calc(100% - 5.4rem);
  max-width: 90.5rem;
  margin: 0 auto;
  border-top: 1px solid #ececee;
}

/*||第三者による品質監査||*/
.pgqlt_row {
  max-width: 75rem;
  margin: 0 auto 2.6rem;
}

.pgqlt_row_img {
  margin-bottom: 1.8rem;
}

.pgqlt_row_img img,
.pgqlt_card2_img img,
.pgqlt_card3_img img,
.pgqlt_com_img img {
  display: block;
  width: 100%;
  height: auto;
}

.pgqlt_row_title {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #000;
  margin-bottom: 1.2rem;
}

.pgqlt_row_txt,
.pgqlt_com_txt,
.pgqlt_card2_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

/*||「検査」と「監査」の違い||*/
.pgqlt_box {
  max-width: 75rem;
  padding: 2.2rem 1.4rem 2.4rem;
  margin: 0 auto 4.5rem;
  background-color: #f2f3f4;
}

.pgqlt_box_title {
  font-size: 1.07rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin-bottom: 1.2rem;
}

.pgqlt_box_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

/*||監査内容（「検査」と「監査」の違いと同じグレーの枠。すぐ下に続けて置く）||*/
.pgqlt_box:has(+ .pgqlt_audit) {
  margin-bottom: 1rem;
}

.pgqlt_audit {
  max-width: 75rem;
  padding: 2.2rem 1.4rem 2.4rem;
  margin: 0 auto 4.5rem;
  background-color: #f2f3f4;
}

.pgqlt_audit_title {
  font-size: 1.07rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin-bottom: 1.2rem;
}

.pgqlt_audit_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 1.6rem;
}

.pgqlt_audit_txt:last-child {
  margin-bottom: 0;
}

/* 1〜3：白いカード＋金色の数字。間に金色の矢印（SPは下向き、768px以上は右向き） */
.pgqlt_audit_step {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  list-style: none;
  padding: 0;
  margin: 0 0 1.8rem;
}

.pgqlt_audit_step li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0.9rem 1.2rem;
  background-color: #fff;
  font-size: 0.93rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #333;
}

.pgqlt_audit_step .e_font {
  flex-shrink: 0;
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1;
  color: #c59b04;
}

.pgqlt_audit_step li:not(:last-child)::after {
  content: "";
  position: absolute;
  bottom: -1.1rem;
  left: 50%;
  width: 0.6rem;
  height: 0.6rem;
  border-right: 1px solid #c59b04;
  border-bottom: 1px solid #c59b04;
  transform: translateX(-50%) rotate(45deg);
}

/*||FLOW（SPは2列、992px以上は5列）||*/
.pgqlt_flow_head {
  margin-bottom: 2.8rem;
}

/* FLOW の見出し（第三者監査（5回）／全10工程…）。開閉で js/page.js が文言を切り替える */
.pgqlt_flow_label {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #1a1a1a;
  padding-left: 0.8rem;
  border-left: 3px solid #c59b04;
  margin-bottom: 1.8rem;
}

.pgqlt_flow {
  --pgqlt-gap: 1rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.6rem var(--pgqlt-gap);
  max-width: 75rem;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.pgqlt_flow_item {
  position: relative;
  padding-top: 1.8rem;
}

/* 線（次の項目まで） */
.pgqlt_flow_item::before {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  right: calc(var(--pgqlt-gap) * -1);
  height: 1px;
  background-color: #e3e3e3;
}

/* 金色の点 */
.pgqlt_flow_item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background-color: #c59b04;
}

/* 各行の左端・右端は画面の端まで線を伸ばす（最初は点から始め、最後は点で止める）
   is-row-first / is-row-last / is-first / is-last は js/page.js で表示中の工程に付ける */
.pgqlt_flow_item.is-row-first::before {
  left: -100vw;
}

.pgqlt_flow_item.is-row-last::before {
  right: -100vw;
}

.pgqlt_flow_item.is-first::before {
  left: 0;
}

.pgqlt_flow_item.is-last::before {
  right: auto;
  width: 11px;
}

/* 初期表示は第三者監査の工程のみ（ボタンで自社監査も表示） */
.pgqlt_flow:not(.is-open) .pgqlt_flow_item_self {
  display: none;
}

/* 第三者監査／自社監査のラベル */
.pgqlt_flow_tag {
  display: inline-block;
  font-size: 0.64rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #808080;
  border: 1px solid #c9c8ca;
  padding: 0.15rem 0.5rem;
  margin-bottom: 0.6rem;
}

.pgqlt_flow_tag_ext {
  color: #c59b04;
  border-color: #c59b04;
}

/* 全10工程を見る */
.pgqlt_flow_more {
  text-align: center;
  margin-top: 2.8rem;
}

.pgqlt_flow_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  min-width: 17rem;
  padding: 0.9rem 1.6rem;
  font-size: 0.93rem;
  letter-spacing: 0.08em;
  color: #333;
  background-color: #fff;
  border: 1px solid #333;
  cursor: pointer;
  transition: opacity 0.3s;
}

.pgqlt_flow_btn:hover {
  opacity: 0.7;
}

.pgqlt_flow_btn:focus {
  outline: none;
}

.pgqlt_flow_btn:focus-visible {
  outline: 2px solid #c59b04;
  outline-offset: 2px;
}

/* ＋／− */
.pgqlt_flow_btn::after {
  content: "＋";
  font-size: 1rem;
  line-height: 1;
}

.pgqlt_flow_btn[aria-expanded="true"]::after {
  content: "−";
}

.pgqlt_flow_num {
  display: block;
  font-size: 2.4rem;
  font-weight: 300;
  line-height: 1;
  color: #c9c8ca;
  margin-bottom: 0.9rem;
}

.pgqlt_flow_title {
  min-height: 3.6em;
  font-size: 0.79rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: #555;
  margin-bottom: 0.8rem;
}

.pgqlt_flow_img img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 220 / 180;
  object-fit: cover;
}

/*||COMMITMENT||*/
.pgqlt_com {
  padding-bottom: 4.5rem;
}

.pgqlt_com .pgqlt_wide {
  padding-top: 3.5rem;
}

.pgqlt_com_head {
  margin-bottom: 1.6rem;
}

.pgqlt_com_en {
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #222;
  margin-bottom: 0.5rem;
}

.pgqlt_com_ja {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #737477;
  margin-bottom: 0;
}

.pgqlt_com_list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgqlt_com_item {
  display: flex;
  padding: 1.8rem 0;
  border-bottom: 1px solid #ececee;
}

.pgqlt_com_item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.pgqlt_com_num {
  flex-shrink: 0;
  width: 2.8rem;
  margin-top: -0.3rem;
  font-size: 2.8rem;
  font-weight: 300;
  line-height: 1;
  color: #c9c8ca;
}

.pgqlt_com_body {
  flex: 1;
  min-width: 0;
}

.pgqlt_com_title {
  font-size: 1.07rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #c89e05;
  margin-bottom: 0.9rem;
}

.pgqlt_com_txt {
  margin-bottom: 1.2rem;
}

.pgqlt_com_body > .pgqlt_com_txt:last-child {
  margin-bottom: 0;
}

/*||プロフェッショナル（2列カード）||*/
.pgqlt_card2 {
  max-width: 75rem;
  list-style: none;
  padding: 0;
  margin: 0 auto 4.5rem;
}

.pgqlt_card2_item:not(:last-child) {
  margin-bottom: 2.6rem;
}

.pgqlt_card2_img {
  margin-bottom: 1.4rem;
}

.pgqlt_card2_title {
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin-bottom: 1rem;
}

/*||TEAM BUILDING||*/
.pgqlt_team_head {
  margin-bottom: 1.6rem;
}

.pgqlt_team_note {
  font-size: 0.72rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #808080;
  text-align: center;
  margin-bottom: 2rem;
}

/* チームビルディングの図（page.css の pgpro_team_block を使用）。このページでは罫線・余白を消す */
.pgqlt_container .pgpro_team_block {
  width: auto;
  max-width: 55.2rem;
  /* 高さを Figma の図（836px）にそろえる */
  padding-bottom: 0;
  border-bottom: 0;
  margin: 0 auto;
}

/* SP（767px以下）は図の代わりにカードのスライダー（js/page.js） */
.pgqlt_container .pgpro_team_block,
.pgqlt_team_note {
  display: none;
}

/* 画面の端まで使う（左右に前後のカードを少し見せる） */
.pgqlt_teamsp {
  list-style: none;
  padding: 0;
  margin: 0 -2.7rem;
}

.pgqlt_teamsp_item {
  background-color: #f2f3f4;
}

/* スライド前（JS 読み込み前）は1枚目だけ表示 */
.pgqlt_teamsp:not(.slick-initialized) .pgqlt_teamsp_item:not(:first-child) {
  display: none;
}

/* カードの高さをそろえる（li 自体がスライドになる） */
.pgqlt_teamsp .slick-track {
  display: flex;
}

.pgqlt_teamsp .slick-slide {
  display: flex !important;
  flex-direction: column;
  height: auto;
  margin: 0 0.4rem;
}

.pgqlt_teamsp_img {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 14rem;
  padding-top: 1.2rem;
}

#page-main .pgqlt_teamsp_img img {
  display: block;
  width: auto;
  max-width: 90%;
  height: 100%;
  object-fit: contain;
  object-position: bottom;
}

.pgqlt_teamsp_body {
  flex: 1;
  padding: 1.4rem 1.6rem 1.8rem;
  background-color: #fff;
  border: 1px solid #f2f3f4;
}

/* 役職（英字・日本語）→ 名前（一番大きく）→ ローマ字 の順で中央に */
.pgqlt_teamsp_en,
.pgqlt_teamsp_role,
.pgqlt_teamsp_name,
.pgqlt_teamsp_roma {
  text-align: center;
}

.pgqlt_teamsp_en {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.08em;
  color: #333;
  margin-bottom: 0.1rem;
}

.pgqlt_teamsp_role {
  font-size: 0.72rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 0.3rem;
}

.pgqlt_teamsp_name {
  font-size: 1.29rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.15em;
  color: #000;
  margin-bottom: 0.1rem;
}

.pgqlt_teamsp_roma {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #333;
  margin-bottom: 1.1rem;
}

.pgqlt_teamsp_txt {
  font-size: 0.93rem;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

/* ドット（slick.css の位置指定・疑似要素を打ち消す） */
.pgqlt_teamsp .slick-dots {
  position: static;
  display: flex;
  justify-content: center;
  gap: 0.6rem;
  list-style: none;
  padding: 0;
  margin: 1.4rem 0 0;
}

.pgqlt_teamsp .slick-dots li {
  width: auto;
  height: auto;
  margin: 0;
}

.pgqlt_teamsp .slick-dots li button {
  display: block;
  width: 7px;
  height: 7px;
  padding: 0;
  font-size: 0;
  border: none;
  border-radius: 50%;
  background-color: #ccc;
  cursor: pointer;
}

.pgqlt_teamsp .slick-dots li button::before {
  content: none;
}

.pgqlt_teamsp .slick-dots li.slick-active button {
  background-color: #c59b04;
}

.pgqlt_teamsp .slick-dots button:focus {
  outline: none;
}

/*||知見を共有し、高め合う技術者集団（3列カード）||*/
.pgqlt_know {
  padding-bottom: 4.5rem;
}

.pgqlt_know .pgqlt_wide {
  padding-top: 3.5rem;
}

.pgqlt_card3 {
  max-width: 75rem;
  list-style: none;
  padding: 0;
  margin: 0 auto;
}

.pgqlt_card3_item:not(:last-child) {
  margin-bottom: 4rem;
}

.pgqlt_card3_img {
  margin-bottom: 1.4rem;
}
.pgqlt_card3_item:nth-child(3) .pgqlt_card3_img {
    border: 1px solid #ddd;
}

.pgqlt_card3_title {
  font-size: 1.29rem;
  font-weight: 500;
  line-height: 1.85;
  letter-spacing: 0.05em;
  color: #000;
  margin-bottom: 0.8rem;
}

.pgqlt_card3_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pgqlt_row_txt,
  .pgqlt_com_txt,
  .pgqlt_card2_txt {
    font-size: 0.86rem;
    line-height: 1.9;
  }

  .pgqlt_box_txt {
    font-size: 0.86rem;
    line-height: 1.8;
  }

  .pgqlt_card3_txt {
    font-size: 0.86rem;
    line-height: 1.8;
  }

  .pgqlt_mv {
    height: 18rem;
  }

  .pgqlt_mv_title {
    font-size: 1.6rem;
  }

  .pgqlt_wide {
    width: 90%;
  }

  .pgqlt_title {
    font-size: 1.43rem;
  }

  /* 中央揃えは行の長さをそろえ、言葉の切れ目で折り返す（対応ブラウザのみ） */
  .pgqlt_txt {
    font-size: 0.86rem;
    line-height: 1.9;
    text-align: center;
    text-wrap: balance;
    word-break: auto-phrase;
  }

  .pgqlt_box {
    padding: 2.6rem 3rem 2.8rem;
  }

  .pgqlt_audit {
    padding: 2.6rem 3rem 2.8rem;
  }

  .pgqlt_audit_txt {
    font-size: 0.86rem;
    line-height: 1.8;
    text-align: center;
    text-wrap: balance;
    word-break: auto-phrase;
  }

  .pgqlt_audit_step {
    flex-direction: row;
    gap: 2rem;
  }

  .pgqlt_audit_step li {
    flex: 1;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.4rem 1rem;
    font-size: 0.86rem;
    text-align: center;
  }

  .pgqlt_audit_step li:not(:last-child)::after {
    top: 50%;
    right: -1.15rem;
    bottom: auto;
    left: auto;
    transform: translateY(-50%) rotate(-45deg);
  }

  .pgqlt_container .pgpro_team_block {
    display: block;
  }

  .pgqlt_team_note {
    display: block;
  }

  .pgqlt_teamsp {
    display: none;
  }

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

  .pgqlt_card2_item {
    width: calc((100% - 2.2rem) / 2);
  }

  .pgqlt_card2_item:not(:last-child) {
    margin-bottom: 0;
  }

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

  .pgqlt_card3_item {
    width: calc((100% - 3rem) / 3);
  }

  .pgqlt_card3_item:not(:last-child) {
    margin-bottom: 0;
  }

  .pgqlt_com_img {
    max-width: 24.8rem;
  }
}

@media screen and (min-width: 992px) {

  /*||第三者による品質監査（画像左・文章右）||*/
  .pgqlt_row {
    display: flex;
    align-items: center;
  }

  .pgqlt_row_img {
    flex-shrink: 0;
    width: 48%;
    margin-bottom: 0;
  }

  .pgqlt_row_body {
    flex: 1;
    padding-left: 6.3%;
  }

  /*||FLOW 5列||*/
  .pgqlt_flow {
    --pgqlt-gap: 1.5625rem;
    grid-template-columns: repeat(5, 1fr);
    row-gap: 3.4rem;
  }


  /*||COMMITMENT（見出し左・リスト右）||*/
  .pgqlt_com .pgqlt_wide {
    display: flex;
  }

  .pgqlt_com_head {
    flex-shrink: 0;
    width: 26%;
    margin-bottom: 0;
  }

  .pgqlt_com_list {
    flex: 1;
  }

  .pgqlt_com_item:first-child {
    padding-top: 0;
  }

  .pgqlt_com_num {
    width: 4.5rem;
    margin-top: -0.4rem;
    font-size: 3.6rem;
  }

  .pgqlt_com_row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
  }

  .pgqlt_com_row .pgqlt_com_txt {
    flex: 1;
    padding-right: 3rem;
    margin-bottom: 0;
  }

  /* 画像のない項目（6）は文章を横幅いっぱいに */
  .pgqlt_com_row .pgqlt_com_txt:only-child {
    padding-right: 0;
  }

  .pgqlt_com_img {
    flex-shrink: 0;
    width: 40%;
  }
}

@media screen and (min-width: 1200px) {
  .pgqlt_mv {
    height: 25rem;
  }

  .pgqlt_mv_title {
    font-size: 1.75rem;
    margin-bottom: 0.6rem;
  }

  .pgqlt_mv_en {
    font-size: 0.6875rem;
  }

  .pgqlt_sec {
    padding: 5.75rem 0 7.1rem;
  }

  .pgqlt_title {
    font-size: 1.5625rem;
    margin-bottom: 2.3rem;
  }

  .pgqlt_txt {
    font-size: 1rem;
    letter-spacing: 0.02em;
    margin-bottom: 5.6rem;
  }

  .pgqlt_row {
    margin-bottom: 5rem;
  }

  .pgqlt_row_title {
    font-size: 1.375rem;
    margin-bottom: 1.875rem;
  }

  .pgqlt_row_txt,
  .pgqlt_com_txt,
  .pgqlt_card2_txt {
    font-size: 1rem;
    letter-spacing: 0.02em;
  }

  .pgqlt_box {
    padding: 3.1rem 8.125rem 3.1rem;
    margin-bottom: 8.1rem;
  }

  .pgqlt_box_title {
    font-size: 1.1875rem;
    margin-bottom: 1.6rem;
  }

  .pgqlt_box:has(+ .pgqlt_audit) {
    margin-bottom: 1.5rem;
  }

  .pgqlt_audit {
    padding: 3.1rem 8.125rem 3.1rem;
    margin-bottom: 8.1rem;
  }

  .pgqlt_audit_title {
    font-size: 1.1875rem;
    margin-bottom: 1.6rem;
  }

  .pgqlt_audit_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.07em;
  }

  .pgqlt_audit_step {
    gap: 2.5rem;
    margin-bottom: 2rem;
  }

  .pgqlt_audit_step li {
    font-size: 0.9375rem;
  }

  .pgqlt_audit_step li:not(:last-child)::after {
    right: -1.45rem;
  }

  .pgqlt_box_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.07em;
  }

  .pgqlt_flow_head {
    margin-bottom: 4.7rem;
  }

  .pgqlt_flow_label {
    font-size: 1.125rem;
    margin-bottom: 2.4rem;
  }

  .pgqlt_flow {
    row-gap: 4.4rem;
  }

  .pgqlt_flow_item {
    padding-top: 2.4rem;
  }

  .pgqlt_flow_num {
    font-size: 3.25rem;
    margin-bottom: 1.4rem;
  }

  .pgqlt_flow_title {
    font-size: 0.875rem;
    margin-bottom: 2.6rem;
  }

  /*||COMMITMENT||*/
  .pgqlt_sec:has(.pgqlt_flow) {
    padding-bottom: 9.25rem;
  }

  .pgqlt_com {
    padding-bottom: 9.95rem;
  }

  .pgqlt_com .pgqlt_wide {
    padding-top: 9.6rem;
  }

  .pgqlt_com_en {
    font-size: 1.875rem;
  }

  .pgqlt_com_ja {
    font-size: 0.75rem;
  }

  .pgqlt_com_item {
    padding: 2.8rem 0 2.45rem;
  }

  .pgqlt_com_num {
    width: 5.5rem;
    margin-top: -0.6rem;
    font-size: 4.5rem;
  }

  .pgqlt_com_title {
    font-size: 1.375rem;
    margin-bottom: 1.5rem;
  }

  .pgqlt_com_img {
    width: 24.8rem;
  }

  /*||プロフェッショナル||*/
  .pgqlt_card2 {
    margin-bottom: 7rem;
  }

  .pgqlt_card2_item {
    width: calc((100% - 3.125rem) / 2);
  }

  .pgqlt_card2_img {
    margin-bottom: 2.2rem;
  }

  .pgqlt_card2_title {
    font-size: 1.1875rem;
    margin-bottom: 1.4rem;
  }

  .pgqlt_team_head {
    margin-bottom: 3rem;
  }

  .pgqlt_team_note {
    font-size: 0.9375rem;
    margin-bottom: 4.4rem;
  }

  .pgqlt_sec:has(.pgpro_team_block) {
    padding-bottom: 5rem;
  }

  /*||技術者集団||*/
  .pgqlt_know {
    padding-bottom: 7.3rem;
  }

  .pgqlt_know .pgqlt_wide {
    padding-top: 6.55rem;
  }

  .pgqlt_know .pgqlt_txt {
    margin-bottom: 4.4rem;
  }

  .pgqlt_card3_item {
    width: calc((100% - 6.5rem) / 3);
  }

  .pgqlt_card3_img {
    margin-bottom: 2.2rem;
  }

  .pgqlt_card3_title {
    font-size: 1.125rem;
    margin-bottom: 1.2rem;
  }

  .pgqlt_card3_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
  }
}

/*||資料画像の拡大表示（.js-img-zoom ／ js/page.js）||*/
.js-img-zoom {
  position: relative;
  cursor: zoom-in;
}

/* 拡大できることが分かるよう右下に虫眼鏡の目印 */
.js-img-zoom::after {
  content: "";
  position: absolute;
  right: 0.6rem;
  bottom: 0.6rem;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: rgba(26, 26, 26, 0.7) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.6'%3E%3Ccircle cx='10.5' cy='10.5' r='6'/%3E%3Cpath d='M15 15l5 5M10.5 8v5M8 10.5h5'/%3E%3C/svg%3E") no-repeat center / 1.2rem;
  pointer-events: none;
}

.js-img-zoom:focus {
  outline: none;
}

.js-img-zoom:focus-visible {
  outline: 2px solid #c59b04;
  outline-offset: 2px;
}

.pg_zoom {
  position: fixed;
  inset: 0;
  z-index: 100000; /* ヘッダー（99999）より上 */
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 3.5rem 1rem;
  background-color: rgba(0, 0, 0, 0.85);
  cursor: zoom-out;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.pg_zoom.is-open {
  opacity: 1;
  visibility: visible;
}

/* ニョキっと拡大 */
.pg_zoom_img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  cursor: default;
  transform: scale(0.85);
  transition: transform 0.35s cubic-bezier(0.2, 0.9, 0.3, 1.2);
}

.pg_zoom.is-open .pg_zoom_img {
  transform: scale(1);
}

.pg_zoom_close {
  position: absolute;
  top: 0.8rem;
  right: 0.8rem;
  width: 2.6rem;
  height: 2.6rem;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
}

.pg_zoom_close::before,
.pg_zoom_close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.8rem;
  height: 1px;
  background-color: #fff;
}

.pg_zoom_close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.pg_zoom_close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.pg_zoom_close:focus {
  outline: none;
}

/* 拡大表示中は後ろのページをスクロールさせない */
.pg_zoom_lock {
  overflow: hidden;
}

@media screen and (min-width: 1200px) {
  .pg_zoom {
    padding: 5rem;
  }
}

/**************************************
/* 7つの安心と保証（pgspt_）
***************************************/
/*||帯画像（7つの安心／7つの保証・保険）||*/
.pgspt_mv {
  position: relative;
  scroll-margin-top: 6rem;
  height: 13rem;
  overflow: hidden;
  background-color: #a7a9a4;
}

/* page.css の #page-main img { height: auto; } に負けないよう #page-main を付ける */
#page-main .pgspt_mv img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pgspt_mv::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.pgspt_mv_body {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 1;
  width: 100%;
  text-align: center;
  color: #fff;
  transform: translateY(-50%);
}

.pgspt_mv_title {
  font-size: 1.43rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  margin-bottom: 0.4rem;
}

.pgspt_mv_en {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.05em;
  margin-bottom: 0;
}

/*||レイアウト・リード文||*/
.pgspt_sec {
  padding: 3.5rem 0 3rem;
}

.pgspt_sec_war {
  padding-top: 1rem;
}

.pgspt_inner {
  width: calc(100% - 5.4rem);
  max-width: 71.75rem;
  margin: 0 auto;
}

.pgspt_title {
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #000;
  text-align: center;
  margin-bottom: 1.6rem;
}

/* リード文（SPは左揃え、768px以上は中央揃え） */
.pgspt_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: left;
  margin-bottom: 1.8rem;
}

/* 最初の項目の上の余白を詰める（SP） */
.pgspt_list_line > .pgspt_item:first-child {
  padding-top: 2rem;
}

/* 「7つの安心」「7つの保証・保険」の先頭に戻る */
.pgspt_totop {
  text-align: right;
  margin: 0.4rem 0 0;
}

.pgspt_totop a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.86rem;
  letter-spacing: 0.05em;
  color: #333;
  padding-bottom: 0.3rem;
  border-bottom: 1px solid #333;
}

.pgspt_totop a::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-top: 1px solid currentColor;
  border-left: 1px solid currentColor;
  transform: translateY(0.15rem) rotate(45deg);
}

.pgspt_totop a:hover {
  color: #333;
  text-decoration: none;
  opacity: 0.7;
}

/*||各項目||*/
.pgspt_list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgspt_list_line {
  border-top: 1px solid #ececee;
}

.pgspt_item {
  padding: 2.6rem 0;
}

.pgspt_item + .pgspt_item {
  border-top: 1px solid #ececee;
}

.pgspt_item_row,
.pgspt_item_full {
  max-width: 67rem;
}

.pgspt_item_img {
  margin-bottom: 1.6rem;
}

.pgspt_item_img img,
.pgspt_chart img,
.pgspt_period img,
.pgspt_prod_img img {
  display: block;
  width: 100%;
  height: auto;
}

.pgspt_item_title {
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0;
  color: #000;
  margin-bottom: 0.7rem;
}

/* 数字は見出しの文字と上下中央をそろえる */
.pgspt_item_num {
  position: relative;
  top: -0.13em;
  display: inline-block;
  vertical-align: middle;
  font-size: 1.3rem;
  font-weight: 300;
  line-height: 1;
  letter-spacing: 0;
  color: #bbb;
  margin-right: 0.9rem;
}

/* 見出しが2行のとき：2行目を1行目の文字の位置にそろえ、数字は2行の上下中央に */
.pgspt_item_title_2line {
  display: flex;
  align-items: center;
}

.pgspt_item_title_2line .pgspt_item_num {
  flex-shrink: 0;
  top: -0.03em;
}

.pgspt_item_title sup {
  font-size: 0.5em;
  top: -0.9em;
}

.pgspt_item_sub {
  font-size: 1.07rem;

  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #1a1a1a;
  margin-bottom: 1.3rem;
}

.pgspt_item_txt {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1a1a1a;
  text-align: justify;
  margin-bottom: 0;
}

.pgspt_item_txt sup {
  font-size: 0.6em;
}

.pgspt_note {
  font-size: 0.72rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
  color: #505050;
  margin-bottom: 0;
}

.pgspt_item_txt + .pgspt_note {
  margin-top: 0.8rem;
}

.pgspt_note + .pgspt_note {
  margin-top: 0.2rem;
}

/* 06 のトラブル対応アイコン */
.pgspt_icon {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  max-width: 67rem;
  list-style: none;
  padding: 0;
  margin: 2rem 0 0;
}

.pgspt_icon_item {
  display: flex;
  flex-direction: column;
  align-items: center;
  height: 7rem;
  padding-top: 1rem;
  background-color: #f2f3f4;
}

.pgspt_icon_title {
  font-size: 0.79rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  color: #1a1a1a;
  margin-bottom: 0.8rem;
}

/* page.css の #page-main img { height: auto; } に負けないよう #page-main を付ける */
#page-main .pgspt_icon_item img {
  display: block;
  width: auto;
  height: 2.8rem;
}

/* 04 の図・05 の保証期間（SPは横スクロール） */
.pgspt_chart,
.pgspt_period {
  overflow-x: auto;
}

.pgspt_chart {
  margin: 2rem 0 1.6rem;
}

.pgspt_chart img {
  min-width: 46rem;
}

.pgspt_period {
  margin: 2rem 0 2.4rem;
}

.pgspt_period img {
  min-width: 36rem;
}

.pgspt_footnote p {
  padding-left: 2.6em;
  text-indent: -2.6em;
  font-size: 0.72rem;
  line-height: 1.8;
  letter-spacing: 0.03em;
  color: #555;
  margin-bottom: 0;
}

/* 05 の対象設備 */
.pgspt_prod {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.6rem 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.pgspt_prod_img img {
  aspect-ratio: 732 / 460;
  object-fit: cover;
}

.pgspt_prod_title {
  font-size: 0.79rem;
  line-height: 1.5;
  letter-spacing: 0.08em;
  color: #555;
  margin: 0.7rem 0 0;
}

.pgspt_prod_small {
  font-size: 0.85em;
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pgspt_item_txt {
    font-size: 0.86rem;
    line-height: 1.8;
  }

  .pgspt_mv {
    height: 18rem;
  }

  .pgspt_mv_title {
    font-size: 1.6rem;
  }

  .pgspt_inner {
    width: 90%;
  }

  .pgspt_title {
    font-size: 1.43rem;
  }

  /* 中央揃えは行の長さをそろえ、言葉の切れ目で折り返す（対応ブラウザのみ） */
  .pgspt_txt {
    font-size: 0.86rem;
    line-height: 1.8;
    margin-bottom: 3rem;
    text-align: center;
    text-wrap: balance;
    word-break: auto-phrase;
  }

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

  .pgspt_item_img {
    flex-shrink: 0;
    width: 40%;
    max-width: 25rem;
    margin-bottom: 0;
  }

  .pgspt_item_body {
    flex: 1;
    padding-left: 7.6%;
  }

  .pgspt_icon {
    grid-template-columns: repeat(5, 1fr);
  }

  .pgspt_chart img,
  .pgspt_period img {
    min-width: 0;
  }

  .pgspt_prod {
    grid-template-columns: repeat(3, 1fr);
    gap: 2.4rem 2rem;
  }
}

@media screen and (min-width: 1200px) {
  .pgspt_mv {
    height: 25rem;
  }

  .pgspt_mv_title {
    font-size: 1.75rem;
    margin-bottom: 0.6rem;
  }

  .pgspt_mv_en {
    font-size: 0.6875rem;
  }

  .pgspt_sec {
    padding: 5.75rem 0 5rem;
  }

  .pgspt_sec_war {
    padding: 2.45rem 0 3.5rem;
  }

  .pgspt_title {
    font-size: 1.5625rem;
    margin-bottom: 2.3rem;
  }

  .pgspt_txt {
    font-size: 1rem;
    letter-spacing: 0.02em;
    margin-bottom: 5.9rem;
  }

  .pgspt_list_line > .pgspt_item:first-child {
    padding-top: 3.75rem;
  }

  .pgspt_totop a {
    font-size: 0.875rem;
  }

  .pgspt_item {
    padding: 3.75rem 0 3.7rem;
  }

  .pgspt_item_img {
    width: 25rem;
  }

  .pgspt_item_body {
    padding-left: 5.125rem;
  }

  .pgspt_item_title {
    font-size: 1.4375rem;
    margin-bottom: 0.9rem;
  }

  .pgspt_item_num {
    font-size: 1.875rem;
    margin-right: 1.4rem;
  }

  .pgspt_item_sub {
    font-size: 1.125rem;
    letter-spacing: 0.1em;
    margin-bottom: 2.2rem;
  }

  .pgspt_item_txt {
    font-size: 1rem;
    letter-spacing: 0.02em;
  }

  .pgspt_note,
  .pgspt_footnote p {
    font-size: 0.75rem;
  }

  .pgspt_icon {
    gap: 9px;
    margin-top: 3.75rem;
  }

  .pgspt_icon_item {
    height: 9.7rem;
    padding-top: 1.3rem;
  }

  .pgspt_icon_title {
    font-size: 0.875rem;
    margin-bottom: 1.2rem;
  }

  #page-main .pgspt_icon_item img {
    height: 3.4rem;
  }

  .pgspt_chart {
    margin: 2.8rem 0 3.1rem;
  }

  /* 画像の比率が Figma より縦長な分（約16px）を下の余白で吸収 */
  .pgspt_period {
    margin: 3.3rem 0 4.6rem;
  }

  .pgspt_prod {
    gap: 3.75rem 2.625rem;
  }

  .pgspt_prod_title {
    font-size: 1rem;
    letter-spacing: 0.1em;
    margin-top: 1.2rem;
  }
}

/**************************************
/* 会社概要（pgcmp_）
***************************************/
.pgcmp_sec {
  overflow: hidden;
}

.pgcmp_outline {
  padding-top: 2rem;
}

.pgcmp_org {
  padding: 4rem 0 4rem;
}

.pgcmp_wide {
  width: calc(100% - 5.4rem);
  max-width: 90.5rem;
  margin: 0 auto;
}

/* 見出し（OUTLINE・ORGANIZATION） */
.pgcmp_head {
  margin-bottom: 1.6rem;
}

.pgcmp_head_en {
  font-size: 1.6rem;
  font-weight: 300;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: #222;
  margin-bottom: 0.5rem;
}

.pgcmp_head_ja {
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #737477;
  margin-bottom: 0;
}

/*||企業概要の表||*/
.pgcmp_table_row {
  position: relative;
  padding: 1.2rem 0;
  margin: 0;
  border-top: 1px solid #e8e8e8;
}

.pgcmp_table_row:last-child {
  border-bottom: 1px solid #e8e8e8;
}

.pgcmp_table_row dt {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}

.pgcmp_table_row dd {
  font-size: 1rem;
  line-height: 1.7;
  letter-spacing: 0.03em;
  margin: 0;
}

/*||組織図（画像）SPは横スクロール||*/
.pgcmp_org_img {
  overflow-x: auto;
}

.pgcmp_org_img img {
  display: block;
  width: 100%;
  min-width: 46rem;
  height: auto;
}

/*||受賞歴||*/
.pgcmp_award {
  padding-bottom: 4.5rem;
}

.pgcmp_award_box {
  max-width: 75rem;
  margin: 0 auto;
  padding: 3rem 1.4rem 3.4rem;
  background-color: #f2f3f4;
}

.pgcmp_award_head {
  margin-bottom: 1.8rem;
}

.pgcmp_award_title {
  font-size: 1.15rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.01em;
  color: #000;
  text-align: center;
  margin-bottom: 1.2rem;
}

.pgcmp_award_txt {
  font-size: 0.86rem;
  line-height: 1.87;
  letter-spacing: 0.05em;
  color: #1a1a1a;
  text-align: left;
  margin-bottom: 2.4rem;
}

.pgcmp_office {
  display: block;
  margin-bottom: 0.9em;
}

.pgcmp_office:last-child {
  margin-bottom: 0;
}

.pgcmp_small {
  display: inline-block;
  font-size: 0.8em;
}

.pgcmp_award_imgs {
  margin-bottom: 2rem;
}

.pgcmp_award_mag {
  width: 70%;
  max-width: 18.25rem;
  margin: 0 auto 2rem;
  text-align: center;
}

.pgcmp_award_mag img,
.pgcmp_award_logo img,
.pgcmp_award_photo img {
  display: block;
  width: 100%;
  height: auto;
}

.pgcmp_award_mag figcaption {
  font-size: 0.72rem;
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: #555;
  margin-top: 0.8rem;
}

.pgcmp_award_logo {
  max-width: 24rem;
  margin: 0 auto;
}

.pgcmp_award_logo_pc {
  display: none !important;
}

.pgcmp_award_photo {
  max-width: 62.625rem;
  margin: 0 auto;
}

@media screen and (min-width: 768px) {

  /* 本文はSPのみ14px（1rem）・行間1.7。768px以上は元のサイズ・行間1.8 */
  .pgcmp_table_row dd {
    font-size: 0.86rem;
    line-height: 1.66;
  }

  .pgcmp_wide {
    width: 90%;
  }

  .pgcmp_head_en {
    font-size: 1.75rem;
  }

  /* 表は項目名を左、内容を右 */
  .pgcmp_table_row {
    display: flex;
    align-items: center;
    padding: 1.4rem 0;
  }

  .pgcmp_table_row dt {
    flex-shrink: 0;
    width: 12rem;
    font-size: 0.86rem;
    margin-bottom: 0;
  }

  .pgcmp_table_row dd {
    flex: 1;
  }

  .pgcmp_org_img img {
    min-width: 0;
  }

  .pgcmp_award_box {
    padding: 4rem 3rem 4.4rem;
  }

  .pgcmp_award_title {
    font-size: 1.3rem;
  }

  .pgcmp_award_txt {
    font-size: 0.93rem;
    text-align: center;
    text-wrap: pretty;
    word-break: auto-phrase;
  }

  .pgcmp_award_imgs {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 2rem;
  }

  .pgcmp_award_mag {
    flex-shrink: 0;
    width: 30%;
    margin: 0;
  }

  .pgcmp_award_logo {
    width: 52%;
    max-width: 32.875rem;
    margin: 0;
  }

  .pgcmp_award_logo_pc {
    display: block !important;
  }

  .pgcmp_award_logo_sp {
    display: none !important;
  }
}

@media screen and (min-width: 992px) {

  /* 見出し左・内容右 */
  .pgcmp_wide {
    display: flex;
  }

  .pgcmp_head {
    flex-shrink: 0;
    width: 26%;
    margin-bottom: 0;
  }

  .pgcmp_table,
  .pgcmp_org_img {
    flex: 1;
    min-width: 0;
  }

  /* 表の罫線は画面の右端まで伸ばす */
  .pgcmp_table_row,
  .pgcmp_table_row:last-child {
    border: 0;
  }

  .pgcmp_table_row::before,
  .pgcmp_table_row:last-child::after {
    content: "";
    position: absolute;
    left: 0;
    right: -100vw;
    height: 1px;
    background-color: #e8e8e8;
  }

  .pgcmp_table_row::before {
    top: 0;
  }

  .pgcmp_table_row:last-child::after {
    bottom: 0;
  }
}

@media screen and (min-width: 1200px) {
  .pgcmp_outline {
    padding-top: 4.8rem;
  }

  .pgcmp_org {
    padding: 10.75rem 0 8.7rem;
  }

  .pgcmp_head_en {
    font-size: 1.875rem;
  }

  .pgcmp_head_ja {
    font-size: 0.75rem;
  }

  .pgcmp_table_row {
    padding: 1.7rem 0 1.47rem;
  }

  .pgcmp_table_row dt {
    width: 18.625rem;
    font-size: 0.9375rem;
  }

  .pgcmp_table_row dt {
    line-height: 1.65;
  }

  .pgcmp_table_row dd {
    font-size: 0.9375rem;
  }

  .pgcmp_award {
    padding-bottom: 6.9rem;
  }

  .pgcmp_award_box {
    padding: 5.5rem 0 6.6rem;
  }

  .pgcmp_award_head {
    margin-bottom: 3.2rem;
  }

  .pgcmp_award_title {
    font-size: 1.3125rem;
    margin-bottom: 2rem;
  }

  .pgcmp_award_txt {
    font-size: 0.9375rem;
    letter-spacing: 0.03em;
    margin-bottom: 4rem;
  }

  .pgcmp_award_imgs {
    gap: 1.25rem;
  }

  .pgcmp_award_mag {
    width: 18.25rem;
  }

  .pgcmp_award_mag figcaption {
    font-size: 0.8125rem;
  }
}

/*||企業理念（MISSION STATEMENT・VISION・VALUE・PROMISE）||*/
/* ※ pgphi_ は使わず pgcmp_ の構造に合わせる（/philosophy/ に影響させない） */
.pgcmp_phi {
  padding-bottom: 4rem;
}

.pgcmp_phi_lead_txt {
  font-size: 1.14rem;
  letter-spacing: 0.03em;
  line-height: 1.9;
  text-align: justify;
  margin-bottom: 0;
}

/* VALUE の下の写真（表と写真を .pgcmp_phi_body でまとめて右カラムにする） */
.pgcmp_phi_body .pgcmp_table {
  margin-bottom: 2.5rem;
}

.pgcmp_phi_img img {
  display: block;
  width: 100%;
  height: auto;
}

/* VALUE（行動指針）の項目名のみ明朝 */
.pgcmp_table_value .pgcmp_table_row dt {
  font-family: "Shippori Mincho", serif;
  font-weight: 500;
}

/* PROMISE はSPでも番号と本文を横並びにする */
.pgcmp_table_num .pgcmp_table_row {
  display: flex;
  align-items: flex-start;
}

.pgcmp_table_num .pgcmp_table_row dt {
  flex-shrink: 0;
  width: 2rem;
  margin-bottom: 0;
}

.pgcmp_table_num .pgcmp_table_row dd {
  flex: 1;
}

@media screen and (min-width: 768px) {
  .pgcmp_phi_lead_txt {
    font-size: 1.25rem;
  }

  /* VALUE は項目名が長いため幅を広げる */
  .pgcmp_table_value .pgcmp_table_row dt {
    width: 16rem;
  }

  /* PROMISE は番号のみのため幅を狭める */
  .pgcmp_table_num .pgcmp_table_row dt {
    width: 4rem;
  }
}

@media screen and (min-width: 992px) {
  /* 表＋写真を右カラムにする（.pgcmp_table と同じ指定） */
  .pgcmp_phi_body {
    flex: 1;
    min-width: 0;
  }

  .pgcmp_phi_body .pgcmp_table {
    margin-bottom: 4rem;
  }
}

@media screen and (min-width: 1200px) {
  .pgcmp_phi {
    padding-bottom: 6rem;
  }

  .pgcmp_phi_lead_txt {
    font-size: 1.3125rem;
  }

  .pgcmp_table_value .pgcmp_table_row dt {
    width: 18.625rem;
  }

  .pgcmp_table_num .pgcmp_table_row dt {
    width: 5rem;
  }
}
