@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .gcs-header / .gcs-sp-tel            - ヘッダー（固定・透過→スクロールで白背景＋下線）、SPメニュー内TEL
 * .gcs-footer / __map / __name         - フッター（地図＋青帯）
 * .gcs-sec / --*                       - セクション左右padding・clamp上下padding
 * .gcs-container / --{幅}              - 最大幅コンテナ（1400 / 1040 / 1000 / 960 / 900 / 880 / 820 / 720 / 560）
 * .gcs-stack / .gcs-gap-*              - 縦積みflex・gap値（2〜56px / clamp）
 * .gcs-sp-left                         - PC中央揃え・SP（767px以下）左揃えの本文
 * .gcs-autogrid / --{min}              - auto-fit minmax(min(100%,Npx),1fr) のグリッド
 * .gcs-heading / --sub / --white / --tight - 山型アイコン＋英字＋日本語のセクション見出し
 * .gcs-subheading                      - 3つの丸＋日本語の小見出し
 * .gcs-btn / --start / --center / --stack / --compact - 青のpillボタン＋右端白丸矢印（縦積み用・長文用）
 * .gcs-card                            - 白カード（角丸10・薄い影）
 * .gcs-pagehead                        - 下層ページ上部（bg_main＋白45%・下辺山形）
 * .gcs-band / --gradient / --flat      - 幅96%・角丸10・屋根形clip-pathのテクスチャ背景セクション
 * .gcs-lead-ttl / .gcs-lead-bar        - リード見出し、48×3pxの水色バー
 * .gcs-dl / --line / --card / --info / --job - 項目＋内容の定義リスト（会社概要・グループ会社・営業案内・募集要項）
 * .gcs-tag / --solid / --pale          - ラベル（対応エリア・募集職種タグ）
 *
 * ページ固有（各 *-custom.css）
 * top-custom.css         .gcs-mvwrap / .gcs-mv* / .gcs-news* / .gcs-about* / .gcs-business* / .gcs-bizcard*
 *                        .gcs-strength* / .gcs-steps* / .gcs-recruit* / .gcs-contact-cta* / .gcs-telbox*
 * company-custom.css     .gcs-philosophy* / .gcs-group*
 * linen-custom.css       .gcs-consult / .gcs-collage* / .gcs-area*
 * realestate-custom.css  .gcs-re-intro* / .gcs-re-brand* / .gcs-re-life* / .gcs-re-consult* / .gcs-re-support* / .gcs-re-about / .gcs-re-info*
 * recruit-custom.css     .gcs-rc-foryou / .gcs-rc-points* / .gcs-rc-job* / .gcs-rc-entry
 * contact-custom.css     .gcs-ct* / .gcs-form* / .gcs-privacy*
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * 値の粒度不足：
 *   - container が 1200 / 1500 / 900 の3種しかなく、1400・1040・960・880 等の本文幅が組めない
 *   - section / mt / gap 等の余白が固定px（tablet半減）で、clamp()による流動値がない
 *   - gap が 5〜60の7段階のみ（2 / 14 / 16 / 24 / 28 / 32 / 48 / 56 がない）
 *   - letter-spacing が 0.2em まで（.24em / .3em / .32em がない）、line-height に 1.5 / 1.9 / 2.1 がない
 *   - body 文字サイズが tablet 1.4rem / SP 1.2rem に自動縮小され、全幅16px固定のデザインと合わない
 * 指定方向不足：
 *   - grid-auto が auto-fill 固定で、auto-fit（余りトラックを潰す）が選べない
 * 状態不足：
 *   - header-sticky.is-fixed が影＋inner padding変更を固定で持ち、下線のみの固定ヘッダーにできない
 * 構造不足：
 *   - 見出しの「アイコン → 英字 → 日本語」縦積み（英字上に装飾SVG）が組めない
 *   - pillボタンで「左テキスト／右端白丸アイコン」を space-between で配置する型がない
 *   - sp-nav がフルスクリーン型のみで、ヘッダー直下に開くパネル型がない
 * 装飾パターン不足：
 *   - 屋根形（polygon）の上辺 clip-path セクション、下辺山形の page-hero 境界
 *   - 3色の丸ドット（隣接・9px）装飾、ドット連結線のステップ図
 *
 */

