@charset "UTF-8";
/* =========================================================
 * 2026.10 改修スタイル（style.css の後に読み込み）
 * ======================================================= */
:root {
  --h-blue: #2c6db5;
  --h-navy: #0f2f57;
  --h-teal: #00a79b;
  --h-ink: #222;
  --h-sub: #5b6470;
  --h-line: #dfe3e8;
  --h-paper: #f6f4ee;
  --h-serif: "Noto Serif JP", serif;
  --h-en: Futura, "Century Gothic", "Noto Sans JP", sans-serif;
  --h-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- 共通：写真ホバーでスケール ---------- */
.u-zoom { overflow: hidden; position: relative; }
.u-zoom img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s var(--h-ease);
  will-change: transform;
}
a:hover .u-zoom img,
a:focus-visible .u-zoom img,
.u-zoom:hover img { transform: scale(1.08); }

/* 既存の写真にも同じ効果 */
.p-about li a { display: block; overflow: hidden; position: relative; }
.p-about li img { transition: transform .7s var(--h-ease); }
.p-about li a:hover img { transform: scale(1.06); }
.p-serviceDetail .p-concept_block .left_block_img,
.p-serviceDetail .p-concept_block .right_block_img { overflow: hidden; }
.p-serviceDetail .p-concept_block img { transition: transform .7s var(--h-ease); }
.p-serviceDetail .p-concept_block:hover img { transform: scale(1.05); }
.p-room_slider .slider-main li { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
  .u-zoom img, .p-about li img, .p-serviceDetail .p-concept_block img { transition: none; }
}

/* ---------- 建築塗装へのおもい ---------- */
.p-thought {
  position: relative;
  overflow: hidden;
  padding-top: 12rem;
}
.p-thought_bgText {
  position: absolute;
  top: 4rem;
  right: -2rem;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: .04em;
  line-height: 1;
  color: rgba(44, 109, 181, .06);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.p-thought_inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  align-items: center;
  gap: 0;
  margin-bottom: 4rem;
}
.p-thought_visual { position: relative; }
.p-thought_visual::before {
  content: "";
  position: absolute;
  inset: 3.2rem 3.2rem -3.2rem -3.2rem;
  border: 2px solid var(--h-blue);
  z-index: 0;
}
.p-thought_img { position: relative; z-index: 1; aspect-ratio: 4 / 3; }
.p-thought_badge {
  position: absolute;
  z-index: 2;
  left: -2rem;
  bottom: -2rem;
  width: 11rem;
  height: 11rem;
  border-radius: 50%;
  background: var(--h-teal);
  color: #fff;
  display: grid;
  place-items: center;
  text-align: center;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.4rem;
  letter-spacing: .12em;
  line-height: 1.4;
}
.p-thought_body {
  position: relative;
  z-index: 3;
  background: #fff;
  margin-left: -6rem;
  padding: 5.6rem 5.6rem 5rem;
  box-shadow: 0 2rem 5rem rgba(15, 47, 87, .12);
}
.p-thought_label {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--h-serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--h-blue);
  margin-bottom: 1.6rem;
}
.p-thought_label::before {
  content: "";
  width: 4rem;
  height: 2px;
  background: var(--h-blue);
}
.p-thought_catch {
  font-family: var(--h-serif);
  font-weight: 600;
  font-size: 4rem;
  line-height: 1.45;
  letter-spacing: .06em;
  color: var(--h-navy);
  margin-bottom: 2.4rem;
}
.p-thought_text {
  font-size: 1.5rem;
  line-height: 2;
  color: #333;
  margin-bottom: 3.2rem;
}
.p-thought_points {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.2rem;
  margin-bottom: 4rem;
  list-style: none;
}
.p-thought_points li {
  position: relative;
  padding: 1.8rem 1.2rem 1.6rem;
  border-top: 3px solid var(--h-blue);
  background: var(--h-paper);
  text-align: center;
}
.p-thought_pointNum {
  display: block;
  font-family: var(--h-en);
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--h-teal);
  letter-spacing: .1em;
}
.p-thought_points strong {
  display: block;
  font-family: var(--h-serif);
  font-size: 2.4rem;
  color: var(--h-navy);
  margin: .2rem 0 .6rem;
}
.p-thought_points small {
  display: block;
  font-size: 1.2rem;
  line-height: 1.6;
  color: var(--h-sub);
}
.p-thought .c-button01.p-thought_button { margin: 0; }

/* ---------- セクション共通の余白・リード ---------- */
.p-service_lead,
.p-serviceWorks_lead,
.p-column_lead {
  text-align: center;
  font-size: 1.5rem;
  line-height: 2;
  color: #444;
  margin: -2.4rem auto 4.8rem;
}

