/* ===========================
   リセット・ベース
   設計基準幅: 375px
   最大幅: 620px
   clamp(min, vw換算, max) でスケール
   =========================== */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: clamp(70px, 18.67vw, 115.73px);
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  background: #fff;
  color: #333;
  /* ヘッダー高さ分の余白: clamp(70px, 18.67vw, 115.7px) */
  padding-top: clamp(70px, 18.67vw, 115.73px);
}

/* ===========================
   ヘッダー
   =========================== */
.site-header {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 620px;
  /* height: 70px @ 375px → 115.73px @ 620px */
  height: clamp(70px, 18.67vw, 115.73px);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* padding-left: 36px @ 375px → 59.5px @ 620px */
  padding-left: clamp(36px, 9.6vw, 59.52px);
  /* padding-right: 12px @ 375px → 19.8px @ 620px */
  padding-right: clamp(12px, 3.2vw, 19.84px);
  z-index: 1000;
}

/* ロゴ */
.header-logo {
  display: block;
  flex-shrink: 0;
}

.header-logo img {
  /* width: 75.76px @ 375px → 125.25px @ 620px */
  width: clamp(75.76px, 20.2vw, 125.25px);
  height: auto;
  display: block;
}

/* ボタン群 */
.header-btns {
  display: flex;
  align-items: center;
  /* gap: 6px @ 375px → 9.9px @ 620px */
  gap: clamp(6px, 1.6vw, 9.92px);
}

/* ===========================
   メインビジュアル
   =========================== */
.mainvisual {
  width: 100%;
  max-width: 620px;
  margin: 0 auto;
  display: block;
  line-height: 0;
}

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

/* ===========================
   Concept
   =========================== */
.concept {
  background: #f8f5f0;
  max-width: 620px;
  margin: 0 auto;
  /* padding top/bottom: 40px @ 375px → 66px @ 620px */
  padding: clamp(40px, 10.67vw, 66.13px) 0 clamp(50px, 13.33vw, 82.67px);
}

/* タイトルブロック */
.concept-heading {
  text-align: center;
  margin-bottom: clamp(28px, 7.47vw, 46.29px);
}

.concept-heading + .concept-body {
  margin-top: 0;
}

/* セクション英語ラベル（CONCEPT / ABOUT LA ESTRO） */
.sec-en-label {
  font-family: 'EB Garamond', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #8f810c;
  letter-spacing: 0.12em;
  line-height: 1.45;
  margin-bottom: clamp(6px, 1.6vw, 9.92px);
}

/* 日本語大見出し */
.sec-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 5.33vw, 33.07px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: normal;
  display: inline-block;
  background: linear-gradient(transparent 62%, #fff 62%);
}

/* 句読点の字間を詰める */
.jp-comma {
  letter-spacing: -0.35em;
}

/* イタリック英語サブタイトル */
.sec-en-sub {
  font-family: 'EB Garamond', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-style: italic;
  color: #999;
  letter-spacing: 0.12em;
  line-height: 1.45;
  margin-top: clamp(8px, 2.13vw, 14.0px);
}

/* タイトル3はラベルなし、少し余白多め */
.concept-heading--large {
  margin-top: clamp(40px, 10.67vw, 66.13px);
}

/* 本文 */
.concept-body {
  text-align: center;
  /* padding 左右: 18px @ 375px → 29.76px @ 620px */
  padding: 0 clamp(18px, 4.8vw, 29.76px);
  margin-bottom: clamp(28px, 7.47vw, 46.29px);
}

.concept-body p {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 500;
  color: #333;
  line-height: 2;
  letter-spacing: 0.05em;
}

.concept-body .accent {
  color: #8f810c;
}

/* 写真 */
.concept-img {
  /* margin 左右: 18.15px @ 375px → 30px @ 620px */
  margin: 0 clamp(18px, 4.84vw, 30.02px) clamp(44px, 11.73vw, 72.74px);
  border-radius: clamp(6px, 1.61vw, 10px);
  overflow: hidden;
  /* height: 190px @ 375px → 314px @ 620px */
  height: clamp(190px, 50.67vw, 314.16px);
}

.concept-img img {
  width: 100%;
  height: 116%;
  object-fit: cover;
  object-position: center;
  margin-top: -8%;
  display: block;
}

/* ===========================
   REASON
   =========================== */
.reason {
  max-width: 620px;
  margin: 0 auto;
  background-color: #F8F5F0;
}

/* 波線 */
.reason-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px; /* 隙間をなくす */
}

.reason-inner {
  background: #f1edec;
  padding: clamp(24px, 6.4vw, 39.68px) clamp(18px, 4.8vw, 29.76px) clamp(40px, 10.67vw, 66.13px);
}

/* REASONタイトル */
.reason-heading {
  text-align: center;
  margin-bottom: clamp(32px, 8.53vw, 52.9px);
}