/* ==========================================================================
   Base
   ========================================================================== */
body {
  font-size: 1.6rem;
  font-weight: 500;
}
a {
  transition: none;
}
a:hover {
  opacity: 1;
}
input,
select,
textarea,
button {
  font-family: inherit;
}

/* ==========================================================================
   Layout helpers
   ========================================================================== */
.gcs-sec {
  padding-left: clamp(20px, 4vw, 32px);
  padding-right: clamp(20px, 4vw, 32px);
}
/* TOP：ABOUT / STRENGTH */
.gcs-sec--py-l {
  padding-top: clamp(80px, 10vw, 130px);
  padding-bottom: clamp(80px, 10vw, 130px);
}
/* TOP：BUSINESS / CONTACT */
.gcs-sec--py-m {
  padding-top: clamp(80px, 10vw, 120px);
  padding-bottom: clamp(80px, 10vw, 120px);
}
/* 下層：ページ上部直後のセクション上余白 */
.gcs-sec--pt-lead {
  padding-top: clamp(24px, 3vw, 48px);
}
/* 下層：白セクションの下余白 */
.gcs-sec--pb {
  padding-bottom: clamp(72px, 9vw, 120px);
}

.gcs-container {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
}
.gcs-container--1040 { max-width: 1040px; }
.gcs-container--1000 { max-width: 1000px; }
.gcs-container--960 { max-width: 960px; }
.gcs-container--900 { max-width: 900px; }
.gcs-container--880 { max-width: 880px; }
.gcs-container--820 { max-width: 820px; }
.gcs-container--720 { max-width: 720px; }
.gcs-container--560 { max-width: 560px; }

.gcs-stack {
  display: flex;
  flex-direction: column;
}
.gcs-stack--center {
  align-items: center;
  text-align: center;
}
/* PCは中央揃え・SPは左揃えの本文 */
@media (max-width: 767px) {
  .gcs-sp-left {
    text-align: left;
  }
}
.gcs-gap-2 { gap: 2px; }
.gcs-gap-4 { gap: 4px; }
.gcs-gap-6 { gap: 6px; }
.gcs-gap-8 { gap: 8px; }
.gcs-gap-14 { gap: 14px; }
.gcs-gap-16 { gap: 16px; }
.gcs-gap-18 { gap: 18px; }
.gcs-gap-24 { gap: 24px; }
.gcs-gap-28 { gap: 28px; }
.gcs-gap-32 { gap: 32px; }
.gcs-gap-36 { gap: 36px; }
.gcs-gap-40 { gap: 40px; }
.gcs-gap-48 { gap: 48px; }
.gcs-gap-56 { gap: 56px; }
/* 見出し → 本文 */
.gcs-gap-hd { gap: clamp(40px, 5vw, 64px); }

.gcs-autogrid {
  display: grid;
}
.gcs-autogrid--200 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.gcs-autogrid--240 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.gcs-autogrid--250 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.gcs-autogrid--320 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.gcs-autogrid--360 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
.gcs-autogrid--380 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.gcs-autogrid--420 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.gcs-autogrid--440 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); }

/* ==========================================================================
   Header
   ========================================================================== */