/* ---------- 業務内容 ---------- */
.c-svc { margin-bottom: 6rem; }
.c-svc_main {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.2rem;
  margin-bottom: 3.2rem;
}
.c-svc_sub {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.2rem;
}
.c-svcCard {
  display: flex;
  flex-direction: column;
  background: #fff;
  color: var(--h-ink);
  box-shadow: 0 .6rem 2.4rem rgba(15, 47, 87, .1);
  transition: box-shadow .4s var(--h-ease), transform .4s var(--h-ease);
  height: 100%;
}
.c-svcCard:hover {
  box-shadow: 0 1.6rem 4rem rgba(15, 47, 87, .18);
  transform: translateY(-4px);
}
.c-svcCard_img { aspect-ratio: 16 / 10; }
.c-svcCard_num {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background: var(--h-blue);
  color: #fff;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 2rem;
  letter-spacing: .08em;
  padding: 1.2rem 1.8rem;
  line-height: 1;
}
.c-svcCard_body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 3.2rem 3.6rem 3rem;
}
.c-svcCard_en {
  font-family: var(--h-en);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: .18em;
  color: var(--h-teal);
  margin-bottom: .6rem;
}
.c-svcCard_title {
  font-family: var(--h-serif);
  font-size: 2.8rem;
  font-weight: 600;
  color: var(--h-navy);
  line-height: 1.4;
  margin-bottom: 1.2rem;
}
.c-svcCard_text {
  font-size: 1.5rem;
  line-height: 1.9;
  margin-bottom: 1.6rem;
}
.c-svcCard_points {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem;
  list-style: none;
  margin-bottom: 2.4rem;
}
.c-svcCard_points li {
  font-size: 1.3rem;
  padding: .5rem 1.2rem;
  border: 1px solid var(--h-blue);
  color: var(--h-blue);
  border-radius: 999px;
  line-height: 1.4;
}
.c-svcCard_foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.6rem;
  padding-top: 1.6rem;
  border-top: 1px solid var(--h-line);
  font-size: 1.4rem;
}
.c-svcCard_count { color: var(--h-sub); }
.c-svcCard_count strong {
  font-family: var(--h-en);
  font-size: 2rem;
  color: var(--h-blue);
  margin: 0 .2rem;
}
.c-svcCard_more {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  font-weight: 700;
  color: var(--h-blue);
  letter-spacing: .08em;
}
.c-svcCard_more::after {
  content: "";
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 50%;
  background: var(--h-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8.5 4.5 12 8l-3.5 3.5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 1.6rem no-repeat;
  transition: transform .4s var(--h-ease);
}
.c-svcCard:hover .c-svcCard_more::after { transform: translateX(4px); }

/* サブ（防水・足場）：横長 */
.c-svcCard--sub { flex-direction: row; }
.c-svcCard--sub .c-svcCard_img { flex: 0 0 40%; aspect-ratio: auto; min-height: 22rem; }
.c-svcCard--sub .c-svcCard_body { padding: 2.4rem 2.8rem; }
.c-svcCard--sub .c-svcCard_title { font-size: 2.2rem; margin-bottom: .8rem; }
.c-svcCard--sub .c-svcCard_text { font-size: 1.4rem; margin-bottom: 1.6rem; }
.c-svcCard_numS {
  display: inline-block;
  color: #fff;
  background: var(--h-blue);
  padding: .2rem .6rem;
  margin-right: .8rem;
  letter-spacing: .06em;
}

.p-service--page { padding-bottom: 8rem; }
.p-serviceLatest { padding: 10rem 0 4rem; }

/* ---------- 施工実績カード ---------- */
.c-workGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem 3.2rem;
  margin-bottom: 6rem;
}
.c-workCard { height: 100%; }
.c-workCard_link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--h-ink);
  background: #fff;
}
.c-workCard_thumb {
  aspect-ratio: 4 / 3;
  background: #eef1f4;
}
.c-workCard_noimg {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-family: var(--h-en);
  letter-spacing: .1em;
  color: #9aa3ad;
  font-size: 1.3rem;
}
.c-workCard_cat {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  background: var(--h-blue);
  color: #fff;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: .06em;
  padding: .7rem 1.4rem;
  line-height: 1.3;
}
.c-workCard_body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 1.6rem .4rem 0;
}
.c-workCard_meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem 1.2rem;
  font-size: 1.3rem;
  color: var(--h-sub);
  margin-bottom: .8rem;
}
.c-workCard_meta time { font-family: var(--h-en); letter-spacing: .06em; }
.c-workCard_area {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
}
.c-workCard_area::before {
  content: "";
  width: 1.1em;
  height: 1.1em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 22s7-6.2 7-12a7 7 0 1 0-14 0c0 5.8 7 12 7 12Z' fill='none' stroke='%232c6db5' stroke-width='2'/%3E%3Ccircle cx='12' cy='10' r='2.5' fill='%232c6db5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.c-workCard_title {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 1.2rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .3s;
}
.c-workCard_link:hover .c-workCard_title { color: var(--h-blue); }
.c-workCard_spec {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem 1.6rem;
  font-size: 1.3rem;
  margin-bottom: 1.2rem;
}
.c-workCard_spec div { display: flex; gap: .2rem; }
.c-workCard_spec dt {
  color: var(--h-blue);
  font-weight: 700;
}
.c-workCard_spec dt::after { content: "："; }
.c-workCard_tags {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  list-style: none;
  font-size: 1.2rem;
  color: var(--h-sub);
}

/* ---------- 絞り込みチップ ---------- */
.c-filterChips {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  list-style: none;
  margin-bottom: 4rem;
}
.c-filterChips--center { justify-content: center; }
.c-filterChips a {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  padding: .9rem 1.8rem;
  border: 1px solid var(--h-line);
  border-radius: 999px;
  background: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--h-ink);
  transition: background .3s, color .3s, border-color .3s;
}
.c-filterChips a span {
  font-family: var(--h-en);
  font-size: 1.2rem;
  color: var(--h-sub);
}
.c-filterChips a:hover { border-color: var(--h-blue); color: var(--h-blue); }
.c-filterChips a.is-current {
  background: var(--h-blue);
  border-color: var(--h-blue);
  color: #fff;
}
.c-filterChips a.is-current span { color: rgba(255, 255, 255, .8); }

/* ---------- 施工実績一覧 ---------- */
.p-worksArchive { max-width: 1120px; padding: 8rem 0 4rem; }
.p-worksArchive_count {
  font-size: 1.4rem;
  color: var(--h-sub);
  margin-bottom: 2.4rem;
}
.p-worksArchive_empty { text-align: center; font-size: 1.6rem; padding: 6rem 0; }

/* トップの施工実績 */
.p-works .c-workGrid { margin-top: 1rem; }

/* ---------- 業務内容詳細：同じ業務の施工実績 ---------- */
.p-serviceWorks {
  margin: 10rem 0 4rem;
  padding-top: 8rem;
  border-top: 1px solid var(--h-line);
}
.p-serviceWorks .c-button01.p-serviceWorks_button {
  width: auto;
  min-width: 32rem;
  padding: 0 6rem 0 3.2rem;
  margin: 0 auto;
  letter-spacing: .08em;
}
.p-serviceWorks .c-button01.p-serviceWorks_button::after { width: 6rem; right: -3rem; }

