/* ==========================================================
   令和ディベロッパー株式会社 Webサイト 共通スタイル
   ==========================================================

   ■ 色を変えたいとき
     下の :root の3つの値を書き換えれば、サイト全体に反映されます。
     ただし半透明の指定（rgba(...)）は個別に書かれているため、
     色を大きく変える場合はそちらも合わせて調整してください。

   ■ クラス名について
     .u-001 〜 の連番クラスは自動生成されたもので、意味を持ちません。
     どの要素かは、HTML側で該当のクラスを検索して確認してください。
     .rd- で始まるクラスと .back-to-top、.reveal-mask などは
     役割のある名前です。

   ■ スマートフォン向けの指定
     css/responsive.css に分かれています（max-width:767px）。
     .r-ページ名-番号 の形式で、PC版と差がある要素にのみ付いています。
   ========================================================== */

:root{
  --navy:  #0f172d;   /* ベース（濃紺） */
  --gold:  #a48944;   /* アクセント（金） */
  --white: #ffffff;   /* 文字（白） */
}

.u-001 { font-family: "Noto Sans JP", sans-serif; background: var(--navy); color: var(--white); min-height: 100vh; width: 100%; overflow-x: hidden; }
.u-002 { position: fixed; top: 0px; left: 0px; right: 0px; z-index: 100; transition: background 0.4s; background: transparent; }
.u-003 { max-width: 90%; margin: 0px auto; padding: 0px 24px; height: 84px; display: flex; align-items: center; justify-content: space-between; }
.u-004 { display: flex; align-items: center; }
.u-005 { height: 45px; width: auto; }
.u-006 { display: flex; align-items: center; gap: 20px; }
.u-007 { font-size: 0.9375rem; letter-spacing: 0.03em; color: var(--white); padding-bottom: 4px; border-bottom: 2px solid var(--gold); white-space: nowrap; }
.u-008 { font-size: 0.9375rem; letter-spacing: 0.03em; color: var(--white); padding-bottom: 4px; border-bottom: 1px solid transparent; white-space: nowrap; }
.u-009 { font-size: 0.9375rem; letter-spacing: 0.02em; color: var(--white); background: var(--gold); padding: 9px 16px; white-space: nowrap; }
.u-010 { font-size: 0.9375rem; letter-spacing: 0.03em; color: var(--white); background: var(--gold); padding: 9px 18px; white-space: nowrap; }
.u-011 { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; }
.u-012 { width: 24px; height: 1px; background: var(--white); }
.u-013 { position: relative; height: 100vh; min-height: 640px; display: flex; align-items: flex-end; background: var(--navy); overflow: hidden; }
.u-014 { position: absolute; inset: 0px; background-image: url("../images/hero-2c.jpg"); background-size: cover; background-position: center center; opacity: 1; transition: opacity 1.8s; animation: 9s ease-out 0s 1 normal forwards running heroZoom; z-index: 0; }
.u-015 { position: absolute; inset: 0px; background-image: url("../images/hero-3c.jpg"); background-size: cover; background-position: center center; opacity: 0; transition: opacity 1.8s; animation: auto ease 0s 1 normal none running none; z-index: 0; }
.u-016 { position: absolute; inset: 0px; background-image: url("../images/hero-4c.jpg"); background-size: cover; background-position: center center; opacity: 0; transition: opacity 1.8s; animation: auto ease 0s 1 normal none running none; z-index: 0; }
.u-017 { position: absolute; inset: 0px; background-image: url("../images/hero-5c.jpg"); background-size: cover; background-position: center center; opacity: 0; transition: opacity 1.8s; animation: auto ease 0s 1 normal none running none; z-index: 0; }
.u-018 { position: absolute; inset: 0px; background-image: url("../images/hero-kitchen.jpg"); background-size: cover; background-position: center center; opacity: 0; transition: opacity 1.8s; animation: auto ease 0s 1 normal none running none; z-index: 0; }
.u-019 { position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(15, 23, 45, 0.92) 0%, rgba(15, 23, 45, 0.4) 55%, rgba(15, 23, 45, 0.2) 100%); z-index: 1; }
.u-020 { position: relative; z-index: 2; max-width: 90%; margin: 0px auto; padding: 0px 24px 96px; width: 100%; animation: 1s ease 0s 1 normal both running fadeUp; }
.u-021 { margin-bottom: 8px; }
.u-022 { font-family: "Noto Serif JP", serif; font-size: clamp(1.5rem, 4vw, 2.75rem); line-height: 1.7; letter-spacing: 0.04em; }
.u-023 { margin-bottom: 24px; }
.u-024 { font-family: "Cormorant Garamond", serif; font-size: clamp(1.625rem, 5vw, 3.25rem); letter-spacing: -0.01em; color: var(--white); }
.u-025 { margin-bottom: 32px; }
.u-026 { font-size: 0.9375rem; color: rgba(255, 255, 255, 0.78); }
.u-027 { font-size: 0.875rem; line-height: 2.1; color: rgba(255, 255, 255, 0.7); max-width: 560px; }
.u-028 { position: absolute; bottom: 28px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 10px; z-index: 2; }
.u-029 { font-size: 0.6875rem; letter-spacing: 0.2em; color: rgba(255, 255, 255, 0.5); }
.u-030 { width: 1px; height: 28px; background: rgba(255, 255, 255, 0.4); }
.u-031 { position: absolute; right: 32px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; z-index: 2; }
.u-032 { width: 8px; height: 8px; border-radius: 4px; background: rgba(255, 255, 255, 0.45); cursor: pointer; transition: 0.4s; }
.u-033 { width: 8px; height: 22px; border-radius: 4px; background: var(--gold); cursor: pointer; transition: 0.4s; }
.u-034 { max-width: 880px; margin: 0px auto; padding: 140px 24px; text-align: center; }
.u-035 { margin-bottom: 18px; }
.u-036 { font-family: "Cormorant Garamond", serif; font-size: 0.875rem; letter-spacing: 0.28em; color: var(--gold); }
.u-037 { width: 56px; height: 1px; background: var(--gold); margin: 0px auto 32px; }
.u-038 { margin: 0px 0px 36px; }
.u-039 { font-family: "Noto Serif JP", serif; font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 500; letter-spacing: 0.05em; }
.u-040 { font-size: 0.9375rem; line-height: 2.2; color: rgba(255, 255, 255, 0.75); text-wrap: pretty; }
.u-041 { position: relative; padding: 140px 24px; background: rgb(247, 245, 243); }
.u-042 { max-width: 1280px; margin: 0px auto; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; }
.u-043 { height: 520px; }
.u-044 { background-image: url("../images/rinascita-interior-c.jpg"); }
.u-045 { margin-bottom: 16px; }
.u-046 { font-family: "Cormorant Garamond", serif; font-size: 2.125rem; letter-spacing: 0.05em; margin-bottom: 10px; color: var(--navy); }
.u-047 { margin-bottom: 28px; }
.u-048 { font-family: "Noto Serif JP", serif; font-size: 1.1875rem; color: var(--navy); }
.u-049 { margin-bottom: 36px; }
.u-050 { font-size: 0.875rem; line-height: 2.1; color: rgba(15, 23, 45, 0.72); }
.u-051 { display: inline-flex; align-items: center; gap: 14px; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--gold); }
.u-052 { max-width: 1280px; margin: 0px auto; padding: 140px 24px; }
.u-053 { text-align: center; margin-bottom: 72px; }
.u-054 { margin: 0px; }
.u-055 { font-size: clamp(1.25rem, 3vw, 1.875rem); font-weight: 500; }
.u-056 { font-family: "Cormorant Garamond", serif; }
.u-057 { font-family: "Noto Serif JP", serif; }
.u-058 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.u-059 { border-top: 1px solid rgba(164, 137, 68, 0.35); padding-top: 28px; }
.u-060 { font-family: "EB Garamond", serif; font-size: 2rem; color: var(--gold); margin-bottom: 18px; }
.u-061 { font-family: "Noto Serif JP", serif; font-size: 1.0625rem; margin-bottom: 16px; }
.u-062 { font-size: 0.84375rem; line-height: 2; color: rgba(255, 255, 255, 0.68); margin: 0px; text-align: justify; }
.u-063 { padding: 140px 24px; background: rgb(247, 245, 243); }
.u-064 { max-width: 1280px; margin: 0px auto; }
.u-065 { text-align: center; margin-bottom: 24px; }
.u-066 { margin: 0px 0px 28px; }
.u-067 { font-family: "Noto Serif JP", serif; font-size: clamp(1.25rem, 3vw, 1.875rem); font-weight: 500; color: var(--navy); }
.u-068 { max-width: 640px; margin: 0px auto 72px; }
.u-069 { font-size: 0.875rem; line-height: 2; color: rgba(15, 23, 45, 0.7); width: 650px; height: 83px; }
.u-070 { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 32px; }
.u-071 { height: 220px; margin-bottom: 24px; }
.u-072 { background-image: url("../images/biz-kaitori-c.jpg"); }
.u-073 { font-family: "Noto Serif JP", serif; font-size: 1.25rem; margin-bottom: 14px; color: var(--navy); }
.u-074 { font-size: 0.8125rem; line-height: 1.9; color: rgba(15, 23, 45, 0.68); margin: 0px; }
.u-075 { background-image: url("../images/biz-tochikaihatsu-c.jpg"); }
.u-076 { background-image: url("../images/biz-chukai-c.jpg"); }
.u-077 { max-width: 1280px; margin: 0px auto; padding: 140px 24px; display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 56px; align-items: center; }
.u-078 { height: 460px; background-image: url("../images/ceo-portrait-c.jpg"); background-size: cover; background-position: center top; position: relative; }
.u-079 { margin: 0px 0px 30px; }
.u-080 { font-family: "Noto Serif JP", serif; font-size: clamp(1.125rem, 3vw, 1.75rem); font-weight: 500; }
.u-081 { font-size: 0.875rem; line-height: 2.1; color: rgba(255, 255, 255, 1); }
.u-082 { font-family: "Noto Serif JP", serif; font-size: 0.9375rem; margin-bottom: 24px; }
.u-083 { display: inline-flex; align-items: center; gap: 14px; font-size: 0.8125rem; color: var(--gold); }
.u-084 { padding: 140px 24px; background: var(--white); }
.u-085 { max-width: 1000px; margin: 0px auto; }
.u-086 { text-align: center; margin-bottom: 64px; }
.u-087 { display: flex; gap: 32px; align-items: baseline; padding: 26px 0px; border-bottom: 1px solid rgba(15, 23, 45, 0.12); }
.u-088 { font-family: "EB Garamond", serif; font-size: 0.9375rem; color: var(--gold); min-width: 110px; }
.u-089 { font-size: 0.875rem; color: rgba(15, 23, 45, 0.85); }
.u-090 { text-align: center; margin-top: 48px; }
.u-091 { position: relative; text-align: center; background-image: linear-gradient(rgba(15, 23, 45, 0.75), rgba(15, 23, 45, 0.75)), url("../images/recruit-watermark.jpg"); background-size: cover; background-position: center center; }
.u-092 { max-width: 880px; margin: 0px auto; padding: 140px 24px; }
.u-093 { margin: 0px 0px 20px; }
.u-094 { width: 56px; height: 1px; background: var(--gold); margin: 0px auto 28px; }
.u-095 { display: inline-flex; align-items: center; gap: 16px; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); background: var(--gold); padding: 15px 20px 15px 34px; border-radius: 999px; }
/* Footer CTA: decorative chevrons keep the button labels centered. */
.u-091 .u-095,
.u-097 .u-103,
[data-sc-name="recruit-job"] [data-job-apply],
[data-sc-name="recruit-newgrad"] .u-207,
[data-sc-name="recruit-apply"] .u-229,
[data-sc-name="contact"] .u-237 { position: relative; }
.u-091 .u-095::after,
.u-097 .u-103::after,
[data-sc-name="recruit-job"] [data-job-apply]::after,
[data-sc-name="recruit-newgrad"] .u-207::after,
[data-sc-name="recruit-apply"] .u-229::after,
[data-sc-name="contact"] .u-237::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;
}
.u-096 { stroke: var(--white); }
.u-097 { padding: 100px 24px; text-align: center; border-top: 1px solid rgba(164, 137, 68, 0.2); }
.u-098 { font-family: "Cormorant Garamond", serif; font-size: 0.8125rem; letter-spacing: 0.28em; color: var(--gold); }
.u-099 { margin: 0px 0px 24px; }
.u-100 { font-family: "Noto Serif JP", serif; font-size: clamp(1.125rem, 2.5vw, 1.5rem); font-weight: 500; }
.u-101 { max-width: 560px; margin: 0px auto 32px; }
.u-102 { font-size: 0.875rem; line-height: 2; color: rgba(255, 255, 255, 0.72); }
.u-103 { display: inline-flex; align-items: center; justify-content: center; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); background: var(--gold); padding: 16px 44px; }
.u-104 { background: rgb(10, 18, 36); padding: 80px 24px 40px; border-top: 1px solid rgba(255, 255, 255, 0.06); }
.u-105 { max-width: 90%; margin: 0px auto; }
.u-106 { display: flex; flex-wrap: wrap; gap: 16px 40px; margin-bottom: 56px; }
.u-107 { font-size: 0.9375rem; color: rgba(255, 255, 255, 0.75); }
.u-108 { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 32px; padding-top: 36px; border-top: 1px solid rgba(255, 255, 255, 0.08); }
.u-109 { height: 40px; margin-bottom: 16px; }
.u-110 { font-size: 0.8125rem; line-height: 2; color: rgba(255, 255, 255, 0.55); }
.u-111 { font-size: 0.6875rem; color: rgba(255, 255, 255, 0.4); }
.u-112 { position: fixed; top: 0px; left: 0px; right: 0px; z-index: 100; background: var(--navy); border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
.u-113 { max-width: 1280px; margin: 0px auto; padding: 0px 24px; height: 84px; display: flex; align-items: center; justify-content: space-between; }
.u-114 { height: 30px; width: auto; }
.u-115 { display: flex; align-items: center; gap: 26px; }
.u-116 { font-size: 0.78125rem; letter-spacing: 0.03em; color: var(--white); padding-bottom: 4px; border-bottom: 1px solid transparent; }
.u-117 { font-size: 0.78125rem; letter-spacing: 0.03em; color: var(--white); padding-bottom: 4px; border-bottom: 1px solid var(--gold); }
.u-118 { font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); border: 1px solid var(--gold); padding: 9px 20px; }
.u-119 { padding: 180px 24px 60px; text-align: center; background: var(--navy); }
.u-120 { font-family: "Cormorant Garamond", serif; font-size: 0.875rem; letter-spacing: 0.28em; color: var(--gold); margin-bottom: 16px; }
.u-121 { font-family: "Noto Serif JP", serif; font-size: clamp(1.375rem, 3.5vw, 2.125rem); font-weight: 500; margin: 0px; color: var(--white); }
.u-122 { max-width: 820px; margin: 0px auto; padding: 100px 24px; text-align: center; }
.u-123 { font-size: 0.875rem; line-height: 2.2; color: rgba(255, 255, 255, 0.75); margin: 0px; }
.u-124 { padding: 100px 24px; background: var(--white); }
.u-125 { order: 1; }
.u-126 { height: 360px; position: relative; background-image: url("../images/biz-kaitori-c.jpg"); }
.u-127 { order: 2; }
.u-128 { font-family: "Cormorant Garamond", serif; font-size: 0.8125rem; letter-spacing: 0.24em; color: var(--gold); margin-bottom: 14px; }
.u-129 { font-family: "Noto Serif JP", serif; font-size: 1.375rem; margin-bottom: 22px; color: var(--navy); }
.u-130 { font-size: 0.875rem; line-height: 2; color: rgba(15, 23, 45, 0.7); margin: 0px; }
.u-131 { padding: 100px 24px 76px 24px;/*padding: 100px 24px;*/ background: rgb(247, 245, 243); }
.u-132 { height: 360px; position: relative; background-image: url("../images/biz-chukai-c.jpg"); }
.u-133 { height: 360px; position: relative; background-image: url("../images/biz-tochikaihatsu-c.jpg"); }
.u-134 { font-family: "Cormorant Garamond", serif; font-size: 0.8125rem; letter-spacing: 0.28em; color: var(--gold); margin-bottom: 16px; }
.u-135 { font-family: "Noto Serif JP", serif; font-size: clamp(1.125rem, 2.5vw, 1.5rem); font-weight: 500; margin: 0px 0px 32px; }
.u-136 { display: inline-flex; align-items: center; gap: 16px; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); border: 1px solid var(--gold); padding: 12px 20px 12px 44px; }
.u-137 { font-size: 0.8125rem; color: rgba(255, 255, 255, 0.75); }
.u-138 { height: 26px; margin-bottom: 16px; }
.u-139 { font-size: 0.75rem; line-height: 2; color: rgba(255, 255, 255, 0.55); }
.u-140 { max-width: 1000px; margin: 56px auto 60px; padding: 0px 24px; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: center; }
.u-141 { height: 340px; background-image: url("../images/company-office-c.jpg"); background-size: cover; background-position: center center; position: relative; }
.u-142 { font-family: "Noto Serif JP", serif; font-size: 1rem; line-height: 2.2; color: rgba(255, 255, 255, 0.82); margin: 0px; }
.u-143 { max-width: 900px; margin: 0px auto; padding: 0px 24px 140px; }
.u-144 { display: grid; grid-template-columns: 180px 1fr; gap: 24px; padding: 22px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.u-145 { font-family: "Noto Serif JP", serif; font-size: 0.875rem; color: var(--gold); }
.u-146 { font-size: 0.875rem; line-height: 1.9; color: rgba(255, 255, 255, 0.85); white-space: pre-line; }
.u-147 { max-width: 920px; margin: 0px auto; padding: 100px 24px 100px; display: grid; grid-template-columns: 0.72fr 0.38fr; gap: 56px; align-items: start; }
.u-148 { height: 480px; background: url("../images/ceo-portrait-c.jpg") center top / cover rgba(255, 255, 255, 0.06); position: relative; margin-bottom: 24px; display: flex; align-items: center; justify-content: center; }
.u-149 { font-family: "Noto Serif JP", serif; font-size: 0.875rem; color: var(--gold); margin-bottom: 6px; }
.u-150 { font-family: "Noto Serif JP", serif; font-size: 1.25rem; margin-bottom: 36px; }
.u-151 { margin-bottom: 44px; }
.u-152 { font-family: "Noto Serif JP", serif; font-size: 1rem; color: var(--white); margin-bottom: 16px; border-left: 2px solid var(--gold); padding-left: 14px; }
.u-153 { font-size: 0.84375rem; line-height: 2.1; color: rgba(255, 255, 255, 0.72); margin: 0px; }
.u-154 { position: sticky; top: 104px; display: flex; flex-direction: column; gap: 2px; }
.u-155 { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; background: rgba(164, 137, 68, 0.12); border-left: 2px solid var(--gold); transition: background 0.3s; }
.u-156 { font-size: 0.75rem; color: var(--gold); margin-bottom: 4px; }
.u-157 { font-family: "Noto Serif JP", serif; font-size: 0.9375rem; }
.u-158 { font-size: 1.125rem; color: var(--gold); }
.u-159 { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; background: transparent; border-left: 2px solid transparent; transition: background 0.3s; }
:is(.u-160, .news-list) { max-width: 900px; margin: 0px auto; padding: 100px 24px 160px; display: flex; flex-direction: column; gap: 16px; }
:is(.u-161, .news-list__item) { display: flex; align-items: center; gap: 28px; padding: 26px 28px; border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 2px; }
:is(.u-162, .news-list__date) { font-family: "Cormorant Garamond", serif; font-size: 1rem; color: var(--gold); min-width: 104px; }
:is(.u-163, .news-list__category) { font-size: 0.6875rem; letter-spacing: 0.05em; color: var(--gold); border: 1px solid rgba(164, 137, 68, 0.5); padding: 5px 12px; white-space: nowrap; }
:is(.u-164, .news-list__title) { font-size: 0.875rem; color: rgba(255, 255, 255, 0.85); flex: 1 1 0%; }
.u-165 { max-width: 800px; margin: 0px auto; padding: 180px 24px 160px; }
.u-166 { font-size: 0.75rem; color: rgba(255, 255, 255, 0.5); margin-bottom: 20px; }
.u-167 { font-family: "Cormorant Garamond", serif; font-size: 0.875rem; color: var(--gold); margin-bottom: 14px; }
.u-168 { font-family: "Noto Serif JP", serif; font-size: clamp(1.25rem, 3vw, 1.75rem); font-weight: 500; line-height: 1.6; margin: 0px 0px 48px; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 255, 255, 0.15); }
.u-169 { font-size: 0.875rem; line-height: 2.2; color: rgba(255, 255, 255, 0.75); white-space: pre-line; }
.u-170 { display: flex; justify-content: space-between; margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.8125rem; }
.u-171 { position: relative; height: 480px; overflow: hidden; }
.u-172 { width: 100%; height: 100%; position: absolute; inset: 0px; }
.u-173 { width:100%; height:100%; object-fit:cover; display:block; }
.u-174 { position: absolute; inset: 0px; background: linear-gradient(0deg, rgba(15, 23, 45, 0.92) 0%, rgba(15, 23, 45, 0.35) 60%); pointer-events: none; }
.u-175 { position: absolute; left: 0px; right: 0px; bottom: 56px; text-align: center; pointer-events: none; }
.u-176 { max-width: 760px; margin: 0px auto; padding: 100px 24px 40px; text-align: center; }
.u-177 { max-width: 1280px; margin: 0px auto; padding: 80px 24px; }
.u-178 { font-family: "Noto Serif JP", serif; font-size: clamp(1.125rem, 2.6vw, 1.625rem); font-weight: 500; margin: 0px; }
.u-179 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; }
.u-180 { width: 100%; height: 180px; margin-bottom: 20px; }
.u-181 { font-family: "Noto Serif JP", serif; font-size: 1rem; margin-bottom: 12px; }
.u-182 { font-size: 0.8125rem; line-height: 1.9; color: rgba(255, 255, 255, 0.68); margin: 0px; }
.u-183 { max-width: 1000px; margin: 0px auto; display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 48px; align-items: center; }
.u-184 { height: 360px; background-image: url("../images/ceo-portrait-c.jpg"); background-size: cover; background-position: center top; }
.u-185 { font-family: "Noto Serif JP", serif; font-size: 1.1875rem; color: var(--navy); margin-bottom: 20px; }
.u-186 { font-size: 0.875rem; line-height: 2.1; color: rgba(15, 23, 45, 0.75); margin: 0px 0px 28px; }
.u-187 { font-family: "Noto Serif JP", serif; font-size: 0.875rem; color: var(--navy); }
.u-188 { max-width: 1280px; margin: 0px auto; padding: 100px 24px 140px; }
.u-189 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.u-190 { position: absolute; inset: 0px; opacity: 0.75; overflow: hidden; }
.u-191 { position: relative; z-index: 1; box-sizing: border-box; min-height: 100%; display: flex; flex-direction: column; justify-content: flex-end; padding: 32px; }
.u-192 { font-family: "Noto Serif JP", serif; font-size: 1.375rem; margin-bottom: 12px; }
.u-193 { font-size: 0.8125rem; line-height: 1.8; color: rgba(255, 255, 255, 0.75); margin: 0px 0px 22px; }
.u-194 { display: inline-flex; align-items: center; gap: 14px; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); background: var(--gold); padding: 13px 18px 13px 26px; border-radius: 999px; width: fit-content; }
.u-195 { position: relative; height: 420px; overflow: hidden; }
.u-196 { max-width: 820px; margin: 0px auto; padding: 100px 24px 160px; }
.u-197 { font-family: "Noto Serif JP", serif; font-size: 1.25rem; font-weight: 500; margin: 0px 0px 32px; text-align: center; }
.u-198 { font-family: "Cormorant Garamond", serif; font-size: 0.8125rem; letter-spacing: 0.2em; color: var(--gold); margin-bottom: 14px; }
.u-199 { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border: 1px solid rgba(255, 255, 255, 0.14); margin-bottom: 10px; }
.u-200 { font-size: 0.875rem; color: var(--white); }
:is(.u-201, .news-list__arrow) { color: var(--gold); font-size: 1rem; }
.u-202 { max-width: 820px; margin: 0px auto; padding: 40px 24px 120px; }
.u-203 { display: grid; grid-template-columns: 160px 1fr; gap: 24px; padding: 20px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.u-204 { font-family: "Noto Serif JP", serif; font-size: 0.8125rem; color: var(--gold); }
.u-205 { font-size: 0.84375rem; line-height: 1.9; color: rgba(255, 255, 255, 0.85); }
.u-206 { text-align: center; margin-top: 56px; }
.u-207 { display: inline-flex; align-items: center; justify-content: center; font-size: 0.8125rem; letter-spacing: 0.05em; color: var(--white); background: var(--gold); padding: 16px 48px; }
.u-208 { padding: 170px 24px 40px; max-width: 820px; margin: 0px auto; }
.u-209 { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.u-210 { font-family: "Noto Serif JP", serif; font-size: clamp(1.25rem, 3vw, 1.75rem); font-weight: 500; margin: 0px; }
.u-211 { position: relative; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: 0.8125rem; color: var(--white); background: var(--gold); padding: 0; width: 200px; height: 45px; }
.u-211::after { content: ""; position: absolute; top: 50%; right: 16px; width: 6px; height: 6px; border-top: 1.5px solid currentColor; border-right: 1.5px solid currentColor; transform: translateY(-50%) rotate(45deg); pointer-events: none; }
.u-212 { max-width: 820px; margin: 0px auto; padding: 24px 24px 160px; }
.u-213 { border-top: 1px solid rgba(164, 137, 68, 0.25); margin-bottom: 44px; }
.u-214 { font-family: "Noto Serif JP", serif; font-size: 1rem; margin-bottom: 16px; border-left: 2px solid var(--gold); padding-left: 14px; }
.u-215 { font-size: 0.84375rem; line-height: 2.1; color: rgba(255, 255, 255, 0.72); margin: 0px; /*white-space: pre-line;*/ }
.u-216 { font-family: "Noto Serif JP", serif; font-size: 1rem; margin-bottom: 20px; border-left: 2px solid var(--gold); padding-left: 14px; }
.u-217 { display: grid; grid-template-columns: 140px 1fr; gap: 20px; padding: 18px 0px; border-bottom: 1px solid rgba(255, 255, 255, 0.12); }
.u-218 { font-size: 0.78125rem; color: var(--gold); }
.u-219 { margin: 0px auto; padding: 0 24px 0; display: flex; flex-direction: column; gap: 26px; }
.u-220 { font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); margin-bottom: 8px; }
.u-221 { width: 100%; box-sizing: border-box; background: var(--white); border: 1px solid rgba(15, 23, 45, 0.2); color: var(--navy); padding: 14px; font-size: 0.875rem; }
.u-222 { display: inline-block; font-size: 0.625rem; color: var(--gold); border: 1px solid rgba(164, 137, 68, 0.5); padding: 1px 6px; border-radius: 2px; margin-left: 6px; vertical-align: middle; }
.u-223 { width: 100%; box-sizing: border-box; background: var(--white); border: 1px solid rgba(15, 23, 45, 0.2); color: var(--navy); padding: 14px; font-size: 0.875rem; font-family: inherit; }
.u-224 { border: 1px dashed rgba(255, 255, 255, 0.3); background: transparent; padding: 32px; cursor: pointer; transition: background 0.2s, border-color 0.2s; }
.u-225 { font-size: 0.8125rem; color: rgba(255, 255, 255, 0.6); text-align: center; }
.u-226 { display: none; }
.u-227 { font-size: 0.6875rem; color: rgba(255, 255, 255, 0.5); margin-top: 6px; }
.u-228 { display: flex; align-items: center; gap: 10px; font-size: 0.8125rem; color: rgba(255, 255, 255, 0.75); cursor: pointer; }
.u-229 { cursor: pointer; background: none; color: var(--white); border: 1px solid var(--gold); padding: 16px 40px; font-size: 0.875rem; font-family: inherit; margin-top: 10px; }
.u-230 { font-family: "Noto Serif JP", serif; font-size: clamp(1.375rem, 3.5vw, 2.125rem); font-weight: 500; margin: 0px 0px 28px; color: var(--white); }
.u-231 { font-size: 0.875rem; line-height: 2; color: rgba(255, 255, 255, 0.72); max-width: 640px; margin: 0px auto; }
.u-232 { margin: 0px auto; padding: 0 24px 0; display: flex; flex-direction: column; gap: 26px; }
.u-233 { font-size: 0.8125rem; line-height: 2; color: rgba(255, 255, 255, 0.7); margin: 0px 0px 8px; }
.u-234 { color: var(--gold); }
.u-235 { font-size: 0.75rem; color: rgba(255, 255, 255, 0.55); }
.u-236 { border-bottom: 1px solid rgba(164, 137, 68, 0.5); }
.u-237 { cursor: pointer; background: var(--gold); color: var(--white); border: 1px solid var(--gold); padding: 16px 40px; font-size: 0.875rem; font-family: inherit; margin-top: 10px; }
.u-238 { max-width: 800px; margin: 0px auto; padding: 100px 24px 160px; font-size: 0.84375rem; line-height: 2.2; color: rgba(255, 255, 255, 0.72); }
.u-239 { font-family: "Noto Serif JP", serif; font-weight: 500; font-size: 1.0625rem; color: var(--white); margin: 44px 0px 16px; }

/* ─────────────────────────────────────────────
   以下は reiwa-static から引き継いだ調整
   （Claude Design 側には反映されていないもの）
   ───────────────────────────────────────────── */

/* ページ上部へ戻るボタン */
.back-to-top{
  position:fixed; right:24px; bottom:24px; z-index:150;
  display:grid; place-items:center;
  width:45px; height:45px; padding:0; border:0; border-radius:0;
  background:var(--gold); cursor:pointer;
  opacity:0; visibility:hidden;
  transition:background-color .25s ease, transform .25s ease,
             opacity .3s ease, visibility .3s ease;
}
.back-to-top.is-shown{ opacity:1; visibility:visible; }
.back-to-top:hover{ background:#b79a50; transform:translateY(-2px); }
.back-to-top:focus-visible{ outline:2px solid #f7f5f3; outline-offset:3px; }
.back-to-top-arrow{
  width:10px; height:10px;
  border-top:2px solid var(--navy); border-left:2px solid var(--navy);
  transform:translateY(3px) rotate(45deg);
}

/* SCROLL インジケーターの縦線 */
.rd-scrollline{ position:relative; overflow:hidden; background:rgba(255,255,255,0.18); }
.rd-scrollline::after{
  content:""; position:absolute; left:0; top:0; width:100%; height:100%;
  background:rgba(255,255,255,0.9);
  animation:scrollLine 2s cubic-bezier(.65,.05,.36,1) infinite;
}
@keyframes scrollLine{
  0%   { transform:scaleY(0); transform-origin:top; }
  45%  { transform:scaleY(1); transform-origin:top; }
  55%  { transform:scaleY(1); transform-origin:bottom; }
  100% { transform:scaleY(0); transform-origin:bottom; }
}

/* 役員紹介の切り替え */
[data-officer-item]{ cursor:pointer; }
[data-officer-panel][hidden]{ display:none; }

@media (prefers-reduced-motion: reduce){
  .rd-scrollline::after{ animation:none; transform:scaleY(1); }
  .back-to-top{ transition:none; }
}

/* 引き継ぎ調整 ── 旧フォルダ（reiwa-static）で確定していた値 */
.u-020{ padding:0 24px 120px; }   /* FVコピー下余白 96→120px */
.u-021{ margin-bottom:0; }        /* 見出し下の余白を取る */
.u-023{ margin-bottom:40px; }     /* Rinascita House 下余白 24→40px */
.u-024{ line-height:1; }          /* Rinascita House 行間 */
.u-025{ margin-bottom:0; line-height:2.5; } /* 補足文の行間 */
.u-038{ margin:0 0 40px; }        /* OUR STRENGTHS 見出し余白 */
.u-050{ text-align:justify; }     /* 本文を均等割に */
.u-142{ color:rgba(255,255,255,1); margin-top:30px; } /* 会社概要 本文 */

.officer-profile__copy{
  text-align: justify;
  text-justify: inter-character;
}

/* 役員紹介：未支給の写真枠と選択状態 */
.rd-officer-photo-empty{
  aspect-ratio:3/4; width:100%;
  display:grid; place-items:center;
  border:1px solid rgba(164,137,68,.35);
  background:rgba(255,255,255,.03);
  color:rgba(255,255,255,.4); font-size:0.8125rem; letter-spacing:.08em;
}
[data-officer-item][aria-expanded="true"]{
  background:rgba(164,137,68,0.12);
  border-left:2px solid var(--gold);
}

/* 下層ページのヘッダーをトップページと揃える */
.u-112{ border-bottom:0; transition:background .4s; }
.u-113{ max-width:90%; }
.u-114{ height:45px; }
.u-115{ gap:20px; }
.u-116, .u-117{ font-size:0.9375rem; letter-spacing:.03em; white-space:nowrap; }
.u-117{ border-bottom:2px solid var(--gold); }
.u-118{
  font-size:0.9375rem; letter-spacing:.03em;
  background:var(--gold); border:0; padding:9px 18px;
}
.rd-nav-recruit{
  font-size:0.9375rem; letter-spacing:.02em;
  color:var(--white); background:var(--gold);
  padding:9px 16px; border-bottom:0; white-space:nowrap;
}

/* トップ ファーストビュー（会社概要のメッセージ） */



/* お問い合わせページ */
.u-232{ max-width:920px; }              /* フォームの幅 */
.u-222{                                   /* 必須マーク：金のベタ塗り＋濃紺文字 */
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}

/* ── 採用ページの調整 ───────────────────────── */

/* 職種詳細ページの幅（820px → 920px） */
.u-208, .u-212{ max-width:920px; }

/* 採用トップ 中途／新卒のボタン：四角にし、矢印を白で見えるように */
.u-194{ border-radius:0; }
.u-194 .rd-arrow svg{ stroke: var(--white); }

/* 下層ページのタイトル：写真の高さに対して中央に配置 */
.u-175{ top:50%; bottom:auto; transform:translateY(-50%); }

/* 募集職種リストの矢印：1.5倍に拡大し、太く */
:is(.u-201, .news-list__arrow){ font-size:1.5rem; font-weight:700; line-height:1; }

/* 職種詳細ページ下部の「応募する」：フォームと同じ幅に */
.u-206{ text-align:left; }
.u-207{ width:100%; box-sizing:border-box; padding:16px; }

/* ── 役員紹介ページ ─────────────────────────── */

/* 全体幅をトップのコンテンツと同じ 1280px に */
.u-147{ max-width:1280px; }

/* 写真を左、役職・氏名・プロフィールを右に */
.rd-officer-head{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:36px;
  align-items:start;
  margin-bottom:44px;
}
.rd-officer-head .u-148{        /* 写真を小さく */
  height:373px;
  margin-bottom:0;
}
.rd-officer-head .u-150{ margin-bottom:20px; }
.rd-officer-head .u-151{ margin-bottom:0; }
.rd-officer-photo-empty{ margin-bottom:0; }

@media (max-width:767px){
  .rd-officer-head{ grid-template-columns:1fr; gap:24px; margin-bottom:32px; }
  .rd-officer-head .u-148{ height:300px; }
}

/* 職種詳細：タイトル下の「営業／応募する」バー */

/* ── NEWS一覧 ───────────────────────────────── */

/* 日付の数字をトップページと同じフォントに */
:is(.u-162, .news-list__date), .u-167{ font-family:"EB Garamond", serif; font-size:0.9375rem; }

/* カテゴリのバッジ：金のベタ塗り＋濃紺文字 */
:is(.u-163, .news-list__category){
  background: var(--gold);
  border-color: var(--gold);
  color: var(--navy);
}

/* 枠線を太く（募集職種リストと共通） */
:is(.u-161, .news-list__item), .u-199{
  border-width:2px;
  border-color:rgba(255,255,255,0.22);
}

/* ── 事業概要ページ ─────────────────────────── */

/* リード文を明朝体に */
.rd-lead-mincho{
  font-family:"Noto Serif JP", serif;
  font-size:1rem;
  line-height:2.4;
  color:rgba(255,255,255,0.85);
}
.rd-business-lead-mobile { display: none; }
.rd-recruit-lead-mobile { display: none; }
.rd-entry-lead-mobile,
.rd-privacy-lead-mobile,
.rd-company-lead-mobile { display: none; }

/* 社会貢献（想い） */
.rd-csr{ padding:100px 24px; background:var(--navy); border-top:1px solid rgba(255,255,255,0.08); }
.rd-csr-inner{ max-width:920px; margin:0 auto; text-align:center; }
.rd-csr-title{
  font-family:"Noto Serif JP", serif; font-size:clamp(1.25rem,3vw,1.875rem);
  font-weight:500; color:var(--white); margin:0 0 28px;
}
.rd-csr-body{
  font-family:"Noto Serif JP", serif; font-size:0.9375rem; line-height:2.3;
  color:rgba(255,255,255,0.6); margin:0;
}

/* Rinascita House */
.rd-brand{ padding:100px 24px; background:var(--navy); }
.rd-brand-inner{
  max-width:920px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
.rd-brand-photo{ aspect-ratio:4/3; }
.rd-brand-img{
  background:url("../images/rinascita-interior-c.jpg") center / cover;
}
.rd-brand-name{
  font-family:"Cormorant Garamond", serif; font-size:clamp(1.625rem,4vw,2.5rem);
  color:var(--white); margin:10px 0 14px; line-height:1;
}
.rd-brand-copy{
  font-family:"Noto Serif JP", serif; font-size:1.125rem;
  color:var(--white); margin-bottom:26px;
}
.rd-brand-body{
  font-size:0.875rem; line-height:2.1; color:rgba(255,255,255,0.75); margin:0;
}
@media (max-width:767px){
  .rd-brand-inner{ grid-template-columns:1fr; gap:32px; }
  .rd-csr, .rd-brand{ padding:64px 24px; }
}

/* ── 共通ルール ─────────────────────────────── */

/* フッターの幅をトップページと揃える（下層は1280px固定だった） */
footer > .u-064{ max-width:90%; }

/* ── ページ幅の統一 ─────────────────────────────
   採用トップと役員紹介は 1280px（トップと同じ）
   それ以外の下層ページは 920px
   ※ページ固有の [data-sc-name] で限定（クラスが複数ページで共有のため）
   ───────────────────────────────────────────── */

/* 1280px */
[data-sc-name="about"]     .u-147{ max-width:1280px; }
[data-sc-name="recruit"] .u-176,
[data-sc-name="recruit"] .u-177,
[data-sc-name="recruit"] .u-183,
[data-sc-name="recruit"] .u-188{ max-width:1280px; }

/* 920px */
[data-sc-name="business"] .u-122,
[data-sc-name="business"] .u-042{ max-width:920px; }
[data-sc-name="company"] .u-140,
[data-sc-name="company"] .u-143{ max-width:920px; }
[data-sc-name="contact"] .u-176,
[data-sc-name="contact"] .u-232{ max-width:920px; }
[data-sc-name="news"] :is(.u-160, .news-list){ max-width:920px; }
[data-sc-name="news-detail"] .u-165{ max-width:920px; }
[data-sc-name="privacy"] .u-238{ max-width:920px; }
[data-sc-name="recruit-apply"] .u-219{ max-width:920px; }
[data-sc-name="recruit-career"] .u-196{ max-width:920px; }
[data-sc-name="recruit-job"] .u-208,
[data-sc-name="recruit-job"] .u-212{ max-width:920px; }
[data-sc-name="recruit-newgrad"] .u-176,
[data-sc-name="recruit-newgrad"] .u-202{ max-width:920px; }

/* ══════════════════════════════════════════════════════════
   下層ページ共通ルール ＆ 会社概要ページ（先方赤入れ 反映）
   ══════════════════════════════════════════════════════════ */

/* ── ページ上部（タイトル＋透かし写真）の高さを全下層で480pxに統一 ── */
.u-171,
.u-195{ height:480px; }

/* ── 共通リード文：Noto Serif JP / 16px / 中央寄せ ── */
.rd-page-lead{ padding:90px 24px; background:var(--navy); }
.rd-page-lead p{
  max-width:920px; margin:0 auto; text-align:center;
  font-family:"Noto Serif JP", serif;
  font-size:1rem; line-height:2.6; letter-spacing:.04em;
  color:rgba(255,255,255,0.85); }

/* ── 会社概要：会社情報テーブル ── */
.rd-info-bg{ background:#f7f5f3; padding:100px 0 0; }
[data-sc-name="company"] .u-143{
  max-width:920px; margin:0 auto; padding:0 0 120px; }
[data-sc-name="company"] .u-144{
  grid-template-columns:280px 1fr; gap:24px;
  border-bottom:1px solid rgba(15,23,45,0.16); }
[data-sc-name="company"] .u-146{ color:rgba(15,23,45,0.85); }
[data-sc-name="company"] .company-profile__value{ white-space:normal; }
[data-sc-name="company"] .company-profile__row--multiline{ align-items:start; }
[data-sc-name="company"] .company-profile__value a{ color:inherit; text-decoration:underline; text-decoration-color:rgba(164,137,68,.7); text-underline-offset:4px; }


/* ── フッター上の余白 ── */
.site-footer{ padding-top:56px; }

/* ── トップ RECRUITセクション：元の体裁に復元 ── */
.u-091 .u-093{ margin:0 0 32px; }
.u-091 .u-049{ margin-bottom:40px; }
.u-091 .u-081{ font-size:0.875rem; line-height:2.1; color:#fff; }
.u-091 .u-095{ padding:12px 30px; color:#fff; border-radius:0; }

/* ── CONTACT CTAのボタン：金ベタ塗り＋紺文字（採用CTAと統一・全ページ共通） ── */
.u-136{
  background:var(--gold); border-color:var(--gold); color:var(--navy); }
.u-136 .rd-arrow svg{ stroke:var(--navy); }

/* ── 下層タイトル部：英字ラベルが読めるよう透かしを調整 ── */
.u-174{
  background:linear-gradient(0deg,
    rgba(15,23,45,0.92) 0%,
    rgba(15,23,45,0.68) 45%,
    rgba(15,23,45,0.55) 100%); }
.u-120{ color:#c8a856; text-shadow:0 1px 6px rgba(15,23,45,0.85); }
.u-121{ text-shadow:0 1px 8px rgba(15,23,45,0.6); }

/* ── CONTACT CTAのボタン：矢印を外した分、左右の余白を揃える ── */
.u-136{ gap:0; padding:12px 30px; }

/* ══════════════════════════════════════════════════════════
   事業概要ページ：社会貢献セクション削除ののち背景を交互に
     Rinascita House … #ffffff（旧・買取再販の色）
     戸建/マンション買取再販 … #f7f5f3（旧・仲介の色）
     不動産の仲介 … #ffffff
     開発事業 … #f7f5f3
   ══════════════════════════════════════════════════════════ */
[data-sc-name="business"] .rd-brand{ background:#ffffff; }
[data-sc-name="business"] .u-124{ background:#f7f5f3; }
[data-sc-name="business"] .u-131{ background:#ffffff; }

/* 白背景に載るため Rinascita House の文字色を反転 */
[data-sc-name="business"] .rd-brand .u-120{
  color:#a48944; text-shadow:none; }
[data-sc-name="business"] .rd-brand-name,
[data-sc-name="business"] .rd-brand-copy{ color:#0f172d; }
[data-sc-name="business"] .rd-brand-body{ color:rgba(15,23,45,0.78); }

/* 社会への貢献（Rinascita House セクション内の追加スペース） */
.rd-brand-csr{
  margin-top:40px; padding-top:32px;
  border-top:1px solid rgba(15,23,45,0.14); }
.rd-brand-csr-title{
  font-family:"Noto Serif JP", serif; font-size:1.125rem; font-weight:500;
  color:#0f172d; margin:0 0 14px; }
.rd-brand-csr-body{
  font-family:"Noto Serif JP", serif; font-size:0.875rem; line-height:2.1;
  color:rgba(15,23,45,0.7); margin:0; }

/* ── 役員紹介：右カラムの一覧を追従（sticky）させる ──
   ページラッパー .u-001 の overflow-x:hidden がスクロール容器を作り
   position:sticky を無効化していたため、clip に置き換える。
   （clip は横スクロールを抑えつつスクロール容器を作らない）        */
.u-001{ overflow-x:clip; overflow-y:visible; }

[data-sc-name="about"] .u-154{
  position:sticky; top:104px; align-self:start; }

/* ── 採用カードのボタン：長い矢印ではなくシェブロン（>）に ── */
.rd-recruit-card .rd-arrow{ width:16px; height:16px; }
.rd-recruit-card .rd-arrow svg{ width:16px; height:16px; stroke-width:1.6; }

/* ── 下層タイトル部：ヘッダーが写真の上に重なる分を差し引いて
      「見えている写真の範囲」の中央に文字が来るようにする ── */
:root{ --header-h:84px; }
.site-header > .u-113{ height:var(--header-h); }
.u-175{
  top:calc(50% + var(--header-h) / 2);
  bottom:auto;
  transform:translateY(-50%); }


/* ── お問い合わせ：タイトル部の写真はヘッドセットが見える高さで切り出す ── */
[data-sc-name="contact"] .u-173{ object-position:center 12%; }

/* ── 共通ルール：フッターの幅をヘッダー（＝トップページ）と完全に揃える ──
   ヘッダー内側 : 親=ビューポート幅 → max-width:90% + padding:0 24px
   フッターは <footer> 側に左右24pxの余白があり、その分だけ内側が狭かった。
   左右余白を内側に移して、ヘッダーと同じ計算式にする。                  */
.site-footer{ padding-left:0; padding-right:0; }
footer > .u-064,
footer > .u-105{ max-width:90%; margin:0 auto; padding:0 24px; }

/* ══════════════════════════════════════════════════════════
   競り上がりアニメーション（reveal）
   もともとトップページの <style> 内にしかなく下層で使えなかったため、
   共通CSSへ移設。js/script.js の initReveal() が画面に入った要素へ
   .is-visible を付与する。
     .reveal-mask      … 外枠（はみ出しを隠す）
     .reveal           … 中身（下から競り上がる）
     .reveal-mask.lead … 動きを控えめに（40%）
     .d2 / .d3         … 開始を 0.12s / 0.24s 遅らせる
   ══════════════════════════════════════════════════════════ */
.reveal-mask{ display:block; overflow:hidden; }
.reveal{ display:block; transform:translate3d(0,100%,0); }
.reveal-mask.lead .reveal{ transform:translate3d(0,40%,0); }
.reveal-mask.is-visible .reveal{
  animation:rd-reveal 1.2s cubic-bezier(.22,.61,.36,1) forwards; }
.reveal-mask.lead.is-visible .reveal{ animation-name:rd-reveal-lead; }
.reveal-mask.d2 .reveal{ animation-delay:.12s; }
.reveal-mask.d3 .reveal{ animation-delay:.24s; }
@keyframes rd-reveal{
  0%{ transform:translate3d(0,100%,0); }
  100%{ transform:translate3d(0,0,0); } }
@keyframes rd-reveal-lead{
  0%{ transform:translate3d(0,40%,0); }
  100%{ transform:translate3d(0,0,0); } }
@media (prefers-reduced-motion: reduce){
  .reveal{ transform:none; }
  .reveal-mask.is-visible .reveal{ animation:none; }
}

/* reveal でひと階層挟んだ分、写真枠の高さを内側へ通す */
.rd-brand-photo > .reveal,
.rd-brand-photo .rd-zoom-wrap{ height:100%; }

/* 採用カード：reveal で階層がひとつ増えた分、高さを内側まで通す
   （.u-191 の min-height:100% が効かず、文言とボタンが上寄せになるため） */
.u-189 > .reveal-mask > .reveal,
.u-189 > .reveal-mask .rd-recruit-card{ height:100%; }

/* ══════════════════════════════════════════════════════════
   トップページ：初稿の体裁へ復元（2026-09-03）
   ══════════════════════════════════════════════════════════ */

/* FVコピー（初稿と同じ値） */
.u-021{ margin-bottom:0; }
.u-022{ font-family:"Noto Serif JP",serif; font-size:clamp(1.5rem,4vw,2.75rem);
        line-height:1.7; letter-spacing:.04em; }
.u-023{ margin-bottom:40px; }
.u-024{ font-family:"Cormorant Garamond",serif; font-size:clamp(1.625rem,5vw,3.25rem);
        letter-spacing:-.01em; color:var(--white); line-height:1; }
.u-025{ margin-bottom:0; line-height:2.5; }
.u-026{ font-size:0.9375rem; color:rgba(255,255,255,0.78); }

/* 社長メッセージ：段落ごとの余白（初稿は <br><br> ではなく段落間20px） */
.rd-msg-body{ line-height:2.5; }
.rd-msg-p{ margin-bottom:20px; }
.u-082{ margin-top:30px; }

/* ヘッダー：FVを過ぎたら紺の背景（js/script.js の initHeader が付与） */
.site-header.is-scrolled{ background:var(--navy); }

/* ── 共通：FV下のリード文は明朝体（全ページ同じあしらい） ── */
.u-123,
.u-123 span,
.u-122 .u-123{
  font-family:"Noto Serif JP", serif;
  font-size:1rem; line-height:2.4; letter-spacing:.04em;
  color:rgba(255,255,255,0.85); }
.u-176{ max-width:920px; margin:0 auto; padding:90px 24px; text-align:center; }

/* ══════════════════════════════════════════════════════════
   2026-09-03 修正
   ══════════════════════════════════════════════════════════ */

/* ── NEWS一覧 ── */
:is(.u-161, .news-list__item){ border-color:rgba(255,255,255,0.5); }   /* 枠線の不透明度を上げる */
:is(.u-163, .news-list__category){                                          /* 重要 / IR / お知らせ のバッジ */
  border-radius:2px;                             /* 必須マークと同じ角丸 */
  font-size:0.75rem;                                /* 1段階大きく */
  font-weight:700; }                             /* 太く */
:is(.rd-news-chev, .news-list__arrow){ margin-left:auto; padding-left:16px; }

/* ── 募集職種リスト：2カラム ── */
.rd-job-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:12px; align-items:start; }
.rd-job-grid > .reveal-mask{ margin:0; }
.rd-job-grid .u-199{ margin-bottom:0; }

/* ── ボタン ── */
.u-207{                                          /* 応募する：幅50%・中央揃え */
  position: relative;
  display:flex;        /* inline-flex のままだと margin:auto が効かない */
  width:200px; height: 45px; margin:0 auto; }
.u-207::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 16px;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;  
}
.u-237, .u-229, .u-207, .u-211, .u-103, .u-095{
  color:var(--white); }                          /* ボタンの文字色は白で統一 */

/* ── お問い合わせフォーム：法人／個人の区分を追加 ── */
.rd-field{ margin-bottom:4px; }
.rd-radio-row{ display:flex; flex-wrap:wrap; gap:28px; padding:6px 0 2px; }
.rd-radio{ display:inline-flex; align-items:center; gap:8px;
  font-size:0.875rem; color:rgba(255,255,255,0.88); cursor:pointer; }
.rd-radio input{ accent-color:#a48944; width:15px; height:15px; }
.rd-optional{
  display:inline-block; font-size:0.625rem; color:rgba(255,255,255,0.6);
  border:1px solid rgba(255,255,255,0.35); border-radius:2px;
  padding:1px 6px; margin-left:6px; vertical-align:middle; }



/* ── トップ 代表メッセージ下のボタン列 ── */
.rd-msg-actions{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; flex-wrap:wrap; margin-top:4px; }
.rd-venture-btn{
  display:inline-flex; align-items:center; gap:14px;
  font-size:0.8125rem; letter-spacing:.03em;
  color:var(--white); background:var(--gold); padding:12px 22px; }
.rd-venture-btn .rd-arrow svg{ stroke:var(--white); }


/* ══════════════════════════════════════════════════════════
   書体とあしらいの統一ルール（2026-09-03 確定）

     明朝（Noto Serif JP）… 見出し／FV下のリード文／
                             ブランド名・役員名などの固有名
     ゴシック（Noto Sans JP）… 本文・説明文／表組みの内容／
                             一覧／フォームのラベル・入力欄

   長い文章はゴシックのほうが読みやすいため、本文は
   ページを問わずゴシックに揃えています。
   ══════════════════════════════════════════════════════════ */

/* ── 本文・説明文はゴシック（ページ横断で統一） ── */
[data-sc-name="about"] .u-153,           /* 役員紹介：プロフィール・経歴 */
[data-sc-name="news-detail"] .u-169,   /* NEWS詳細：記事本文 */
[data-sc-name="privacy"] .u-238,       /* プライバシーポリシー：本文 */
[data-sc-name="recruit-job"] .u-215,   /* 募集職種詳細：仕事概要ほか */
[data-sc-name="company"] .u-146{       /* 会社概要：会社情報の内容 */
  font-family:"Noto Sans JP", sans-serif; }

/* ── 表組み：3ページとも同じ体裁に揃える ──
      会社概要の会社情報／新卒採用の募集要項／募集職種詳細の応募概要 */
.u-144, .u-203, .u-217{
  display:grid; grid-template-columns:280px 1fr; gap:24px;
  padding:20px 0; align-items:center; }
.u-145, .u-204, .u-218{                /* 項目名：明朝・金 */
  font-family:"Noto Serif JP", serif; font-size:0.8125rem; color:var(--gold); }
.u-146, .u-205{                        /* 内容：ゴシック */
  font-family:"Noto Sans JP", sans-serif;
  font-size:0.875rem; line-height:1.9; }

/* ── フォームまわりのバランス調整（2026-09-03） ── */

/* リード文とフォームの間が170pxあり空きすぎていたので詰める */
[data-sc-name="contact"] .u-176{ padding-bottom:40px; }
.u-232{ padding-top:56px; }

/* フォーム冒頭の案内文：前回提出時と同じ左揃え・体裁に戻す */
.u-233{ text-align:left; font-size:0.8125rem; line-height:2; margin:0 0 8px; }

/* 送信・確認ボタンを中央に（幅は50%のまま） */
.u-237, .u-229{ width:50%; margin:10px auto 0; }   /* 送信・確認画面へ：50%・中央揃え */

/* ── NEWS一覧のバッジ（重要 / IR / お知らせ）の文字は白 ── */
:is(.u-163, .news-list__category){ color:var(--white); }

/* ── 必須マークの文字も白に（NEWSのバッジと統一） ── */
.u-222{ color:var(--navy); font-weight: 700; }

/* ── 役員紹介：ベンチャー通信 掲載バナー（既存サイトのバナー画像を使用） ── */
.rd-venture-banner{
  display:block; width:100%; margin-top:28px;
  line-height:0; transition:opacity .3s; }
.rd-venture-banner img{ display:block; width:100%; height:auto; }
@media (hover:hover){ .rd-venture-banner:hover{ opacity:.85; } }

/* ── 役員紹介：バナーの下端を左の写真の下端に揃える ── */
.rd-officer-head .rd-officer-meta{
  align-self:stretch;                 /* 右カラムを写真と同じ高さに伸ばす */
  display:flex; flex-direction:column; }
.rd-officer-head .rd-venture-banner{
  margin-top:auto;                    /* 余った分を上に寄せて下端で揃える */
  margin-bottom:0; }


/* Footer CTA dimensions, shared across all pages. */
.u-091 .u-095,
.u-097 .u-103,
[data-sc-name="recruit-job"] [data-job-apply],
[data-sc-name="recruit-newgrad"] .u-207,
[data-sc-name="recruit-apply"] .u-229,
[data-sc-name="contact"] .u-237 {
  box-sizing: border-box;
  width: 200px;
  height: 45px;
  padding: 0 30px;
  justify-content: center;
}

/* Index text links: use the same small chevron as the footer CTAs. */
.rd-link-chevron {
  display: inline-block;
  flex: 0 0 6px;
  box-sizing: content-box;
  width: 6px;
  height: 6px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}


/* Business introduction: restore the supplied commitment / brand layout. */
[data-sc-name="business"] .rd-csr-inner { max-width: 1100px; }
[data-sc-name="business"] .rd-brand { background: var(--navy); }
[data-sc-name="business"] .rd-brand .u-120 { color: var(--gold); }
[data-sc-name="business"] .rd-brand-name,
[data-sc-name="business"] .rd-brand-copy { color: var(--white); }
[data-sc-name="business"] .rd-brand-body { color: rgba(255,255,255,0.75); }


/* Business image/text sections share a 1280px content width. */
[data-sc-name="business"] .rd-brand-inner,
[data-sc-name="business"] .r-business-46.u-042 {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}


/* Draw a continuous frame over the banner's incomplete image border. */
.rd-venture-banner img {
  outline: 1px solid rgba(255, 255, 255, 0.65);
  outline-offset: -1px;
}


/* News cards: fine white frame, navy labels, centered chevrons. */
[data-sc-name="news"] :is(.rd-news-card, .news-card) {
  border: 1px solid rgba(255, 255, 255, 0.8);
  align-items: center;
}
[data-sc-name="news"] :is(.u-163, .news-list__category) { color: var(--navy); }
[data-sc-name="news"] :is(.rd-news-chev, .news-list__arrow),
[data-sc-name="recruit-career"] .rd-job-chevron {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  padding: 0;
  margin-left: auto;
}
[data-sc-name="news"] :is(.rd-news-chev, .news-list__arrow)::before,
[data-sc-name="recruit-career"] .rd-job-chevron::before {
  content: "";
  width: 6px;
  height: 6px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
  transform: rotate(45deg);
}

/* Recruit president signature. */
[data-sc-name="recruit"] .u-187 { font-size: 1rem; }


/* Keep the full gold recruitment-card frame inside the reveal wrapper. */
[data-sc-name="recruit"] .rd-recruit-card {
  box-sizing: border-box;
  border: 0;
}
[data-sc-name="recruit"] .rd-recruit-card::after {
  content: "";
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  border: 1px solid rgba(164, 137, 68, 0.4);
  z-index: 2;
  pointer-events: none;
}


/* Career job cards match the news card frame. */
[data-sc-name="recruit-career"] .rd-job-row {
  border: 1px solid rgba(255, 255, 255, 0.8);
  align-items: center;
}


/* Match the footer CTA typography on both job-application buttons. */
[data-sc-name="recruit-job"] [data-job-apply],
[data-sc-name="recruit-newgrad"] .u-207,
[data-sc-name="recruit-apply"] .u-229,
[data-sc-name="contact"] .u-237 {
  letter-spacing: 0.05em;
}


/* Entry form introduction and required labels. */
[data-sc-name="recruit-apply"] .rd-entry-lead { padding-bottom: 24px; }
[data-sc-name="recruit-apply"] .u-222,
[data-sc-name="contact"] .u-222 {
  color: var(--navy);
  font-weight: 700;
}


/* Form actions use the shared gold CTA appearance. */
[data-sc-name="recruit-apply"] .u-229,
[data-sc-name="contact"] .u-237 {
  display: inline-flex;
  align-items: center;
  background: var(--gold);
  color: var(--white);
  border: 0;
  border-radius: 0;
  font-family: inherit;
  font-size: 0.8125rem;
  cursor: pointer;
}
[data-sc-name="recruit-apply"] .u-234,
[data-sc-name="contact"] .u-234 {
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* Leave 48px before form actions: the form gap is 26px. */
[data-sc-name="recruit-apply"] .u-229,
[data-sc-name="contact"] .u-237 {
  margin-top: 22px;
}


/* Cross-page consistency: prevent fixed content widths and form-font drift. */
.u-069 { width: auto; max-width: 100%; height: auto; }
.u-221 { font-family: inherit; }
.u-228 { align-items: flex-start; line-height: 1.8; }
.u-228 > input { flex: 0 0 auto; margin-top: 5px; accent-color: var(--gold); }
.u-228 > span { min-width: 0; }
.rd-venture-btn { box-sizing: border-box; }

/* Give the two-line business introduction enough room on desktop. */
[data-sc-name="index"] .u-068 { max-width: 920px; }


/* News article text: align wrapped lines without stretching paragraph endings. */
[data-sc-name="news-detail"] .u-169 {
  text-align: justify;
  text-justify: inter-ideograph;
  text-align-last: start;
  overflow-wrap: break-word;
  white-space: normal;
}
[data-sc-name="news-detail"] .news-article__body p {
  margin: 0 0 1.25em;
}
[data-sc-name="news-detail"] .news-article__body p:last-child {
  margin-bottom: 0;
}

/* Privacy introduction uses the shared Japanese serif heading family. */
[data-sc-name="privacy"] .rd-privacy-lead {
  font-family: "Noto Serif JP", serif;
  font-size: 1rem;
  line-height: 2.2;
  text-align: center;
}


/* Separate the privacy introduction from the first policy section. */
[data-sc-name="privacy"] .rd-privacy-lead { margin-bottom: 72px; }
[data-sc-name="privacy"] .rd-privacy-lead + .u-239 { margin-top: 0; }


/* Reserve consistent date/category columns so NEWS titles align. */
@media (min-width: 768px) {
  [data-sc-name="news"] :is(.rd-news-card, .news-card) {
    display: grid;
    grid-template-columns: 104px 80px minmax(0, 1fr) 16px;
  }
  [data-sc-name="news"] :is(.u-163, .news-list__category) { justify-self: start; }
  [data-sc-name="news"] :is(.u-164, .news-list__title) { min-width: 0; }
}


/* Equal category badges keep the gap before each NEWS title consistent. */
[data-sc-name="news"] :is(.u-163, .news-list__category) {
  box-sizing: border-box;
  width: 80px;
  text-align: center;
}

/* Give the three recruitment feature columns enough text width for natural line breaks. */
@media (min-width: 900px) {
  [data-sc-name="recruit"] .u-177 { max-width: 1320px; }
  [data-sc-name="recruit"] .u-179 { gap: 24px; }
}

/* Prevent the middle recruitment description from leaving only its ending on a new line. */
@media (min-width: 900px) {
  [data-sc-name="recruit"] .u-177 { max-width: 1360px; }
  [data-sc-name="recruit"] .u-179 { gap: 16px; }
}

/* Restore the original spacing between recruitment feature columns. */
@media (min-width: 900px) {
  [data-sc-name="recruit"] .u-179 { gap: 32px; }
}

/* Restore the original recruitment feature layout. */
@media (min-width: 900px) {
  [data-sc-name="recruit"] .u-177 { max-width: 1280px; }
  [data-sc-name="recruit"] .u-179 { gap: 32px; }
}

/* Keep the viewport and header position stable when navigating between pages. */
html { scrollbar-gutter: stable; }
.site-header > .u-003,
.site-header > .u-113 {
  box-sizing: border-box;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
}

/* Use the requested common 90% header width on every page. */
.site-header > .u-003,
.site-header > .u-113 {
  width: 90%;
  max-width: none;
}

/* Keep both header CTA buttons identical across the top and lower pages. */
.site-header .u-009,
.site-header .u-010,
.site-header .rd-nav-recruit,
.site-header .u-118 {
  box-sizing: border-box;
  height: 40px;
  padding-top: 0;
  padding-bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* One semantic rule eliminates subtle CTA differences between page templates. */
.site-header .rd-header-cta {
  box-sizing: border-box;
  height: 40px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border: 0;
  border-radius: 0;
  background: var(--gold);
  color: var(--white);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.9375rem;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
}
.site-header .rd-header-cta--recruit {
  width: 154px;
  letter-spacing: 0.02em;
}
.site-header .rd-header-cta--contact {
  width: 128px;
  letter-spacing: 0.03em;
}

/* Refined scroll motion: headings reveal left-to-right; supporting content stays subtle. */
.reveal-mask .reveal,
.reveal-mask.lead .reveal {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  will-change: opacity, transform;
}
.reveal-mask.is-visible .reveal,
.reveal-mask.lead.is-visible .reveal {
  animation: rd-reveal-soft .8s cubic-bezier(.22,.61,.36,1) forwards;
}
.reveal-mask.rd-reveal-title .reveal,
.reveal-mask.lead.rd-reveal-title .reveal {
  opacity: 1;
  transform: translate3d(-18px, 0, 0);
  clip-path: inset(0 100% 0 0);
  will-change: transform, clip-path;
}
.reveal-mask.rd-reveal-title.is-visible .reveal,
.reveal-mask.lead.rd-reveal-title.is-visible .reveal {
  animation: rd-reveal-horizontal 1.35s cubic-bezier(.22,.61,.36,1) forwards;
}
.reveal-mask.d2 .reveal { animation-delay: .1s; }
.reveal-mask.d3 .reveal { animation-delay: .18s; }
@keyframes rd-reveal-soft {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes rd-reveal-horizontal {
  from { transform: translate3d(-18px, 0, 0); clip-path: inset(0 100% 0 0); }
  to   { transform: translate3d(0, 0, 0); clip-path: inset(0 0 0 0); }
}
@media (prefers-reduced-motion: reduce) {
  .reveal-mask .reveal,
  .reveal-mask.lead .reveal,
  .reveal-mask.rd-reveal-title .reveal {
    opacity: 1;
    transform: none;
    clip-path: none;
    animation: none;
  }
}

/* Keep mobile-specific lead copy hidden on desktop, including animated spans. */
.reveal.rd-business-lead-mobile,
.reveal.rd-recruit-lead-mobile,
.reveal.rd-company-lead-mobile,
.rd-entry-lead-mobile,
.rd-privacy-lead-mobile {
  display: none;
}

/* Company page: president message between the lead and company information. */
[data-sc-name="company"] .rd-company-message {
  padding: 40px 24px 120px;
  background: var(--navy);
}
[data-sc-name="company"] .rd-company-message-heading {
  max-width: 1280px;
  margin: 0 auto 56px;
  text-align: center;
}
[data-sc-name="company"] .rd-company-message-label {
  display: block;
  margin-bottom: 14px;
  color: var(--gold);
  font-family: "Cormorant Garamond", serif;
  font-size: 0.875rem;
  letter-spacing: .28em;
}
[data-sc-name="company"] .rd-company-message-heading h2 {
  margin: 0;
  color: var(--white);
  font-family: "Noto Serif JP", serif;
  font-size: clamp(1.375rem, 3vw, 1.875rem);
  font-weight: 500;
}
[data-sc-name="company"] .rd-company-message-layout {
  max-width: 1280px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 72px;
  align-items: start;
}
[data-sc-name="company"] .rd-company-message-person {
  position: sticky;
  top: 108px;
}
[data-sc-name="company"] .rd-company-message-photo {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  background: url("../images/ceo-portrait-c.jpg") center top / cover no-repeat;
}
[data-sc-name="company"] .rd-company-message-role {
  margin-top: 22px;
  color: var(--gold);
  font-family: "Noto Serif JP", serif;
  font-size: 0.875rem;
}
[data-sc-name="company"] .rd-company-message-name {
  margin-top: 6px;
  color: var(--white);
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
}
[data-sc-name="company"] .rd-company-message-item {
  padding: 0 0 40px;
  margin-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
[data-sc-name="company"] .rd-company-message-item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}
[data-sc-name="company"] .rd-company-message-item h3 {
  margin: 0 0 18px;
  padding-left: 16px;
  border-left: 2px solid var(--gold);
  color: var(--white);
  font-family: "Noto Serif JP", serif;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.7;
}
[data-sc-name="company"] .rd-company-message-item p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 0.84375rem;
  line-height: 2.1;
  text-align: justify;
  text-justify: inter-character;
}

.rd-company-title-break { display: none; }
@media (max-width: 767px) {
  [data-sc-name="company"] .rd-company-message {
    padding: 32px 20px 72px;
  }
  [data-sc-name="company"] .rd-company-message-heading {
    margin-bottom: 36px;
  }
  [data-sc-name="company"] .rd-company-message-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  [data-sc-name="company"] .rd-company-message-person {
    position: static;
  }
  [data-sc-name="company"] .rd-company-message-photo {
    max-width: 320px;
    margin: 0 auto;
  }
  [data-sc-name="company"] .rd-company-message-role,
  [data-sc-name="company"] .rd-company-message-name {
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }
  [data-sc-name="company"] .rd-company-message-item {
    padding-bottom: 32px;
    margin-bottom: 32px;
  }
  [data-sc-name="company"] .rd-company-message-item h3 {
    font-size: 1rem;
  }
}

/* The president photo scrolls normally with the company message. */
[data-sc-name="company"] .rd-company-message-person {
  position: static;
  top: auto;
}

/* Remove trailing space after the final profile section in each officer panel. */
[data-sc-name="about"] .rd-officer-body > .u-151:last-child {
  margin-bottom: 0;
}

/* Header navigation remains visually stable during clicks and page changes. */
.site-header .site-nav a,
.site-header .site-nav a:hover,
.site-header .site-nav a:active {
  transition: none;
  animation: none;
  transform: none;
  filter: none;
}

/* This line break is enabled only for the mobile hero copy. */
.rd-mobile-break { display: none; }

/* Separate desktop and mobile line breaks for the shared recruitment CTA. */
.rd-recruit-copy-desktop { display: inline; }
.rd-recruit-copy-mobile { display: none; }

/* Separate desktop and mobile line breaks for the shared contact CTA. */
.rd-contact-copy-desktop { display: inline; }
.rd-contact-copy-mobile { display: none; }

/* Footer address stays on one line on desktop. */
.rd-footer-address-break { display: none; }
.rd-footer-address-space { display: inline; }

/* The shared CTA copy is always visible and keeps its intended sans-serif style. */
.recruitment-cta .rd-recruit-copy-desktop,
.recruitment-cta .rd-recruit-copy-mobile {
  font-size: 0.875rem;
  line-height: 2.1;
  color: #fff;
}
.contact-cta .rd-contact-copy-desktop,
.contact-cta .rd-contact-copy-mobile {
  font-size: 0.875rem;
  line-height: 2;
  color: rgba(255, 255, 255, 0.72);
}
/* front-page.php already contained the recruitment CTA before the shared footer CTA was added. */
.home main > .recruitment-cta { display: none; }

/* 20260923 add */
@media (max-width: 767px) {
  .site-menu-toggle {
    background: transparent;
    border: none;
  }
}

/* 20260928 add */
@media (min-width: 768px) {
  /* 画像を狭く、文章を広くする */
  [data-sc-name="business"] .business-service--renovation .business-service__inner,
  [data-sc-name="business"] .business-service--development .business-service__inner {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }

  [data-sc-name="business"] .business-service--brokerage .business-service__inner {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  }
}

/* NEWS一覧：各記事カードの間隔 */
[data-sc-name="news"] .news-list > div {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Recruit page: expanded president message moved from the company page. */
[data-sc-name="recruit"] .recruit-message__inner {
  align-items: start;
}
[data-sc-name="recruit"] .recruit-message__role {
  margin-top: 22px;
  color: var(--gold);
  font-family: "Noto Serif JP", serif;
  font-size: .875rem;
}
[data-sc-name="recruit"] .recruit-message__person-name {
  margin-top: 6px;
  color: var(--navy);
  font-family: "Noto Serif JP", serif;
  font-size: 1.25rem;
}
[data-sc-name="recruit"] .recruit-message__intro {
  margin: 0 0 28px;
  color: rgba(15, 23, 45, .75);
  font-size: .875rem;
  line-height: 2.1;
}
[data-sc-name="recruit"] .recruit-message__intro p {
  margin: 0;
}
[data-sc-name="recruit"] .recruit-message__items {
/*  margin: 0 0 28px;*/
  margin: 0;  
}
[data-sc-name="recruit"] .recruit-message__item {
  margin: 0;
  padding: 28px 0;
  border-top: 1px solid rgba(15, 23, 45, .15);
}
[data-sc-name="recruit"] .recruit-message__item h3 {
  margin: 0 0 14px;
  padding-left: 14px;
  border-left: 2px solid var(--gold);
  color: var(--navy);
  font-family: "Noto Serif JP", serif;
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.7;
}
[data-sc-name="recruit"] .recruit-message__item p {
  margin: 0;
  color: rgba(15, 23, 45, .75);
  font-size: .875rem;
  line-height: 2.1;
  text-align: justify;
  text-justify: inter-character;
}
@media (max-width: 767px) {
  [data-sc-name="recruit"] .recruit-message__item {
    padding: 24px 0;
  }
  [data-sc-name="recruit"] .recruit-message__item h3 {
    font-size: 1rem;
  }
}