.gcs-header {
  position: fixed;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.gcs-header.is-fixed {
  background: rgba(255, 255, 255, 0.97);
  border-bottom-color: #e3edf3;
  box-shadow: none;
}
.gcs-header.is-open {
  background: #fff;
  border-bottom-color: #e3edf3;
}
.gcs-header .header__inner,
.gcs-header.is-fixed .header__inner {
  max-width: none;
  width: 96%;
  height: 84px;
  padding: 0;
  gap: 0;
}
/* SP：ヘッダー外に置いたハンバーガー分を確保（ロゴの margin-right 24px と合わせて元データの gap＋ボタン幅） */
@media (max-width: 1079px) {
  .gcs-header .header__inner,
  .gcs-header.is-fixed .header__inner {
    padding-right: min(48px, calc(8.9773vw + 8.645px));
  }
}
.gcs-header .header__logo {
  flex-shrink: 1;
  margin-right: 24px;
  gap: 14px;
  color: #1f2d3a;
}
.gcs-header .header__logo img {
  height: 62px;
  width: auto;
  display: block;
}
.gcs-header .header-logo__body {
  line-height: 1.3;
}
.gcs-header .header-logo__sub {
  font-size: 1.1rem;
  letter-spacing: 0.12em;
  color: #4a5d6b;
}
.gcs-header .header-logo__name {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.3;
}
.gcs-header .header__nav {
  gap: 28px;
  margin-right: 28px;
}
.gcs-header .header__nav-item a {
  gap: 2px;
  padding: 6px 0 0;
  color: #1f2d3a;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.4;
  transition: none;
}
.gcs-header .header__nav-ja {
  font-size: 1.5rem;
  font-weight: 700;
  color: inherit;
  margin-top: 0;
  line-height: 1.4;
}
.gcs-header .header__nav-en {
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  color: #01a1e6;
  line-height: 1.4;
}
/* カレント表示の青丸（6px） */
.gcs-header .header__nav-item a::after,
.gcs-header .header__nav-item a:hover::after {
  position: static;
  width: 6px;
  height: 6px;
  margin-top: 2px;
  border-radius: 50%;
  background: transparent;
  transform: none;
  transition: none;
}
.gcs-header .header__nav-item--current a,
.gcs-header .header__nav-item--current .header__nav-en {
  color: #1866b2;
}
.gcs-header .header__nav-item--current a::after,
.gcs-header .header__nav-item--current a:hover::after {
  background: #1866b2;
}
.gcs-header .header__right {
  height: auto;
}
.gcs-header .header__cta {
  flex-direction: row;
  height: auto;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 3px;
  background: #1866b2;
  color: #fff;
  font-size: 1.5rem;
  font-weight: 700;
  transition: none;
}
.gcs-header .header__cta:hover {
  background: #01a1e6;
  color: #fff;
}

/* ハンバーガー（48px・青）。元データは flex 内で縮むため、狭い画面では同じ式で縮める（438px未満） */
.nav-toggle {
  top: 18px;
  right: 2%;
  width: min(48px, calc(8.9773vw + 8.645px));
  height: 48px;
  background: #1866b2;
  border-radius: 3px;
  backdrop-filter: none;
}
.nav-toggle__line,
.nav-toggle.is-active .nav-toggle__line:nth-child(n) {
  width: 20px;
  background: #fff;
  opacity: 1;
  transform: translateX(-50%);
  transition: none;
}
.nav-toggle__line:nth-child(1),
.nav-toggle.is-active .nav-toggle__line:nth-child(1) { top: 16px; }
.nav-toggle__line:nth-child(2),
.nav-toggle.is-active .nav-toggle__line:nth-child(2) { top: 23px; }
.nav-toggle__line:nth-child(3),
.nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 30px; }