/* ---------- 施工実績詳細 ---------- */
.p-worksSingle_title { margin-bottom: 1.6rem; }
.p-worksSingle_meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem 1.2rem;
  margin-bottom: 3.2rem;
  font-size: 1.4rem;
}
.p-worksSingle_cat {
  background: var(--h-blue);
  color: #fff;
  font-weight: 700;
  padding: .5rem 1.4rem;
}
.p-worksSingle_tag { color: var(--h-sub); }
.p-worksSingle_cat:hover { opacity: .85; }
.p-worksSingle_tag:hover { color: var(--h-blue); }
.p-worksSingle_area,
.p-worksSingle_date { color: var(--h-sub); }
.p-worksSingle_area { margin-left: auto; }
.p-worksSingle_area::before { content: "施工地域："; }
.p-worksSingle_date { font-family: var(--h-en); letter-spacing: .06em; }

.p-worksSingle_specs {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1px;
  background: var(--h-line);
  border: 1px solid var(--h-line);
  margin: 4rem 0 5.6rem;
}
.p-worksSingle_spec {
  background: #fff;
  padding: 2rem 2.4rem;
}
.p-worksSingle_spec dt {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--h-blue);
  letter-spacing: .08em;
  margin-bottom: .6rem;
}
.p-worksSingle_spec dd {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.6;
}
.p-worksSingle_comment { margin-bottom: 6rem; }
.p-worksSingle_commentTitle {
  font-family: var(--h-serif);
  font-size: 2.2rem;
  color: var(--h-navy);
  padding-left: 1.6rem;
  border-left: 4px solid var(--h-blue);
  margin-bottom: 2.4rem;
}
.p-worksSingle_comment .c-mainText { line-height: 2; }
.p-worksSingle_comment .c-mainText p + p { margin-top: 1.6rem; }
.p-worksSingle_related {
  margin-top: 10rem;
  padding-top: 8rem;
  border-top: 1px solid var(--h-line);
}

