/* === エコラ カスタムスタイル === */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700;900&family=Oswald:wght@400;500&display=swap');

:root {
  --ecola-black: #111111;
  --ecola-white: #ffffff;
  --ecola-gray: #888888;
  --ecola-light-gray: #f5f5f5;
  --ecola-mid-gray: #e0e0e0;
  --ecola-dark-footer: #2a2a2a;
}

body {
  font-family: 'Noto Sans JP', 'Yu Gothic', '游ゴシック', sans-serif;
  color: var(--ecola-black);
  background: var(--ecola-white);
}

/* ===== Lightning上書き ===== */
.home .site-body-container,
.home .main-section,
.home .entry,
.home .entry-body {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.home .site-body {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.home .ecola-section,
.home .ecola-recruit,
.home .ecola-pickup-section,
.home #pickup {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.site-body-bottom { padding: 0 !important; margin: 0 !important; }
.site-body-bottom > .container { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.site-footer { display: none !important; }
.wp-block-group { margin-left: 0 !important; margin-right: 0 !important; }

/* Lightning ヘッダーを非表示（カスタムヘッダーに完全置換） */
.site-header, #site-header { display: none !important; }
/* Lightning が固定ヘッダー用に追加する body padding-top を除去 */
body { padding-top: 0 !important; }
body.admin-bar .site-header { display: none !important; }

/* ===== カスタムヘッダー（静的・ドキュメントフロー内） ===== */
.ecola-header {
  width: 100%;
  height: 100px;
  background: #fff;
  position: relative;
  z-index: 50;
}
.ecola-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  padding: 0 32px;
}
.ecola-header__logo {
  font-size: 1.625rem;
  font-weight: 700;
  color: #202020;
  text-decoration: none;
  letter-spacing: 0.06em;
  line-height: 1;
  flex-shrink: 0;
  transition: opacity 0.2s;
}
.ecola-header__logo:hover { opacity: 0.6; }

/* ナビゲーション */
.ecola-header__nav { display: flex; align-items: center; height: 100%; }
.ecola-header__nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
}
.ecola-header__nav-list > li {
  display: inline-block;
  margin-left: 26px;
  position: relative;
}
.ecola-header__nav-list > li > a {
  font-size: 13px;
  font-weight: 700;
  color: #202020;
  text-decoration: none;
  letter-spacing: 1.3px;
  white-space: nowrap;
  display: block;
  line-height: 1;
  transition: opacity 0.2s;
}
.ecola-header__nav-list > li > a:hover { opacity: 0.5; }

/* ドロップダウン */
.ecola-header__sub {
  display: none;
  position: absolute;
  top: 57px; /* li の top から ヘッダー下端まで：(100px - 13px) / 2 + 13px ≈ 57px */
  left: 0;
  background: #fff;
  border-top: 2px solid #202020;
  min-width: 180px;
  z-index: 200;
  padding: 10px 0;
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}
.ecola-header__has-sub:hover .ecola-header__sub { display: block; }
.ecola-header__sub ul { list-style: none; padding: 0; margin: 0; }
.ecola-header__sub ul li a {
  display: block;
  padding: 9px 18px;
  font-size: 12px;
  color: #202020;
  text-decoration: none;
  letter-spacing: 0.05em;
  white-space: nowrap;
  transition: background 0.15s;
}
.ecola-header__sub ul li a:hover { background: #f5f5f5; }

/* ヘッダー内 SNS */
.ecola-header__sns-item { margin-left: 26px !important; }
.ecola-header__sns-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 16px;
}
.ecola-header__sns-list a {
  color: #202020;
  display: flex;
  align-items: center;
  text-decoration: none;
  opacity: 1;
  transition: opacity 0.2s;
}
.ecola-header__sns-list a:hover { opacity: 0.6; }

/* ===== 固定ヘッダー（スクロール後にスライドイン） ===== */
.ecola-header-fix {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100px;
  background: #fff;
  z-index: 100;
  transform: translateY(-100%);
  transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
  pointer-events: none; /* 非表示時はマウスイベント無効 */
}
body.admin-bar .ecola-header-fix { top: 32px; }
@media screen and (max-width: 782px) {
  body.admin-bar .ecola-header-fix { top: 46px; }
}
.ecola-header-fix.is-visible {
  transform: translateY(0);
  pointer-events: auto; /* 表示時のみ有効 */
}

/* ===== 固定左サイドバー（ハンバーガー + SNS） ===== */
/* ===== 固定左サイドバー (sub-nav) ===== */
.sub-nav {
  position: fixed;
  left: 0;
  top: 0;
  width: 100px;
  height: 100%;
  z-index: 10;
  background: #fff;
}
.sub-nav .sns.pc {
  position: absolute;
  bottom: 40px;
  left: 0;
  width: 100%;
}
.sub-nav .sns.pc ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 22px;
}
.sub-nav .sns.pc ul li a { display: block; text-decoration: none; }
.sub-nav .sns.pc ul li a img { display: block; }
.sub-nav .sns.pc ul li a:hover { opacity: 0.6; }

/* ===== ハンバーガーボタン ===== */
.open-btn-wrap {
  position: fixed;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 100px;
  height: 100px;
  z-index: 102;
  cursor: pointer;
}
.open-btn-area {
  position: relative;
  width: 100%;
  height: 100%;
}
.open-btn {
  position: absolute;
  width: 36px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.open-btn .line {
  width: 100%;
  height: 2px;
  background: #202020;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  transition: transform 0.4s cubic-bezier(0.645, 0.045, 0.355, 1), margin 0.4s ease;
}
.open-btn .line:first-child { margin-top: -5px; }
.open-btn .line:last-child  { margin-top:  5px; }
/* Open → X shape */
.open-btn-wrap.open .open-btn .line:first-child {
  transform: translate(-50%, -50%) rotate(25deg);
  margin-top: 0;
}
.open-btn-wrap.open .open-btn .line:last-child {
  transform: translate(-50%, -50%) rotate(-25deg);
  margin-top: 0;
}

/* ===== スライドインナビゲーションパネル ===== */
.main-nav {
  position: fixed;
  left: 0;
  top: 0;
  width: 770px;
  height: 100%;
  z-index: 101;
  background: #fff;
  transform: translateX(-100%);
  transition: transform 0.5s cubic-bezier(0.645, 0.045, 0.355, 1);
  overflow: hidden;
}
.main-nav.open { transform: translateX(0); }
.main-nav .scr { display: table; width: 100%; height: 100%; }
.main-nav .scr > nav { display: table-cell; vertical-align: middle; padding: 0 54px 0 200px; }
.main-nav .list-wrap { overflow: hidden; padding-bottom: 56px; }
.main-nav .list-wrap > ul { list-style: none; padding: 0; margin: 0; float: left; width: 257px; }
.main-nav .list-wrap > ul > li { font-size: 16px; color: #202020; margin-bottom: 39px; }
.main-nav .list-wrap > ul > li > a,
.main-nav .list-wrap > ul > li > a:visited { color: #202020 !important; text-decoration: none !important; font-size: 16px; letter-spacing: 0.05em; transition: opacity 0.2s; }
.main-nav .list-wrap > ul > li > a:hover { opacity: 0.6; color: #202020 !important; }
.main-nav .list-wrap > ul > li > p { font-size: 16px; color: #202020; margin: 0 0 20px 0; letter-spacing: 0.05em; }
.main-nav .list-wrap > ul > li > ul { list-style: none; padding: 0; margin: 0; }
.main-nav .list-wrap > ul > li > ul > li { margin-bottom: 16px; }
.main-nav .list-wrap > ul > li > ul > li > a,
.main-nav .list-wrap > ul > li > ul > li > a:visited { color: #202020 !important; text-decoration: none !important; font-size: 13px; letter-spacing: 0.05em; transition: opacity 0.2s; }
.main-nav .list-wrap > ul > li > ul > li > a::before { content: '－ '; }
.main-nav .list-wrap > ul > li > ul > li > a:hover { opacity: 0.6; color: #202020 !important; }
/* Follow Us + SNS */
.main-nav .nav-follow { font-size: 15px; color: #202020; margin: 0 0 16px 0; letter-spacing: 0.05em; }
.main-nav ul.sns { list-style: none; padding: 0; margin: 0; display: flex; align-items: center; gap: 28px; }
.main-nav ul.sns li a,
.main-nav ul.sns li a:visited { display: block; text-decoration: none; color: #202020; transition: opacity 0.2s; }
.main-nav ul.sns li a:hover { opacity: 0.6; }
.main-nav ul.sns li a img { display: block; }

/* ===== ナビオーバーレイ ===== */
.nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 100;
  background: rgba(0,0,0,0.3);
}
.nav-overlay.active { display: block; }

/* ===== ヒーローセクション ===== */
/* 参考サイト (ecola.co.jp) に合わせたレイアウト:
   - ヘッダー下から開始 (margin-top で調整)
   - 左サイドバー分 (68px) だけインデント
   - 全幅画像スライダー
   - 左下: 半透明キャプションボックス
   - 右下: ページングカウンター + サークルプログレス
*/
:root {
  --ecola-header-h: 100px; /* カスタムヘッダー高さ */
}

.ecola-hero {
  position: relative;
  margin-left: 68px;
  height: calc(100vh - var(--ecola-header-h));
  min-height: 480px;
  overflow: hidden;
  background: #f0ede8;
}

/* スライド背景 */
.ecola-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  opacity: 0;
  transition: opacity 1.2s ease;
}
.ecola-hero__bg.is-active {
  z-index: 10;
  opacity: 1;
}
.ecola-hero__core {
  position: absolute;
  inset: 0;
}
.ecola-hero__core img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* 左下: キャプションボックス */
.ecola-hero__info-wrap {
  position: absolute;
  left: 0;
  bottom: 53px;
  width: 380px;
  background: rgba(255, 255, 255, 0.3);
  z-index: 20;
  overflow: hidden;
}
.ecola-hero__info {
  display: none;
  flex-direction: column;
  padding: 32px 40px 28px;
  gap: 12px;
}
.ecola-hero__info.is-active { display: flex; }
.ecola-hero__info-name {
  font-size: 1.35rem;
  font-weight: 700;
  color: #202020;
  line-height: 1.5;
}
.ecola-hero__info-lead {
  font-size: 0.82rem;
  color: #202020;
  line-height: 1.7;
}
.ecola-hero__info-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 0.68rem;
  font-weight: 700;
  color: #202020;
  text-decoration: none;
  letter-spacing: 0.14em;
  margin-top: 4px;
}
.ecola-hero__veil {
  display: block;
  width: 28px;
  height: 1px;
  background: #202020;
  flex-shrink: 0;
}

/* ナビゲーション矢印 */
.ecola-hero__prev,
.ecola-hero__next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #ffffff;
  border: none;
  cursor: pointer;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: opacity 0.2s;
}
.ecola-hero__prev { left: 48px; }
.ecola-hero__next { right: 34px; }
.ecola-hero__prev:hover,
.ecola-hero__next:hover { opacity: 0.85; }

/* 右下: ページングカウンター */
.ecola-hero__paging {
  position: absolute;
  right: 34px;
  bottom: 30px;
  display: flex;
  align-items: center;
  gap: 0;
  z-index: 20;
}
.ecola-hero__page-num {
  color: #ffffff;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}
.ecola-hero__page-sep {
  color: rgba(255,255,255,0.7);
  font-size: 0.75rem;
  margin: 0 4px;
}

/* サークルプログレス */
.ecola-hero__circle-wrap {
  width: 36px;
  height: 36px;
  margin-left: 12px;
  flex-shrink: 0;
}
.ecola-hero__circle-svg {
  width: 36px;
  height: 36px;
  overflow: visible;
}
.ecola-hero__circle-prog {
  transition: stroke-dashoffset 0.1s linear;
}

/* ===== セクション共通 ===== */
.ecola-section { padding: 100px 0; background: var(--ecola-white); }
.ecola-section--gray { background: var(--ecola-light-gray); }
.ecola-container { max-width: 1200px; margin: 0 auto; padding: 0 60px 0 120px; }
.ecola-section-head { margin-bottom: 48px; }
.ecola-section-head--row { display: flex; justify-content: space-between; align-items: flex-end; }
.ecola-section-en {
  font-size: clamp(1.8rem, 2.8vw, 3rem);
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1;
  margin: 0;
  border: none !important;
}
.ecola-section-ja {
  font-size: 0.8rem;
  letter-spacing: 0.2em;
  color: var(--ecola-gray);
  margin-left: 12px;
  font-weight: 400;
}
.ecola-section-desc { margin-top: 10px; font-size: 0.85rem; color: var(--ecola-gray); }
.ecola-view-all {
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ecola-black);
  text-decoration: none;
  border-bottom: 1px solid var(--ecola-black);
  padding-bottom: 2px;
  white-space: nowrap;
  transition: opacity 0.2s;
}
.ecola-view-all:hover { opacity: 0.5; }

/* ===== ボタン ===== */
.ecola-btn { display: inline-block; padding: 14px 36px; font-size: 0.85rem; letter-spacing: 0.1em; text-decoration: none; transition: all 0.2s; font-family: inherit; }
.ecola-btn--black { background: var(--ecola-black); color: var(--ecola-white); }
.ecola-btn--black:hover { background: #333; color: var(--ecola-white); }
.ecola-btn--outline { background: transparent; color: var(--ecola-black); border: 1px solid var(--ecola-black); }
.ecola-btn--outline:hover { background: var(--ecola-black); color: var(--ecola-white); }
.ecola-btn--white { background: transparent; color: var(--ecola-white); border: 1px solid rgba(255,255,255,0.55); }
.ecola-btn--white:hover { background: rgba(255,255,255,0.15); }

/* ===== NEWSセクション（ecola.co.jp 準拠） ===== */
#news { padding: 80px 0 51px; }

/* ヘッダー行：タイトル左 + カテゴリタグ右 */
#news .news-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 24px;
}
#news .news-head h2 { line-height: 1; margin: 0; }
#news .news-head h2 .en {
  display: block;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 1.6px;
  color: #202020;
  line-height: 1;
}
#news .news-head h2 .ja {
  display: block;
  font-size: 12.8px;
  font-weight: 400;
  color: #202020;
  margin-top: 6px;
}
#news .news-head-tags {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
#news .news-head-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  border-radius: 30px;
  padding: 0 15px;
  font-size: 14px;
  color: #fff;
  text-decoration: none;
  transition: opacity 0.2s;
  white-space: nowrap;
}
#news .news-head-tag:hover { opacity: 0.8; }
#news .news-head-tag.tag--event { background: #e5e1da; }
#news .news-head-tag.tag--pr    { background: #d6c0b3; }
#news .news-head-tag.tag--case  { background: #b3c8cf; }
#news .news-head-tag.tag--sale  { background: #89a8b2; }
#news .news-head-tag.tag--rent  { background: #70a2b2; }

/* カードグリッド：flex wrap, gap 4% */
#news .news-wrap--top {
  display: flex;
  flex-wrap: wrap;
  gap: 4%;
  margin-bottom: 0;
}
/* デフォルト（3列）: 30.65% */
#news .news-wrap--top .news {
  width: 30.65%;
  border: 0.8px solid #cccccc;
  box-sizing: border-box;
}
/* 最初の2枚は2列（48%） */
#news .news-wrap--top .news:nth-child(1),
#news .news-wrap--top .news:nth-child(2) { width: 48%; }