/* SPメニュー：ヘッダー直下に開く白パネル */
.sp-nav {
  top: 84px;
  bottom: auto;
  display: block;
  max-height: calc(100vh - 84px);
  padding: 8px 20px 24px;
  background: #fff;
  border-top: 1px solid #e3edf3;
  border-bottom: 1px solid #e3edf3;
  transition: none;
}
@media (min-width: 1080px) {
  .sp-nav {
    display: none;
  }
}
.sp-nav__list {
  max-width: none;
  text-align: left;
}
.sp-nav__item,
.sp-nav.is-open .sp-nav__item {
  border-bottom: 1px solid #e3edf3;
  transform: none;
  opacity: 1;
  transition: none;
}
.sp-nav__item:first-child {
  border-top: 0;
}
.sp-nav__link {
  justify-content: space-between;
  padding: 16px 4px;
  color: #1f2d3a;
  font-size: 1.6rem;
  font-weight: 700;
  transition: none;
}
.sp-nav__link::after {
  content: none;
}
.sp-nav__link:hover {
  background: none;
}
.sp-nav__en {
  margin-right: 0;
  padding-left: 0;
  font-size: 1.1rem;
  letter-spacing: 0.16em;
  color: #01a1e6;
  opacity: 1;
}
.sp-nav__bottom,
.sp-nav.is-open .sp-nav__bottom {
  max-width: none;
  margin-top: 20px;
  opacity: 1;
  transform: none;
  transition: none;
}
.gcs-sp-tel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  font-size: 2rem;
  line-height: 1.4;
  color: #1866b2;
}
.gcs-sp-tel + .gcs-sp-tel {
  margin-top: 14px;
}
/* 代表／不動産事業部のラベル */
.gcs-sp-tel__label {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  color: #1f2d3a;
}

/* ==========================================================================
   Footer
   ========================================================================== */
.gcs-footer {
  background: #fff;
  border-top: 1px solid #e3edf3;
}
.gcs-footer__map {
  height: clamp(260px, 30vw, 380px);
  background: #eef6fa;
  border-radius: 0;
}
.gcs-footer .footer-body {
  padding: 0;
  background: #1866b2;
  color: #fff;
}
.gcs-footer .footer-body__inner {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
  gap: 40px;
  max-width: 1400px;
  padding: clamp(48px, 6vw, 72px) clamp(20px, 4vw, 32px) 32px;
}
.gcs-footer .footer-body__left {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 20px;
  width: auto;
}
.gcs-footer .footer-body__logo {
  margin-bottom: 0;
}
.gcs-footer .footer-body__logo img {
  display: block;
  width: 104px;
  height: auto;
  filter: none;
}
.gcs-footer .footer-body__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 0;
  font-size: 1.5rem;
  line-height: 1.8;
  color: #fff;
}
.gcs-footer__name {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.gcs-footer .footer-body__nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 24px;
  align-content: start;
  justify-self: end;
}
.gcs-footer .footer-body__nav-item a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.5rem;
  color: #fff;
  transition: none;
}
.gcs-footer .footer-body__nav-item a::before {
  content: "";
  width: 8px;
  height: 2px;
  background: #22bdf7;
}
.gcs-footer .footer-body__nav-item a:hover {
  color: #cfeefc;
}
.gcs-footer .footer-bottom {
  padding: 0;
  background: #1866b2;
  text-align: left;
}
.gcs-footer .footer-bottom__copyright {
  max-width: 1400px;
  margin: 0 auto;
  padding: 20px clamp(20px, 4vw, 32px) 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.25);
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  color: #fff;
}

/* ==========================================================================
   Heading（山型アイコン → 英字 → 日本語）
   ========================================================================== */
.gcs-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.gcs-heading .heading__en {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-size: 1.3rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: inherit;
  color: #01a1e6;
}
.gcs-heading .heading__en::before {
  content: "";
  width: 30px;
  height: 13px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='13' viewBox='0 0 30 13' fill='none'%3E%3Cpolyline points='1,12 10,2 29,8' stroke='%2301a1e6' stroke-width='2.5'/%3E%3C/svg%3E") no-repeat center / 30px 13px;
}
.gcs-heading .heading__ja {
  margin: 0;
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: inherit;
}
/* 下層ページのサイズ */
.gcs-heading--sub .heading__ja {
  font-size: clamp(21px, 2.2vw, 27px);
}
/* line-height:1.5 指定の見出し */
.gcs-heading--tight .heading__ja {
  line-height: 1.5;
}
.gcs-heading--white .heading__en {
  color: #7fd3f7;
}
.gcs-heading--white .heading__en::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='13' viewBox='0 0 30 13' fill='none'%3E%3Cpolyline points='1,12 10,2 29,8' stroke='%237fd3f7' stroke-width='2.5'/%3E%3C/svg%3E");
}
.gcs-heading--white .heading__ja {
  color: #fff;
}
/* GROUP COMPANY：日本語の上に小さな補足 */
.gcs-heading__pre {
  display: block;
  font-size: clamp(13px, 1.3vw, 15px);
  letter-spacing: 0.12em;
}