/* ---------- コラム ---------- */
.p-column { padding: 12rem 0; background: var(--h-paper); }
.c-columnGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.2rem;
  margin-bottom: 6rem;
}
.c-columnCard { height: 100%; }
.c-columnCard_link {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  color: var(--h-ink);
  box-shadow: 0 .4rem 1.6rem rgba(15, 47, 87, .08);
  transition: box-shadow .4s var(--h-ease);
}
.c-columnCard_link:hover { box-shadow: 0 1.2rem 3.2rem rgba(15, 47, 87, .16); }
.c-columnCard_thumb { aspect-ratio: 16 / 10; background: #eef1f4; }
.c-columnCard_body { flex: 1; padding: 2rem 2.4rem 2.4rem; }
.c-columnCard_meta {
  display: flex;
  align-items: center;
  gap: 1.2rem;
  font-size: 1.2rem;
  color: var(--h-sub);
  margin-bottom: 1rem;
}
.c-columnCard_meta time { font-family: var(--h-en); letter-spacing: .06em; }
.c-columnCard_label {
  font-family: var(--h-en);
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--h-teal);
}
.c-columnCard_title {
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .3s;
}
.c-columnCard_link:hover .c-columnCard_title { color: var(--h-blue); }
.c-columnCard_excerpt {
  font-size: 1.3rem;
  line-height: 1.8;
  color: var(--h-sub);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.p-columnArchive { max-width: 1120px; padding: 8rem 0 4rem; }
.p-columnMore { margin-top: 8rem; padding-top: 8rem; border-top: 1px solid var(--h-line); }
.c-blogArticle_ctg.column { color: var(--h-teal); }

/* ---------- お問い合わせ導線 ---------- */
.c-cta {
  max-width: 1024px;
  width: 96%;
  margin: 8rem auto 10rem;
  padding: 6.4rem 4rem;
  text-align: center;
  color: #fff;
  background:
    linear-gradient(120deg, rgba(15, 47, 87, .96), rgba(44, 109, 181, .92)),
    url(../images/top/service_bg.webp) center / cover;
}
.p-room_contents .c-cta,
.article .c-cta { width: 100%; margin: 6rem auto; }
.c-cta_en {
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.3rem;
  letter-spacing: .3em;
  color: #7fe0d8;
  margin-bottom: .8rem;
}
.c-cta_title {
  font-family: var(--h-serif);
  font-size: 3rem;
  font-weight: 600;
  margin-bottom: 1.6rem;
}
.c-cta_text { font-size: 1.5rem; line-height: 1.9; margin-bottom: 3.2rem; opacity: .92; }
.c-cta_buttons {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.6rem;
}
.c-cta_btn {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 30rem;
  min-height: 7.6rem;
  padding: 1rem 3.2rem;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.4;
  transition: transform .3s var(--h-ease), box-shadow .3s;
}
.c-cta_btn small { font-size: 1.2rem; font-weight: 500; opacity: .85; }
.c-cta_btn--tel { background: #fff; color: var(--h-navy); font-family: var(--h-en); }
.c-cta_btn--tel small { font-family: "Noto Sans JP", sans-serif; }
.c-cta_btn--mail { background: var(--h-teal); color: #fff; }
.c-cta_btn:hover { transform: translateY(-3px); box-shadow: 0 1rem 2.4rem rgba(0, 0, 0, .25); }
.c-cta_note { font-size: 1.2rem; margin-top: 2rem; opacity: .75; }

/* ---------- お問い合わせフォーム内プライバシーポリシー ---------- */
.c-form_privacyPolicy .c-privacyText h3 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 1.2em 0 .2em;
  color: var(--h-navy);
}
.c-form_privacyPolicy .c-privacyText .c-mainText {
  font-size: 1.2rem;
  line-height: 1.9;
  margin: 0;
}
.c-form_privacyPolicy .c-privacyText .c-mainText + .c-mainText { margin-top: .4em; }
.c-form_privacyPolicy p:empty { display: none; }
.c-form_privacyPolicy br + br { display: none; }

/* =========================================================
 * レスポンシブ
 * ======================================================= */
@media screen and (max-width: 896px) {
  .p-thought_inner { grid-template-columns: 1fr; }
  .p-thought_visual { width: 88%; }
  .p-thought_body { margin: -6rem 0 0 auto; width: 92%; padding: 4.8rem 4rem; }
  .c-svc_main, .c-svc_sub { gap: 2.4rem; }
  .c-workGrid, .c-columnGrid { grid-template-columns: repeat(2, 1fr); }
}

@media screen and (max-width: 767px) {
  .p-thought { padding-top: 8rem; }
  .p-thought_bgText { font-size: 9rem; top: 2rem; }
  .p-thought_visual::before { inset: 2rem 2rem -2rem -2rem; }
  .p-thought_badge { width: 9rem; height: 9rem; font-size: 1.2rem; left: auto; right: -1rem; bottom: -3rem; }
  .p-thought_catch { font-size: 3.4rem; }
  .p-thought_text { font-size: 1.6rem; }
  .p-thought_points { gap: .8rem; }
  .p-thought_points strong { font-size: 2.2rem; }
  .p-thought_points small { font-size: 1.15rem; }

  .c-svc_main, .c-svc_sub { grid-template-columns: 1fr; }
  .c-svcCard_body { padding: 2.8rem 2.4rem; }
  .c-svcCard_title { font-size: 2.6rem; }
  .c-svcCard_text { font-size: 1.6rem; }
  .c-svcCard--sub .c-svcCard_img { flex-basis: 38%; min-height: 0; }
  .c-svcCard--sub .c-svcCard_body { padding: 2rem; }
  .c-svcCard--sub .c-svcCard_text { display: none; }
  .c-svcCard--sub .c-svcCard_foot { flex-wrap: wrap; gap: .8rem; }

  .p-service_lead, .p-serviceWorks_lead, .p-column_lead { font-size: 1.5rem; text-align: left; }

  .c-workCard_title, .c-columnCard_title { font-size: 1.8rem; }
  .c-filterChips { gap: .8rem; flex-wrap: nowrap; overflow-x: auto; padding-bottom: .4rem; -webkit-overflow-scrolling: touch; }
  .c-filterChips--center { justify-content: flex-start; }
  .c-filterChips a { white-space: nowrap; }

  .p-worksSingle_area { margin-left: 0; }
  .p-serviceWorks .c-button01.p-serviceWorks_button { min-width: 0; width: 100%; }

  .c-cta { padding: 4.8rem 2.4rem; }
  .c-cta_title { font-size: 2.6rem; }
  .c-cta_btn { min-width: 0; width: 100%; }
}

@media screen and (max-width: 480px) {
  .c-workGrid, .c-columnGrid { grid-template-columns: 1fr; gap: 4rem; }
  .p-thought_body { width: 100%; padding: 4rem 2.4rem; }
  .p-thought_visual { width: 92%; }
  .p-thought_points { grid-template-columns: 1fr; }
  .p-thought_points li { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 1.2rem; text-align: left; padding: 1.4rem 1.6rem; }
  .p-thought_points strong { margin: 0; }
  .p-thought_points small br { display: none; }
}

/* 既存 .p-service ul / li 指定の打ち消し */
.p-service .c-svcCard_points {
  display: flex;
  justify-content: flex-start;
  padding-bottom: 0;
}
.p-service .c-svcCard_points li {
  width: auto;
  box-shadow: none;
  background: none;
  margin: 0;
}
@media screen and (max-width: 896px) {
  .p-service .c-svcCard_points { display: flex; }
  .p-service .c-svcCard_points li { width: auto; margin: 0; box-shadow: none; }
}

/* =========================================================
 * 2026.10 追加改修
 * ======================================================= */

/* ---------- ヘッダー：メニュー項目追加に合わせて余白を調整 ---------- */
.p-header_navListItem { margin: 0 clamp(10px, 1.5vw, 26px); }
@media screen and (min-width: 897px) and (max-width: 1280px) {
  .p-header_navList { font-size: 1.5rem; margin-right: 16px; }
}

/* ---------- トップ：COMPANY / RECRUIT の文字位置 ---------- */
.p-about li h3 {
  /* a 要素（画像のラッパー）基準で画像の上端・左端に揃える */
  top: 0;
  left: 0;
  right: 0;
  padding: 0 .12em;
  font-size: min(6.4rem, 5vw);
  line-height: .74;
  letter-spacing: .02em;
  white-space: nowrap;
  pointer-events: none;
  z-index: 1;
}
@media screen and (max-width: 896px) {
  .p-about li h3 { top: 0; left: 0; font-size: 6rem; }
}

/* ---------- 共通：セクションラベル ---------- */
.c-sectionLabel {
  display: inline-flex;
  align-items: center;
  gap: 1.2rem;
  font-family: var(--h-serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--h-blue);
  margin-bottom: 1.6rem;
}
.c-sectionLabel::before {
  content: "";
  width: 4rem;
  height: 2px;
  background: var(--h-blue);
}
.c-sectionLabel--center { display: flex; justify-content: center; }
.c-sectionLabel--center::after {
  content: "";
  width: 4rem;
  height: 2px;
  background: var(--h-blue);
}
.p-message_bgText,
.p-greeting_bgText {
  position: absolute;
  top: 4rem;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 14rem;
  letter-spacing: .04em;
  line-height: 1;
  color: rgba(44, 109, 181, .06);
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}

/* ---------- 会社概要：代表メッセージ ---------- */
.p-message { position: relative; overflow: hidden; padding: 12rem 0 10rem; }
.p-message_bgText { left: -1rem; }
.p-message_inner {
  position: relative;
  display: grid;
  grid-template-columns: 0.85fr 1fr;
  gap: 8rem;
  align-items: start;
}
.p-message_visual { position: relative; }
.p-message_visual::before {
  content: "";
  position: absolute;
  inset: 3.2rem -3.2rem -3.2rem 3.2rem;
  border: 2px solid var(--h-blue);
}
.p-message_photo { position: relative; aspect-ratio: 4 / 5; z-index: 1; }
.p-message_photo img { object-position: 45% 30%; }
.p-message_caption {
  position: absolute;
  z-index: 2;
  left: -2rem;
  bottom: 3.2rem;
  background: var(--h-navy);
  color: #fff;
  font-family: var(--h-serif);
  font-size: 1.8rem;
  font-weight: 600;
  padding: 1.6rem 2.4rem;
  line-height: 1.5;
}
.p-message_caption span {
  display: block;
  font-family: var(--h-en);
  font-size: 1.1rem;
  letter-spacing: .2em;
  color: #7fe0d8;
}
.p-message_body { padding-top: 2rem; }
.p-message_catch {
  font-family: var(--h-serif);
  font-weight: 600;
  font-size: 3.6rem;
  line-height: 1.55;
  letter-spacing: .05em;
  color: var(--h-navy);
  margin-bottom: 3.2rem;
}
.p-message_text p {
  font-size: 1.55rem;
  line-height: 2.1;
  color: #333;
}
.p-message_text p + p { margin-top: 1.6rem; }
.p-message_sign {
  margin-top: 3.2rem;
  text-align: right;
  font-size: 1.4rem;
  color: var(--h-sub);
}
.p-message_sign strong {
  font-family: var(--h-serif);
  font-size: 2.6rem;
  color: var(--h-ink);
  margin-left: 1.6rem;
  letter-spacing: .12em;
}

.p-profile {
  margin-top: 10rem;
  display: grid;
  grid-template-columns: 26rem 1fr;
  background: var(--h-paper);
}
.p-profile_head {
  background: var(--h-blue);
  color: #fff;
  padding: 4rem 3.2rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.p-profile_en {
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.3rem;
  letter-spacing: .3em;
  color: #bfe9e5;
  margin-bottom: .8rem;
}
.p-profile_name {
  font-family: var(--h-serif);
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: .1em;
  line-height: 1.4;
}
.p-profile_name small {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: .04em;
  opacity: .85;
  margin-top: .6rem;
}
.p-profile_stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  list-style: none;
}
.p-profile_stats li {
  padding: 4rem 2.4rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1rem;
}
.p-profile_stats li + li { border-left: 1px solid var(--h-line); }
.p-profile_stats strong {
  font-family: var(--h-serif);
  font-size: 1.8rem;
  color: var(--h-navy);
  line-height: 1;
}
.p-profile_stats em {
  font-style: normal;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 5.2rem;
  color: var(--h-blue);
  margin: 0 .2rem;
  letter-spacing: .02em;
}
.p-profile_stats span {
  font-size: 1.4rem;
  line-height: 1.7;
  color: var(--h-sub);
}

.p-message_links {
  margin-top: 4rem;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem;
}
.p-message_link {
  position: relative;
  display: block;
  padding: 2.8rem 8rem 2.8rem 3.2rem;
  border: 1px solid var(--h-line);
  background: #fff;
  font-family: var(--h-serif);
  font-size: 2rem;
  font-weight: 600;
  color: var(--h-navy);
  transition: border-color .3s, box-shadow .3s;
}
.p-message_link small {
  display: block;
  font-family: var(--h-en);
  font-size: 1.2rem;
  letter-spacing: .2em;
  color: var(--h-teal);
  margin-bottom: .4rem;
}
.p-message_link::after {
  content: "";
  position: absolute;
  right: 3.2rem;
  top: 50%;
  width: 4rem;
  height: 4rem;
  margin-top: -2rem;
  border-radius: 50%;
  background: var(--h-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8.5 4.5 12 8l-3.5 3.5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 1.8rem no-repeat;
  transition: transform .4s var(--h-ease);
}
.p-message_link:hover { border-color: var(--h-blue); box-shadow: 0 1rem 3rem rgba(15, 47, 87, .1); }
.p-message_link:hover::after { transform: translateX(4px); }

/* ---------- 会社概要：会社情報 ---------- */
.p-companyInfo { padding: 10rem 0 4rem; background: var(--h-paper); }
.p-companyInfo_inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 4rem;
  background: #fff;
  padding: 4.8rem;
  box-shadow: 0 .6rem 2.4rem rgba(15, 47, 87, .06);
}
.p-companyInfo_row {
  display: grid;
  grid-template-columns: 11rem 1fr;
  gap: 2rem;
  padding: 1.8rem 0;
  border-bottom: 1px solid var(--h-line);
  font-size: 1.5rem;
  line-height: 1.8;
}
.p-companyInfo_row:first-child { padding-top: 0; }
.p-companyInfo_row dt { font-weight: 700; color: var(--h-blue); }
.p-companyInfo_row a { color: var(--h-blue); text-decoration: underline; text-underline-offset: 3px; }
.p-companyInfo_services { list-style: none; }
.p-companyInfo_services li { position: relative; padding-left: 1.4em; }
.p-companyInfo_services li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .75em;
  width: .6em;
  height: .6em;
  background: var(--h-teal);
}
.p-companyInfo_map { min-height: 40rem; }
.p-companyInfo_map iframe { display: block; width: 100%; height: 100%; min-height: 40rem; }
.p-companyInfo_makers { padding: 6rem 0 4rem; text-align: center; }
.p-companyInfo_makersTitle {
  font-family: var(--h-serif);
  font-size: 2rem;
  color: var(--h-navy);
  margin-bottom: 3.2rem;
}
.p-companyInfo_makers ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
  list-style: none;
}
.p-companyInfo_makers li a {
  display: grid;
  place-items: center;
  height: 10rem;
  background: #fff;
  padding: 2rem;
  transition: box-shadow .3s;
}
.p-companyInfo_makers li a:hover { box-shadow: 0 .8rem 2.4rem rgba(15, 47, 87, .12); }
.p-companyInfo_makers img { max-width: 70%; max-height: 5rem; width: auto; height: auto; }