.reason-subtitle {
  font-family: 'Noto Serif JP', serif;
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.1em;
  display: inline-block;
  background: linear-gradient(transparent 62%, #fff 62%);
  line-height: normal;
}

.reason-num {
  font-size: clamp(30px, 8vw, 49.6px);
}

.reason-subtitle {
  font-size: clamp(20px, 5.33vw, 33.07px);
}

/* REASONカード（アイコン込み） */
.reason-card-wrap {
  position: relative;
  /* アイコン(~62px)のうちカード上に被る分を考慮したオフセット */
  padding-top: clamp(42px, 11.2vw, 69.47px);
  margin-bottom: clamp(28px, 7.47vw, 46.29px);
}

.reason-icon {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}

.reason-icon img {
  width: clamp(56px, 14.93vw, 92.6px);
  height: clamp(63px, 16.8vw, 104.16px);
  display: block;
}

.reason-card {
  background: #fff;
  border-radius: clamp(12px, 3.2vw, 19.84px);
  box-shadow: 0 0 clamp(12px, 3.2vw, 19.84px) rgba(0, 0, 0, 0.25);
  padding: clamp(30px, 8vw, 49.6px) clamp(18px, 4.8vw, 29.76px) clamp(18px, 4.8vw, 29.76px);
  display: flex;
  gap: clamp(12px, 3.2vw, 19.84px);
  align-items: flex-start;
}

.reason-card-text {
  flex: 1;
  min-width: 0;
}

.reason-card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(15px, 4vw, 24.8px);
  font-weight: 700;
  color: #8f810c;
  line-height: normal;
  margin-bottom: clamp(8px, 2.13vw, 14px);
}

.reason-card-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 400;
  color: #333;
  line-height: clamp(20px, 5.33vw, 33.07px);
}

.reason-card-img {
  flex-shrink: 0;
  width: clamp(143px, 38.13vw, 237.8px);
  height: clamp(93px, 24.8vw, 154px);
  border-radius: clamp(12px, 3.2vw, 19.84px);
  overflow: hidden;
}

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

/* セラピスト収入例カード */
.salary-card {
  background: #fff;
  border-radius: clamp(12px, 3.2vw, 19.84px);
  overflow: hidden;
  margin-top: clamp(8px, 2.13vw, 14px);
}

.salary-header {
  background: linear-gradient(to right, #bda882, #a88b59 50%, #bda882);
  padding: clamp(18px, 4.8vw, 29.76px);
  text-align: center;
}

.salary-header p {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(24px, 6.4vw, 39.68px);
  font-weight: 700;
  color: #fff;
  line-height: normal;
}

.salary-body {
  padding: clamp(18px, 4.8vw, 29.76px) clamp(28px, 7.47vw, 46.29px) clamp(16px, 4.27vw, 26.45px);
}

.salary-example {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 5.33vw, 33.07px);
  font-weight: 700;
  color: #333;
  margin-bottom: clamp(14px, 3.73vw, 23.15px);
}

.salary-row {
  display: flex;
  gap: clamp(6px, 1.6vw, 9.92px);
  margin-bottom: clamp(16px, 4.27vw, 26.45px);
}

.salary-label {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(19px, 5.07vw, 31.4px);
  font-weight: 700;
  color: #8f810c;
  line-height: normal;
  text-align: center;
}

.salary-amount {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(55px, 14.67vw, 90.93px);
  font-weight: 700;
  color: #8f810c;
  line-height: 1;
}

.salary-yen {
  font-size: clamp(24px, 6.4vw, 39.68px);
}

.salary-asterisk {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(10px, 2.67vw, 17.6px);
  color: #333;
  align-self: flex-start;
  margin-top: clamp(4px, 1.07vw, 7px);
}

.salary-line {
  border: none;
  border-top: 1px solid #ccc;
  margin-bottom: clamp(12px, 3.2vw, 19.84px);
}

.salary-notes p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(11px, 2.93vw, 18.19px);
  font-weight: 400;
  color: #333;
  line-height: clamp(20px, 5.33vw, 33.07px);
}

/* ===========================
   POINT
   =========================== */
.point {
  max-width: 620px;
  margin: 0 auto;
  background-color: #f1edec;
}