/* 小見出し（3つの丸 → 日本語） */
.gcs-subheading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.gcs-subheading::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #01a1e6;
  box-shadow: 9px 0 0 #1866b2, 18px 0 0 #01a1e6;
  transform: translateX(-9px);
}
.gcs-subheading .heading__ja {
  margin: 0;
  font-size: clamp(19px, 2vw, 22px);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: inherit;
}

/* ==========================================================================
   Button（青pill＋右端白丸矢印）
   ========================================================================== */
.gcs-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  min-width: 260px;
  max-width: none;
  width: auto;
  padding: 12px 12px 12px 40px;
  border: 0;
  border-radius: 999px;
  background: #0288d1;
  box-shadow: none;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: inherit;
  cursor: pointer;
  transition: none;
}
.gcs-btn .btn__label {
  padding: 0;
  color: #fff;
  transition: none;
}
.gcs-btn .btn__circle,
.gcs-btn:hover .btn__circle {
  width: 34px;
  height: 34px;
  background: #fff;
  color: #1f2d3a;
  transition: none;
}
.gcs-btn:hover {
  background: #1866b2;
  color: #fff;
}
.gcs-btn:hover .btn__label {
  color: #fff;
}
.gcs-btn--start { align-self: flex-start; }
.gcs-btn--center { align-self: center; }

/* ==========================================================================
   Card（白・角丸10・薄い影）
   ========================================================================== */
.gcs-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 36px 28px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 0 #e3edf3;
  text-align: left;
}
.gcs-card .card-icon__icon {
  align-self: center;
  display: flex;
  height: 56px;
  margin-bottom: 0;
  font-size: inherit;
}
.gcs-card .card-icon__icon img {
  display: block;
  width: auto;
  height: 100%;
}
.gcs-card .card-icon__title {
  margin: 0;
  font-size: 1.9rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: inherit;
  text-align: center;
}
.gcs-card .card-icon__text {
  font-size: 1.5rem;
  line-height: inherit;
  color: inherit;
}

/* ==========================================================================
   下層ページ上部（bg_main.jpg ＋ 白45%、下辺は山形の白）
   ========================================================================== */
.gcs-pagehead {
  position: relative;
  overflow: hidden;
  padding-top: 85px;
  background: linear-gradient(rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0.45)), url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28845/bg_main.jpg") center top / cover no-repeat #fff;
}
.gcs-pagehead::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  z-index: 2;
  width: 100%;
  height: clamp(30px, 5vw, 72px);
  background: #fff;
  clip-path: polygon(0 100%, 0 76.6667%, 36.1111% 6.6667%, 100% 76.6667%, 100% 100%);
}
.gcs-pagehead .page-hero__content {
  z-index: 2;
  height: clamp(220px, 24vw, 320px);
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 32px) clamp(30px, 5vw, 72px);
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-align: center;
  color: #1f2d3a;
}
.gcs-pagehead .heading__en {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  line-height: inherit;
  color: #01a1e6;
}
.gcs-pagehead .heading__en::before {
  content: "";
  width: 36px;
  height: 15px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='15' viewBox='0 0 30 13' fill='none'%3E%3Cpolyline points='1,12 10,2 29,8' stroke='%2301a1e6' stroke-width='2.5'/%3E%3C/svg%3E") no-repeat center / 36px 15px;
}
.gcs-pagehead .heading__ja {
  margin: 0;
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: inherit;
}