/* ---------- ごあいさつ ---------- */
html { scroll-behavior: smooth; }
.p-conceptItem { scroll-margin-top: 100px; }
.p-greeting { position: relative; overflow: hidden; padding: 12rem 0 10rem; text-align: center; }
.p-greeting_bgText { left: 50%; transform: translateX(-50%); }
.p-greeting_catch {
  position: relative;
  font-family: var(--h-serif);
  font-weight: 600;
  font-size: 3.8rem;
  line-height: 1.6;
  letter-spacing: .05em;
  color: var(--h-navy);
  margin: 1.6rem 0 3.2rem;
}
.p-greeting_text {
  font-size: 1.6rem;
  line-height: 2.2;
  color: #333;
  margin-bottom: 8rem;
}
.p-conceptNav_title {
  font-family: var(--h-serif);
  font-size: 2rem;
  color: var(--h-ink);
  margin-bottom: 2.4rem;
}
.p-conceptNav_title strong { color: var(--h-blue); font-size: 2.6rem; margin-left: .4rem; }
.p-conceptNav_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  list-style: none;
  text-align: left;
}
.p-conceptNav_list a {
  position: relative;
  display: block;
  background: #fff;
  box-shadow: 0 .4rem 1.6rem rgba(15, 47, 87, .1);
  transition: box-shadow .4s var(--h-ease), transform .4s var(--h-ease);
}
.p-conceptNav_list a:hover { box-shadow: 0 1.2rem 3rem rgba(15, 47, 87, .18); transform: translateY(-4px); }
.p-conceptNav_img { display: block; aspect-ratio: 3 / 2; }
.p-conceptNav_num {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background: var(--h-blue);
  color: #fff;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.5rem;
  padding: .8rem 1.2rem;
  line-height: 1;
}
.p-conceptNav_label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.6rem 1.6rem 1.8rem;
  font-family: var(--h-serif);
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--h-navy);
}
.p-conceptNav_label::after {
  content: "";
  flex: 0 0 auto;
  width: .8rem;
  height: .8rem;
  border-right: 2px solid var(--h-blue);
  border-bottom: 2px solid var(--h-blue);
  transform: rotate(45deg) translate(-2px, -2px);
}