.point-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.point-inner {
  background: url('images/point_bg.png') center top / cover no-repeat;
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.point-heading {
  text-align: center;
  margin-bottom: clamp(32px, 8.53vw, 52.9px);
}

/* POINTカード */
.point-card {
  background: #fff;
  border-radius: clamp(12px, 3.2vw, 19.84px);
  box-shadow: 0 0 clamp(12px, 3.2vw, 19.84px) rgba(0, 0, 0, 0.25);
  padding: clamp(24px, 6.4vw, 39.68px) clamp(18px, 4.8vw, 29.76px);
  margin-bottom: clamp(24px, 6.4vw, 39.68px);
  text-align: center;
}

.point-card:last-child {
  margin-bottom: 0;
}

/* POINT ラベル（POINT 01 など） */
.point-label {
  font-family: 'EB Garamond', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #8f810c;
  letter-spacing: 0.12em;
  line-height: 1;
  margin-bottom: clamp(4px, 1.07vw, 7px);
}

.point-num {
  font-size: clamp(30px, 8vw, 49.6px);
}

/* 区切り線 */
.point-hr {
  border: none;
  border-top: 1px solid #8f810c;
  width: clamp(78px, 20.8vw, 130px);
  margin: 0 auto clamp(20px, 5.33vw, 33px);
}

/* カード内タイトル */
.point-card-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 5.33vw, 33.07px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: clamp(30px, 8vw, 49.6px);
  display: inline-block;
  background: linear-gradient(transparent 62%, #fff 62%);
  margin-bottom: clamp(16px, 4.27vw, 26.45px);
}

/* カード内写真 */
.point-card-img {
  border-radius: clamp(12px, 3.2vw, 19.84px);
  overflow: hidden;
  height: clamp(170px, 45.33vw, 281.5px);
  margin-bottom: clamp(16px, 4.27vw, 26.45px);
}

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

/* カード内説明文 */
.point-card-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 500;
  color: #333;
  line-height: clamp(26px, 6.93vw, 43px);
  text-align: left;
}

/* ===========================
   EXPERIENCED
   =========================== */
.experienced {
  max-width: 620px;
  margin: 0 auto;
  background-color: #fff3df;
}

.experienced-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.experienced-inner {
  background-color: #fffbf2;
  padding: clamp(16px, 4.27vw, 26.45px) clamp(18px, 4.8vw, 29.76px) clamp(40px, 10.67vw, 66.13px);
}

/* タイトルブロック */
.experienced-title {
  text-align: center;
  margin-bottom: clamp(20px, 5.33vw, 33.07px);
}

.exp-catch {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: normal;
  margin-bottom: clamp(10px, 2.67vw, 17.6px);
}

/* 経験者 / 有資格者 バッジ行 */
.exp-badge-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 3.2vw, 19.84px);
  margin-bottom: clamp(12px, 3.2vw, 19.84px);
}

.exp-badge {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(24px, 6.4vw, 39.68px);
  font-weight: 700;
  color: #8f810c;
  letter-spacing: 0.1em;
  line-height: 1;
  border: clamp(1px, 0.32vw, 2px) solid #8f810c;
  background: #fff;
  padding: clamp(9px, 2.4vw, 14.88px) clamp(14px, 3.73vw, 23.15px);
  white-space: nowrap;
}

.exp-mo {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(19px, 5.07vw, 31.4px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  margin-left: clamp(-4px, -1.07vw, -6.6px);
}

.exp-main {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(40px, 10.67vw, 66.13px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: normal;
}

/* 説明文 */
.exp-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 500;
  color: #333;
  line-height: clamp(26px, 6.93vw, 43px);
  margin-bottom: clamp(16px, 4.27vw, 26.45px);
}

/* 矢印 */
.exp-arrow {
  text-align: center;
  margin-bottom: clamp(10px, 2.67vw, 17.6px);
}

.exp-arrow img {
  width: clamp(32px, 8.75vw, 54.26px);
  height: auto;
  display: inline-block;
}

/* 歓迎資格 */
.exp-qual-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 5.33vw, 33.07px);
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: clamp(8px, 2.13vw, 14px);
}

.exp-hr {
  border: none;
  border-top: 1px solid #8f810c;
  width: clamp(83px, 22.27vw, 138px);
  margin: 0 auto clamp(14px, 3.73vw, 23.15px);
}

.exp-qual-list {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 500;
  color: #333;
  line-height: clamp(26px, 6.93vw, 43px);
}

/* ===========================
   WORK
   =========================== */
.work {
  max-width: 620px;
  margin: 0 auto;
  background-color: #fffbf2;
}

.work-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.work-inner {
  background: #f8f5f0;
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.work-heading {
  text-align: center;
  margin-bottom: clamp(28px, 7.47vw, 46.29px);
}

/* リスト */
.work-list {
  list-style: none;
}

.work-item {
  display: flex;
  align-items: flex-start;
  gap: clamp(6px, 1.6vw, 9.92px);
  padding: clamp(14px, 3.73vw, 23.15px) 0;
  border-bottom: 1px solid #d8cec4;
}

.work-item:first-child {
  border-top: 1px solid #d8cec4;
}

/* 円バッジ */
.work-badge {
  flex-shrink: 0;
  width: clamp(30px, 8vw, 49.6px);
  height: clamp(30px, 8vw, 49.6px);
  border-radius: 50%;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.work-badge span {
  font-family: 'EB Garamond', serif;
  font-size: clamp(19px, 5.07vw, 31.4px);
  color: #8f810c;
  line-height: 1;
}

.work-body {
  flex: 1;
  min-width: 0;
  padding-top: clamp(2px, 0.53vw, 3.3px);
}

.work-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #8f810c;
  line-height: normal;
  margin-bottom: clamp(4px, 1.07vw, 7px);
}

.work-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 500;
  color: #333;
  line-height: clamp(20px, 5.33vw, 33.07px);
}