/* ==========================================================================
   色付き背景セクション（幅96%・角丸10・上辺屋根形・テクスチャ敷き詰め）
   ========================================================================== */
.gcs-band {
  width: 96%;
  margin: 0 auto clamp(56px, 7vw, 96px);
  padding: calc(clamp(40px, 5vw, 64px) + clamp(40px, 6vw, 90px)) clamp(20px, 4vw, 32px) clamp(72px, 9vw, 120px);
  border-radius: 10px;
  background: url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28845/bg_texture_blue.png") 0 0 / 800px auto repeat #f5fafc;
  clip-path: polygon(0 clamp(40px, 6vw, 90px), 34% 0, 100% clamp(26px, 3.6vw, 56px), 100% 100%, 0 100%);
}
.gcs-band--gradient {
  background: linear-gradient(rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.92)), url("https://ros-cdn.s3.ap-northeast-1.amazonaws.com/hp/img/ros_keiyaku/28845/bg_texture_gradient.png") 0 0 / 900px auto repeat #f5fafc;
}
/* 屋根形なし（採用：募集職種） */
.gcs-band--flat {
  padding: clamp(72px, 9vw, 120px) clamp(20px, 4vw, 32px);
  clip-path: none;
}

/* ==========================================================================
   Parts
   ========================================================================== */
/* リード下の水色バー */
.gcs-lead-bar {
  width: 48px;
  height: 3px;
  background: #01a1e6;
}
/* リード見出し（リネン・不動産） */
.gcs-lead-ttl {
  margin: 0;
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.7;
}

/* 項目＋内容リスト */
.gcs-dl {
  margin: 0;
}
.gcs-dl__row {
  display: grid;
}
.gcs-dl dd {
  margin: 0;
}
/* 下線のみ（会社概要） */
.gcs-dl--line {
  border-top: 1px solid #d7e4ec;
}
.gcs-dl--line .gcs-dl__row {
  grid-template-columns: minmax(120px, 220px) minmax(0, 1fr);
  border-bottom: 1px solid #d7e4ec;
}
.gcs-dl--line dt {
  padding: 20px 16px;
}
.gcs-dl--line dd {
  padding: 20px 24px;
}
/* 白カード（グループ会社 お問い合わせ） */
.gcs-dl--card {
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 0 #e3edf3;
  font-size: 1.5rem;
}
.gcs-dl--card .gcs-dl__row {
  grid-template-columns: 110px minmax(0, 1fr);
  border-bottom: 1px solid #e3edf3;
}
.gcs-dl--card dt {
  padding: 14px 16px;
  font-weight: 700;
}
.gcs-dl--card dd {
  padding: 14px 16px;
}

/* ラベル */
.gcs-tag {
  padding: 4px 14px;
  border-radius: 2px;
  font-weight: 700;
}
.gcs-tag--solid {
  font-size: 1.3rem;
  color: #fff;
  background: #1866b2;
}
.gcs-tag--pale {
  font-size: 1.4rem;
  color: #1866b2;
  background: #e3f4fc;
}

/* ボタン：縦積み（不動産 営業案内） */
.gcs-btn--stack {
  gap: 20px;
  min-width: auto;
  padding-left: 32px;
}
/* ボタン：長いラベル（省略表示） */
.gcs-btn--compact {
  gap: 12px;
  padding-left: 28px;
  font-size: 1.5rem;
  letter-spacing: 0.04em;
}
.gcs-btn--compact .btn__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 営業案内（不動産） */
.gcs-dl--info {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #d7e4ec;
}
.gcs-dl--info .gcs-dl__row {
  grid-template-columns: 96px minmax(0, 1fr);
  padding: 14px 0;
  border-bottom: 1px solid #d7e4ec;
}
.gcs-dl--info .gcs-dl__row--center {
  align-items: center;
}
.gcs-dl--info dt {
  font-weight: 700;
}