.p-conceptItem { padding: 8rem 0; }
.p-conceptItem:nth-child(odd) { background: var(--h-paper); }
.p-conceptItem_inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 7rem;
  align-items: center;
}
.p-conceptItem.is-reverse .p-conceptItem_visual { order: 2; }
.p-conceptItem_visual { position: relative; }
.p-conceptItem_img { aspect-ratio: 3 / 2; box-shadow: 0 2rem 4rem rgba(15, 47, 87, .12); }
.p-conceptItem_num {
  position: absolute;
  top: -5.6rem;
  left: -1.6rem;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 11rem;
  line-height: 1;
  color: var(--h-blue);
  opacity: .14;
  pointer-events: none;
}
.p-conceptItem.is-reverse .p-conceptItem_num { left: auto; right: -1.6rem; }
.p-conceptItem_en {
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .2em;
  color: var(--h-teal);
  margin-bottom: .6rem;
}
.p-conceptItem_title {
  font-family: var(--h-serif);
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--h-blue);
  margin-bottom: 1.2rem;
}
.p-conceptItem_catch {
  font-family: var(--h-serif);
  font-weight: 600;
  font-size: 3rem;
  line-height: 1.5;
  letter-spacing: .04em;
  color: var(--h-navy);
  padding-bottom: 2.4rem;
  margin-bottom: 2.4rem;
  border-bottom: 1px solid var(--h-line);
}
.p-conceptItem_text { font-size: 1.55rem; line-height: 2.1; color: #333; }

.p-conceptRep { padding: 10rem 0 2rem; }
.p-conceptRep_card {
  display: grid;
  grid-template-columns: 28rem 1fr;
  background: var(--h-navy);
  color: #fff;
  overflow: hidden;
}
.p-conceptRep_photo { display: block; aspect-ratio: 1 / 1; }
.p-conceptRep_photo img { object-position: 45% 25%; }
.p-conceptRep_body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 4rem 5.6rem;
}
.p-conceptRep_en {
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .3em;
  color: #7fe0d8;
  margin-bottom: .8rem;
}
.p-conceptRep_title { font-family: var(--h-serif); font-size: 2.8rem; font-weight: 600; margin-bottom: 1.6rem; }
.p-conceptRep_text { font-size: 1.5rem; line-height: 1.9; opacity: .9; margin-bottom: 2.4rem; }
.p-conceptRep_card .c-svcCard_more { color: #fff; margin-left: 0; }
.p-conceptRep_card .c-svcCard_more::after { background-color: var(--h-teal); }
.p-conceptRep_card:hover .c-svcCard_more::after { transform: translateX(4px); }

.p-conceptNext { padding: 10rem 0 2rem; }
.p-conceptNext_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  list-style: none;
}
.p-conceptNext_list a { position: relative; display: block; color: #fff; }
.p-conceptNext_img { display: block; aspect-ratio: 16 / 10; }
.p-conceptNext_img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(15, 47, 87, 0) 30%, rgba(15, 47, 87, .85));
}
.p-conceptNext_en,
.p-conceptNext_label { position: absolute; left: 2.4rem; z-index: 1; }
.p-conceptNext_en {
  bottom: 5.6rem;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: .25em;
  color: #7fe0d8;
}
.p-conceptNext_label { bottom: 2rem; font-family: var(--h-serif); font-size: 2.2rem; font-weight: 600; }