/* カードリンク */
#news .news-wrap--top .news a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 7.5%;
  box-sizing: border-box;
  color: #202020;
  text-decoration: none;
  transition: background-color 800ms cubic-bezier(0.23, 1, 0.32, 1);
}
#news .news-wrap--top .news a:hover { background-color: #f2f2f2; }
#news .news-wrap--top .news a:hover .exp { text-decoration: underline; }

/* .info: 画像 + 日付列（横並び） */
#news .news-wrap--top .news .info {
  display: flex;
  flex-direction: row;
}
/* 画像 */
#news .news-wrap--top .news .img {
  flex: 1;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  min-width: 0;
}
#news .news-wrap--top .news .img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* 日付列 */
#news .news-wrap--top .news .date {
  width: 28.505%;
  flex-shrink: 0;
  text-align: right;
  padding-left: 6px;
  box-sizing: border-box;
  overflow: hidden;
}
#news .news-wrap--top .news time.md {
  display: block;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.15;
  color: #202020;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: clip;
}
#news .news-wrap--top .news time.year {
  display: block;
  font-size: 20px;
  font-weight: 400;
  color: #b6b6b6;
  line-height: 1.3;
}
/* 3列の小カードは日付フォントを縮小（コンテナ幅が参考サイトより狭いため） */
#news .news-wrap--top .news:nth-child(n+3) time.md  { font-size: 22px; }
#news .news-wrap--top .news:nth-child(n+3) time.year { font-size: 15px; }
/* 3列の小カードはタグも縮小（76px幅の日付列に収めるため） */
#news .news-wrap--top .news:nth-child(n+3) span.tag--lg {
  font-size: 11px;
  height: 22px;
  padding: 0 9px;
}
/* カテゴリタグ（カード内） */
#news .news-wrap--top .news span.tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  border-radius: 30px;
  padding: 0 8px;
  margin-top: 3px;
  color: #fff;
  font-size: 12px;
  white-space: nowrap;
}
#news .news-wrap--top .news span.tag--lg {
  height: 28px;
  padding: 0 14px;
  font-size: 14px;
}
#news .news-wrap--top .news span.tag--event { background: #e5e1da; }
#news .news-wrap--top .news span.tag--pr    { background: #d6c0b3; }
#news .news-wrap--top .news span.tag--case  { background: #b3c8cf; }
#news .news-wrap--top .news span.tag--sale  { background: #89a8b2; }
#news .news-wrap--top .news span.tag--rent  { background: #70a2b2; }

/* タイトルテキスト */
#news .news-wrap--top .news .exp {
  display: block;
  font-size: 14.4px;
  line-height: 2;
  color: #202020;
  margin: 0;
}

/* VIEW ALL ボタン（フル幅、ホバーで黒塗り） */
#news .viewall-btn {
  display: block;
  width: 100%;
  position: relative;
  cursor: pointer;
  border: 0.8px solid #cccccc;
  background-color: #fff;
  overflow: hidden;
  transition: background-color 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  margin-top: 0;
}
#news .viewall-btn .veil {
  width: 0%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  background-color: #000;
  transition: width 300ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
#news .viewall-btn p.en {
  position: relative;
  z-index: 2;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.4px;
  text-align: center;
  padding: 24px 0;
  color: #202020;
  transition: color 250ms ease;
  margin: 0;
}
#news .viewall-btn:hover .veil { width: 100%; }
#news .viewall-btn:hover p.en  { color: #fff; }

/* ===== ABOUTセクション（参照: ecola.co.jp） ===== */
#about { padding: 100px 0; }
#about .ecola-container { overflow: visible; }

/* ラッパー（絶対配置の基準点） */
#about .about-wrap {
  position: relative;
  min-height: 560px;
}

/* h2 見出し */
#about .about-head {
  font-weight: normal;
  line-height: 1;
  margin-bottom: 28px;
  border-top: none !important;
  border-bottom: none !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
#about .about-head .en {
  display: inline-block;
  font-size: 32px;
  font-weight: 700;
  color: #202020;
  letter-spacing: 1.6px;
  line-height: 1;
}
#about .about-head .ja {
  display: inline-block;
  font-size: 12.8px;
  color: #202020;
  line-height: 2.6;
  margin-left: 4px;
}

/* 本文テキスト */
#about .about-txt {
  font-size: 16px;
  line-height: 2.1875;
  color: #202020;
  margin-bottom: 40px;
}
/* スクロール行アニメーション用 */
#about .al {
  display: block;
  line-height: 2.1875;
  transition: color 500ms ease;
}
#about .al-br {
  display: block;
  height: 17.5px; /* 0.5 × line-height */
}

/* 縦書きキャッチフレーズ */
#about .about-catch {
  writing-mode: vertical-rl;
  position: absolute;
  right: -10px;
  top: 35px;
  z-index: 2;
  font-size: 50px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 3px;
  color: #202020;
  pointer-events: none;
}

/* グラデーション画像エリア */
#about .about-grade {
  position: absolute;
  right: -80px;
  top: 145px;
  width: 660px;
  height: 440px;
  overflow: hidden;
  z-index: 0;
}
#about .about-grade-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(45deg, #BCC1F4, #93CAE0, #E2B4E7);
  background-size: 600% 600%;
  animation: aboutGradient 10s ease infinite;
}
@keyframes aboutGradient {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
#about .about-grade-bg .cb {
  position: absolute;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  filter: blur(140px);
}
#about .about-grade-bg .cb1 { background: #93CAE0; top: -100px; left: -100px; }
#about .about-grade-bg .cb2 { background: #E2B4E7; top: -50px;  left: 50px; }

/* SVGパーツ（タイポグラフィ装飾） */
#about .about-parts { position: absolute; z-index: 1; }
#about .about-parts.p1 { left: 111px; top: 108px; }
#about .about-parts.p1 img { width: 40px;  height: auto; }
#about .about-parts.p2 { left: 186px; top: 108px; }
#about .about-parts.p2 img { width: 47px;  height: auto; }
#about .about-parts.p3 { left: 111px; top: 270px; }
#about .about-parts.p3 img { width: 125px; height: auto; }
#about .about-parts.p4 { left: 274px; top: 108px; }
#about .about-parts.p4 img { width: 40px;  height: auto; }

/* MORE DETAILS ボタン */
#about .about-detail-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 174px;
  height: 60px;
  border: 0.8px solid #cccccc;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  background: #fff;
  color: #202020;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.05em;
  transition: color 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
#about .about-detail-btn .veil {
  position: absolute;
  inset: 0;
  background: #202020;
  transform: translateX(-100%);
  transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 0;
}
#about .about-detail-btn .text {
  position: relative;
  z-index: 1;
}
#about .about-detail-btn:hover .veil { transform: translateX(0); }
#about .about-detail-btn:hover { color: #fff; }

/* ===== PICK UP セクション ===== */
#pickup {
  padding: 0;
  background: #fff;
  overflow: hidden;
}
#pickup h2.pu-head {
  border-top: none !important;
  border-bottom: none !important;
  padding: 0 !important;
  margin-top: 0 !important;
}
#pickup .pu-wrap {
  width: 100%;
  padding: 0 7.46%;
  box-sizing: border-box;
}
#pickup .pu-content {
  max-width: 1440px;
  margin: 0 auto;
  padding-top: 8.4%;
}
#pickup .pu-inner {
  position: relative;
}
#pickup .pu-inner::after {
  content: '';
  display: table;
  clear: both;
}