/* ===========================
   スタッフインタビュー セクション
   =========================== */
.staffinterview {
  max-width: 620px;
  margin: 0 auto;
  background-color: #fff;
}

.si-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.si-inner {
  background: #f8f5f0;
  padding: clamp(40px, 10.67vw, 66.13px) 0 clamp(50px, 13.33vw, 82.67px);
}

.si-heading {
  text-align: center;
  margin-bottom: clamp(28px, 7.47vw, 46.27px);
}

.si-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.si-heading .sec-title {
  display: inline-block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

/* スライダー wrapper（矢印の基準） */
.si-wrapper {
  position: relative;
}

/* Splide コア上書き */
.si-splide .splide__slide {
  padding: 0;
}

/* 各スライド */
.si-slide {
  padding: 0 clamp(18px, 4.8vw, 29.76px);
}

/* 写真エリア */
.si-photo-wrap {
  position: relative;
  border-radius: clamp(12px, 3.2vw, 19.84px);
  overflow: hidden;
}

.si-photo {
  width: 100%;
  height: clamp(170px, 45.33vw, 281.07px);
  object-fit: cover;
  display: block;
}

/* 写真上のキャプション */
.si-caption {
  position: absolute;
  bottom: clamp(16px, 4.27vw, 26.45px);
  left: clamp(14px, 3.73vw, 23.15px);
}

.si-caption p {
  display: inline-block;
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.92;
  background:
    linear-gradient(90deg, rgba(228,253,237,0.8) 14.4%, rgba(214,254,249,0.6) 65.4%, rgba(234,254,190,0.4) 100%),
    linear-gradient(90deg, rgba(254,254,254,0.8) 0%, rgba(254,254,254,0.8) 100%);
  padding: 0 clamp(4px, 1.07vw, 6.61px);
}

/* 本文 */
.si-text {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.51;
  margin-top: clamp(20px, 5.33vw, 33.07px);
  margin-bottom: clamp(20px, 5.33vw, 33.07px);
  padding-left: clamp(14px, 3.73vw, 23.15px);
  padding-right: clamp(14px, 3.73vw, 23.15px);
}

/* 名前・役職 */
.si-name {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(14px, 3.73vw, 23.15px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.64;
  text-align: right;
}

/* 矢印ボタン */
.si-btn {
  position: absolute;
  top: clamp(85px, 22.67vw, 140.53px); /* 写真高さ / 2 */
  transform: translateY(-50%);
  width: clamp(27px, 7.2vw, 44.64px);
  height: clamp(27px, 7.2vw, 44.64px);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  z-index: 2;
}

.si-prev { left: clamp(5px, 1.33vw, 8.27px); }
.si-next { right: clamp(5px, 1.33vw, 8.27px); }

.si-btn img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===========================
   福利厚生 セクション
   =========================== */
.benefit {
  max-width: 620px;
  margin: 0 auto;
  background-color: #fffbf2;
}

.benefit-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.benefit-inner {
  background: #fff;
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.benefit-heading {
  text-align: center;
  margin-bottom: clamp(36px, 9.6vw, 59.52px);
}

.benefit-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.benefit-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(20px, 5.33vw, 33.07px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  display: inline-block;
  background: linear-gradient(transparent 62%, #f8f5f0 62%);
}

.benefit-num {
  font-size: clamp(30px, 8vw, 49.6px);
  color: #8f810c;
  letter-spacing: 0;
}

.benefit-tuno {
  font-size: clamp(20px, 5.33vw, 33.07px);
  color: #8f810c;
  letter-spacing: 0;
}

/* 2列グリッド */
.benefit-grid {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  row-gap: clamp(40px, 10.67vw, 66.13px);
  column-gap: clamp(16px, 4.27vw, 26.45px);
  margin-bottom: clamp(36px, 9.6vw, 59.52px);
}

.benefit-item {
  text-align: center;
}

.benefit-icon {
  height: clamp(36px, 9.6vw, 59.52px);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  margin-bottom: clamp(10px, 2.67vw, 16.53px);
}

.benefit-icon img {
  height: 100%;
  width: auto;
  display: block;
}

/* 人物グループアイコン（3パーツ） */
.benefit-icon--humans {
  position: relative;
  width: clamp(48px, 12.59vw, 78.05px);
  height: clamp(22px, 5.65vw, 35.03px);
  margin: 0 auto clamp(10px, 2.67vw, 16.53px);
}

.benefit-icon--humans img {
  position: absolute;
}

.humans-c { top: 2%; right: 33%; bottom: 2%; left: 33%; width: auto; height: auto; }
.humans-l { top: 22%; right: 72%; bottom: 2%; left: 1%;  width: auto; height: auto; }
.humans-r { top: 22%; right: 1%;  bottom: 2%; left: 72%; width: auto; height: auto; }

.benefit-item-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.1em;
  margin-bottom: clamp(8px, 2.13vw, 13.23px);
}

.benefit-item-desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.67;
  text-align: left;
}

/* 下部 情報ボックス */
.benefit-info {
  border: 1px solid #333;
  padding: clamp(16px, 4.27vw, 26.45px);
}

.benefit-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 4.27vw, 26.45px);
}