/* ---------- 追加分レスポンシブ ---------- */
@media screen and (max-width: 896px) {
  .p-message_inner { grid-template-columns: 1fr; gap: 6rem; }
  .p-message_visual { width: 80%; }
  .p-profile { grid-template-columns: 1fr; }
  .p-companyInfo_inner { grid-template-columns: 1fr; padding: 3.2rem; }
  .p-conceptNav_list { grid-template-columns: repeat(2, 1fr); }
  .p-conceptItem_inner { grid-template-columns: 1fr; gap: 4rem; }
  .p-conceptItem.is-reverse .p-conceptItem_visual { order: 0; }
}
@media screen and (max-width: 767px) {
  .p-message, .p-greeting { padding: 8rem 0 6rem; }
  .p-message_bgText, .p-greeting_bgText { font-size: 9rem; top: 2rem; }
  .p-message_visual { width: 88%; }
  .p-message_visual::before { inset: 2rem -2rem -2rem 2rem; }
  .p-message_catch, .p-greeting_catch { font-size: 3rem; }
  .p-message_text p, .p-greeting_text, .p-conceptItem_text { font-size: 1.6rem; }
  .p-greeting_text { text-align: left; margin-bottom: 6rem; }
  .p-profile_stats { grid-template-columns: 1fr; }
  .p-profile_stats li { flex-direction: row; justify-content: space-between; text-align: left; padding: 2.4rem; }
  .p-profile_stats li + li { border-left: 0; border-top: 1px solid var(--h-line); }
  .p-profile_stats br { display: none; }
  .p-message_links { grid-template-columns: 1fr; }
  .p-companyInfo_inner { padding: 2.4rem; }
  .p-companyInfo_row { grid-template-columns: 1fr; gap: .4rem; font-size: 1.6rem; }
  .p-companyInfo_makers ul { grid-template-columns: repeat(2, 1fr); }
  .p-conceptItem { padding: 6rem 0; }
  .p-conceptItem_catch { font-size: 2.6rem; }
  .p-conceptItem_num { font-size: 8rem; top: -4rem; }
  .p-conceptRep_card { grid-template-columns: 1fr; }
  .p-conceptRep_photo { aspect-ratio: 16 / 10; }
  .p-conceptRep_body { padding: 3.2rem 2.4rem; }
  .p-conceptNext_list { grid-template-columns: 1fr; }
}

/* 見出しの改行バランス・微調整 */
.p-thought_catch, .p-message_catch, .p-greeting_catch, .p-conceptItem_catch, .c-cta_title { text-wrap: balance; }
.p-conceptRep_card .c-svcCard_more { font-size: 1.5rem; }
@media screen and (max-width: 767px) {
  .p-greeting_catch { font-size: 2.5rem; }
  .p-conceptItem_catch { font-size: 2.4rem; }
  .p-conceptNav_label { font-size: 1.4rem; padding: 1.2rem; }
}

/* 施工実績詳細：施工のポイント内の見出し */
.p-worksSingle_points .p-worksSingle_pointTitle {
  position: relative;
  margin: 4rem 0 1.6rem;
  padding: 1.2rem 1.6rem 1.2rem 4rem;
  background: var(--h-paper);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--h-navy);
}
.p-worksSingle_points .p-worksSingle_pointTitle::before {
  content: "";
  position: absolute;
  left: 1.6rem;
  top: 50%;
  width: 1.2rem;
  height: 1.2rem;
  margin-top: -.6rem;
  background: var(--h-blue);
  border-radius: 2px;
  transform: rotate(45deg);
}
.p-worksSingle_points > p:first-child {
  font-size: 1.6rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid var(--h-line);
}
@media screen and (max-width: 767px) {
  .p-worksSingle_points .p-worksSingle_pointTitle { font-size: 1.7rem; margin-top: 3.2rem; }
}

/* 業務内容カード：件数削除に伴い「詳しく見る」を右寄せ */
.c-svcCard_foot { justify-content: flex-end; }
/* 「〇〇の実績を見る」ボタンは文字幅に合わせる */
.p-serviceWorks .c-button01.p-serviceWorks_button { width: fit-content; min-width: 28rem; }
.p-conceptItem_catch { text-wrap: wrap; }
@media screen and (max-width: 767px) {
  .p-serviceWorks .c-button01.p-serviceWorks_button { width: 100%; min-width: 0; }
}

/* =========================================================
 * 取扱メーカー（トップ・会社概要 共通）
 * ======================================================= */
.c-makers { padding: 6rem 0 4rem; text-align: center; }
.c-makers_title {
  font-family: var(--h-serif);
  font-size: 2rem;
  color: var(--h-navy);
  margin-bottom: 3.2rem;
}
.c-makers_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.6rem;
  list-style: none;
}
.c-makers_list li a {
  display: grid;
  place-items: center;
  height: 10rem;
  background: #fff;
  padding: 2rem;
  transition: box-shadow .3s;
}
.c-makers_list li a:hover { box-shadow: 0 .8rem 2.4rem rgba(15, 47, 87, .12); }
.c-makers_list img { max-width: 70%; max-height: 5rem; width: auto; height: auto; }
.p-makers { background: var(--h-paper); padding: 4rem 0 6rem; }
.p-about { padding-bottom: 8rem; }
@media screen and (max-width: 767px) {
  .c-makers { padding: 4rem 0 2rem; }
  .c-makers_list { grid-template-columns: repeat(2, 1fr); gap: 1rem; }
  .c-makers_list li a { height: 9rem; padding: 1.6rem; }
}

/* =========================================================
 * 採用情報
 * ======================================================= */