/* 画像エリア（右側・absolute配置） */
#pickup .pu-imgs-area {
  position: absolute;
  top: 0;
  left: 33.3%;
  width: 75.7%;
  height: 83.4%;
  overflow: hidden;
  z-index: 0;
}
#pickup .pu-img-track {
  display: flex;
  height: 100%;
  transition: transform 600ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
#pickup .pu-img-item {
  flex: 0 0 100%;
  min-width: 100%;
  height: 100%;
}
#pickup .pu-img-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* テキストパネル（左側・インフロー） */
#pickup .pu-text-wrap {
  width: 66.8%;
  padding-top: 53.3%;
  position: relative;
}
#pickup .pu-text {
  position: absolute;
  left: 0;
  top: 18.8%;
  bottom: 0;
  width: 100%;
  padding: 7.5% 57% 5.5% 6.7%;
  box-sizing: border-box;
  background: rgb(230, 230, 230);
  z-index: 1;
}

/* PICK UP 見出し */
#pickup .pu-head {
  font-weight: normal;
  line-height: 0;
  margin-bottom: 12.4%;
  box-sizing: border-box;
}
#pickup .pu-en {
  display: inline-block;
  vertical-align: bottom;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  margin-right: 7%;
  color: #202020;
}
#pickup .pu-ja {
  display: inline-block;
  vertical-align: bottom;
  font-size: 12.8px;
  letter-spacing: 0.06em;
  color: #202020;
  line-height: 2.8;
}

/* ケース（各スライドのテキスト） */
#pickup .pu-cases {
  position: relative;
}
#pickup .pu-case {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  opacity: 0;
  pointer-events: none;
  transition: opacity 400ms ease;
}
#pickup .pu-case.pu-active {
  position: relative;
  opacity: 1;
  pointer-events: auto;
}
#pickup .pu-title {
  font-size: 22.4px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  margin-bottom: 7%;
  color: #202020;
}
#pickup .pu-detail {
  font-size: 13.8px;
  line-height: 1.75;
  color: #202020;
  margin-bottom: 8.4%;
}

/* MORE DETAILS ボタン */
#pickup .pu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 278px;
  height: 60px;
  border: none;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  background: #fff;
  color: #202020;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 0.05em;
  transition: color 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
}
#pickup .pu-veil {
  position: absolute;
  inset: 0;
  background: #202020;
  transform: translateX(-100%);
  transition: transform 300ms cubic-bezier(0.215, 0.61, 0.355, 1);
  z-index: 0;
}
#pickup .pu-btn-label {
  position: relative;
  z-index: 1;
}
#pickup .pu-btn:hover .pu-veil { transform: translateX(0); }
#pickup .pu-btn:hover { color: #fff; }

/* ページング */
#pickup .pu-paging {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 50%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  z-index: 2;
}
#pickup .pu-pnum {
  font-size: 14.4px;
  color: #202020;
  display: inline-block;
  vertical-align: middle;
}
#pickup .pu-pall { color: rgb(200, 200, 200); }
#pickup .pu-pslash {
  font-size: 14.4px;
  color: rgb(200, 200, 200);
  padding: 0 5px;
  display: inline-block;
  vertical-align: middle;
}
#pickup .pu-prev,
#pickup .pu-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 53px;
  height: 53px;
  border-radius: 50%;
  background: rgb(230, 230, 230);
  border: none;
  cursor: pointer;
  position: relative;
  transition: background 250ms cubic-bezier(0.215, 0.61, 0.355, 1);
  margin-left: 8px;
  flex-shrink: 0;
}
#pickup .pu-prev::after,
#pickup .pu-next::after {
  content: '';
  width: 11px;
  height: 11px;
  border-style: solid;
  border-color: #202020;
  position: absolute;
  top: 50%;
}
#pickup .pu-prev::after {
  border-width: 0 0 2.5px 2.5px;
  transform: translate(-30%, -50%) rotate(45deg);
}
#pickup .pu-next::after {
  border-width: 2.5px 2.5px 0 0;
  transform: translate(-60%, -50%) rotate(45deg);
}
#pickup .pu-prev:hover,
#pickup .pu-next:hover { background: #202020; }
#pickup .pu-prev:hover::after,
#pickup .pu-next:hover::after { border-color: #fff; }

/* ===== SERVICEセクション ===== */
#service .ecola-container { padding-left: 0; padding-right: 0; }
#service .ecola-section-head { margin-bottom: 40px; }

.sv-wrap { display: block; overflow: hidden; max-width: 1200px; margin: 0 auto; }
.sv-wrap::after { content: ''; display: table; clear: both; }

.sv-item {
  display: block;
  position: relative;
  float: left;
  width: 50%;
  overflow: hidden;
  text-decoration: none;
  transition: opacity 0.2s cubic-bezier(0.25, 0.25, 0.75, 0.75);
}
.sv-item:hover { opacity: 0.88; }

.sv-img {
  position: relative;
  width: 100%;
  padding-top: 66.67%;
  overflow: hidden;
  background: #1a1a1a;
}
.sv-img img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.75s cubic-bezier(0.215, 0.61, 0.355, 1);
}
.sv-item:hover .sv-img img { transform: scale(1.06); }

.sv-text {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  pointer-events: none;
}
.sv-text h3 {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  font-weight: 400;
  line-height: 1;
}
.sv-en {
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.1em;
  text-shadow: rgba(0,0,0,0.5) 0 0 20px;
  line-height: 1;
}
.sv-ja {
  font-size: 12px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.06em;
  text-shadow: rgba(0,0,0,0.5) 0 0 20px;
  line-height: 1;
}

/* ===== CASE STUDYセクション ===== */
.cs-section { background: #fff; padding: 100px 0 0 0; position: relative; }
.cs-section::before { content: ''; position: absolute; top: 403px; left: 0; right: 0; bottom: 0; background: rgb(230,230,230); z-index: 0; }
.cs-wrap { max-width: 1200px; margin: 0 auto; position: relative; z-index: 1; }
.cs-head { margin-bottom: 40px; }

/* Carousel inner */
.cs-inner { position: relative; height: 707px; }

/* Image area */
.cs-imgs { position: absolute; left: 120px; top: 0; width: 1260px; height: 629px; overflow: hidden; }
.cs-img-slide { display: flex; width: calc(3 * 1088px); height: 100%; transition: transform 600ms cubic-bezier(0.215,0.61,0.355,1); }
.cs-img-item { display: block; flex: 0 0 1088px; width: 1088px; height: 629px; overflow: hidden; text-decoration: none; }
.cs-img-pad { width: 100%; height: 100%; }
.cs-img-pad img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms cubic-bezier(0.215,0.61,0.355,1); }
.cs-img-item:hover .cs-img-pad img { transform: scale(1.04); }