.benefit-info-title {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
  margin-top: clamp(12px, 3.2vw, 19.84px);
}

.benefit-info-col .benefit-info-title:first-child {
  margin-top: 0;
}

.benefit-info-list {
  padding-left: clamp(14px, 3.73vw, 23.15px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(9px, 2.4vw, 14.88px);
  color: #333;
  letter-spacing: 0.08em;
  line-height: 1.67;
  margin-bottom: clamp(8px, 2.13vw, 13.23px);
}

.benefit-info-list:last-child {
  margin-bottom: 0;
}

/* ===========================
   代表メッセージ セクション
   =========================== */
.message {
  max-width: 620px;
  margin: 0 auto;
  background: #fffbf2;
}

.msg-inner {
  padding: clamp(48px, 12.8vw, 79.36px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.msg-heading {
  text-align: center;
  margin-bottom: clamp(28px, 7.47vw, 46.27px);
}

.msg-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.msg-heading .sec-title {
  display: inline-block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

/* カード */
.msg-card {
  background: #fff;
  box-shadow: 0 0 clamp(12px, 3.2vw, 19.84px) rgba(0, 0, 0, 0.25);
  position: relative;
  overflow: hidden;
  padding: clamp(18px, 4.8vw, 29.76px) clamp(18px, 4.8vw, 29.76px) clamp(24px, 6.4vw, 39.68px);
}

/* 本文 */
.msg-body {
  position: relative;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.5;
  z-index: 2;
}

.msg-body-white {
  color: #fff;
  text-shadow: 1px 1px 1px rgba(0, 0, 0, 1.0);
}

.msg-body p {
  margin: 0;
  min-height: 1em;
}

/* 写真: カード右下に絶対配置 */
.msg-photo {
  position: absolute;
  right: 0;
  bottom: 0;
  width: clamp(157px, 41.87vw, 259.57px); /* 46.26% of card width */
  z-index: 1;
}

.msg-photo img {
  width: 100%;
  height: auto;
  display: block;
}

/* 名前・役職 */
.msg-name {
  margin-top: clamp(20px, 5.33vw, 33.07px);
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.9;
}

/* ===========================
   採用の流れ セクション
   =========================== */
.recruitment {
  max-width: 620px;
  margin: 0 auto;
  background: #f8f5f0;
}

.rec-inner {
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.rec-heading {
  text-align: center;
  margin-bottom: clamp(36px, 9.6vw, 59.52px);
}

.rec-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.rec-heading .sec-title {
  display: inline-block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

/* タイムラインリスト */
.step-list {
  list-style: none;
  position: relative;
  padding-left: clamp(42px, 11.2vw, 69.44px);
}

/* 縦線 */
.step-list::before {
  content: '';
  position: absolute;
  left: clamp(6px, 1.6vw, 9.92px);
  transform: translateX(-50%);
  top: clamp(6px, 1.6vw, 9.92px);
  bottom: clamp(6px, 1.6vw, 9.92px);
  width: 1px;
  background-color: #bda882;
}

.step-item {
  position: relative;
  margin-bottom: clamp(28px, 7.47vw, 46.27px);
}

.step-item:last-child {
  margin-bottom: 0;
}

/* ドット */
.step-item::before {
  content: '';
  position: absolute;
  left: clamp(-69.44px, -11.2vw, -42px);
  top: clamp(3px, 0.8vw, 4.96px);
  width: clamp(12px, 3.2vw, 19.84px);
  height: clamp(12px, 3.2vw, 19.84px);
  border-radius: 50%;
  background-color: #8f810c;
}

/* 点線コネクター */
.step-item::after {
  content: '';
  position: absolute;
  left: clamp(-49.6px, -8vw, -30px);
  top: clamp(9px, 2.4vw, 14.88px);
  width: clamp(30px, 8vw, 49.6px);
  border-top: 1px dotted #8f810c;
  z-index: 0;
}

.step-content {
  position: relative;
  z-index: 1;
}

.step-label {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin-bottom: clamp(6px, 1.6vw, 9.92px);
}

.step-desc {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  margin-bottom: clamp(12px, 3.2vw, 19.84px);
}

.step-item:last-child .step-desc {
  margin-bottom: 0;
}

/* 応募ボタン */
.step-btns {
  display: flex;
  gap: clamp(10px, 2.67vw, 16.53px);
  align-items: center;
}

.step-btn-link img {
  height: clamp(29px, 7.73vw, 47.94px);
  width: auto;
  display: block;
}

/* ===========================
   ボタン共通 */
.btn-header {
  display: block;
  flex-shrink: 0;
}

.btn-header img {
  /* ボタン幅: 108.87px @ 375px → 180.16px @ 620px */
  width: clamp(108.87px, 29.03vw, 180.16px);
  height: auto;
  display: block;
}

/* ===========================
   FLOW OF THE DAY セクション
   =========================== */
.flowoftheday {
  max-width: 620px;
  margin: 0 auto;
  background-color: #f8f5f0;
}

.flow-wave {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: -1px;
}

.flow-inner {
  background: #fff;
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.flow-heading {
  text-align: center;
  margin-bottom: clamp(36px, 9.6vw, 59.52px);
}

.flow-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.flow-heading .sec-title {
  display: inline-block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

/* タイムラインリスト */
.flow-list {
  list-style: none;
  position: relative;
  padding-left: clamp(32px, 8.53vw, 52.91px);
}

/* 縦線: ドット中心(6px)に配置 */
.flow-list::before {
  content: '';
  position: absolute;
  left: clamp(6px, 1.6vw, 9.92px);
  transform: translateX(-50%);
  top: clamp(6px, 1.6vw, 9.92px);
  bottom: clamp(6px, 1.6vw, 9.92px);
  width: clamp(12px, 3.2vw, 19.84px);
  background-color: #eee;
}

.flow-item {
  position: relative;
  margin-bottom: clamp(32px, 8.53vw, 52.91px);
}

.flow-item:last-child {
  margin-bottom: 0;
}

/* ドット: 12px円, リスト左端に配置（中心=縦線と一致） */
.flow-item::before {
  content: '';
  position: absolute;
  left: clamp(-52.91px, -8.53vw, -32px);
  top: clamp(3px, 0.8vw, 4.96px);
  width: clamp(12px, 3.2vw, 19.84px);
  height: clamp(12px, 3.2vw, 19.84px);
  border-radius: 50%;
  background-color: #8F810C;
}

/* ドットから時間テキストへの点線コネクター（.flow-item::after で描画） */
.flow-item::after {
  content: '';
  position: absolute;
  left: clamp(-33.07px, -5.33vw, -20px);
  top: clamp(9px, 2.4vw, 14.88px);
  width: clamp(20px, 5.33vw, 33.07px);
  border-top: 1px dotted #8F810C;
  z-index: 0;
}

.flow-content {
  position: relative;
  z-index: 1;
  margin-bottom: clamp(12px, 3.2vw, 19.84px);
}

.flow-time {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.flow-label {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.6;
}

/* 写真: タイムライン右カラム内に収める */
.flow-photo {
  margin-left: 0;
}

.flow-photo img {
  width: 100%;
  height: clamp(180px, 48vw, 297.6px);
  border-radius: clamp(12px, 3.2vw, 19.84px);
  object-fit: cover;
  display: block;
}

.flow-note {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #999;
  letter-spacing: 0.1em;
  margin-top: clamp(24px, 6.4vw, 39.68px);
}

/* ===========================
   よくあるご質問 セクション
   =========================== */
.faq {
  max-width: 620px;
  margin: 0 auto;
  background: #fff;
}

.faq-inner {
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.faq-heading {
  text-align: center;
  margin-bottom: clamp(32px, 8.53vw, 52.91px);
}

.faq-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.faq-heading .sec-title {
  display: inline-block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
  background: linear-gradient(transparent 62%, #F8F5F0 62%);
}

.faq-list {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 6.4vw, 39.68px);
}

.faq-item {
  border: 1px solid #8f810c;
  border-radius: clamp(12px, 3.2vw, 19.84px);
  padding: clamp(18px, 4.8vw, 29.76px);
}

.faq-q-row {
  display: flex;
  align-items: center;
  gap: clamp(12px, 3.2vw, 19.84px);
  margin-bottom: clamp(14px, 3.73vw, 23.15px);
}

.faq-icon {
  width: clamp(36px, 9.6vw, 59.52px);
  height: clamp(36px, 9.6vw, 59.52px);
  flex-shrink: 0;
}

.faq-question {
  font-family: 'Noto Serif JP', serif;
  font-size: clamp(16px, 4.27vw, 26.45px);
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.1em;
  line-height: 1.4;
}

.faq-answer {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.1em;
  line-height: 1.67;
}

/* ===========================
   募集要項 セクション
   =========================== */
.jobdesc {
  background: #f8f5f0;
  max-width: 620px;
  margin: 0 auto;
}

.jd-inner {
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.jd-heading {
  text-align: center;
  margin-bottom: clamp(24px, 6.4vw, 39.68px);
}

.jd-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.jd-sec-title {
  background: linear-gradient(transparent 62%, #fff 62%);
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.jd-card {
  background: #fff;
  border-radius: clamp(8px, 2.13vw, 13.23px);
  box-shadow: 0 0 clamp(8px, 2.13vw, 13.23px) rgba(0, 0, 0, 0.25);
  overflow: hidden;
}

.jd-list {
  display: flex;
  flex-direction: column;
}

.jd-row {
  display: flex;
  align-items: flex-start;
  padding: clamp(14px, 3.73vw, 23.15px) clamp(16px, 4.27vw, 26.45px);
  border-bottom: 1px solid #ededed;
  gap: clamp(12px, 3.2vw, 19.84px);
}

.jd-row:last-child {
  border-bottom: none;
}

.jd-row dt {
  flex-shrink: 0;
  width: clamp(80px, 21.33vw, 132.27px);
  background: #ededed;
  border-radius: clamp(4px, 1.07vw, 6.61px);
  padding: clamp(4px, 1.07vw, 6.61px) clamp(6px, 1.6vw, 9.92px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  font-weight: 600;
  color: #8f810c;
  letter-spacing: 0.05em;
  line-height: 1.4;
  text-align: center;
}

.jd-row dd {
  flex: 1;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(12px, 3.2vw, 19.84px);
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1.67;
  padding-top: clamp(4px, 1.07vw, 6.61px);
}

/* ===========================
   社員応募フォーム セクション
   =========================== */
.apply {
  background: #fff;
  max-width: 620px;
  margin: 0 auto;
}

.apply-inner {
  padding: clamp(40px, 10.67vw, 66.13px) clamp(18px, 4.8vw, 29.76px) clamp(50px, 13.33vw, 82.67px);
}

.apply-heading {
  text-align: center;
  margin-bottom: clamp(28px, 7.47vw, 46.3px);
}

.apply-heading .sec-en-label {
  display: block;
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.apply-sec-title {
  background: linear-gradient(transparent 62%, #fff 62%);
  margin-bottom: clamp(4px, 1.07vw, 6.61px);
}

.apply-form {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 5.33vw, 33.07px);
}

.apply-field {
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 1.6vw, 9.92px);
}

.apply-label {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.6vw, 9.92px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(14px, 4vw, 24.8px);
  font-weight: 400;
  color: #333;
  line-height: 1;
}

.apply-required {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f75f80;
  border-radius: clamp(4px, 1.07vw, 6.61px);
  padding: clamp(3px, 0.8vw, 4.96px) clamp(5px, 1.33vw, 8.27px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(10px, 2.93vw, 18.19px);
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.apply-input {
  width: 100%;
  height: clamp(44px, 11.73vw, 72.75px);
  border: 1px solid #999;
  border-radius: clamp(6px, 1.6vw, 9.92px);
  padding: 0 clamp(14px, 3.73vw, 23.15px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(16px, 3.87vw, 24px);
  color: #333;
  background: #fff;
  outline: none;
}

.apply-input::placeholder,
.apply-textarea::placeholder {
  color: #999;
}

.apply-input:focus,
.apply-textarea:focus {
  border-color: #8f810c;
}

.apply-checkboxes {
  display: flex;
  align-items: center;
  gap: clamp(20px, 5.33vw, 33.07px);
}

.apply-checkbox-label {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.6vw, 9.92px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 3.73vw, 23.15px);
  color: #333;
  cursor: pointer;
}

.apply-checkbox-label input[type="checkbox"],
.apply-privacy-label input[type="checkbox"] {
  display: none;
}

.apply-checkbox-custom {
  display: inline-block;
  flex-shrink: 0;
  width: clamp(18px, 4.8vw, 29.76px);
  height: clamp(18px, 4.8vw, 29.76px);
  border: 1px solid #999;
  border-radius: clamp(4px, 1.07vw, 6.61px);
  background: #fff;
  position: relative;
}

.apply-checkbox-label input[type="checkbox"]:checked + .apply-checkbox-custom::after,
.apply-privacy-label input[type="checkbox"]:checked + .apply-checkbox-custom::after {
  content: '';
  position: absolute;
  top: 20%;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 35%;
  height: 60%;
  border-right: 2px solid #8f810c;
  border-bottom: 2px solid #8f810c;
}

.apply-textarea {
  width: 100%;
  height: clamp(120px, 32vw, 198.4px);
  border: 1px solid #999;
  border-radius: clamp(6px, 1.6vw, 9.92px);
  padding: clamp(12px, 3.2vw, 19.84px) clamp(14px, 3.73vw, 23.15px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(16px, 3.87vw, 24px);
  color: #333;
  background: #fff;
  resize: vertical;
  outline: none;
}

.apply-privacy-label {
  display: flex;
  align-items: center;
  gap: clamp(8px, 2.13vw, 13.23px);
  cursor: pointer;
}

.apply-privacy-label span {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 3.73vw, 23.15px);
  color: #333;
  line-height: 1.5;
}

.apply-privacy-label a {
  color: #0077ff;
  text-decoration: underline;
}

.apply-submit {
  display: block;
  width: clamp(170px, 45.33vw, 281.06px);
  margin: clamp(8px, 2.13vw, 13.23px) auto 0;
  padding: clamp(12px, 3.2vw, 19.84px) 0;
  background: linear-gradient(to right, #00cdb4, #34d9df 70%, #4adaec);
  border: none;
  border-radius: clamp(30px, 8vw, 49.6px);
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(16px, 4.8vw, 29.76px);
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.1em;
  cursor: pointer;
  box-shadow: 0 0 clamp(4px, 1.6vw, 9.92px) rgba(0, 0, 0, 0.25);
}

/* ===========================
   フッター
   =========================== */
.site-footer {
  background: #01351b;
  max-width: 620px;
  margin: 0 auto;
}

.footer-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(36px, 9.6vw, 59.52px) clamp(18px, 4.8vw, 29.76px) clamp(46px, 12.27vw, 76.1px);
}

.footer-logo-link {
  display: block;
  margin-bottom: clamp(30px, 8vw, 49.6px);
}

.footer-logo {
  width: clamp(100px, 26.67vw, 165.33px);
  display: block;
}

.footer-nav {
  display: flex;
  align-items: center;
  gap: clamp(20px, 5.33vw, 33.07px);
  margin-bottom: clamp(28px, 7.47vw, 46.3px);
}

.footer-nav a {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(13px, 3.87vw, 24px);
  font-weight: 400;
  color: #ccc;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.footer-copy {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: clamp(11px, 3.2vw, 19.84px);
  font-weight: 400;
  color: #ccc;
  text-align: center;
  line-height: 1;
}

/* ===========================
   固定CTAバー
   =========================== */
.fixed-cta {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 620px;
  display: flex;
  align-items: center;
  gap: clamp(10px, 2.67vw, 16.53px);
  padding: clamp(10px, 2.67vw, 16.53px) clamp(12px, 3.2vw, 19.84px);
  padding-bottom: calc(clamp(10px, 2.67vw, 16.53px) + env(safe-area-inset-bottom));
  z-index: 100;
}

.fixed-cta-btn {
  flex: 1;
  display: block;
}

.fixed-cta-btn img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===========================
   PC用サイドバー
   =========================== */
.pc-sidebar {
  display: none;
}

@media (min-width: 1100px) {
  /* コンテンツを右に80pxずらすことでサイドバーを広く表示 */
  :root {
    --pc-shift: 230px;
  }

  /* 左サイドバーを表示 */
  .pc-sidebar {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    right: calc(50% + 310px - var(--pc-shift));
    bottom: 0;
    background: #f8f5f0;
    z-index: 50;
    overflow-y: auto;
  }

  .pc-sidebar-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 40px 32px 40px;
  }

  .pc-logo-link {
    display: block;
    margin-bottom: 32px;
  }

  .pc-logo {
    width: min(130px, 35%);
    height: auto;
  }

  .pc-sidebar-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1;
    justify-content: center;
    gap: 16px;
  }

  .pc-text-sub {
    width: min(100%, 380px);
    height: auto;
  }

  .pc-text-title {
    width: min(100%, 380px);
    height: auto;
  }

  .pc-staff {
    width: min(100%, 380px);
    height: auto;
    border-radius: 12px;
    object-fit: cover;
  }

  .pc-text-area {
    width: min(80%, 280px);
    height: auto;
  }

  .pc-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: min(100%, 380px);
  }

  .pc-cta-btn {
    flex: 1;
    min-width: 140px;
    display: block;
  }

  .pc-cta-btn img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* モバイル用固定CTAバーはデスクトップで非表示 */
  .fixed-cta {
    display: none;
  }

  /* 両サイドの背景色をサイドバーに合わせる */
  body {
    background: #f8f5f0;
  }

  /* モバイルコンテンツを右にずらす */
  main {
    padding-left: calc(var(--pc-shift) * 2);
  }

  .site-header {
    left: calc(50% + var(--pc-shift));
  }

  .site-footer {
    margin-left: calc(50% - 310px + var(--pc-shift));
    margin-right: 0;
  }

  /* スタッフインタビュー スライド内部padding調整 */
  .si-slide {
    padding: 0 8px;
  }

  /* モバイルコンテンツ列の左右シャドウ */
  body::after {
    content: '';
    position: fixed;
    top: 0;
    bottom: 0;
    left: calc(50% + var(--pc-shift) - 310px);
    width: 620px;
    box-shadow: -10px 0 20px rgba(0, 0, 0, 0.12), 10px 0 20px rgba(0, 0, 0, 0.12);
    pointer-events: none;
    z-index: 51;
  }
}