/* 募集要項（項目背景あり） */
.gcs-dl--job {
  overflow: hidden;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 0 #e3edf3;
}
.gcs-dl--job .gcs-dl__row {
  grid-template-columns: minmax(110px, 200px) minmax(0, 1fr);
  border-bottom: 1px solid #e3edf3;
}
.gcs-dl--job .gcs-dl__row:last-child {
  border-bottom: 0;
}
.gcs-dl--job dt {
  padding: 20px 16px;
  background: #eef6fa;
  font-weight: 700;
}
.gcs-dl--job dd {
  padding: 20px 24px;
}

/* 文節改行：<wbr> の位置でのみ折り返す（入りきらない場合は任意位置で折り返す） */
.gcs-kw {
  word-break: keep-all;
  overflow-wrap: anywhere;
}

/* ==========================================================================
   SP調整（767px以下）
   ========================================================================== */
@media (max-width: 767px) {
  /* ヘッダー：社名を1行に収め、高さを64pxに */
  .gcs-header .header__inner,
  .gcs-header.is-fixed .header__inner {
    height: 64px;
    padding-right: 44px;
  }
  .gcs-header .header__logo {
    gap: 10px;
    margin-right: 16px;
  }
  .gcs-header .header__logo img {
    height: 44px;
  }
  .gcs-header .header-logo__sub {
    font-size: 1rem;
    letter-spacing: 0.08em;
  }
  .gcs-header .header-logo__name {
    font-size: 1.4rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .nav-toggle {
    top: 10px;
    width: 44px;
    height: 44px;
  }
  .nav-toggle__line:nth-child(1),
  .nav-toggle.is-active .nav-toggle__line:nth-child(1) { top: 14px; }
  .nav-toggle__line:nth-child(2),
  .nav-toggle.is-active .nav-toggle__line:nth-child(2) { top: 21px; }
  .nav-toggle__line:nth-child(3),
  .nav-toggle.is-active .nav-toggle__line:nth-child(3) { top: 28px; }
  .sp-nav {
    top: 64px;
    max-height: calc(100vh - 64px);
  }
  .gcs-pagehead {
    padding-top: 65px;
  }

  /* フッター：ナビを左揃え */
  .gcs-footer .footer-body__nav {
    justify-self: start;
    width: 100%;
  }

  /* 項目＋内容リスト：項目名の下に内容を縦積み */
  .gcs-dl--line .gcs-dl__row,
  .gcs-dl--job .gcs-dl__row {
    grid-template-columns: minmax(0, 1fr);
  }
  .gcs-dl--line dt {
    padding: 16px 4px 0;
    font-weight: 700;
    font-size: 1.4rem;
    color: #1866b2;
  }
  .gcs-dl--line dd {
    padding: 4px 4px 16px;
  }
  .gcs-dl--job dt {
    padding: 10px 20px;
  }
  .gcs-dl--job dd {
    padding: 14px 20px 18px;
  }

  /* 文字サイズ：本文 15px・行間 1.7 */
  body {
    font-size: 1.5rem;
    line-height: 1.7;
  }
  /* 小見出し・カードタイトル */
  .gcs-subheading .heading__ja {
    font-size: 1.8rem;
  }
  .gcs-card .card-icon__title {
    font-size: 1.7rem;
  }
  /* ボタン */
  .gcs-btn {
    font-size: 1.5rem;
  }

  /* 長いラベルのボタンは省略せず折り返す */
  .gcs-btn--compact {
    font-size: 1.4rem;
    letter-spacing: 0.02em;
  }
  .gcs-btn--compact .btn__label {
    white-space: normal;
    line-height: 1.5;
  }
}
@media (max-width: 359px) {
  .gcs-header .header-logo__name {
    font-size: 1.3rem;
    letter-spacing: 0;
  }
}