/* Text panel (white, bottom-left, overlapping image) */
.cs-text-wrap { position: relative; width: 488px; height: 0; padding-top: 246px; overflow: visible; margin-top: 212px; }
.cs-text { position: absolute; top: 246px; left: 0; width: 488px; height: 250px; background: #fff; overflow: hidden; }
.cs-case { height: 0; overflow: hidden; transition: height 0.5s cubic-bezier(0.215,0.61,0.355,1); }
.cs-case--active { height: 250px; }
.cs-case-inner { padding: 31px 54px; }
.cs-case h3 { margin: 0 0 12px 0; font-weight: 400; font-size: inherit; border: none !important; }
.cs-case h3::after { display: none !important; }
.cs-num { font-size: 16px; font-weight: 700; color: #202020; letter-spacing: 0.06em; display: block; }
.cs-cat { font-size: 13px; color: #202020; letter-spacing: 0.06em; display: block; margin-top: 4px; }
.cs-title { font-size: 21px; font-weight: 700; line-height: 1.5; color: #202020; margin: 0 0 6px; }
.cs-detail { font-size: 14px; color: #888; margin: 0; }

/* Paging */
.cs-paging { position: absolute; bottom: 0; left: 0; right: 0; height: 53px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.cs-page-cur { font-size: 14px; font-weight: 700; color: #202020; }
.cs-page-sep, .cs-page-all { font-size: 14px; color: #cccccc; }
.cs-btn { width: 53px; height: 53px; border-radius: 50%; background: #fff; border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background 250ms cubic-bezier(0.215,0.61,0.355,1); flex-shrink: 0; }
.cs-btn:hover { background: #202020; }
.cs-btn:hover .cs-arrow { border-color: #fff; }
.cs-arrow { display: inline-block; width: 9px; height: 9px; border-top: 1.5px solid #202020; border-right: 1.5px solid #202020; }
.cs-arrow--left { transform: rotate(-135deg) translate(2px, -2px); }
.cs-arrow--right { transform: rotate(45deg) translate(-2px, -2px); }

/* VIEW ALL button */
.cs-viewall { display: block; position: relative; overflow: hidden; height: 65px; line-height: 65px; background: #fff; text-align: center; text-decoration: none; color: #202020; font-size: 16px; letter-spacing: 0.025em; }
.cs-viewall__veil { position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #202020; transition: left 400ms cubic-bezier(0.215,0.61,0.355,1); }
.cs-viewall:hover .cs-viewall__veil { left: 0; }
.cs-viewall:hover { color: #fff; }
.cs-viewall__text { position: relative; z-index: 1; }

/* ===== SOCIALセクション ===== */
.sc-section { background: #fff; padding: 133px 0 0 0; }
.sc-wrap { max-width: 1200px; margin: 0 auto; }
.sc-inner { position: relative; height: 644px; }

/* Image area (right, overlapping gray panel) */
.sc-imgs { position: absolute; top: 16px; left: 400px; width: 916px; height: 537px; overflow: hidden; z-index: 1; }
.sc-img-slide { display: flex; width: calc(5 * 806px); height: 100%; transition: transform 600ms cubic-bezier(0.215,0.61,0.355,1); }
.sc-img-wrap { flex: 0 0 806px; width: 806px; height: 537px; overflow: hidden; }
.sc-img { width: 100%; height: 100%; }
.sc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms cubic-bezier(0.215,0.61,0.355,1); }
.sc-img-wrap:hover .sc-img img { transform: scale(1.04); }

/* Gray text panel (left) */
.sc-text-wrap { position: absolute; top: 113px; left: 0; width: 800px; height: 525px; overflow: hidden; }
.sc-text { position: relative; width: 100%; height: 100%; background: rgb(230,230,230); padding: 61px 0 44px 54px; box-sizing: border-box; }
.sc-heading { margin: 0 0 36px 0; border: none !important; font-size: inherit; font-weight: inherit; line-height: 1; }
.sc-heading::after { display: none !important; }
.sc-en { font-size: 28px; font-weight: 700; color: #202020; letter-spacing: 0.05em; }
.sc-ja { font-size: 14px; font-weight: 400; color: #202020; margin-left: 10px; }
.sc-cases { max-width: 302px; }
.sc-case { display: none; }
.sc-case--active { display: block; }
.sc-title { font-size: 22px; font-weight: 700; color: #202020; margin: 0 0 14px 0; line-height: 1.4; }
.sc-detail { font-size: 14px; color: #202020; margin: 0; line-height: 1.8; }

/* VIEW ALL button */
.sc-viewall { position: absolute; bottom: 44px; left: 54px; display: block; width: 278px; height: 60px; line-height: 60px; text-align: center; text-decoration: none; color: #202020; font-size: 16px; letter-spacing: 0.025em; background: white; overflow: hidden; }
.sc-viewall__veil { position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #202020; transition: left 400ms cubic-bezier(0.215,0.61,0.355,1); }
.sc-viewall:hover .sc-viewall__veil { left: 0; }
.sc-viewall:hover { color: #fff; }
.sc-viewall__text { position: relative; z-index: 1; }

/* Paging */
.sc-paging { position: absolute; top: 608px; left: 0; right: 0; height: 53px; display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.sc-page-cur { font-size: 14px; font-weight: 700; color: #202020; }
.sc-page-sep, .sc-page-all { font-size: 14px; color: #cccccc; }
.sc-btn { width: 53px; height: 53px; border-radius: 50%; background: rgb(230,230,230); border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; transition: background 250ms cubic-bezier(0.215,0.61,0.355,1); flex-shrink: 0; }
.sc-btn:hover { background: #202020; }
.sc-btn:hover .sc-arrow { border-color: #fff; }
.sc-arrow { display: inline-block; width: 9px; height: 9px; border-top: 1.5px solid #202020; border-right: 1.5px solid #202020; }
.sc-arrow--left { transform: rotate(-135deg) translate(2px, -2px); }
.sc-arrow--right { transform: rotate(45deg) translate(-2px, -2px); }

/* ===== RECRUITセクション ===== */
.rc-section { background: #fff; padding: 164px 0 144px 0; }
.rc-wrap { max-width: 1200px; margin: 0 auto; }
.rc-inner { position: relative; height: 659px; }
.rc-img { position: absolute; top: 0; left: 0; width: 806px; height: 537px; overflow: hidden; z-index: 1; }
.rc-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 600ms cubic-bezier(0.215,0.61,0.355,1); }
.rc-img:hover img { transform: scale(1.04); }
.rc-text-wrap { position: absolute; top: 161px; left: 400px; width: 800px; height: 498px; overflow: hidden; }
.rc-text { width: 100%; height: 100%; background: rgb(230,230,230); padding: 44px 56px 52px 452px; box-sizing: border-box; }
.rc-heading { margin: 0 0 35px 0; border: none !important; font-weight: inherit; font-size: inherit; line-height: 1; }
.rc-heading::after { display: none !important; }
.rc-en { font-size: 28px; font-weight: 700; color: #202020; letter-spacing: 0.05em; }
.rc-ja { font-size: 14px; font-weight: 400; color: #202020; margin-left: 10px; }
.rc-title { font-size: 22px; font-weight: 700; color: #202020; margin: 0 0 20px 0; line-height: 1.4; }
.rc-detail { font-size: 14px; color: #202020; margin: 0 0 40px 0; line-height: 1.8; }
.rc-moredetails { position: relative; display: block; width: 292px; height: 58px; line-height: 58px; text-align: center; text-decoration: none; color: #202020; font-size: 16px; letter-spacing: 0.025em; background: white; overflow: hidden; }
.rc-moredetails__veil { position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: #202020; transition: left 400ms cubic-bezier(0.215,0.61,0.355,1); }
.rc-moredetails:hover .rc-moredetails__veil { left: 0; }
.rc-moredetails:hover { color: #fff; }
.rc-moredetails__text { position: relative; z-index: 1; }

/* ===== お問い合わせCTAセクション ===== */
.cb-section { padding: 0 0 134px 0; background: #fff; }
.cb-wrap { max-width: 1200px; margin: 0 auto; }
.cb-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 121px; background: rgb(32,32,32); color: #fff; font-size: 32px; text-decoration: none; letter-spacing: 0.05em; transition: background 0.3s; }
.cb-btn:hover { background: rgb(55,55,55); color: #fff; }
.cb-tel { text-align: center; padding-top: 36px; }
.cb-tel-num { display: block; font-family: 'Oswald', sans-serif; font-size: 35px; font-weight: 400; color: #202020; letter-spacing: 1.76px; line-height: 1.5; }
.cb-tel-open { display: block; font-family: 'Oswald', sans-serif; font-size: 13px; font-weight: 400; color: #202020; margin-top: 4px; letter-spacing: 0.5px; }

/* ===== RELATED SITESセクション ===== */
.rs-section { background: #fff; padding: 85px 0 109px 0; }
.rs-wrap { max-width: 1200px; margin: 0 auto; }
.rs-heading { margin: 0 0 55px 0; font-weight: 700; font-size: 32px; line-height: 1; border: none !important; padding: 0 !important; color: #202020; letter-spacing: 0.05em; }
.rs-heading::after { display: none !important; }
.rs-en { font-size: 32px; font-weight: 700; color: #202020; letter-spacing: 0.05em; }
.rs-ja { font-size: 13px; font-weight: 400; color: #202020; margin-left: 16px; vertical-align: middle; }
.rs-media { margin-bottom: 48px; }
.rs-media-ttl { font-size: 22px; font-weight: 700; color: #202020; margin: 0 0 24px 0; }
.rs-media-banner { display: block; position: relative; height: 286px; background: rgb(242, 243, 244); overflow: visible; text-decoration: none; }
.rs-media-ttl-logo { position: absolute; top: 35px; left: 456px; width: 296px; height: 216px; z-index: 1; display: flex; align-items: center; justify-content: center; }
.rs-media-ttl-logo img { width: 296px; height: auto; display: block; }
.rs-media-imgs { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.rs-media-img { position: absolute; }
.rs-media-img img { display: block; object-fit: cover; border: 4.8px solid rgb(255, 255, 255); }
.rs-media-img-1 { top: 18px; left: -70px; width: 286px; height: 329px; }
.rs-media-img-1 img { width: 286px; height: 329px; }
.rs-media-img-2 { top: 67px; left: 135px; width: 287px; height: 244px; }
.rs-media-img-2 img { width: 287px; height: 244px; }
.rs-media-img-3 { top: 49px; left: 786px; width: 240px; height: 284px; }
.rs-media-img-3 img { width: 240px; height: 284px; }
.rs-media-img-4 { top: -61px; left: 914px; width: 359px; height: 312px; }
.rs-media-img-4 img { width: 359px; height: 312px; }
.rs-media-blank { position: absolute; bottom: 10px; right: 18px; z-index: 2; }
.rs-media-blank img { width: 18px; height: 14px; display: block; }
.rs-office { position: relative; z-index: 1; }
.rs-office-ttl { font-size: 22px; font-weight: 700; color: #202020; margin: 0 0 24px 0; }
.rs-office-banners { display: flex; justify-content: space-between; }
.rs-office-banner { display: block; width: 371px; text-decoration: none; border: 0.8px solid rgb(228, 228, 228); }
.rs-office-banner img { width: 100%; height: 247px; object-fit: cover; display: block; }

/* ===== PROPERTYセクション ===== */
.ecola-property-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.ecola-property-list { display: flex; flex-direction: column; }
.ecola-property-card {
  display: flex; gap: 14px;
  text-decoration: none; color: inherit;
  padding: 14px 0;
  border-bottom: 1px solid var(--ecola-mid-gray);
  transition: opacity 0.2s; align-items: center;
}
.ecola-property-card:hover { opacity: 0.7; }
.ecola-property-card__image { width: 90px; height: 64px; flex-shrink: 0; overflow: hidden; }
.ecola-property-card__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ecola-property-card__sold {
  position: absolute; top: 0; left: 0;
  background: rgba(0,0,0,0.65); color: white;
  font-size: 0.58rem; padding: 2px 5px; letter-spacing: 0.03em;
}
.ecola-property-card__info { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.ecola-property-card__name { font-size: 0.85rem; font-weight: 500; line-height: 1.4; color: var(--ecola-black); }
.ecola-property-card__addr { font-size: 0.72rem; color: var(--ecola-gray); }
.ecola-property-card__price { font-size: 0.85rem; font-weight: 700; color: var(--ecola-black); }
.ecola-property-card__price--sold { color: #aaa !important; font-weight: 400 !important; }

/* ===== RECRUITセクション ===== */
.ecola-recruit {
  position: relative; min-height: 480px;
  display: flex; align-items: center; overflow: hidden;
}
.ecola-recruit__bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center; z-index: 0;
}
.ecola-recruit__bg::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.55); }
.ecola-recruit__content { position: relative; z-index: 1; padding: 80px 60px 80px 160px; }
.ecola-recruit__label { font-size: 0.72rem; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255,255,255,0.55); display: block; margin-bottom: 16px; }
.ecola-recruit__title { font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 700; color: var(--ecola-white); line-height: 1.25; margin: 0 0 20px; }
.ecola-recruit__desc { font-size: 0.925rem; color: rgba(255,255,255,0.75); line-height: 2; margin-bottom: 32px; }

/* ===== フッター (ef-*) ===== */
.ef-footer { font-family: inherit; }
.ef-main { background: rgb(32, 32, 32); width: 100%; }
.ef-wrap { max-width: 1209px; margin: 0 auto; padding: 0 20px; box-sizing: content-box; }
.ef-content { display: flex; align-items: flex-start; padding: 82px 0 60px; }
.ef-brand { width: 318px; flex-shrink: 0; padding-right: 43px; box-sizing: border-box; }
.ef-logo { display: block; margin-bottom: 27px; text-decoration: none; color: #ffffff; }
.ef-logo img { display: block; width: 98px; height: auto; }
.ef-logo svg { display: block; }
.ef-tel { font-family: 'Oswald', sans-serif; font-size: 20px; font-weight: 400; color: #fff; letter-spacing: 1.36px; line-height: 1.4; margin: 0 0 25px 0; }
.ef-time { font-size: 12px; color: #fff; margin: 0 0 161px 0; }
.ef-sns > p { font-size: 15px; color: #fff; margin: 0 0 20px 0; }
.ef-sns ul { list-style: none; padding: 0; margin: 0; display: flex; align-items: center; gap: 0; }
.ef-sns ul li { display: inline-block; margin-right: 27px; }
.ef-sns ul li:last-child { margin-right: 0; }
.ef-sns ul li a { display: block; text-decoration: none; }
.ef-sns ul li a img { display: block; height: 25px; width: auto; }
.ef-nav-col { width: 318px; flex-shrink: 0; padding-right: 43px; box-sizing: border-box; }
.ef-nav-col > ul { list-style: none; padding: 0; margin: 0; }
.ef-nav-col > ul > li { color: #fff; letter-spacing: 1.4px; margin-bottom: 32px; line-height: 1; }
.ef-nav-col > ul > li > a { color: #fff; text-decoration: none; font-size: 14px; letter-spacing: 1.4px; line-height: 1; }
.ef-nav-col > ul > li > a:hover { opacity: 0.7; }
.ef-nav-col > ul > li > span { color: #fff; font-size: 14px; letter-spacing: 1.4px; }
.ef-has-sub { margin-bottom: 0 !important; }
.ef-has-sub > ul { list-style: none; padding: 0; margin: 32px 0 0 0; }
.ef-has-sub > ul > li { color: #fff; letter-spacing: 1.4px; margin-bottom: 32px; line-height: 1; }
.ef-has-sub > ul > li > a { color: #fff; text-decoration: none; font-size: 13px; letter-spacing: 1.4px; line-height: 1; }
.ef-has-sub > ul > li > a::before { content: '－ '; }
.ef-has-sub > ul > li > a:hover { opacity: 0.7; }
.ef-last-col { width: 255px !important; flex-shrink: 0; padding-right: 0 !important; }
.ef-banners { padding-top: 48px; display: flex; flex-direction: column; gap: 6px; }
.ef-banners a { display: block; text-decoration: none; }
.ef-banners a img { width: 255px; height: auto; display: block; }
.ef-copy-bar { background: rgb(0, 0, 0); width: 100%; }
.ef-copy-content { display: flex; align-items: center; justify-content: space-between; padding: 48px 0; }
.ef-privacy { margin: 0; }
.ef-privacy a { color: #fff; text-decoration: none; font-size: 12px; letter-spacing: 1.4px; }
.ef-privacy a:hover { opacity: 0.7; }
.ef-copyright { color: #fff; font-size: 12px; letter-spacing: 1.4px; margin: 0; }

/* ===== PAGE TOP ===== */
.pt-totop { display: block; width: 100%; background: rgb(32, 32, 32); color: #fff; text-align: center; padding: 33px 0; text-decoration: none; font-size: 16px; letter-spacing: 0.8px; line-height: 1.15; transition: background 250ms cubic-bezier(0.215,0.61,0.355,1); }
.pt-totop:hover { background: rgb(55, 55, 55); color: #fff; }
.pt-totop span { display: inline-block; position: relative; }
.pt-totop span::before { content: ''; display: block; position: absolute; top: 12px; left: -20px; width: 7px; height: 7px; border-top: 2.4px solid #fff; border-right: 2.4px solid #fff; transform: matrix(0.707107, -0.707107, 0.707107, 0.707107, -4.7, -4.7); }

/* ===== レスポンシブ ===== */
@media (max-width: 1024px) {
  .ecola-container { padding: 0 40px 0 80px; }
  .ecola-hero__image-area { width: 58%; }
  .ecola-footer-top { grid-template-columns: 180px 1fr 1fr; gap: 36px; }
}
@media (max-width: 768px) {
  .sub-nav { display: none; }
  .open-btn-wrap { display: none; }
  .main-nav { width: 100%; }
  .main-nav .scr > nav { padding: 0 32px 0 32px; display: block; }
  .main-nav .list-wrap > ul { float: none; width: 100%; }
  .ecola-hero { flex-direction: column; height: auto; min-height: 0; }
  .ecola-hero__image-area { width: 100%; height: 72vw; min-height: 280px; position: relative; }
  .ecola-hero__right { display: none; }
  .ecola-container { padding: 0 20px; }
  .ecola-section { padding: 64px 0; }
  .sv-item { width: 100%; float: none; }
  #about { padding: 60px 0; }
  #about .about-wrap { min-height: auto; }
  #about .about-grade { display: none; }
  #about .about-catch { display: none; }
  #about .about-txt { font-size: 14px; }
  .ecola-service-grid { grid-template-columns: repeat(2, 1fr); }
  .sv-item { width: 50%; }
  .cs-imgs { left: 0; width: 100%; }
  .cs-img-item { flex: 0 0 100%; width: 100%; }
  .cs-text-wrap { width: 100%; }
  .cs-text { width: 100%; }
  .ecola-property-columns { grid-template-columns: 1fr; gap: 40px; }
  #pickup .pu-text-wrap { width: 100%; padding-top: 60vw; }
  #pickup .pu-imgs-area { left: 0; width: 100%; }
  #pickup .pu-text { position: relative; left: auto; bottom: auto; padding: 8% 8% 6% 8%; }
  #pickup .pu-paging { position: relative; right: auto; bottom: auto; width: 100%; justify-content: flex-start; padding: 16px 0 0; }
  #pickup .pu-head { line-height: 1; margin-bottom: 20px; }
  #pickup .pu-en { font-size: 24px; }
  #pickup .pu-title { font-size: 18px; }
  #pickup .pu-detail { font-size: 13px; }
  #news .news-wrap--top .news,
  #news .news-wrap--top .news:nth-child(1),
  #news .news-wrap--top .news:nth-child(2) { width: 100%; }
  #news .news-wrap--top { gap: 0; }
  #news .news-wrap--top .news { border-bottom: none; border-top: 0.8px solid #cccccc; }
  #news .news-wrap--top .news:first-child { border-top: 0.8px solid #cccccc; }
  #news .news-head { flex-direction: column; gap: 16px; }
  #news .news-head-tags { flex-wrap: wrap; }
  .ecola-recruit__content { padding: 60px 20px; }
  .ef-content { flex-direction: column; padding: 60px 0 48px; }
  .ef-brand { width: 100%; padding-right: 0; margin-bottom: 40px; }
  .ef-nav-col { width: 100% !important; padding-right: 0 !important; margin-bottom: 32px; }
  .ef-last-col { width: 100% !important; }
  .ef-banners a img { width: 100%; max-width: 255px; }
  .ef-copy-content { flex-direction: column; gap: 16px; padding: 32px 0; text-align: center; }
  .rs-section { padding: 60px 20px 70px 20px; }
  .rs-wrap { max-width: 100%; }
  .rs-heading { margin-bottom: 36px; }
  .rs-media-banner { height: auto; overflow: hidden; }
  .rs-media-imgs { display: none; }
  .rs-media-ttl-logo { position: static; width: 100%; height: auto; padding: 30px 0; justify-content: center; }
  .rs-media-ttl-logo img { width: 200px; }
  .rs-media-blank { display: none; }
  .rs-office-banners { flex-direction: column; gap: 20px; }
  .rs-office-banner { width: 100%; }
  .rs-office-banner img { height: auto; }
}

/* ============================================================
   会社概要ページ (page-company)
   ============================================================ */

/* Lightning上書き：会社概要はフルワイド */
.page-company .page-header,
.page-company .entry-header,
.page-company .entry-title { display: none !important; }
.page-company .site-body-container,
.page-company .main-section,
.page-company .entry,
.page-company .entry-body,
.page-company .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.page-company .breadcrumb,
.page-company .breadcrumb-list { display: none !important; }

/* ===== 会社概要ラッパー ===== */
.company-wrap {
  padding-left: 100px; /* sub-nav 幅 */
  box-sizing: border-box;
}

/* ===== ヒーロー H1 ===== */
.company-hero {
  font-weight: 400;
  margin: 0 0 120px;
  padding: 80px 0 0 8.6%;
  line-height: 1;
  color: #202020;
  font-size: 64px;
  letter-spacing: 0;
}
.company-hero .en {
  font-family: 'Oswald', sans-serif;
  font-size: 64px;
  letter-spacing: 0.06em;
  display: block;
}
.company-hero .ja {
  font-size: 14px;
  letter-spacing: 0.05em;
  display: block;
  margin-top: 10px;
}

/* ===== タブナビゲーション ===== */
.case-wrap {
  border: 0.8px solid #e6e6e6;
}
.company-tab-nav { }
.company-tab-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
}
.company-tab-nav li {
  flex: 1;
  background: #f3f3f3;
  cursor: pointer;
  border-right: 0.8px solid #e6e6e6;
  transition: background 0.2s;
}
.company-tab-nav li:last-child { border-right: none; }
.company-tab-nav li.active { background: #fff; }
.company-tab-nav li:hover { background: #ececec; }
.company-tab-nav li.active:hover { background: #fff; }
.company-tab-nav li p {
  font-size: 14px;
  color: #202020;
  text-align: center;
  line-height: 71px;
  margin: 0;
  padding: 0;
  letter-spacing: 0.04em;
}

/* ===== タブパネル共通 ===== */
.case-wrap .case {
  padding: 0 8.6% 8.6%;
  overflow: hidden;
}
.case-wrap .case h2 {
  font-size: 32px;
  font-weight: 700;
  color: #202020;
  padding-top: 72px;
  margin: 0 0 72px;
  line-height: 1.2;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
}
.case-wrap .case h3.big {
  font-size: 28px;
  font-weight: 700;
  color: #202020;
  margin: 0 0 28px;
  line-height: 1.3;
}

/* ===== 経営者メッセージ ===== */
.img-text { overflow: hidden; }
.img-text .img {
  float: right;
  width: 32%;
  margin: 0 0 20px 40px;
}
.img-text .img img { width: 100%; height: auto; display: block; }
.img-text p {
  font-size: 15px;
  line-height: 1.9;
  margin: 0 0 16px;
  color: #202020;
}
.img-text .name { font-size: 15px; font-weight: 400; }

/* ===== 経営理念 ===== */
.point-wrap { margin-bottom: 60px; }
.point {
  display: table;
  width: 100%;
  margin-bottom: 4%;
  table-layout: fixed;
}
.point .num {
  display: table-cell;
  width: 80px;
  vertical-align: middle;
}
.point .core {
  width: 64px;
  height: 64px;
  background: #3c715f;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.point .core .en {
  font-family: 'Oswald', sans-serif;
  font-size: 22px;
  color: #fff;
  line-height: 1;
  margin: 0;
  padding: 0;
}
.point .text {
  display: table-cell;
  vertical-align: middle;
  font-size: 18px;
  line-height: 1.75;
  color: #202020;
  padding-left: 24px;
}
.point .text p { margin: 0; }

/* 行動指針 */
.compass { padding-bottom: 20px; }
.compass .logo { margin-bottom: 40px; }
.compass .logo img { height: auto; }
.compass dl { margin: 0; }
.compass dl dt {
  font-family: 'Oswald', sans-serif;
  font-size: 22px;
  color: #202020;
  margin: 0 0 4px;
  letter-spacing: 0.05em;
}
.compass dl dt.en { font-size: 22px; }
.compass dl dd {
  font-size: 14px;
  line-height: 1.8;
  color: #202020;
  margin: 0 0 24px;
}

/* ===== 事業概要 dl ===== */
.case-2 dl {
  border-bottom: 0.8px solid #e6e6e6; /* 最終行の下線 */
  margin: 0;
  overflow: hidden; /* clearfix */
}
.case-2 dl dt {
  float: left;
  clear: left;
  width: 25%;
  border-top: 0.8px solid #e6e6e6; /* 各行の上線 */
  border-bottom: none;
  font-size: 15px;
  font-weight: 400;
  color: #202020;
  padding: 24px 20px 24px 0;
  box-sizing: border-box;
}
.case-2 dl dd {
  /* negative margin なし: ブロック要素のborderは全幅をカバー */
  /* padding-left = dt幅: floatが終わっても常にコンテンツが25%以降から始まる */
  padding: 24px 0 24px 25%;
  border-top: 0.8px solid #e6e6e6; /* 各行の上線（dtと同じY位置） */
  border-bottom: none;
  font-size: 15px;
  line-height: 1.8;
  color: #202020;
  box-sizing: border-box;
}
.case-2 dl dd a { color: #202020; text-decoration: underline; }

/* ===== 受賞歴・沿革 dl.type2 ===== */
.case-3 dl.type2 {
  overflow: hidden;
  margin-bottom: 60px;
}
.case-3 dl.type2 dt {
  float: left;
  clear: left;
  width: 160px;
  font-size: 14px;
  color: #202020;
  padding: 18px 0 18px 0;
  border-bottom: 0.8px solid #e6e6e6;
  box-sizing: border-box;
}
.case-3 dl.type2 dd {
  margin-left: 160px;
  font-size: 14px;
  line-height: 1.8;
  color: #202020;
  padding: 18px 0 18px 24px;
  border-bottom: 0.8px solid #e6e6e6;
  box-sizing: border-box;
}

/* ===== 社会活動 ===== */
.socialList { }
.social {
  display: flex;
  align-items: flex-start;
  margin-bottom: 48px;
  gap: 0;
}
.social:last-child { margin-bottom: 0; }
.social_img {
  width: 320px;
  flex-shrink: 0;
}
.social_img img { width: 100%; height: auto; display: block; }
.social_text {
  flex: 1;
  padding-left: 40px;
}
.social_ttl {
  font-size: 20px;
  font-weight: 700;
  color: #202020;
  margin: 0 0 12px;
  line-height: 1.4;
  letter-spacing: 0.03em;
}
.social_desc {
  font-size: 14px;
  line-height: 1.9;
  color: #202020;
  margin: 0;
}

/* ===== Google Map ボタン (.btn.en) ===== */
.case-wrap .btn {
  position: relative;
  display: inline-block;
  border: 0.8px solid #e6e6e6;
  padding: 4px 46px 5px 30px;
  font-family: 'Oswald', sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
  color: #202020;
  letter-spacing: 0.02em;
  line-height: 1.875;
  margin: 13px 0 15px;
  text-decoration: none !important;
}
.case-wrap .btn::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  width: 10px;
  height: 8px;
  background: url('https://ecola.co.jp/wp-content/themes/ecola23-10/assets/imgs/common/blank.png') no-repeat center / contain;
}
.case-wrap .btn:hover { opacity: 0.7; }

/* ===== 会社案内 PDFリンク ===== */
#pdf { color: #202020; text-decoration: none; font-size: 15px; }
#pdf img { vertical-align: middle; margin-left: 6px; }
#pdf:hover { opacity: 0.7; }

/* ===== 業務提携バナー ===== */
.case-wrap .banner {
  display: inline-block;
  margin-top: 36px;
  text-decoration: none;
}
.case-wrap .banner img {
  display: block;
  height: auto;
  max-width: 100%;
}

/* ===== 会社概要 レスポンシブ ===== */
@media (max-width: 768px) {
  .company-wrap { padding-left: 0; }
  .company-hero { padding: 60px 20px 0; font-size: 44px; margin-bottom: 60px; }
  .company-hero .en { font-size: 44px; }
  .case-wrap .case { padding: 0 5% 10%; }
  .case-wrap .case h2 { font-size: 22px; padding-top: 48px; margin-bottom: 40px; }
  .case-2 dl dt { width: 36%; padding: 16px 12px 16px 0; }
  .case-2 dl dd { padding: 16px 0 16px 36%; font-size: 12px; }
  .case-wrap .btn { font-size: 1rem; padding: 4px 36px 5px 20px; }
}

/* ============================================================
   共通ページスタイル（事業紹介 / 施工事例 / お問い合わせ）
   ============================================================ */

/* ---- 共通レイアウト ---- */
.pg-inner { max-width: 1100px; margin: 0 auto; padding: 0 40px; box-sizing: border-box; }
.pg-sec { padding: 80px 0; }
.pg-sec__title {
  font-family: 'Oswald', sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 3px;
  margin-bottom: 48px;
  position: relative;
  padding-bottom: 0;
  border: none !important;
}
.pg-sec__title::after,
.pg-sec__title::before {
  display: none;
}
/* ---- カード内・共通見出しの青線・黒線を除去 ---- */
.pg-feature__title,
.pg-cat-card__ja,
.pg-work-card__body h3,
.pg-contact-intro p,
.page-service h2,
.page-service h3,
.page-case h2,
.page-case h3,
.page-contact h2,
.page-contact h3 {
  border: none !important;
}
.page-service h2::before, .page-service h2::after,
.page-service h3::before, .page-service h3::after,
.page-case h2::before, .page-case h2::after,
.page-case h3::before, .page-case h3::after,
.page-contact h2::before, .page-contact h2::after,
.page-contact h3::before, .page-contact h3::after {
  display: none !important;
}

/* ---- ページヒーロー ---- */
.pg-hero {
  background-size: cover;
  background-position: center;
  height: 340px;
  display: flex;
  align-items: center;
  position: relative;
}
.pg-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.48);
}
.pg-hero__inner { position: relative; z-index: 1; padding: 0 40px; color: #fff; }
.pg-hero__en {
  font-family: 'Oswald', sans-serif;
  font-size: 52px;
  letter-spacing: 6px;
  margin: 0 0 4px;
  line-height: 1;
}
.pg-hero__ja { font-size: 15px; letter-spacing: 4px; margin: 0; font-weight: 400; }

/* ---- 強みセクション ---- */
.pg-strengths__wrap { display: flex; gap: 64px; align-items: center; }
.pg-strengths__text { flex: 1; }
.pg-strengths__text p { line-height: 1.95; margin-bottom: 18px; color: #444; }
.pg-strengths__img { flex: 1; }
.pg-strengths__img img { width: 100%; display: block; }

/* ---- 3つの特徴 ---- */
.pg-features { background: #f8f8f8; }
.pg-features__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.pg-feature {
  background: #fff;
  padding: 40px 32px;
  box-shadow: 0 2px 12px rgba(0,0,0,.05);
}
.pg-feature__num {
  font-family: 'Oswald', sans-serif;
  font-size: 44px;
  color: #ddd;
  display: block;
  margin-bottom: 12px;
  line-height: 1;
}
.pg-feature__title { font-size: 18px; margin: 0 0 16px; }
.pg-feature p { font-size: 14px; color: #555; line-height: 1.85; margin: 0; }

/* ---- 事業カテゴリーグリッド ---- */
.pg-cats__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pg-cat-card {
  display: block;
  text-decoration: none;
  color: inherit;
  border: 1px solid #e8e8e8;
  transition: box-shadow 0.2s, transform 0.2s;
  overflow: hidden;
}
.pg-cat-card:hover { box-shadow: 0 8px 28px rgba(0,0,0,.12); transform: translateY(-4px); }
.pg-cat-card__img img { width: 100%; height: 220px; object-fit: cover; display: block; }
.pg-cat-card__body { padding: 20px 22px 24px; }
.pg-cat-card__en {
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: 2px;
  color: #aaa;
  margin: 0 0 4px;
}
.pg-cat-card__ja { font-size: 17px; margin: 0 0 10px; }
.pg-cat-card__text { font-size: 13px; color: #666; line-height: 1.75; margin: 0 0 14px; }
.pg-cat-card__more { font-size: 12px; color: #1a1a1a; letter-spacing: 1px; }

/* ---- CTAセクション ---- */
.pg-cta-sec { background: #1a1a1a; color: #fff; }
.pg-cta-sec__inner { text-align: center; padding: 60px 40px; }
.pg-cta-sec__inner p { margin-bottom: 28px; font-size: 15px; line-height: 1.8; }
.pg-cta-btn {
  display: inline-block;
  padding: 16px 52px;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  letter-spacing: 3px;
  transition: background 0.22s, color 0.22s;
}
.pg-cta-btn:hover { background: #fff; color: #1a1a1a; }

/* ---- 施工事例フィルター ---- */
.pg-filter { display: flex; gap: 10px; flex-wrap: wrap; margin: 40px 0 48px; }
.pg-filter__tag {
  padding: 7px 22px;
  border: 1px solid #ccc;
  font-size: 13px;
  letter-spacing: 1px;
  cursor: pointer;
  transition: all 0.2s;
}
.pg-filter__tag--active,
.pg-filter__tag:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }

/* ---- 施工事例グリッド ---- */
.pg-works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  margin-bottom: 80px;
}
.pg-work-card { display: block; text-decoration: none; color: inherit; }
.pg-work-card__img { overflow: hidden; }
.pg-work-card__img img {
  width: 100%; height: 240px;
  object-fit: cover; display: block;
  transition: transform 0.35s;
}
.pg-work-card:hover .pg-work-card__img img { transform: scale(1.05); }
.pg-work-card__body { padding: 16px 0 4px; }
.pg-work-card__body h3 { font-size: 15px; margin: 0 0 6px; font-weight: 500; }
.pg-work-card__area { font-size: 12px; color: #999; margin: 0 0 10px; }
.pg-work-card__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.pg-work-card__tags span {
  font-size: 11px;
  padding: 2px 9px;
  border: 1px solid #ccc;
  color: #777;
}

/* ---- お問い合わせ ---- */
.page-contact .pg-inner { max-width: 800px; padding-top: 64px; padding-bottom: 96px; }
.pg-contact-intro { margin-bottom: 52px; }
.pg-contact-intro p { line-height: 1.9; margin-bottom: 14px; color: #444; }
.pg-contact-tel {
  font-family: 'Oswald', sans-serif;
  font-size: 30px;
  letter-spacing: 2px;
  color: #1a1a1a;
  margin-top: 20px !important;
}
.pg-form__row { display: flex; flex-direction: column; margin-bottom: 24px; }
.pg-form__row label { font-size: 14px; margin-bottom: 8px; font-weight: 600; }
.pg-form__req {
  background: #c0392b;
  color: #fff;
  font-size: 11px;
  padding: 1px 6px;
  margin-left: 8px;
  font-weight: 400;
  vertical-align: middle;
}
.pg-form__row input,
.pg-form__row select,
.pg-form__row textarea {
  border: 1px solid #ddd;
  padding: 12px 16px;
  font-size: 14px;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
  border-radius: 0;
  appearance: none;
  background: #fff;
}
.pg-form__row input:focus,
.pg-form__row select:focus,
.pg-form__row textarea:focus { outline: none; border-color: #1a1a1a; }
.pg-form__privacy { margin: 36px 0; }
.pg-form__privacy > p { font-weight: 600; margin-bottom: 12px; font-size: 14px; }
.pg-form__privacy-scroll {
  border: 1px solid #ddd;
  padding: 16px;
  font-size: 13px;
  color: #666;
  line-height: 1.85;
  max-height: 120px;
  overflow-y: auto;
  margin-bottom: 16px;
  background: #fafafa;
}
.pg-form__agree { display: flex; align-items: center; gap: 10px; font-size: 14px; cursor: pointer; }
.pg-form__submit { text-align: center; margin-top: 44px; }
.pg-form__btn {
  background: #1a1a1a;
  color: #fff;
  border: none;
  padding: 16px 80px;
  font-size: 15px;
  cursor: pointer;
  letter-spacing: 3px;
  font-family: inherit;
  transition: opacity 0.2s;
}
.pg-form__btn:hover { opacity: 0.72; }

/* ---- レスポンシブ ---- */
@media (max-width: 900px) {
  .pg-cats__grid { grid-template-columns: repeat(2, 1fr); }
  .pg-works-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .pg-inner { padding: 0 20px; }
  .pg-sec { padding: 48px 0; }
  .pg-hero { height: 220px; }
  .pg-hero__en { font-size: 34px; }
  .pg-hero__inner { padding: 0 20px; }
  .pg-strengths__wrap { flex-direction: column; gap: 32px; }
  .pg-features__grid { grid-template-columns: 1fr; }
  .pg-cats__grid { grid-template-columns: 1fr; }
  .pg-works-grid { grid-template-columns: 1fr; }
  .pg-cta-sec__inner { padding: 48px 20px; }
}

/* ============================================================
   事業紹介ページ（/service/）リデザイン
   ============================================================ */

/* ---- 全幅レイアウト（サイドバー除去） ---- */
/* コンテナを全幅に */
.page-id-8 .site-body-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
/* メインカラムを100%幅に・フロート解除 */
.page-id-8 .main-section {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* サイドバーを非表示 */
.page-id-8 .sub-section { display: none !important; }
/* sv-wrapを全幅に */
.page-id-8 .sv-wrap { max-width: 100% !important; }

/* WordPress テーマのページタイトルバナー・パンくずを非表示 */
.page-id-8 .page-header,
.page-id-8 .breadcrumb { display: none !important; }
.page-id-8 .entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* ---- ビジネスページヘッダー（白背景・テキストのみ） ---- */
.biz-ph {
  padding: 80px 0 64px;
  background: #fff;
  border-bottom: 1px solid #ebebeb;
}
.biz-ph__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
}
.biz-ph__en {
  font-family: 'Oswald', sans-serif;
  font-size: 64px;
  font-weight: 700;
  letter-spacing: 8px;
  line-height: 1;
  color: #1a1a1a;
  margin: 0 0 10px;
  display: block;
}
.biz-ph__ja {
  font-size: 14px;
  color: #888;
  letter-spacing: 4px;
  margin: 0;
  display: block;
}

/* ---- 特徴アイコン（黒丸SVG） ---- */
.biz-feat__icon {
  width: 64px;
  height: 64px;
  margin-bottom: 20px;
  display: block;
}

/* ---- 事業カテゴリ sv-wrap の上下マージン ---- */
.page-service .sv-wrap { margin: 0; }

@media (max-width: 768px) {
  .biz-ph { padding: 48px 0 40px; }
  .biz-ph__inner { padding: 0 20px; }
  .biz-ph__en { font-size: 42px; letter-spacing: 5px; }
}

/* ============================================================
   施工事例ページ（/case/）リデザイン
   ============================================================ */

/* ---- 全幅レイアウト（page-id-10） ---- */
.page-id-10 .site-body-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
.page-id-10 .main-section {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page-id-10 .sub-section { display: none !important; }
.page-id-10 .page-header,
.page-id-10 .breadcrumb { display: none !important; }
.page-id-10 .entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* ---- ギャラリーページヘッダー（Filter付き） ---- */
.gl-ph__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 40px 60px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}
.gl-ph__left { display: flex; align-items: baseline; gap: 16px; }

/* ---- Filter ボタン ---- */
.gl-filter-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #ccc;
  padding: 10px 24px;
  font-size: 13px;
  letter-spacing: 2px;
  cursor: pointer;
  color: #1a1a1a;
  min-width: 200px;
  justify-content: space-between;
  user-select: none;
}
.gl-filter-btn__arrow { font-size: 11px; color: #999; }

/* ---- カードグリッドエリア ---- */
.gl-outer {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px 80px;
}
.gl-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px 32px;
}

/* ---- カード ---- */
.gl-card {
  display: block;
  text-decoration: none;
  color: inherit;
}
.gl-card:hover .gl-card__img img { transform: scale(1.05); }

/* ---- カード画像 ---- */
.gl-card__img {
  position: relative;
  overflow: hidden;
  background: #eee;
}
.gl-card__img::before {
  content: '';
  display: block;
  padding-top: 66.67%; /* 3:2 */
}
.gl-card__img img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

/* ---- NEW バッジ ---- */
.gl-badge {
  position: absolute;
  top: 0; left: 0;
  background: #3a6b4a;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  padding: 5px 12px;
  z-index: 1;
}

/* ---- カードテキスト ---- */
.gl-card__body { padding: 14px 0 0; }
.gl-card__cat {
  font-size: 12px;
  color: #888;
  margin: 0 0 8px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.gl-card__cat-sep { color: #bbb; font-size: 10px; }
.gl-card__title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  margin: 0 0 8px;
  color: #1a1a1a;
  border: none !important;
}
.gl-card__title::before,
.gl-card__title::after { display: none !important; }
.gl-card__area {
  font-size: 12px;
  color: #999;
  margin: 0 0 8px;
}
.gl-card__tags {
  font-size: 12px;
  color: #777;
  line-height: 1.8;
  margin: 0;
}

/* ---- レスポンシブ ---- */
@media (max-width: 960px) {
  .gl-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .gl-ph__inner { flex-direction: column; align-items: flex-start; gap: 20px; padding: 48px 20px 40px; }
  .gl-outer { padding: 0 20px 60px; }
  .gl-grid { grid-template-columns: 1fr; gap: 36px; }
}

/* ============================================================
   お問い合わせページ（/contact/）リデザイン
   ============================================================ */

/* ---- 全幅レイアウト（page-id-14） ---- */
.page-id-14 .site-body-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
.page-id-14 .main-section {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page-id-14 .sub-section { display: none !important; }
.page-id-14 .page-header,
.page-id-14 .breadcrumb { display: none !important; }
.page-id-14 .entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* ---- フォームラッパー ---- */
.ct-wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 40px 80px;
}

/* ---- フォーム行（2カラム：ラベル左・入力右） ---- */
.ct-row {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid #ebebeb;
  padding: 24px 0;
}
.ct-row:first-child { border-top: 1px solid #ebebeb; }

.ct-label {
  width: 30%;
  min-width: 200px;
  padding-top: 12px;
  font-size: 14px;
  font-weight: 500;
  color: #1a1a1a;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.ct-req {
  display: inline-block;
  background: #3a6b4a;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  padding: 2px 8px;
  flex-shrink: 0;
}

.ct-control { flex: 1; }

.ct-control input[type="text"],
.ct-control input[type="email"],
.ct-control input[type="tel"],
.ct-control input[type="number"],
.ct-control textarea {
  width: 100%;
  background: #f2f2f2;
  border: none;
  padding: 14px 16px;
  font-size: 14px;
  font-family: inherit;
  color: #1a1a1a;
  box-sizing: border-box;
  border-radius: 0;
  appearance: none;
  outline: none;
}
.ct-control input:focus,
.ct-control textarea:focus { background: #e8e8e8; }
.ct-control textarea { resize: vertical; min-height: 180px; }

/* ---- チェックボックスグリッド ---- */
.ct-checkbox-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 32px;
  padding-top: 4px;
}
.ct-checkbox-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  cursor: pointer;
}
.ct-checkbox-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  flex-shrink: 0;
  accent-color: #3a6b4a;
}

/* ---- 送信ボタン ---- */
.ct-submit {
  padding: 36px 0 0;
}
.ct-submit-btn {
  display: block;
  width: 100%;
  background: #1a1a1a;
  color: #fff;
  border: none;
  padding: 20px;
  font-size: 15px;
  letter-spacing: 4px;
  font-family: inherit;
  cursor: pointer;
  transition: opacity 0.2s;
}
.ct-submit-btn:hover { opacity: 0.75; }

/* ---- 注意事項 ---- */
.ct-notes {
  max-width: 960px;
  margin: 48px auto 0;
  padding: 0 40px 60px;
  font-size: 13px;
  color: #666;
  line-height: 2;
}
.ct-notes p { margin-bottom: 6px; }
.ct-notes .ct-mail { color: #1a1a1a; font-weight: 500; }

/* ---- TELバー（黒背景） ---- */
.ct-tel-bar {
  background: #1a1a1a;
  color: #fff;
  text-align: center;
  padding: 48px 40px 56px;
}
.ct-tel-bar__label {
  font-size: 13px;
  letter-spacing: 4px;
  margin-bottom: 16px;
  opacity: 0.7;
  display: block;
}
.ct-tel-bar__num {
  font-family: 'Oswald', sans-serif;
  font-size: 48px;
  font-weight: 400;
  letter-spacing: 4px;
  line-height: 1;
}

/* ---- レスポンシブ ---- */
@media (max-width: 768px) {
  .ct-wrap, .ct-notes { padding-left: 20px; padding-right: 20px; }
  .ct-row { flex-direction: column; gap: 12px; }
  .ct-label { width: 100%; padding-top: 0; }
  .ct-checkbox-grid { grid-template-columns: 1fr; }
  .ct-tel-bar__num { font-size: 32px; }
}

/* ============================================================
   ニュース一覧（/news/ : home.php テンプレート）
   ecola.co.jp/news/ に完全準拠
   ============================================================ */

/* ---- 外側コンテナ ---- */
.nw-section {
  max-width: 1420px;
  margin: 0 auto;
  padding: 0 106px 80px;
}

/* ---- ページヘッダー行（タイトル＋Filter ボタン） ---- */
.nw-top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding-top: 97px;
  margin-bottom: 72px;
}

/* ---- タイトル ---- */
.nw-title {
  font-size: 0;
  margin: 0;
  padding: 0;
  border: none !important;
}
.nw-title::before,
.nw-title::after { display: none !important; }
.nw-title__en {
  font-family: 'Oswald', sans-serif;
  font-size: 64px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #202020;
  line-height: 1;
}
.nw-title__ja {
  font-size: 13px;
  letter-spacing: 3px;
  color: #202020;
  margin-left: 20px;
  line-height: 1;
  vertical-align: middle;
}

/* ---- Filter ボタン ---- */
.nw-filters {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 6px; /* ベースライン微調整 */
}
.nw-filter {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 0.8px solid #ccc;
  padding: 14px 20px;
  min-width: 240px;
  cursor: pointer;
  gap: 32px;
}
.nw-filter__text {
  font-family: 'Oswald', sans-serif;
  font-size: 17.6px;
  letter-spacing: 0.88px;
  color: #202020;
}
.nw-filter__arrow {
  font-size: 10px;
  color: #888;
}

/* ---- ニュースグリッド ---- */
.nw-grid {
  display: flex;
  flex-wrap: wrap;
}

/* ---- グリッドアイテム（各ニュース） ---- */
.nw-item {
  width: calc(100% / 3);
  border-top: 0.8px solid #ccc;
  box-sizing: border-box;
}

/* ---- カードリンク ---- */
.nw-link {
  display: block;
  padding: 30px;
  border-right: 0.8px solid #ccc;
  border-bottom: 0.8px solid #ccc;
  text-decoration: none;
  color: inherit;
  height: 100%;
  box-sizing: border-box;
  transition: opacity 0.2s;
}
.nw-link:hover { opacity: 0.72; }

/* ---- 画像＋日付 横並び ---- */
.nw-info {
  display: flex;
  align-items: flex-start;
}

/* ---- 画像 ---- */
.nw-img {
  flex-shrink: 0;
  width: 244px;
  height: 183px;
  overflow: hidden;
  display: block;
  background: #eee;
}
.nw-img img {
  width: 244px;
  height: 183px;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}
.nw-link:hover .nw-img img { transform: scale(1.04); }

/* ---- 日付列（画像右） ---- */
.nw-date {
  flex: 1;
  padding-left: 10px;
  display: block;
}

/* ---- 日付 MM.DD ---- */
.nw-md {
  font-family: 'Oswald', sans-serif;
  font-size: 28px;
  font-weight: 400;
  color: #202020;
  letter-spacing: 2px;
  line-height: 1.2;
  display: block;
}

/* ---- 年 YYYY ---- */
.nw-year {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 400;
  color: #b6b6b6;
  letter-spacing: 1px;
  display: block;
  line-height: 1.3;
}

/* ---- カテゴリタグ ---- */
.nw-tag {
  display: inline-flex;
  align-items: center;
  background: #70a2b2;
  color: #fff;
  font-size: 12px;
  padding: 0 8px;
  border-radius: 30px;
  white-space: nowrap;
  margin-top: 3px;
  line-height: 22px;
}

/* ---- タイトル（カード下部） ---- */
.nw-exp {
  display: block;
  font-size: 14.4px;
  color: #202020;
  line-height: 1.75;
  margin-top: 12px;
}

/* ---- ページネーション ---- */
.nw-paging {
  text-align: center;
  padding-top: 75px;
  font-family: 'Oswald', sans-serif;
}
.nw-pg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 62px;
  height: 62px;
  font-family: 'Oswald', sans-serif;
  font-size: 17.6px;
  letter-spacing: 1px;
  color: #202020;
  text-decoration: none;
  margin: 0 4px;
}
.nw-pg--cur {
  background: #202020;
  color: #fff;
}
.nw-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-size: 17.6px;
  color: #202020;
  text-decoration: none;
  margin-left: 38px;
}

/* ---- レスポンシブ ---- */
@media (max-width: 1100px) {
  .nw-section { padding: 0 40px 80px; }
  .nw-top { padding-top: 72px; margin-bottom: 56px; }
}
@media (max-width: 900px) {
  .nw-item { width: 50%; }
}
@media (max-width: 640px) {
  .nw-section { padding: 0 20px 60px; }
  .nw-top { flex-direction: column; align-items: flex-start; gap: 24px; padding-top: 48px; margin-bottom: 40px; }
  .nw-title__en { font-size: 48px; }
  .nw-filters { width: 100%; }
  .nw-filter { min-width: 0; flex: 1; }
  .nw-item { width: 100%; }
  .nw-link { padding: 20px; }
  .nw-img { width: 180px; height: 135px; }
  .nw-img img { width: 180px; height: 135px; }
  .nw-md { font-size: 22px; }
  .nw-year { font-size: 16px; }
}

/* ============================================================
   採用情報ページ（/recruit/ : page-id-13）
   ecola.co.jp/recruit/ に完全準拠
   ============================================================ */

/* ---- 全幅レイアウト ---- */
.page-id-13 .site-body-container {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
}
.page-id-13 .main-section {
  float: none !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.page-id-13 .sub-section { display: none !important; }
.page-id-13 .page-header,
.page-id-13 .breadcrumb { display: none !important; }
.page-id-13 .entry-content { padding-top: 0 !important; margin-top: 0 !important; }

/* ---- 見出し装飾をリセット ---- */
.page-recruit h1,
.page-recruit h2,
.page-recruit h3,
.page-recruit h4 {
  border: none !important;
  background: none !important;
}
.page-recruit h1::before, .page-recruit h1::after,
.page-recruit h2::before, .page-recruit h2::after,
.page-recruit h3::before, .page-recruit h3::after,
.page-recruit h4::before, .page-recruit h4::after { display: none !important; }

/* ---- ページヘッダー ---- */
.rc-page-header {
  max-width: 1420px;
  margin: 0 auto;
  padding: 0 106px;
  box-sizing: border-box;
}
.rc-header-inner {
  padding-top: 75px;
  margin-bottom: 137px;
}
.rc-h1 {
  font-size: 0;
  margin: 0;
  padding: 0;
  line-height: 1;
}
.rc-h1__en {
  font-family: 'Oswald', sans-serif;
  font-size: 64px;
  font-weight: 700;
  letter-spacing: 3px;
  color: #202020;
  line-height: 1;
  display: inline;
}
.rc-h1__ja {
  font-size: 14.4px;
  letter-spacing: 0.864px;
  color: #202020;
  display: inline;
  line-height: 1;
}

/* ---- タブ＋コンテンツ ラッパー ---- */
.rc-section {
  border-top: 0.8px solid #e6e6e6;
}
.rc-wrap {
  max-width: 1420px;
  margin: 0 auto;
  padding: 0 106px;
  box-sizing: border-box;
}

/* ---- タブナビゲーション ---- */
.rc-tab-nav { margin: 0; }
.rc-tab-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
}
.rc-tab {
  float: left;
  width: 50%;
  height: 70px;
  text-align: center;
  box-sizing: border-box;
}
.rc-tab p {
  margin: 0;
  height: 70px;
  line-height: 70px;
  font-size: 16px;
  color: #202020;
  background: #f3f3f3;
  cursor: pointer;
  letter-spacing: 0.04em;
}
.rc-tab--active p {
  background: #fff;
}

/* ---- ケース（タブコンテンツ） ---- */
.rc-case {
  display: block;
  padding: 0 104px 106px;
  box-sizing: border-box;
}
.rc-case--hidden {
  display: none;
}

/* ---- H2 ---- */
.rc-h2 {
  font-size: 38.4px;
  font-weight: 700;
  color: #202020;
  margin: 0;
  padding-top: 80px;
  margin-bottom: 77px;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.rc-h2--minmb {
  margin-bottom: 24px;
}

/* ---- H3 ---- */
.rc-h3 {
  font-size: 28.8px;
  font-weight: 700;
  color: #202020;
  margin: 0 0 28px;
  line-height: 1.45;
  letter-spacing: 0.02em;
}

/* ---- H4 ---- */
.rc-h4 {
  font-size: 25.6px;
  font-weight: 700;
  color: #202020;
  margin: 0 0 40px;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

/* ---- 本文段落 ---- */
.rc-p {
  font-size: 16px;
  line-height: 1.9;
  color: #202020;
  margin: 0 0 15px;
}

/* ---- DLテーブル ---- */
.rc-dl {
  overflow: hidden;
  margin: 0 0 42px;
  padding: 0;
}
.rc-dl dt {
  float: left;
  clear: left;
  width: 255px;
  padding: 24.5px 0 24.5px 6px;
  border-top: 0.8px solid #e6e6e6;
  font-size: 16px;
  color: #202020;
  font-weight: 400;
  box-sizing: border-box;
  margin: 0;
}
.rc-dl dd {
  float: left;
  width: calc(100% - 255px);
  padding: 24.5px 0 24.5px 24px;
  border-top: 0.8px solid #e6e6e6;
  font-size: 16px;
  color: #202020;
  line-height: 1.75;
  box-sizing: border-box;
  margin: 0;
}

/* ---- お問い合わせボタン ---- */
.rc-contact-btn {
  display: block;
  width: 100%;
  height: 96px;
  background: #202020;
  color: #fff;
  font-size: 32px;
  text-align: center;
  line-height: 96px;
  text-decoration: none;
  margin-bottom: 75px;
  letter-spacing: 0.04em;
  transition: opacity 0.2s;
  box-sizing: border-box;
}
.rc-contact-btn:hover {
  opacity: 0.78;
  color: #fff;
}

/* ---- レスポンシブ ---- */
@media (max-width: 1200px) {
  .rc-page-header { padding: 0 60px; }
  .rc-wrap { padding: 0 60px; }
  .rc-case { padding: 0 40px 80px; }
  .rc-h1__en { font-size: 52px; }
}
@media (max-width: 900px) {
  .rc-page-header { padding: 0 40px; }
  .rc-header-inner { padding-top: 56px; margin-bottom: 80px; }
  .rc-wrap { padding: 0 40px; }
  .rc-case { padding: 0 0 72px; }
  .rc-h1__en { font-size: 44px; }
  .rc-h2 { font-size: 28px; padding-top: 56px; margin-bottom: 48px; }
  .rc-h2--minmb { margin-bottom: 18px; }
  .rc-h3 { font-size: 22px; margin-bottom: 20px; }
  .rc-h4 { font-size: 20px; margin-bottom: 28px; }
  .rc-contact-btn { font-size: 22px; height: 72px; line-height: 72px; }
  .rc-dl dt { width: 160px; }
  .rc-dl dd { width: calc(100% - 160px); }
}
@media (max-width: 640px) {
  .rc-page-header { padding: 0 20px; }
  .rc-header-inner { padding-top: 40px; margin-bottom: 56px; }
  .rc-wrap { padding: 0 20px; }
  .rc-case { padding: 0 0 56px; }
  .rc-h1__en { font-size: 36px; letter-spacing: 1px; }
  .rc-h2 { font-size: 22px; padding-top: 44px; margin-bottom: 36px; }
  .rc-h3 { font-size: 18px; }
  .rc-h4 { font-size: 17px; margin-bottom: 20px; }
  .rc-p { font-size: 14px; }
  .rc-dl dt {
    float: none;
    clear: none;
    width: 100%;
    padding: 16px 0 4px 6px;
    border-top: 0.8px solid #e6e6e6;
    font-weight: 700;
  }
  .rc-dl dd {
    float: none;
    width: 100%;
    padding: 0 0 16px 6px;
    border-top: none;
    font-size: 14px;
  }
  .rc-contact-btn { font-size: 16px; height: 60px; line-height: 60px; margin-bottom: 48px; }
  .rc-tab p { font-size: 14px; }
}

/* ---- 社員紹介グリッド ---- */
.rc-staff-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 48px 40px;
  padding-bottom: 40px;
}
.rc-staff {
  width: calc(50% - 20px);
  box-sizing: border-box;
  display: flex;
  gap: 28px;
  align-items: flex-start;
}
.rc-staff__img {
  flex-shrink: 0;
  width: 160px;
  height: 160px;
  overflow: hidden;
}
.rc-staff__img img {
  width: 160px;
  height: 160px;
  object-fit: cover;
  display: block;
}
.rc-staff__info {
  flex: 1;
}
.rc-staff__name {
  font-size: 20px;
  font-weight: 700;
  color: #202020;
  margin: 0 0 4px;
  line-height: 1.3;
}
.rc-staff__role {
  font-size: 13px;
  color: #888;
  margin: 0 0 20px;
  letter-spacing: 0.04em;
}
.rc-staff__dl {
  overflow: hidden;
  margin: 0;
  padding: 0;
}
.rc-staff__dl dt {
  float: left;
  clear: left;
  width: 72px;
  padding: 10px 0;
  border-top: 0.8px solid #e6e6e6;
  font-size: 13px;
  color: #202020;
  font-weight: 400;
  box-sizing: border-box;
  margin: 0;
}
.rc-staff__dl dd {
  float: left;
  width: calc(100% - 72px);
  padding: 10px 0 10px 12px;
  border-top: 0.8px solid #e6e6e6;
  font-size: 13px;
  color: #202020;
  line-height: 1.6;
  box-sizing: border-box;
  margin: 0;
}
@media (max-width: 900px) {
  .rc-staff { width: 100%; }
}
@media (max-width: 640px) {
  .rc-staff-grid { gap: 36px 0; }
  .rc-staff__img { width: 120px; height: 120px; }
  .rc-staff__img img { width: 120px; height: 120px; }
  .rc-staff__name { font-size: 17px; }
}