.p-recruitIntro { position: relative; overflow: hidden; padding: 12rem 0 10rem; }
.p-recruitIntro_bgText {
  position: absolute;
  top: 4rem;
  right: -1rem;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 14rem;
  line-height: 1;
  letter-spacing: .04em;
  color: rgba(44, 109, 181, .06);
  white-space: nowrap;
  pointer-events: none;
}
.p-recruitIntro_inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  align-items: center;
}
.p-recruitIntro_visual { position: relative; }
.p-recruitIntro_visual::before {
  content: "";
  position: absolute;
  inset: 3.2rem 3.2rem -3.2rem -3.2rem;
  border: 2px solid var(--h-blue);
}
.p-recruitIntro_img { position: relative; z-index: 1; aspect-ratio: 4 / 3; }
.p-recruitIntro_badge {
  position: absolute;
  z-index: 2;
  left: -2rem;
  bottom: -2rem;
  width: 11rem;
  height: 11rem;
  border-radius: 50%;
  background: var(--h-teal);
  color: #fff;
  display: grid;
  place-items: center;
  text-align: center;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 1.6rem;
  letter-spacing: .14em;
  line-height: 1.3;
}
.p-recruitIntro_body {
  position: relative;
  z-index: 3;
  background: #fff;
  margin-left: -6rem;
  padding: 5.6rem 5.6rem 5rem;
  box-shadow: 0 2rem 5rem rgba(15, 47, 87, .12);
}
.p-recruitIntro_catch {
  font-family: var(--h-serif);
  font-weight: 600;
  font-size: 3.8rem;
  line-height: 1.5;
  letter-spacing: .05em;
  color: var(--h-navy);
  margin-bottom: 2.4rem;
}
.p-recruitIntro_text { font-size: 1.55rem; line-height: 2; color: #333; margin-bottom: 3.2rem; }
.p-recruitIntro_points { list-style: none; margin-bottom: 3.6rem; border-top: 1px solid var(--h-line); }
.p-recruitIntro_points li {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: 1.6rem;
  padding: 1.4rem 0;
  border-bottom: 1px solid var(--h-line);
  font-size: 1.5rem;
}
.p-recruitIntro_points strong { color: var(--h-blue); }
.p-recruitIntro_points span { font-weight: 600; }

.c-recruitBtn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 36rem;
  min-height: 6.4rem;
  padding: 0 6rem 0 3.2rem;
  background: var(--h-teal);
  color: #fff;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: .12em;
  transition: background .3s, transform .3s var(--h-ease), box-shadow .3s;
}
.c-recruitBtn::after {
  content: "";
  position: absolute;
  right: 2rem;
  top: 50%;
  width: 3.2rem;
  height: 3.2rem;
  margin-top: -1.6rem;
  border-radius: 50%;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8h9M8.5 4.5 12 8l-3.5 3.5' fill='none' stroke='%2300a79b' stroke-width='1.8'/%3E%3C/svg%3E") center / 1.6rem no-repeat;
  transition: transform .4s var(--h-ease);
}
.c-recruitBtn:hover { transform: translateY(-3px); box-shadow: 0 1rem 2.4rem rgba(0, 167, 155, .3); }
.c-recruitBtn:hover::after { transform: translateX(4px); }

.p-recruitWelcome { padding: 10rem 0 8rem; }
.p-recruitWelcome_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  list-style: none;
}
.p-recruitWelcome_list li {
  position: relative;
  background: #fff;
  border-top: 3px solid var(--h-blue);
  box-shadow: 0 .6rem 2.4rem rgba(15, 47, 87, .08);
  padding: 3.2rem 2rem 2.8rem;
  text-align: center;
}
.p-recruitWelcome_num {
  display: block;
  font-family: var(--h-en);
  font-weight: 700;
  font-size: 2.8rem;
  color: var(--h-teal);
  line-height: 1;
  margin-bottom: 1.6rem;
}
.p-recruitWelcome_list p {
  font-family: var(--h-serif);
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.7;
  color: var(--h-navy);
}
.p-recruitWelcome_list small {
  display: inline-block;
  margin-top: .8rem;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  color: var(--h-blue);
  border: 1px solid var(--h-blue);
  border-radius: 999px;
  padding: .2rem 1rem;
}

.p-recruitInfo { padding-bottom: 10rem; }
.p-recruitInfo_inner {
  max-width: 82rem;
  margin: 0 auto;
  background: #fff;
  padding: 4.8rem 5.6rem;
  box-shadow: 0 .6rem 2.4rem rgba(15, 47, 87, .06);
}
.p-recruitCta .c-cta_btn--mail { order: -1; }
.p-recruitMore { padding: 0 0 10rem; }
.p-recruitMore .p-message_links { margin-top: 0; }

@media screen and (max-width: 896px) {
  .p-recruitIntro_inner { grid-template-columns: 1fr; }
  .p-recruitIntro_visual { width: 88%; }
  .p-recruitIntro_body { margin: -6rem 0 0 auto; width: 92%; padding: 4.8rem 4rem; }
  .p-recruitWelcome_list { grid-template-columns: repeat(2, 1fr); }
}
@media screen and (max-width: 767px) {
  .p-recruitIntro { padding: 8rem 0 6rem; }
  .p-recruitIntro_bgText { font-size: 9rem; top: 2rem; }
  .p-recruitIntro_visual::before { inset: 2rem 2rem -2rem -2rem; }
  .p-recruitIntro_badge { width: 9rem; height: 9rem; font-size: 1.3rem; left: auto; right: -1rem; bottom: -3rem; }
  .p-recruitIntro_catch { font-size: 3rem; }
  .p-recruitIntro_text { font-size: 1.6rem; }
  .p-recruitIntro_points li { font-size: 1.6rem; }
  .c-recruitBtn { max-width: none; }
  .p-recruitWelcome { padding: 8rem 0 6rem; }
  .p-recruitWelcome_list p { font-size: 1.6rem; }
  .p-recruitInfo_inner { padding: 2.4rem; }
}
@media screen and (max-width: 480px) {
  .p-recruitIntro_body { width: 100%; padding: 4rem 2.4rem; }
  .p-recruitIntro_visual { width: 92%; }
}
