@charset "UTF-8";
/* ++++++++++++++++++++++++++++++++++++++++++
	Theme Name: 住空間総合研究所 2026
	Description: j-kukan.jp 用オリジナルテーマ（2026リニューアル／design-01 をWP化）
	Author: ウェブエイド合同会社
	Version: 1.0
	Text Domain: j-kukanjp-2026
++++++++++++++++++++++++++++++++++++++++++++++ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/*
html5doctor.com Reset Stylesheet
v1.6.1
Last Updated: 2010-09-17
Author: Richard Clark - http://richclarkdesign.com
Twitter: @rich_clark
*/
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  font-weight: normal;
}

span {
  font-weight: inherit;
}

body {
  line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

ul,
ol {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

th {
  text-align: left;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

/* --------------------------------------------------
	Form
-------------------------------------------------- */
input,
select {
  vertical-align: middle;
}

button {
  background: none;
  border: none;
  outline: none;
  appearance: none;
}

fieldset {
  border: none;
}

input {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 100%;
  font-family: inherit;
  vertical-align: middle;
  outline: none;
  border: none;
}

textarea,
select,
label {
  margin-top: 0;
  margin-bottom: 0;
  padding-top: 0;
  padding-bottom: 0;
  font-size: 100%;
  font-family: inherit;
  vertical-align: middle;
  outline: none;
  border: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

textarea {
  resize: vertical;
}

legend {
  display: none;
}

img {
  max-width: 100%;
  height: auto;
}

img {
  vertical-align: bottom;
}

img.responsive {
  width: 100%;
}

img.svg {
  width: auto;
}

/* ============================================
   @font-face（サイトごとに設定）
   現在は Google Fonts（functions.php で enqueue）。セルフホストに切り替える場合はここに定義
============================================ */
/* ============================================
   サイト宣言変数
   SITE_CONFIG.md と必ず同期させること
   ※ HTML内のSVG（fill="var(--gold-soft)" 等）が CSS変数を参照するため、
     _default.scss の :root で同じ値を CSS変数としても出力している
============================================ */
/**************************
  カラーパレット
**************************/
/* ============================================
   関数（定義はこのファイルだけ。mixinファイル内での重複定義禁止）
============================================ */
/*-- mixinフォルダの中の_index.scss --*/
/* ============================================
   正本mixin（棚卸し確定版 2026-03）
   これ以外の旧mixinは _m-archive.scss にあり、新規使用禁止
============================================ */
/*------------------------------------
 メディアクエリ MIXIN
---------------------------------*/
/*---------------------
 ★ 文字関連一括指定【全テキスト必須】
-----------------------*/
/*---------------------
 ★ 数値プロパティのvwシームレス可変
-----------------------*/
/*---------------------
 ★ リンク文字色 固定
-----------------------*/
/*---------------------
 ★ コンテナ
-----------------------*/
/*-------------------------------------
   レイアウト汎用（pp- = page-parts）
---------------------------------------*/
/*-----------------------------------
 上下余白（レスポンシブ2値）
-----------------------------------*/
/*-----------------------------------
 左余白（レスポンシブ）※左柱レイアウト採用サイトのみ
-----------------------------------*/
/*-----------------------------------
 改行制御
-----------------------------------*/
/*--------------------------------------------
 行数丸め…省略（複数行対応）
----------------------------------------------*/
/*-----------------------------------
 連続要素の間隔（段落間隔）
-----------------------------------*/
/* ============================================
   フォント ff-系mixin（このサイト用）
   いずれも Google Fonts（functions.php で enqueue）
============================================ */
/* ++++++++++++++++++++++++++++++++++++++++++
   グローバル既定（design-01 の [0] foundation）
++++++++++++++++++++++++++++++++++++++++++*/
/*---------------------
 ★ CSS変数
 HTML内のSVGが fill="var(--gold-soft)" のように直接参照するため残す。値は _variables.scss と同じ
-----------------------*/
:root {
  --navy: #1b2a44;
  --navy-deep: #131f33;
  --gold: #b3924f;
  --gold-soft: #cfb27a;
  --beige: #f5f2ea;
  --beige-deep: #ebe5d6;
  --paper: #fdfcf8;
  --ink: #26292e;
  --sub: #63676e;
  --line: #ddd6c8;
  --grey: #d9d5cb;
  --logo: #ec6808;
  --max: 1120px;
  --sec-pc: 96px;
  --sec-sp: 56px;
}

* {
  margin: 0;
  padding: 0;
}

/*---------------------
 ★ スムーズスクロール
-----------------------*/
html {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
  }
}
/*---------------------
 ★ 本文の基本（50代以上向け：PC16px／SP15px）
-----------------------*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: calc(16 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.04em;
  line-height: 1.9;
  background: #fdfcf8;
}
@media screen and (max-width: 600px) {
  body {
    font-style: normal;
    font-weight: 400;
    font-size: calc(15 / 16 * 1rem);
    color: #26292e;
    letter-spacing: 0.04em;
    line-height: 1.9;
  }
}

img {
  max-width: 100%;
  display: block;
}

/*---------------------
 ★ リセットで消える既定値の復元
 design-01 はブラウザ既定（b / strong は一段太く、small は一段小さく）を前提に組まれているため戻す
-----------------------*/
b,
strong {
  font-weight: bolder;
}

small {
  font-size: smaller;
}

/*---------------------
 ★ リンク既定: 下線消去+親の色を継承
 ※このサイトはリンクの多くがボタン・カード型で、色をクラス側で指定している。
   linkColor() の :visited 等（詳細度0,1,1）がクラス指定（0,1,0）を上書きしてしまうため、
   既定は color: inherit のみとし、個別リンクで必要なときに linkColor() を使う（fudousan-new と同じ方針）
-----------------------*/
a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

/*---------------------
 ★ キーボード操作時のフォーカス表示
-----------------------*/
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid #b3924f;
  outline-offset: 3px;
}

/*---------------------
 ★ リンク無効
-----------------------*/
a.link-none {
  pointer-events: none !important;
}

/*-- componentフォルダの中の_index.scss --*/
/* ============================================================
   [1] common：質感：ベージュ面に極薄の紙テクスチャ（.tex）
============================================================ */
.tex {
  background-color: #f5f2ea;
  background-image: repeating-linear-gradient(0deg, rgba(27, 42, 68, 0.018) 0 1px, transparent 1px 3px), repeating-linear-gradient(90deg, rgba(179, 146, 79, 0.02) 0 1px, transparent 1px 4px);
}

/* ============================================================
   [1] common：セクション見出し・リード・冒頭1文（.sec-head / .sec-lead / .first-line）
============================================================ */
.sec-head {
  text-align: center;
  margin-bottom: 44px;
}
.sec-head .en {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 12px;
}
.sec-head .ja {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(34 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1062.5px) {
  .sec-head .ja {
    font-size: 34px;
  }
}
@media (min-width: 750px) and (max-width: 1061.5px) {
  .sec-head .ja {
    font-size: calc(3.2vw + 0px);
  }
}
@media (max-width: 749px) {
  .sec-head .ja {
    font-size: 24px;
  }
}
.sec-head::after {
  content: "";
  display: block;
  width: 48px;
  height: 1px;
  background: #b3924f;
  margin: 20px auto 0;
}
@media screen and (max-width: 600px) {
  .sec-head {
    margin-bottom: 28px;
  }
}

/* セクションリード（幅指定＋左寄せ）／冒頭1文の結論先出し */
.sec-lead {
  max-width: 720px;
  margin: -10px auto 44px;
  text-align: left;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.1;
}
@media (min-width: 481px) and (max-width: 960px) {
  .sec-lead {
    padding: 0 24px;
  }
}
@media screen and (max-width: 600px) {
  .sec-lead {
    margin-bottom: 30px;
  }
}

/* 中央寄せリードは、折返しが不自然になる幅（768px以下）で左寄せへ。中間幅は左右余白を足して間延びを防ぐ */
.sec-lead--center {
  text-align: center;
}
@media screen and (max-width: 768px) {
  .sec-lead--center {
    text-align: left;
  }
}

.first-line {
  display: block;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.7;
}
@media (min-width: 909.09px) {
  .first-line {
    font-size: 20px;
  }
}
@media (min-width: 818.18px) and (max-width: 908.09px) {
  .first-line {
    font-size: calc(2.1999780002vw + 0.0002199978px);
  }
}
@media (max-width: 817.18px) {
  .first-line {
    font-size: 18px;
  }
}
.first-line {
  margin-bottom: 12px;
}

/* ============================================================
   [1] common：図解の器（.zu）・チェック印（.chk）
============================================================ */
.zu {
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 34px 32px 30px;
}
@media screen and (max-width: 600px) {
  .zu {
    padding: 24px 18px 22px;
  }
}

.zu__title {
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 22px;
}
.zu__title .en {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: calc(10 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.26em;
  line-height: inherit;
  margin-bottom: 6px;
}

/* チェック印 */
.chk {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 6px;
  background: #b3924f;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
  display: grid;
  place-items: center;
}

/* ============================================================
   [1] common：ボタン（.btn）
============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 240px;
  min-height: 56px;
  padding: 14px 32px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(15.5 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.1em;
  line-height: inherit;
  border: 1px solid #1b2a44;
  background: #1b2a44;
  transition: opacity 0.25s;
}
.btn:hover {
  opacity: 0.84;
}
.btn .arw {
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 600px) {
  .btn {
    width: 100%;
    min-width: 0;
    padding: 14px 16px;
  }
}

.btn--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.8);
  color: #fff;
}

.btn--gold {
  background: #b3924f;
  border-color: #b3924f;
}

/* ============================================================
   [1] common：CTAバンド（流れ → 電話 → フォームリンク）
============================================================ */
.cta-band {
  background: #131f33;
  color: #fff;
  padding: 76px 0;
  text-align: center;
}
@media screen and (max-width: 600px) {
  .cta-band {
    padding: 56px 0;
  }
}

.cta-band__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(34 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.6;
}
@media (min-width: 1062.5px) {
  .cta-band__title {
    font-size: 34px;
  }
}
@media (min-width: 750px) and (max-width: 1061.5px) {
  .cta-band__title {
    font-size: calc(3.2vw + 0px);
  }
}
@media (max-width: 749px) {
  .cta-band__title {
    font-size: 24px;
  }
}
.cta-band__title {
  margin-bottom: 16px;
}

.cta-band__text {
  max-width: 640px;
  margin: 0 auto 30px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.86);
  letter-spacing: inherit;
  line-height: 2.1;
  text-align: left;
}

.cta-band__steps {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 18px;
  margin: 0 auto 10px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(24 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1090.91px) {
  .cta-band__steps {
    font-size: 24px;
  }
}
@media (min-width: 818.18px) and (max-width: 1089.91px) {
  .cta-band__steps {
    font-size: calc(2.1999780002vw + 0.0002199978px);
  }
}
@media (max-width: 817.18px) {
  .cta-band__steps {
    font-size: 18px;
  }
}
.cta-band__steps b {
  font-weight: 600;
}
@media screen and (max-width: 600px) {
  .cta-band__steps {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(17 / 16 * 1rem);
    color: #fff;
    letter-spacing: inherit;
    line-height: inherit;
    gap: 8px 10px;
  }
}

.cta-band__row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

.cta-band__tel {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  line-height: 1.2;
  color: #fff;
  padding: 6px 0;
}
.cta-band__tel .num {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(56 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.04em;
  line-height: inherit;
}
@media (min-width: 1037.04px) {
  .cta-band__tel .num {
    font-size: 56px;
  }
}
@media (min-width: 666.67px) and (max-width: 1036.04px) {
  .cta-band__tel .num {
    font-size: calc(5.4000054vw + -0.0002160002px);
  }
}
@media (max-width: 665.67px) {
  .cta-band__tel .num {
    font-size: 36px;
  }
}
@media screen and (max-width: 600px) {
  .cta-band__tel .num {
    font-style: normal;
    font-weight: 700;
    font-size: calc(34 / 16 * 1rem);
    color: #cfb27a;
    letter-spacing: 0.04em;
    line-height: inherit;
  }
}
.cta-band__tel .time {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: 0.04em;
  line-height: inherit;
  margin-top: 8px;
}

.cta-band__form {
  margin-top: 10px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: inherit;
  line-height: inherit;
}
.cta-band__form a {
  color: #fff;
  font-weight: 700;
  padding-bottom: 3px;
  border-bottom: 1px solid #cfb27a;
}

/* ============================================================
   [1] common：お問い合わせセクション・フォーム（.contact / .form-row）
============================================================ */
.contact {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .contact {
    padding: 56px 0;
  }
}

.contact__lead {
  max-width: 640px;
  margin: -14px auto 44px;
  text-align: left;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.1;
}

.contact__form {
  max-width: 680px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 48px 52px;
}
@media screen and (max-width: 600px) {
  .contact__form {
    padding: 28px 20px;
  }
}

.form-row {
  margin-bottom: 24px;
}

.form-row__label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(14 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 8px;
}
.form-row__label .req, .form-row__label .opt {
  font-style: normal;
  font-weight: 500;
  font-size: calc(10 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.08em;
  line-height: inherit;
  padding: 2px 8px;
}
.form-row__label .req {
  background: #1b2a44;
}
.form-row__label .opt {
  background: #a8a49a;
}

.form-row__input {
  width: 100%;
  min-height: 50px;
  padding: 12px 14px;
  border: 1px solid #ddd6c8;
  background: #fdfcf8;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: calc(16 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0em;
  line-height: normal;
}
.form-row__input::placeholder {
  color: #b4b0a6;
}

.form-row__input--textarea {
  min-height: 150px;
  resize: vertical;
}

.contact__submit {
  text-align: center;
  margin-top: 32px;
}

/* ============================================================
   WP化で追加：Contact Form 7 の出力に合わせた調整
   フォームコード・メール文面は .docs/cf7-contact.md
============================================================ */
.contact__form .wpcf7-form-control-wrap {
  display: block;
}
.contact__form .wpcf7-select {
  appearance: auto;
}
.contact__form .wpcf7-not-valid {
  border-color: #9a5b57;
}
.contact__form .wpcf7-not-valid-tip {
  margin-top: 6px;
  font-style: normal;
  font-weight: 500;
  font-size: calc(13 / 16 * 1rem);
  color: #9a5b57;
  letter-spacing: inherit;
  line-height: 1.6;
}
.contact__form .wpcf7-form .wpcf7-response-output {
  margin: 24px 0 0;
  padding: 14px 18px;
  border: 1px solid #1b2a44;
  background: #fdfcf8;
  font-style: normal;
  font-weight: 500;
  font-size: calc(14 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.7;
}
.contact__form .wpcf7-form.invalid .wpcf7-response-output,
.contact__form .wpcf7-form.unaccepted .wpcf7-response-output,
.contact__form .wpcf7-form.spam .wpcf7-response-output,
.contact__form .wpcf7-form.failed .wpcf7-response-output {
  border-color: #9a5b57;
  background: #f0e7e4;
  color: #9a5b57;
}

/* ============================================================
   [1] common：下層ページ見出し（.page-head / --plain）
============================================================ */
.page-head {
  position: relative;
  background: #131f33;
  color: #fff;
  overflow: hidden;
}

.page-head__photo {
  position: absolute;
  inset: 0;
}
.page-head__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 55%;
}
.page-head__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(19, 31, 51, 0.94) 0%, rgba(19, 31, 51, 0.82) 42%, rgba(19, 31, 51, 0.35) 100%);
}

.page-head__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, 100% - 48px);
  margin: 0 auto;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 64px 0;
}
@media screen and (max-width: 600px) {
  .page-head__inner {
    width: calc(100% - 36px);
    min-height: 220px;
    padding: 44px 0;
  }
}

.page-head__en {
  display: flex;
  align-items: center;
  gap: 14px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 16px;
}
.page-head__en::before {
  content: "";
  width: 34px;
  height: 1px;
  background: #cfb27a;
}

.page-head__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(46 / 16 * 1rem);
  color: inherit;
  letter-spacing: 0.12em;
  line-height: 1.4;
}
@media (min-width: 1150px) {
  .page-head__title {
    font-size: 46px;
  }
}
@media (min-width: 750px) and (max-width: 1149px) {
  .page-head__title {
    font-size: calc(4vw + 0px);
  }
}
@media (max-width: 749px) {
  .page-head__title {
    font-size: 30px;
  }
}
@media screen and (max-width: 600px) {
  .page-head__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(30 / 16 * 1rem);
    color: inherit;
    letter-spacing: 0.12em;
    line-height: 1.4;
  }
}

.page-head__sub {
  margin-top: 14px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.86);
  letter-spacing: 0.06em;
  line-height: inherit;
}
@media screen and (max-width: 600px) {
  .page-head__sub {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(14 / 16 * 1rem);
    color: rgba(255, 255, 255, 0.86);
    letter-spacing: 0.06em;
    line-height: inherit;
  }
}

.page-head--plain {
  background: #1b2a44;
}
.page-head--plain .page-head__inner {
  min-height: 240px;
}
@media screen and (max-width: 600px) {
  .page-head--plain .page-head__inner {
    min-height: 170px;
  }
}

/*-- utilityフォルダの中の_index.scss --*/
/*------------------------------------
ユーティリティ いろいろ
「クラス名を新規に作るのが面倒なとき」の受け皿。
u-クラスの多段連結でレイアウトを組み立てるのは禁止（それは名前空間内に書く）
---------------------------------*/
.u-display-none {
  display: none;
}

.u-txt-right {
  text-align: right;
}

.u-ta-left-sp {
  text-align: center;
}
@media screen and (max-width: 600px) {
  .u-ta-left-sp {
    text-align: left;
  }
}

@media screen and (max-width: 600px) {
  .u-ta-center-sp {
    text-align: center;
  }
}

.u-fc-red {
  color: red;
}

.u-fc-accent {
  color: #b3924f;
}

.u-fs-08em {
  font-size: 0.8em;
}

.u-fw-b {
  font-weight: bold;
}

.u-inline-block {
  display: inline-block;
}

.u-marker-y {
  background: linear-gradient(transparent 75%, #ffff7f 75%);
}

.u-clip-2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
}

.u-clip-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  overflow: hidden;
}

/* *********************************
  YouTube動画対応
*************************************/
.u-youtube-block {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  /*アスペクト比 16:9の場合の縦幅*/
}
.u-youtube-block iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/* *********************************
  GoogleMap対応
*************************************/
.u-access-map {
  position: relative;
  width: auto;
  padding-top: 37%;
}
.u-access-map iframe {
  position: absolute;
  top: 0;
  right: 0;
  width: 100% !important;
  height: 100% !important;
}

/* *********************************
  汎用文字サイズ（font-cg + property-vw 定型セット）
  段階・可変レンジはサイトごとに調整してよい
*************************************/
.u-fs-36 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(36 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-36 {
    font-size: 36px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-36 {
    font-size: calc(0.8928571429vw + 23.1428571429px);
  }
}
@media (max-width: 319px) {
  .u-fs-36 {
    font-size: 26px;
  }
}

.u-fs-32 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(32 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-32 {
    font-size: 32px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-32 {
    font-size: calc(0.5357142857vw + 24.2857142857px);
  }
}
@media (max-width: 319px) {
  .u-fs-32 {
    font-size: 26px;
  }
}

.u-fs-28 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(28 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-28 {
    font-size: 28px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-28 {
    font-size: calc(0.8928571429vw + 15.1428571429px);
  }
}
@media (max-width: 319px) {
  .u-fs-28 {
    font-size: 18px;
  }
}

.u-fs-24 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(24 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-24 {
    font-size: 24px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-24 {
    font-size: calc(0.3571428571vw + 18.8571428571px);
  }
}
@media (max-width: 319px) {
  .u-fs-24 {
    font-size: 20px;
  }
}

.u-fs-17 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(17 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-17 {
    font-size: 17px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-17 {
    font-size: calc(0.2678571429vw + 13.1428571429px);
  }
}
@media (max-width: 319px) {
  .u-fs-17 {
    font-size: 14px;
  }
}

.u-fs-16 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(16 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-16 {
    font-size: 16px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-16 {
    font-size: calc(0.1785714286vw + 13.4285714286px);
  }
}
@media (max-width: 319px) {
  .u-fs-16 {
    font-size: 14px;
  }
}

.u-fs-14 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(14 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-14 {
    font-size: 14px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-14 {
    font-size: calc(0.1785714286vw + 11.4285714286px);
  }
}
@media (max-width: 319px) {
  .u-fs-14 {
    font-size: 12px;
  }
}

.u-fs-12 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(12 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}
@media (min-width: 1440px) {
  .u-fs-12 {
    font-size: 12px;
  }
}
@media (min-width: 320px) and (max-width: 1439px) {
  .u-fs-12 {
    font-size: calc(0.1785714286vw + 9.4285714286px);
  }
}
@media (max-width: 319px) {
  .u-fs-12 {
    font-size: 10px;
  }
}

.u-fs-10 {
  font-style: normal;
  font-weight: 500;
  font-size: calc(10 / 16 * 1rem);
  color: #26292e;
  letter-spacing: 0.05em;
  line-height: 1.7;
}

/*------------------------------------
上下マージンと上下パディングの定型セット
頻出するものだけ。段階はサイトごとに調整してよい
命名 = PC値 + SP値の連結（u-pp-mt12080 = PC120px/SP80px）
---------------------------------*/
.u-pp-mt12080 {
  margin-top: 120px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt12080 {
    margin-top: 80px;
  }
}

.u-pp-mb12080 {
  margin-bottom: 120px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb12080 {
    margin-bottom: 80px;
  }
}

.u-pp-mt8060 {
  margin-top: 80px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt8060 {
    margin-top: 60px;
  }
}

.u-pp-mb8060 {
  margin-bottom: 80px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb8060 {
    margin-bottom: 60px;
  }
}

.u-pp-mt6040 {
  margin-top: 60px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt6040 {
    margin-top: 40px;
  }
}

.u-pp-mb6040 {
  margin-bottom: 60px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb6040 {
    margin-bottom: 40px;
  }
}

.u-pp-mt4030 {
  margin-top: 40px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt4030 {
    margin-top: 30px;
  }
}

.u-pp-mb4030 {
  margin-bottom: 40px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb4030 {
    margin-bottom: 30px;
  }
}

.u-pp-mt3020 {
  margin-top: 30px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt3020 {
    margin-top: 20px;
  }
}

.u-pp-mb3020 {
  margin-bottom: 30px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb3020 {
    margin-bottom: 20px;
  }
}

.u-pp-mt2015 {
  margin-top: 20px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mt2015 {
    margin-top: 15px;
  }
}

.u-pp-mb2015 {
  margin-bottom: 20px;
}
@media only screen and (max-width: 600px) {
  .u-pp-mb2015 {
    margin-bottom: 15px;
  }
}

/*------------------------------------
左柱レイアウト採用サイトのみ: 左余白確保
数値はサイトごとに調整
---------------------------------*/
/*-- layoutフォルダの中の_index.scss --*/
/* ============================================================
   [1] common：コンテナ（.inner）・改行の出し分け（br.sp / br.pc）
============================================================ */
.inner {
  width: min(1120px, 100% - 48px);
  margin: 0 auto;
}
@media screen and (max-width: 600px) {
  .inner {
    width: calc(100% - 36px);
  }
}

br.sp {
  display: none;
}
@media screen and (max-width: 600px) {
  br.sp {
    display: inline;
  }
}

@media screen and (max-width: 600px) {
  br.pc {
    display: none;
  }
}

/* ============================================================
   [1] common：ヘッダー（.site-header）
============================================================ */
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(253, 252, 248, 0.94);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid #ddd6c8;
}

.site-header__inner {
  width: min(1240px, 100% - 40px);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
}

.site-header__brand {
  line-height: 1.4;
}
.site-header__brand .name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(18 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
.site-header__brand .en {
  display: block;
  white-space: nowrap;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.22em;
  line-height: inherit;
  margin-top: 6px;
}

.site-header__nav {
  display: flex;
  align-items: center;
  gap: 26px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.site-header__nav a {
  padding: 8px 0;
  white-space: nowrap;
  border-bottom: 1px solid transparent;
  transition: border-color 0.25s, color 0.25s;
}
.site-header__nav a:hover, .site-header__nav a.is-current {
  color: #1b2a44;
  border-bottom-color: #b3924f;
}
.site-header__nav .site-header__nav-short {
  display: none;
}
@media (min-width: 961px) and (max-width: 1080px) {
  .site-header__nav {
    gap: 22px;
  }
  .site-header__nav .site-header__nav-long {
    display: none;
  }
  .site-header__nav .site-header__nav-short {
    display: inline;
  }
}
@media screen and (max-width: 960px) {
  .site-header__nav {
    display: none;
  }
}

.site-header__tel {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  text-align: right;
  line-height: 1.5;
}
.site-header__tel .num {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(22 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: 1.2;
}
.site-header__tel .time {
  white-space: nowrap;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
}
@media screen and (max-width: 960px) {
  .site-header__tel {
    display: none;
  }
}

.site-header__sp {
  display: none;
  align-items: center;
  gap: 8px;
}
.site-header__sp a, .site-header__sp button {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid #1b2a44;
  background: #fff;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.1em;
  line-height: 1;
  font-family: "Noto Sans JP", sans-serif;
  gap: 4px;
}
.site-header__sp a {
  background: #1b2a44;
  color: #fff;
  border-color: #1b2a44;
}
@media screen and (max-width: 960px) {
  .site-header__sp {
    display: flex;
  }
}

/* ============================================================
   [1] common：SPメニュー（全画面・960px以下のみ。開閉は assets/js/global-menu.js）
============================================================ */
.gmenu {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  flex-direction: column;
  background: #131f33;
  color: #fff;
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}
.gmenu.is-open {
  opacity: 1;
  visibility: visible;
}
@media (min-width: 961px) {
  .gmenu {
    display: none;
  }
}

.gmenu__bar {
  flex-shrink: 0;
  width: calc(100% - 40px);
  margin: 0 auto;
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
@media screen and (max-width: 600px) {
  .gmenu__bar {
    width: calc(100% - 36px);
  }
}

.gmenu__brand {
  line-height: 1.4;
}
.gmenu__brand .name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(18 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
}
.gmenu__brand .en {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.22em;
  line-height: inherit;
  margin-top: 6px;
}

.gmenu__close {
  display: grid;
  place-items: center;
  gap: 4px;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  background: transparent;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1;
  font-family: "Noto Sans JP", sans-serif;
  cursor: pointer;
}

.gmenu__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  width: calc(100% - 48px);
  max-width: 560px;
  margin: 0 auto;
  padding: 12px 0 28px;
}
@media screen and (max-width: 600px) {
  .gmenu__body {
    width: calc(100% - 36px);
  }
}

.gmenu__nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(19 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.08em;
  line-height: 1.45;
}
.gmenu__nav a:last-child {
  border-bottom: none;
}
.gmenu__nav a .sub {
  display: block;
  margin-top: 2px;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  font-size: calc(11.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.6);
  letter-spacing: 0.06em;
  line-height: inherit;
}
.gmenu__nav a svg {
  flex-shrink: 0;
  width: 16px;
  height: 13px;
}
.gmenu__nav a.is-current {
  color: #cfb27a;
}

.gmenu__contact {
  margin-top: 22px;
}

.gmenu__label {
  text-align: center;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.14em;
  line-height: inherit;
  margin-bottom: 10px;
}

.gmenu__tel {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 58px;
  background: #b3924f;
  font-style: normal;
  font-weight: 700;
  font-size: calc(24 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.04em;
  line-height: inherit;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
}
.gmenu__tel svg {
  width: 20px;
  height: 20px;
}

.gmenu__time {
  text-align: center;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.7);
  letter-spacing: inherit;
  line-height: inherit;
  margin: 8px 0 18px;
}

.gmenu__mail {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 54px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  font-style: normal;
  font-weight: 700;
  font-size: calc(15 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.08em;
  line-height: inherit;
}

.gmenu__foot {
  margin-top: auto;
  padding-top: 32px;
  text-align: center;
}
.gmenu__foot a {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.06em;
  line-height: inherit;
}

html.is-gmenu-open {
  overflow: hidden;
}

/* ============================================================
   [1] common：SP固定 電話バー（600px以下）
============================================================ */
.sp-telbar {
  display: none;
}
@media screen and (max-width: 600px) {
  .sp-telbar a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 54px;
    background: #b3924f;
    font-style: normal;
    font-weight: 700;
    font-size: calc(22 / 16 * 1rem);
    color: #fff;
    letter-spacing: 0.04em;
    line-height: inherit;
    font-family: "Shippori Mincho", "Noto Serif JP", serif;
  }
}
@media screen and (max-width: 600px) {
  .sp-telbar a small {
    font-family: "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
    font-size: calc(12 / 16 * 1rem);
    color: inherit;
    letter-spacing: 0.1em;
    line-height: inherit;
  }
}
@media screen and (max-width: 600px) {
  .sp-telbar {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 40;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(19, 31, 51, 0.96);
    backdrop-filter: blur(6px);
  }
}

@media screen and (max-width: 600px) {
  body {
    padding-bottom: 84px;
  }
}

/* ============================================================
   [1] common：フッター（.site-footer）
============================================================ */
.site-footer {
  background: #131f33;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.78);
  letter-spacing: inherit;
  line-height: inherit;
  padding: 64px 0 28px;
}

.site-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 40px;
  margin-bottom: 44px;
}
@media screen and (max-width: 960px) {
  .site-footer__grid {
    grid-template-columns: 1fr;
  }
}

.site-footer__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(19 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 4px;
}

.site-footer__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.22em;
  line-height: inherit;
  margin-bottom: 20px;
}

.site-footer__addr {
  line-height: 2;
}

.site-footer__nav {
  display: grid;
  gap: 10px;
  align-content: start;
  justify-items: start;
}
.site-footer__nav a {
  border-bottom: 1px solid transparent;
}
.site-footer__nav a:hover {
  border-bottom-color: #cfb27a;
}

.site-footer__legal {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: 22px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: inherit;
  line-height: inherit;
}

/*-- projectフォルダの中の_index.scss --*/
/* ============================================================
   [2] page/home（`.home` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/index.html（元は名前空間なし・MQ末尾集約 → WP化で .home に揃えた）
============================================================ */
.home {
  /* --- 共通：写真プレースホルダー --- */
}
.home .ph {
  display: grid;
  place-items: center;
  background: repeating-linear-gradient(45deg, rgba(27, 42, 68, 0.05) 0 14px, transparent 14px 28px), linear-gradient(135deg, #e6dfd0, #c9bda3);
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: rgba(27, 42, 68, 0.55);
  letter-spacing: 0.14em;
  line-height: 1.7;
  text-align: center;
  min-height: 220px;
}
.home {
  /* --- 共通：冒頭1文の結論先出し（明朝・大きめ） --- */
}
.home .first-line {
  display: block;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(19 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.7;
}
@media (min-width: 863.64px) {
  .home .first-line {
    font-size: 19px;
  }
}
@media (min-width: 818.18px) and (max-width: 862.64px) {
  .home .first-line {
    font-size: calc(2.1997360317vw + 0.002199736px);
  }
}
@media (max-width: 817.18px) {
  .home .first-line {
    font-size: 18px;
  }
}
.home .first-line {
  margin-bottom: 14px;
}
.home {
  /* 01 FV（PC：写真の上にコピー／SP：写真とコピーを分離） */
}
.home .fv {
  position: relative;
  background: #131f33;
  color: #fff;
}
@media (min-width: 601px) {
  .home .fv {
    min-height: 660px;
    display: flex;
    align-items: center;
    overflow: hidden;
  }
}
.home .fv__photo {
  position: relative;
}
.home .fv__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 50%;
}
@media screen and (max-width: 600px) {
  .home .fv__photo img {
    aspect-ratio: 4/3;
    height: auto;
    max-height: 64vh;
    object-position: 60% 50%;
  }
}
@media (min-width: 601px) {
  .home .fv__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(19, 31, 51, 0.97) 0%, rgba(19, 31, 51, 0.86) 30%, rgba(19, 31, 51, 0.5) 52%, rgba(19, 31, 51, 0.12) 100%);
  }
}
@media (min-width: 601px) {
  .home .fv__photo {
    position: absolute;
    inset: 0;
  }
}
.home .fv__panel {
  position: relative;
}
@media (min-width: 601px) {
  .home .fv__panel {
    width: 100%;
    padding: 96px 0;
  }
}
@media screen and (max-width: 600px) {
  .home .fv__panel {
    padding: 36px 0 40px;
  }
}
.home .fv__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, 100% - 48px);
  margin: 0 auto;
}
.home .fv__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 20px;
}
.home .fv__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(58 / 16 * 1rem);
  color: inherit;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
@media (min-width: 1208.33px) {
  .home .fv__title {
    font-size: 58px;
  }
}
@media (min-width: 708.33px) and (max-width: 1207.33px) {
  .home .fv__title {
    font-size: calc(4.8vw + 0.00016px);
  }
}
@media (max-width: 707.33px) {
  .home .fv__title {
    font-size: 34px;
  }
}
.home .fv__title {
  margin-bottom: 26px;
}
@media screen and (max-width: 600px) {
  .home .fv__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(30 / 16 * 1rem);
    color: inherit;
    letter-spacing: 0.08em;
    line-height: 1.45;
    margin-bottom: 18px;
  }
}
.home .fv__lead {
  max-width: 560px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(16 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: inherit;
  line-height: 2.1;
  margin-bottom: 36px;
}
@media screen and (max-width: 600px) {
  .home .fv__lead br {
    display: none;
  }
}
@media screen and (max-width: 600px) {
  .home .fv__lead {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: inherit;
    line-height: 2.1;
    margin-bottom: 26px;
  }
}
.home .fv__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.home .fv__btn-main {
  background: rgba(253, 252, 248, 0.96);
  border-color: rgba(253, 252, 248, 0.96);
  color: #1b2a44;
}
.home {
  /* 01b 物件販売バナー（さくらの里） */
}
.home .property-banner {
  padding: 56px 0;
}
@media screen and (max-width: 600px) {
  .home .property-banner {
    padding: 36px 0;
  }
}
.home .property-banner__box {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  background: #fff;
  border: 1px solid #b3924f;
  max-width: 980px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .home .property-banner__box {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.home .property-banner__photo {
  position: relative;
  display: block;
  min-height: 300px;
  overflow: hidden;
}
.home .property-banner__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 600px) {
  .home .property-banner__photo {
    min-height: 220px;
  }
}
.home .property-banner__new {
  position: absolute;
  top: 0;
  left: 0;
  background: #b3924f;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.2em;
  line-height: inherit;
  padding: 6px 16px;
}
.home .property-banner__body {
  padding: 36px 40px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media screen and (max-width: 600px) {
  .home .property-banner__body {
    padding: 24px 20px;
  }
}
.home .property-banner__tag {
  font-style: normal;
  font-weight: 700;
  font-size: calc(12 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.14em;
  line-height: inherit;
}
.home .property-banner__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(25 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1041.67px) {
  .home .property-banner__name {
    font-size: 25px;
  }
}
@media (min-width: 833.33px) and (max-width: 1040.67px) {
  .home .property-banner__name {
    font-size: calc(2.3999232025vw + 0.000719977px);
  }
}
@media (max-width: 832.33px) {
  .home .property-banner__name {
    font-size: 20px;
  }
}
.home .property-banner__name .sub {
  display: block;
  font-style: normal;
  font-weight: 500;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  font-family: "Noto Sans JP", sans-serif;
  margin-top: 2px;
}
.home .property-banner__price {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  color: #1b2a44;
  line-height: 1.2;
  padding-bottom: 14px;
  border-bottom: 1px solid #ddd6c8;
}
.home .property-banner__price .num {
  font-style: normal;
  font-weight: 600;
  font-size: calc(42 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1050px) {
  .home .property-banner__price .num {
    font-size: 42px;
  }
}
@media (min-width: 800px) and (max-width: 1049px) {
  .home .property-banner__price .num {
    font-size: calc(4vw + 0px);
  }
}
@media (max-width: 799px) {
  .home .property-banner__price .num {
    font-size: 32px;
  }
}
.home .property-banner__price .unit {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(17 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  margin-left: 4px;
}
.home .property-banner__specs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.home .property-banner__specs li {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  border: 1px solid #ddd6c8;
  background: #fdfcf8;
  padding: 4px 12px;
}
.home .property-banner__note {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.9;
}
.home .property-banner__btn {
  align-self: flex-start;
  min-width: 200px;
  margin-top: 4px;
}
.home {
  /* 02 数字帯（最重要数字「1,000世帯超」だけ大きく、他2つは脇に小さく） */
}
.home .stats {
  background: #131f33;
  color: #fff;
  padding: 52px 0;
}
@media screen and (max-width: 600px) {
  .home .stats {
    padding: 40px 0;
  }
}
.home .stats__grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 40px;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .home .stats__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.home .stats__hero {
  text-align: center;
  padding-right: 40px;
  border-right: 1px solid rgba(255, 255, 255, 0.14);
}
.home .stats__hero .num {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(96 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.02em;
  line-height: 1;
}
@media (min-width: 1200px) {
  .home .stats__hero .num {
    font-size: 96px;
  }
}
@media (min-width: 800px) and (max-width: 1199px) {
  .home .stats__hero .num {
    font-size: calc(8vw + 0px);
  }
}
@media (max-width: 799px) {
  .home .stats__hero .num {
    font-size: 64px;
  }
}
.home .stats__hero .unit {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(28 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1166.67px) {
  .home .stats__hero .unit {
    font-size: 28px;
  }
}
@media (min-width: 833.33px) and (max-width: 1165.67px) {
  .home .stats__hero .unit {
    font-size: calc(2.399952001vw + 0.0004799904px);
  }
}
@media (max-width: 832.33px) {
  .home .stats__hero .unit {
    font-size: 20px;
  }
}
.home .stats__hero .unit {
  margin-left: 6px;
}
.home .stats__hero .cap {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.82);
  letter-spacing: inherit;
  line-height: inherit;
  margin-top: 12px;
}
@media screen and (max-width: 960px) {
  .home .stats__hero {
    padding-right: 0;
    border-right: none;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }
}
.home .stats__side {
  display: grid;
  gap: 22px;
}
@media screen and (max-width: 960px) {
  .home .stats__side {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}
@media screen and (max-width: 600px) {
  .home .stats__side {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}
.home .stats__item {
  display: flex;
  align-items: center;
  gap: 16px;
}
.home .stats__icon {
  flex-shrink: 0;
}
.home .stats__num {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(26 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: inherit;
  line-height: 1.2;
}
.home .stats__num .unit {
  font-size: 0.55em;
  margin-left: 2px;
}
.home .stats__cap {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.78);
  letter-spacing: inherit;
  line-height: inherit;
  margin-top: 4px;
}
.home {
  /* 03 分かれ道（EXPERIENCE）＋ 次セクションへの視線誘導 */
}
.home .experience {
  padding: 96px 0 0;
  position: relative;
}
@media screen and (max-width: 600px) {
  .home .experience {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
@media screen and (max-width: 600px) {
  .home .experience {
    padding-bottom: 0;
  }
}
.home .experience__grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 56px;
  align-items: center;
}
@media screen and (max-width: 960px) {
  .home .experience__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.home .experience__photo img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: cover;
  object-position: 50% 50%;
}
@media screen and (max-width: 600px) {
  .home .experience__photo img {
    aspect-ratio: 4/3;
    height: auto;
    max-height: none;
  }
}
.home .experience__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 16px;
}
.home .experience__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(34 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.6;
}
@media (min-width: 1133.33px) {
  .home .experience__title {
    font-size: 34px;
  }
}
@media (min-width: 800px) and (max-width: 1132.33px) {
  .home .experience__title {
    font-size: calc(3.0000300003vw + -0.0002400024px);
  }
}
@media (max-width: 799px) {
  .home .experience__title {
    font-size: 24px;
  }
}
.home .experience__title {
  margin-bottom: 24px;
}
@media screen and (max-width: 600px) {
  .home .experience__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(22 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.6;
  }
}
.home .experience__text {
  color: #63676e;
  line-height: 2.15;
}
.home {
  /* 区切り：斜めライン（紙→ベージュ）＋ 境界に重ねた金の矢印ラベル（重なりで次セクションへ誘導） */
}
.home .divider-slant {
  position: relative;
  height: 120px;
  margin-top: 56px;
  background: linear-gradient(to bottom right, #fdfcf8 49.6%, #f5f2ea 50.4%);
}
@media screen and (max-width: 600px) {
  .home .divider-slant {
    height: 84px;
    margin-top: 36px;
  }
}
.home {
  /* 矢印は枠から下へ突き抜けて視線を誘導 */
}
.home .divider-slant__badge {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #1b2a44;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.1em;
  line-height: 1.2;
  padding: 18px 84px 18px 36px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  white-space: nowrap;
}
.home .divider-slant__badge svg {
  position: absolute;
  right: 30px;
  top: 12px;
  width: 26px;
  height: 78px;
  display: block;
}
@media screen and (max-width: 600px) {
  .home .divider-slant__badge svg {
    right: 20px;
    top: 9px;
    width: 20px;
    height: 60px;
  }
}
@media screen and (max-width: 600px) {
  .home .divider-slant__badge {
    font-style: normal;
    font-weight: 600;
    font-size: calc(15 / 16 * 1rem);
    color: #fff;
    letter-spacing: 0.1em;
    line-height: 1.2;
    padding: 14px 58px 14px 22px;
  }
}
.home {
  /* 04 サービス案内（リノベを最大、不動産・新築は画像なしの小カード） */
}
.home .services {
  padding: 64px 0 96px;
  background-color: #f5f2ea;
}
@media screen and (max-width: 600px) {
  .home .services {
    padding-bottom: 56px;
  }
}
@media screen and (max-width: 600px) {
  .home .services {
    padding-top: 44px;
  }
}
.home .services__lead {
  max-width: 760px;
  margin: -8px auto 48px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 2;
}
@media (min-width: 1000px) {
  .home .services__lead {
    font-size: 20px;
  }
}
@media (min-width: 850px) and (max-width: 999px) {
  .home .services__lead {
    font-size: calc(2vw + 0px);
  }
}
@media (max-width: 849px) {
  .home .services__lead {
    font-size: 17px;
  }
}
.home .services__lead {
  text-align: left;
}
.home .service-main {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  background: #fff;
  border: 1px solid #ddd6c8;
  margin-bottom: 24px;
}
@media screen and (max-width: 960px) {
  .home .service-main {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
@media screen and (max-width: 960px) {
  .home .service-main {
    gap: 0;
  }
}
.home .service-main__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media screen and (max-width: 960px) {
  .home .service-main__photo img {
    aspect-ratio: 4/3;
    height: auto;
  }
}
.home .service-main__body {
  padding: 44px 46px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 960px) {
  .home .service-main__body {
    padding: 32px 28px;
  }
}
.home .service-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.home .service-card__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(10 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.24em;
  line-height: inherit;
}
.home .service-card__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f5f2ea;
  display: grid;
  place-items: center;
}
.home .service-main__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(32 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.4;
}
@media (min-width: 1142.86px) {
  .home .service-main__title {
    font-size: 32px;
  }
}
@media (min-width: 857.14px) and (max-width: 1141.86px) {
  .home .service-main__title {
    font-size: calc(2.7999440011vw + 0.0005599888px);
  }
}
@media (max-width: 856.14px) {
  .home .service-main__title {
    font-size: 24px;
  }
}
.home .service-main__title {
  margin-bottom: 4px;
}
@media screen and (max-width: 600px) {
  .home .service-main__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(22 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.4;
  }
}
.home .service-main__sub {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 18px;
}
.home .service-main__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.05;
  flex: 1;
}
.home .service-main__btn {
  align-self: flex-start;
  margin-top: 26px;
  min-width: 260px;
}
.home .services__sub {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
@media screen and (max-width: 600px) {
  .home .services__sub {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.home .service-card {
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 30px 30px 28px;
  display: flex;
  flex-direction: column;
}
@media screen and (max-width: 600px) {
  .home .service-card {
    padding: 24px 20px 22px;
  }
}
.home .service-card__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(21 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 4px;
}
.home .service-card__sub {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 12px;
}
.home .service-card__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.95;
  flex: 1;
}
.home .service-card__link {
  margin-top: 18px;
  align-self: flex-start;
  font-style: normal;
  font-weight: 700;
  font-size: calc(13.5 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.1em;
  line-height: inherit;
  padding-bottom: 4px;
  border-bottom: 1px solid #b3924f;
}
.home .service-card__actions {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 28px;
}
.home .service-card__actions .service-card__link {
  margin-top: 0;
}
.home {
  /* 05 価値再生ダイジェスト（暗→薄色へ。説明は白背景で） */
}
.home .revival {
  padding: 96px 0;
  background: #131f33;
  color: #fff;
}
.home .revival .sec-head .en {
  color: #cfb27a;
}
.home .revival .sec-head .ja {
  font-style: normal;
  font-weight: 600;
  font-size: calc(44 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: 1.75;
}
@media (min-width: 1100px) {
  .home .revival .sec-head .ja {
    font-size: 44px;
  }
}
@media (min-width: 700px) and (max-width: 1099px) {
  .home .revival .sec-head .ja {
    font-size: calc(4vw + 0px);
  }
}
@media (max-width: 699px) {
  .home .revival .sec-head .ja {
    font-size: 28px;
  }
}
.home .revival .sec-head {
  margin-bottom: 52px;
}
.home .revival .sec-head::after {
  margin-top: 28px;
}
@media screen and (max-width: 600px) {
  .home .revival {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
.home .revival__lead {
  max-width: 760px;
  margin: -14px auto 48px;
  text-align: left;
}
.home .revival__lead-q {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: inherit;
  line-height: 2;
  margin-bottom: 12px;
}
.home .revival__lead-a {
  display: block;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(23 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: inherit;
  line-height: 1.8;
}
@media (min-width: 958.33px) {
  .home .revival__lead-a {
    font-size: 23px;
  }
}
@media (min-width: 791.67px) and (max-width: 957.33px) {
  .home .revival__lead-a {
    font-size: calc(2.4000960038vw + -0.0008400336px);
  }
}
@media (max-width: 790.67px) {
  .home .revival__lead-a {
    font-size: 19px;
  }
}
@media screen and (max-width: 600px) {
  .home .revival__lead-a {
    font-style: normal;
    font-weight: 600;
    font-size: calc(19 / 16 * 1rem);
    color: #cfb27a;
    letter-spacing: inherit;
    line-height: 1.8;
  }
}
.home .revival__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin-bottom: 44px;
}
@media screen and (max-width: 960px) {
  .home .revival__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 600px) {
  .home .revival__grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
}
.home .revival-card {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(207, 178, 122, 0.35);
  text-align: center;
  padding: 32px 18px 28px;
}
@media screen and (max-width: 600px) {
  .home .revival-card {
    display: grid;
    grid-template-columns: 62px 1fr;
    gap: 6px 16px;
    text-align: left;
    padding: 20px 18px;
    align-items: center;
  }
}
.home .revival-card__mark {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #b3924f;
}
@media screen and (max-width: 600px) {
  .home .revival-card__mark {
    grid-column: 1;
    grid-row: 1/span 2;
    margin: 0;
  }
}
.home .revival-card__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(28 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.12em;
  line-height: 1.3;
  margin-bottom: 12px;
}
@media screen and (max-width: 600px) {
  .home .revival-card__title {
    grid-column: 2;
    margin-bottom: 4px;
    font-style: normal;
    font-weight: 700;
    font-size: calc(24 / 16 * 1rem);
    color: #fff;
    letter-spacing: 0.12em;
    line-height: 1.3;
  }
}
.home .revival-card__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.8);
  letter-spacing: inherit;
  line-height: 1.9;
  text-align: left;
}
@media screen and (max-width: 600px) {
  .home .revival-card__text {
    grid-column: 2;
  }
}
.home .revival__cta {
  text-align: center;
}
.home {
  /* 06 代表紹介 */
}
.home .representative {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .home .representative {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
.home .representative__grid {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 56px;
  align-items: center;
}
@media screen and (max-width: 960px) {
  .home .representative__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.home .representative__photo img {
  width: 100%;
  height: 100%;
  max-height: 520px;
  object-fit: cover;
  object-position: 50% 20%;
}
@media screen and (max-width: 600px) {
  .home .representative__photo img {
    aspect-ratio: 4/5;
    height: auto;
    max-height: none;
  }
}
.home .representative__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 16px;
}
.home .representative__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(34 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1062.5px) {
  .home .representative__name {
    font-size: 34px;
  }
}
@media (min-width: 812.5px) and (max-width: 1061.5px) {
  .home .representative__name {
    font-size: calc(3.2vw + 0px);
  }
}
@media (max-width: 811.5px) {
  .home .representative__name {
    font-size: 26px;
  }
}
.home .representative__name {
  margin-bottom: 6px;
}
.home .representative__name .role {
  font-size: 0.52em;
  margin-right: 14px;
  color: #63676e;
  font-weight: 500;
}
.home .representative__title-note {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 22px;
}
.home .representative__text {
  color: #63676e;
  line-height: 2.15;
  margin-bottom: 14px;
}
.home .representative__link {
  display: inline-block;
  margin-top: 12px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(13.5 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.1em;
  line-height: inherit;
  padding-bottom: 4px;
  border-bottom: 1px solid #b3924f;
}
.home {
  /* 07 ご相談の流れ（主役）＋ 承っているご相談（脇） */
}
.home .consult {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .home .consult {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
.home .consult--deep {
  background-color: #ebe5d6;
  background-image: repeating-linear-gradient(0deg, rgba(27, 42, 68, 0.02) 0 1px, transparent 1px 3px);
}
.home .consult__flow {
  max-width: 1000px;
  margin: 0 auto 20px;
}
.home .consult__flow-row {
  display: grid;
  grid-template-columns: 1fr 44px 1fr 44px 1fr;
  align-items: stretch;
  gap: 8px;
}
@media screen and (max-width: 600px) {
  .home .consult__flow-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.home .consult__flow-node {
  background: #fff;
  border: 1px solid #ddd6c8;
  text-align: center;
  padding: 30px 22px 26px;
}
.home .consult__flow-node .icon {
  width: 84px;
  height: 84px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: #1b2a44;
  display: grid;
  place-items: center;
}
@media screen and (max-width: 600px) {
  .home .consult__flow-node .icon {
    width: 64px;
    height: 64px;
    margin: 0;
    grid-row: 1/span 3;
  }
}
.home .consult__flow-node .no {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.22em;
  line-height: inherit;
  margin-bottom: 6px;
}
.home .consult__flow-node .ttl {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(21 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media screen and (max-width: 600px) {
  .home .consult__flow-node .ttl {
    font-style: normal;
    font-weight: 600;
    font-size: calc(19 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.5;
  }
}
.home .consult__flow-node .cap {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.8;
  margin-top: 8px;
  text-align: left;
}
@media screen and (max-width: 600px) {
  .home .consult__flow-node .cap {
    margin-top: 4px;
    font-style: normal;
    font-weight: inherit;
    font-size: calc(13.5 / 16 * 1rem);
    color: #63676e;
    letter-spacing: inherit;
    line-height: 1.8;
  }
}
@media screen and (max-width: 600px) {
  .home .consult__flow-node .icon svg {
    width: 34px;
    height: 34px;
  }
}
@media screen and (max-width: 600px) {
  .home .consult__flow-node {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 2px 16px;
    text-align: left;
    padding: 20px 18px;
    align-items: center;
  }
}
.home .consult__flow-arw {
  display: grid;
  place-items: center;
}
.home .consult__flow-arw svg {
  display: block;
}
@media screen and (max-width: 600px) {
  .home .consult__flow-arw svg {
    transform: rotate(90deg);
  }
}
.home .consult__note {
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1000px) {
  .home .consult__note {
    font-size: 20px;
  }
}
@media (min-width: 850px) and (max-width: 999px) {
  .home .consult__note {
    font-size: calc(2vw + 0px);
  }
}
@media (max-width: 849px) {
  .home .consult__note {
    font-size: 17px;
  }
}
.home .consult__note {
  margin: 28px auto 52px;
}
@media screen and (max-width: 600px) {
  .home .consult__note {
    margin: 22px auto 36px;
  }
}
.home .consult__sub {
  max-width: 860px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 34px 40px;
}
@media screen and (max-width: 600px) {
  .home .consult__sub {
    padding: 24px 20px;
  }
}
.home .consult__sub-title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid #ddd6c8;
}
.home .consult__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 32px;
}
@media screen and (max-width: 960px) {
  .home .consult__list {
    grid-template-columns: 1fr;
  }
}
.home .consult__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.home .consult__item .chk {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 6px;
  background: #b3924f;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
  display: grid;
  place-items: center;
}
.home {
  /* 08 FAQ */
}
.home .faq {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .home .faq {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
.home .faq__list {
  max-width: 760px;
  margin: 0 auto;
  display: grid;
  gap: 18px;
}
.home .faq-item {
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 26px 32px;
}
@media screen and (max-width: 600px) {
  .home .faq-item {
    padding: 22px 20px;
  }
}
.home .faq-item__q {
  display: flex;
  gap: 14px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(16 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 10px;
}
.home .faq-item__q .mk, .home .faq-item__a .mk {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(18 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: inherit;
  line-height: 1.6;
}
.home .faq-item__a {
  display: flex;
  gap: 14px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2;
}
.home {
  /* 09 CTAバンド（改善版）＋ お問い合わせ
   儀式的な暗面はここでもう1度だけ使う（FVと対） */
}
.home .cta-band__steps b {
  color: #fff;
  font-weight: 600;
}
.home .cta-band__steps svg {
  display: block;
}
@media screen and (max-width: 600px) {
  .home .cta-band__steps {
    width: 100%;
    justify-content: center;
  }
}
.home .cta-band__tel svg {
  flex-shrink: 0;
}
@media screen and (max-width: 600px) {
  .home .cta-band__tel {
    width: 100%;
    justify-content: center;
  }
}
.home {
  /* 共通部品の HOME 向け調整（元：index.html 末尾の responsive）
     ※ .site-footer__grid の gap 32px 指定はフッターが main の外のため削除（全ページ共通の 40px に統一） */
}
@media screen and (max-width: 600px) {
  .home .contact {
    padding-top: 56px;
    padding-bottom: 56px;
  }
}
@media screen and (max-width: 600px) {
  .home .sec-head {
    margin-bottom: 30px;
  }
}

/* ============================================================
   [2] page/reform（`.reform` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/reform.html
============================================================ */
.reform {
  /* ---------- 01 FV ---------- */
}
.reform .fv {
  position: relative;
  background: #131f33;
  color: #fff;
}
@media (min-width: 601px) {
  .reform .fv {
    min-height: 660px;
    display: flex;
    align-items: center;
    overflow: hidden;
  }
}
.reform .fv__photo {
  position: relative;
}
.reform .fv__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
@media screen and (max-width: 600px) {
  .reform .fv__photo img {
    aspect-ratio: 4/3;
    height: auto;
    max-height: 64vh;
  }
}
@media (min-width: 601px) {
  .reform .fv__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(19, 31, 51, 0.9) 0%, rgba(19, 31, 51, 0.75) 46%, rgba(19, 31, 51, 0.45) 62%, rgba(19, 31, 51, 0.06) 100%);
  }
}
@media (min-width: 601px) {
  .reform .fv__photo {
    position: absolute;
    inset: 0;
  }
}
.reform .fv__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, 100% - 48px);
  margin: 0 auto;
}
.reform .fv__en {
  display: flex;
  align-items: center;
  gap: 14px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 22px;
}
.reform .fv__en::before {
  content: "";
  width: 34px;
  height: 1px;
  background: #cfb27a;
}
.reform .fv__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(32 / 16 * 1rem);
  color: inherit;
  letter-spacing: 0.1em;
  line-height: 1.3;
  margin-bottom: 22px;
}
@media screen and (max-width: 600px) {
  .reform .fv__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(30 / 16 * 1rem);
    color: inherit;
    letter-spacing: 0.1em;
    line-height: 1.3;
  }
}
.reform .fv__title .sm {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(28 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1166.67px) {
  .reform .fv__title .sm {
    font-size: 28px;
  }
}
@media (min-width: 833.33px) and (max-width: 1165.67px) {
  .reform .fv__title .sm {
    font-size: calc(2.399952001vw + 0.0004799904px);
  }
}
@media (max-width: 832.33px) {
  .reform .fv__title .sm {
    font-size: 20px;
  }
}
.reform .fv__title .sm {
  margin-bottom: 10px;
}
.reform .fv__title .lg {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(60 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1153.85px) {
  .reform .fv__title .lg {
    font-size: 60px;
  }
}
@media (min-width: 730.77px) and (max-width: 1152.85px) {
  .reform .fv__title .lg {
    font-size: calc(5.1999621821vw + 0.0002363619px);
  }
}
@media (max-width: 729.77px) {
  .reform .fv__title .lg {
    font-size: 38px;
  }
}
@media screen and (max-width: 600px) {
  .reform .fv__title .lg {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(36 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: inherit;
  }
}
.reform .fv__sub {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(22 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
@media (min-width: 1157.89px) {
  .reform .fv__sub {
    font-size: 22px;
  }
}
@media (min-width: 894.74px) and (max-width: 1156.89px) {
  .reform .fv__sub {
    font-size: calc(1.9000570017vw + -0.0005700171px);
  }
}
@media (max-width: 893.74px) {
  .reform .fv__sub {
    font-size: 17px;
  }
}
.reform .fv__sub {
  margin-bottom: 22px;
}
@media screen and (max-width: 600px) {
  .reform .fv__sub {
    font-style: normal;
    font-weight: 600;
    font-size: calc(17 / 16 * 1rem);
    color: #cfb27a;
    letter-spacing: 0.08em;
    line-height: 1.9;
  }
}
.reform .fv__lead {
  max-width: 580px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: inherit;
  line-height: 2.05;
  margin-bottom: 36px;
}
@media screen and (max-width: 600px) {
  .reform .fv__lead {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: inherit;
    line-height: 2.05;
    margin-bottom: 26px;
  }
}
.reform .fv__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.reform .fv__btn-main {
  background: rgba(253, 252, 248, 0.96);
  border-color: rgba(253, 252, 248, 0.96);
  color: #1b2a44;
}
.reform .fv__btn-main--soon {
  cursor: default;
}
.reform .fv__btn-main--soon:hover {
  opacity: 1;
}
.reform .fv__soon {
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: calc(10 / 16 * 1rem);
  color: #63676e;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media (min-width: 601px) {
  .reform .fv__panel {
    width: 100%;
    padding: 96px 0;
  }
}
@media screen and (max-width: 600px) {
  .reform .fv__panel {
    padding: 36px 0 40px;
  }
}
.reform {
  /* ---------- 03 資産復活のリノベーション ---------- */
}
.reform .judge {
  padding: 96px 0 calc(96px + 24px);
}
@media screen and (max-width: 600px) {
  .reform .judge {
    padding: 56px 0 calc(56px + 16px);
  }
}
.reform .judge__motto {
  text-align: center;
}
.reform .judge__motto span {
  display: inline-block;
  padding: 24px 28px;
  border-top: 1px solid #b3924f;
  border-bottom: 1px solid #b3924f;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(21 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.08em;
  line-height: 1.9;
}
@media (min-width: 1050px) {
  .reform .judge__motto span {
    font-size: 21px;
  }
}
@media (min-width: 850px) and (max-width: 1049px) {
  .reform .judge__motto span {
    font-size: calc(2vw + 0px);
  }
}
@media (max-width: 849px) {
  .reform .judge__motto span {
    font-size: 17px;
  }
}
.reform .judge__motto span {
  text-align: left;
}
@media screen and (max-width: 600px) {
  .reform .judge__motto span {
    font-style: normal;
    font-weight: 600;
    font-size: calc(16 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.08em;
    line-height: 1.9;
    padding: 18px 12px;
  }
}
.reform {
  /* ---------- 03b HOW WE JUDGE（ベージュ面。上端を前セクション色の五角形＝下向き矢印でくり抜き、見出しを五角形の上に重ねる） ---------- */
}
.reform .howjudge {
  position: relative;
  padding: 0 0 96px;
}
.reform .howjudge::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(760px, 66%);
  height: 230px;
  background: #fdfcf8;
  clip-path: polygon(0 0, 100% 0, 100% 56%, 50% 100%, 0 56%);
}
@media screen and (max-width: 600px) {
  .reform .howjudge::before {
    width: 84%;
    height: 150px;
    clip-path: polygon(0 0, 100% 0, 100% 62%, 50% 100%, 0 62%);
  }
}
@media screen and (max-width: 600px) {
  .reform .howjudge {
    padding-bottom: 56px;
  }
}
.reform .howjudge__mark {
  position: absolute;
  left: 50%;
  top: -28px;
  transform: translateX(-50%);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #1b2a44;
  outline: 1px solid #b3924f;
  outline-offset: 4px;
  display: grid;
  place-items: center;
  z-index: 2;
}
@media screen and (max-width: 600px) {
  .reform .howjudge__mark svg {
    width: 22px;
    height: 22px;
  }
}
@media screen and (max-width: 600px) {
  .reform .howjudge__mark {
    width: 44px;
    height: 44px;
    top: -22px;
  }
}
.reform .howjudge__head {
  position: relative;
  text-align: center;
  padding-top: 52px;
  margin-bottom: 120px;
}
.reform .howjudge__head .en {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 12px;
}
@media screen and (max-width: 600px) {
  .reform .howjudge__head .en {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(10 / 16 * 1rem);
    color: #b3924f;
    letter-spacing: 0.3em;
    line-height: inherit;
    margin-bottom: 8px;
  }
}
.reform .howjudge__head .ja {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(38 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1117.65px) {
  .reform .howjudge__head .ja {
    font-size: 38px;
  }
}
@media (min-width: 705.88px) and (max-width: 1116.65px) {
  .reform .howjudge__head .ja {
    font-size: calc(3.3999562863vw + 0.0003885664px);
  }
}
@media (max-width: 704.88px) {
  .reform .howjudge__head .ja {
    font-size: 24px;
  }
}
@media screen and (max-width: 600px) {
  .reform .howjudge__head .ja {
    font-style: normal;
    font-weight: 600;
    font-size: calc(22 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.5;
  }
}
@media screen and (max-width: 600px) {
  .reform .howjudge__head {
    padding-top: 38px;
    margin-bottom: 72px;
  }
}
.reform {
  /* 図1：よくある判断（✕・くすんだ赤）→ 5つの判断（○・大枠） */
}
.reform .zu-judge {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
}
.reform .zu-judge__tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(12 / 16 * 1rem);
  color: inherit;
  letter-spacing: 0.14em;
  line-height: inherit;
  margin-bottom: 8px;
}
.reform .zu-judge__tag i {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: currentColor;
  font-style: normal;
  font-style: normal;
  font-weight: 700;
  font-size: calc(12 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.reform .zu-judge__tag i::before {
  content: "×";
  color: #fff;
}
.reform .zu-judge__ng {
  width: fit-content;
  margin: 0 auto;
  padding: 16px 28px 14px;
  background: #f0e7e4;
  color: #9a5b57;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__ng {
    width: 100%;
    padding: 14px 18px 12px;
  }
}
.reform .zu-judge__ng-body {
  display: flex;
  align-items: center;
  gap: 14px;
}
.reform .zu-judge__ng-body svg {
  width: 40px;
  height: 36px;
  flex-shrink: 0;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__ng-body svg {
    width: 36px;
    height: 32px;
  }
}
.reform .zu-judge__ng-body .ttl {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__ng-body .ttl {
    font-style: normal;
    font-weight: 600;
    font-size: calc(18 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 1.5;
  }
}
.reform .zu-judge__ng-body .cap {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.7;
  margin-top: 2px;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__ng-body {
    gap: 12px;
  }
}
.reform .zu-judge__arrow {
  display: grid;
  place-items: center;
  padding: 16px 0;
}
.reform .zu-judge__ok {
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 32px 36px 36px;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__ok {
    padding: 20px 18px 22px;
    margin: 0 -18px;
    border-left: none;
    border-right: none;
  }
}
.reform .zu-judge__tag--ok {
  font-style: normal;
  font-weight: 700;
  font-size: calc(16 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.14em;
  line-height: inherit;
  margin-bottom: 16px;
  gap: 10px;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__tag--ok {
    font-style: normal;
    font-weight: 700;
    font-size: calc(15 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.14em;
    line-height: inherit;
  }
}
.reform .zu-judge__chips {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-bottom: 40px;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__chips {
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 28px;
  }
}
.reform .zu-judge__chip {
  text-align: center;
  background: #f5f2ea;
  padding: 18px 6px 14px;
}
.reform .zu-judge__chip svg {
  display: block;
  margin: 0 auto 8px;
  width: 40px;
  height: 36px;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__chip svg {
    width: 32px;
    height: 29px;
  }
}
.reform .zu-judge__chip span {
  display: block;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(16 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0em;
  line-height: 1.4;
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__chip span {
    font-style: normal;
    font-weight: 700;
    font-size: calc(14 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0em;
    line-height: 1.4;
  }
}
@media screen and (max-width: 600px) {
  .reform .zu-judge__chip {
    padding: 14px 4px 10px;
  }
}
.reform .judge__points-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(28 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1000px) {
  .reform .judge__points-title {
    font-size: 28px;
  }
}
@media (min-width: 785.71px) and (max-width: 999px) {
  .reform .judge__points-title {
    font-size: calc(2.7999440011vw + 0.0005599888px);
  }
}
@media (max-width: 784.71px) {
  .reform .judge__points-title {
    font-size: 22px;
  }
}
.reform .judge__points-title {
  margin-bottom: 24px;
  padding-top: 32px;
  border-top: 1px solid #ddd6c8;
}
@media screen and (max-width: 600px) {
  .reform .judge__points-title svg {
    width: 30px;
    height: 30px;
  }
}
@media screen and (max-width: 600px) {
  .reform .judge__points-title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(20 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: inherit;
    gap: 10px;
    margin-bottom: 12px;
    padding-top: 22px;
  }
}
.reform .judge__points {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px 32px;
}
@media screen and (max-width: 960px) {
  .reform .judge__points {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 600px) {
  .reform .judge__points {
    gap: 0;
  }
}
.reform .judge-point {
  padding: 4px 0;
  display: flex;
  gap: 18px;
  align-items: flex-start;
}
@media screen and (max-width: 600px) {
  .reform .judge-point:last-child {
    border-bottom: none;
    padding-bottom: 4px;
  }
}
@media screen and (max-width: 600px) {
  .reform .judge-point {
    padding: 18px 0;
    gap: 14px;
    border-bottom: 1px solid #ddd6c8;
  }
}
.reform .judge-point__icon {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #f5f2ea;
  display: grid;
  place-items: center;
}
@media screen and (max-width: 600px) {
  .reform .judge-point__icon svg {
    width: 26px;
    height: 26px;
  }
}
@media screen and (max-width: 600px) {
  .reform .judge-point__icon {
    width: 48px;
    height: 48px;
  }
}
.reform .judge-point__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(18 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
  margin-bottom: 8px;
}
@media screen and (max-width: 600px) {
  .reform .judge-point__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(17 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.5;
  }
}
.reform .judge-point__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2;
}
.reform {
  /* ---------- 03c 写真帯（区切り） ---------- */
}
.reform .photo-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  line-height: 0;
}
.reform .photo-strip img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 9/5;
  object-fit: cover;
}
@media screen and (max-width: 600px) {
  .reform .photo-strip {
    grid-template-columns: repeat(2, 1fr);
  }
}
.reform {
  /* ---------- 04 費用のかけ方（図2 型C） ---------- */
}
.reform .cost {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .cost {
    padding: 56px 0;
  }
}
.reform .cost__grid {
  display: grid;
  grid-template-columns: 1fr 108px 1fr;
  gap: 16px;
  max-width: 980px;
  margin: 0 auto;
  align-items: stretch;
}
@media screen and (max-width: 960px) {
  .reform .cost__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.reform .cost__arrow {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  text-align: center;
}
@media screen and (max-width: 960px) {
  .reform .cost__arrow svg {
    transform: rotate(90deg);
  }
}
@media screen and (max-width: 960px) {
  .reform .cost__arrow {
    padding: 6px 0;
  }
}
.reform .cost-card {
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 36px 34px 32px;
}
@media screen and (max-width: 600px) {
  .reform .cost-card {
    padding: 26px 20px 24px;
  }
}
.reform .cost-card--after {
  border-color: #1b2a44;
}
.reform .cost-card--after .cost-card__tag {
  color: #b3924f;
}
.reform .cost-card--after .cost-card__bar {
  background: #1b2a44;
  color: #fff;
}
.reform .cost-card--after .cost-card__bar.w-80 {
  width: 80%;
}
.reform .cost-card--after .cost-card__bar.w-60 {
  width: 62%;
}
.reform .cost-card--after .cost-card__bar.w-35 {
  width: 56%;
  background: #fff;
  color: #1b2a44;
  border: 1px dashed #1b2a44;
}
.reform .cost-card--after .cost-card__total {
  font-style: normal;
  font-weight: 600;
  font-size: calc(26 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.6;
}
.reform .cost-card--after .cost-card__total .small {
  font-size: 0.5492307692em;
}
.reform .cost-card__tag {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #63676e;
  letter-spacing: 0.2em;
  line-height: inherit;
  margin-bottom: 10px;
}
.reform .cost-card__title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(24 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1090.91px) {
  .reform .cost-card__title {
    font-size: 24px;
  }
}
@media (min-width: 863.64px) and (max-width: 1089.91px) {
  .reform .cost-card__title {
    font-size: calc(2.2000264003vw + -0.0003080037px);
  }
}
@media (max-width: 862.64px) {
  .reform .cost-card__title {
    font-size: 19px;
  }
}
.reform .cost-card__title {
  margin-bottom: 22px;
}
.reform .cost-card__title svg {
  flex-shrink: 0;
}
.reform .cost-card--before .cost-card__title {
  color: #63676e;
}
.reform .cost-card--before .cost-card__bar {
  background: #d9d5cb;
  color: #26292e;
}
.reform .cost-card__bars {
  display: grid;
  gap: 10px;
  margin-bottom: 22px;
}
.reform .cost-card__bar {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 8px 16px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(13.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.reform .cost-card__note {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2;
  padding-bottom: 18px;
  border-bottom: 1px solid #ddd6c8;
  margin-bottom: 16px;
}
.reform .cost-card__total-label {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #63676e;
  letter-spacing: 0.14em;
  line-height: inherit;
  margin-bottom: 4px;
}
.reform .cost-card__total {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(21 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.6;
}
.reform .cost-card__total .small {
  font-size: 0.68em;
}
.reform .cost__lead {
  max-width: 820px;
}
.reform .cost__lead .first-line {
  font-style: normal;
  font-weight: 600;
  font-size: calc(24 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.7;
}
@media (min-width: 1000px) {
  .reform .cost__lead .first-line {
    font-size: 24px;
  }
}
@media (min-width: 791.67px) and (max-width: 999px) {
  .reform .cost__lead .first-line {
    font-size: calc(2.4000384006vw + -0.0003840061px);
  }
}
@media (max-width: 790.67px) {
  .reform .cost__lead .first-line {
    font-size: 19px;
  }
}
.reform .cost__lead .first-line {
  margin-bottom: 0;
}
.reform .cost__conclusion {
  margin: 64px auto 0;
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #1b2a44;
}
.reform .cost__conclusion .sm {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(26 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1181.82px) {
  .reform .cost__conclusion .sm {
    font-size: 26px;
  }
}
@media (min-width: 818.18px) and (max-width: 1180.82px) {
  .reform .cost__conclusion .sm {
    font-size: calc(2.1999780002vw + 0.0002199978px);
  }
}
@media (max-width: 817.18px) {
  .reform .cost__conclusion .sm {
    font-size: 18px;
  }
}
@media screen and (max-width: 600px) {
  .reform .cost__conclusion .sm {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(17 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: inherit;
  }
}
.reform .cost__conclusion .lg {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(44 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1157.89px) {
  .reform .cost__conclusion .lg {
    font-size: 44px;
  }
}
@media (min-width: 684.21px) and (max-width: 1156.89px) {
  .reform .cost__conclusion .lg {
    font-size: calc(3.8000337781vw + -0.000211113px);
  }
}
@media (max-width: 683.21px) {
  .reform .cost__conclusion .lg {
    font-size: 26px;
  }
}
@media screen and (max-width: 600px) {
  .reform .cost__conclusion .lg {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(25 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: inherit;
  }
}
@media screen and (max-width: 600px) {
  .reform .cost__conclusion {
    margin-top: 40px;
  }
}
.reform {
  /* ---------- 05 施工事例・相談事例（図3：4段フロー） ---------- */
}
.reform .cases {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .cases {
    padding: 56px 0;
  }
}
.reform .case-card {
  max-width: 960px;
  margin: 0 auto 40px;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 44px 48px;
}
@media screen and (max-width: 600px) {
  .reform .case-card {
    padding: 26px 18px;
    margin-bottom: 24px;
  }
}
.reform .case-card__no {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.24em;
  line-height: inherit;
  margin-bottom: 10px;
}
.reform .case-card__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(25 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1041.67px) {
  .reform .case-card__title {
    font-size: 25px;
  }
}
@media (min-width: 833.33px) and (max-width: 1040.67px) {
  .reform .case-card__title {
    font-size: calc(2.3999232025vw + 0.000719977px);
  }
}
@media (max-width: 832.33px) {
  .reform .case-card__title {
    font-size: 20px;
  }
}
.reform .case-card__title {
  margin-bottom: 14px;
}
.reform .case-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}
.reform .case-card__tags span {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.08em;
  line-height: inherit;
  border: 1px solid #b3924f;
  padding: 3px 12px;
}
.reform .case-card__summary {
  background: #f5f2ea;
  padding: 14px 20px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.9;
  margin-bottom: 30px;
}
@media screen and (max-width: 600px) {
  .reform .case-card__summary {
    padding: 12px 14px;
  }
}
.reform .case-card__ba {
  display: grid;
  grid-template-columns: 1fr 64px 1fr;
  gap: 16px;
  align-items: center;
  margin-bottom: 32px;
}
.reform .case-card__ba img {
  width: 100%;
  aspect-ratio: 3/2;
  object-fit: cover;
}
@media screen and (max-width: 960px) {
  .reform .case-card__ba {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
.reform .case-card__ba-label {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.24em;
  line-height: inherit;
  margin-bottom: 10px;
}
.reform .case-card__ba-col--after .case-card__ba-label {
  color: #1b2a44;
  font-weight: 700;
}
.reform .case-card__ba-cap {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.9;
  margin-top: 10px;
}
.reform .case-card__ba-arw {
  display: grid;
  place-items: center;
}
@media screen and (max-width: 960px) {
  .reform .case-card__ba-arw svg {
    transform: rotate(90deg);
  }
}
.reform .case-flow {
  display: grid;
  grid-template-columns: 1fr 28px 1fr 28px 1fr 28px 1fr;
  gap: 6px;
  align-items: stretch;
}
@media screen and (max-width: 960px) {
  .reform .case-flow {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}
.reform .case-flow__cell {
  background: #f5f2ea;
  padding: 18px 16px 16px;
}
.reform .case-flow__cell dt {
  display: flex;
  align-items: center;
  gap: 8px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(13.5 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 8px;
}
.reform .case-flow__cell dt svg {
  flex-shrink: 0;
}
.reform .case-flow__cell dd {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.9;
}
@media screen and (max-width: 600px) {
  .reform .case-flow__cell {
    padding: 14px 16px 12px;
  }
}
.reform .case-flow__cell--last {
  background: #1b2a44;
  color: #fff;
}
.reform .case-flow__cell--last dt {
  color: #cfb27a;
}
.reform .case-flow__cell--last dd {
  color: rgba(255, 255, 255, 0.9);
}
.reform .case-flow__arw {
  display: grid;
  place-items: center;
}
@media screen and (max-width: 960px) {
  .reform .case-flow__arw svg {
    transform: rotate(90deg);
  }
}
.reform {
  /* ---------- 06 世代をつなぐ（暗＝儀式。図4は白カード） ---------- */
}
.reform .generation {
  background: #1b2a44;
  color: #fff;
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .generation {
    padding: 56px 0;
  }
}
.reform .generation__grid {
  max-width: 1040px;
  margin: 0 auto 56px;
}
.reform .generation__text {
  max-width: 850px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.88);
  letter-spacing: inherit;
  line-height: 2.1;
}
.reform .generation__text + .generation__text {
  margin-top: 16px;
}
.reform .generation__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 16px;
}
.reform .generation__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(30 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.6;
}
@media (min-width: 1071.43px) {
  .reform .generation__title {
    font-size: 30px;
  }
}
@media (min-width: 785.71px) and (max-width: 1070.43px) {
  .reform .generation__title {
    font-size: calc(2.7999440011vw + 0.0005599888px);
  }
}
@media (max-width: 784.71px) {
  .reform .generation__title {
    font-size: 22px;
  }
}
.reform .generation__title {
  margin-bottom: 24px;
}
.reform {
  /* 図4：親の暮らし → 価値の見直し（今） → 次の暮らし */
}
.reform .zu-gen {
  max-width: 1040px;
  margin: 0 auto;
  padding: 44px 40px 40px;
}
.reform .zu-gen .zu__title {
  font-style: normal;
  font-weight: 600;
  font-size: calc(24 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 30px;
}
@media screen and (max-width: 600px) {
  .reform .zu-gen .zu__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(18 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: inherit;
    margin-bottom: 20px;
  }
}
.reform .zu-gen .zu__title .en {
  font-style: normal;
  font-weight: 500;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.26em;
  line-height: inherit;
}
@media screen and (max-width: 600px) {
  .reform .zu-gen {
    padding: 24px 18px 22px;
  }
}
.reform .zu-gen__row {
  display: grid;
  grid-template-columns: 1fr 56px 1.15fr 56px 1fr;
  gap: 10px;
  align-items: stretch;
}
@media screen and (max-width: 960px) {
  .reform .zu-gen__row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.reform .zu-gen__node {
  text-align: center;
  background: #f5f2ea;
  padding: 32px 22px 28px;
}
.reform .zu-gen__node svg {
  display: block;
  margin: 0 auto 14px;
  width: 64px;
  height: 58px;
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__node svg {
    grid-row: 1/span 3;
    margin: 0;
    width: 40px;
    height: 36px;
  }
}
.reform .zu-gen__node .en {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.24em;
  line-height: inherit;
  margin-bottom: 6px;
}
.reform .zu-gen__node .ttl {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(26 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1083.33px) {
  .reform .zu-gen__node .ttl {
    font-size: 26px;
  }
}
@media (min-width: 916.67px) and (max-width: 1082.33px) {
  .reform .zu-gen__node .ttl {
    font-size: calc(2.4000960038vw + -0.0009600384px);
  }
}
@media (max-width: 915.67px) {
  .reform .zu-gen__node .ttl {
    font-size: 22px;
  }
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__node .ttl {
    font-style: normal;
    font-weight: 600;
    font-size: calc(19 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: 1.5;
  }
}
.reform .zu-gen__node .cap {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.8;
  margin-top: 8px;
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__node .cap {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(12.5 / 16 * 1rem);
    color: #63676e;
    letter-spacing: inherit;
    line-height: 1.8;
    margin-top: 4px;
  }
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__node {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 0 14px;
    text-align: left;
    align-items: center;
    padding: 14px 16px;
  }
}
.reform .zu-gen__node--now {
  background: #1b2a44;
  color: #fff;
}
.reform .zu-gen__node--now .ttl {
  color: #fff;
}
.reform .zu-gen__node--now .en {
  color: #cfb27a;
}
.reform .zu-gen__node--now .cap {
  color: rgba(255, 255, 255, 0.85);
}
.reform .zu-gen__arw {
  display: grid;
  place-items: center;
}
.reform .zu-gen__arw svg {
  width: 48px;
  height: 28px;
}
@media screen and (max-width: 960px) {
  .reform .zu-gen__arw svg {
    transform: rotate(90deg);
  }
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__arw svg {
    width: 36px;
    height: 22px;
  }
}
@media screen and (max-width: 960px) {
  .reform .zu-gen__arw {
    padding: 14px 0;
  }
}
.reform .zu-gen__outs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-top: 14px;
}
@media screen and (max-width: 960px) {
  .reform .zu-gen__outs {
    grid-template-columns: 1fr;
  }
}
.reform .zu-gen__out {
  display: flex;
  align-items: center;
  gap: 12px;
  font-style: normal;
  font-weight: 700;
  font-size: calc(15 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.02em;
  line-height: 1.6;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 14px 18px;
}
.reform .zu-gen__out i {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  background: #b3924f;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
  display: grid;
  place-items: center;
  font-style: normal;
}
@media screen and (max-width: 600px) {
  .reform .zu-gen__out {
    font-style: normal;
    font-weight: 700;
    font-size: calc(13.5 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.02em;
    line-height: 1.6;
    padding: 10px 14px;
  }
}
.reform {
  /* ---------- 07 住む・売る・貸す・受け継ぐ ---------- */
}
.reform .roles {
  padding: 96px 0 0;
}
@media screen and (max-width: 600px) {
  .reform .roles {
    padding-top: 56px;
  }
}
.reform .roles__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
@media screen and (max-width: 960px) {
  .reform .roles__grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (max-width: 600px) {
  .reform .roles__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.reform .role-card {
  background: #fff;
  border: 1px solid #ddd6c8;
  text-align: center;
  padding: 32px 18px 28px;
}
@media screen and (max-width: 600px) {
  .reform .role-card:last-child {
    border-bottom: none;
  }
}
@media screen and (max-width: 600px) {
  .reform .role-card {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 2px 16px;
    text-align: left;
    padding: 20px 4px;
    align-items: center;
    background: transparent;
    border: none;
    border-bottom: 1px solid #ddd6c8;
  }
}
.reform .role-card__mark {
  width: 64px;
  height: 64px;
  margin: 0 auto 14px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #1b2a44;
}
@media screen and (max-width: 600px) {
  .reform .role-card__mark {
    grid-row: 1/span 2;
    width: 56px;
    height: 56px;
    margin: 0;
  }
}
.reform .role-card__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(22 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.1em;
  line-height: inherit;
  margin-bottom: 10px;
}
@media screen and (max-width: 600px) {
  .reform .role-card__title {
    margin-bottom: 4px;
    font-style: normal;
    font-weight: 700;
    font-size: calc(20 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.1em;
    line-height: inherit;
  }
}
.reform .role-card__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.95;
  text-align: left;
}
.reform {
  /* ---------- 08 価値判定から、4つの未来へ（図5 型B） ---------- */
}
.reform .future {
  padding: 56px 0 96px;
}
@media screen and (max-width: 600px) {
  .reform .future {
    padding: 40px 0 56px;
  }
}
.reform .future__title {
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(30 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1071.43px) {
  .reform .future__title {
    font-size: 30px;
  }
}
@media (min-width: 785.71px) and (max-width: 1070.43px) {
  .reform .future__title {
    font-size: calc(2.7999440011vw + 0.0005599888px);
  }
}
@media (max-width: 784.71px) {
  .reform .future__title {
    font-size: 22px;
  }
}
.reform .future__title {
  margin-bottom: 32px;
}
.reform .future__fig {
  display: block;
  max-width: 900px;
  margin: 0 auto 56px;
}
.reform .future__fig img {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 600px) {
  .reform .future__fig {
    margin-bottom: 36px;
  }
}
.reform {
  /* ---------- 09 民泊（図6 型D） ---------- */
}
.reform .lodging {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .lodging {
    padding: 0 0 56px;
  }
}
.reform .lodging__grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 56px;
  align-items: start;
}
@media screen and (max-width: 960px) {
  .reform .lodging__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
@media screen and (max-width: 600px) {
  .reform .lodging__grid {
    gap: 0;
  }
}
.reform .lodging__photo img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
@media screen and (max-width: 600px) {
  .reform .lodging__photo {
    margin: 0 -18px 28px;
  }
}
.reform .lodging__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 16px;
}
.reform .lodging__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(30 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.6;
}
@media (min-width: 1071.43px) {
  .reform .lodging__title {
    font-size: 30px;
  }
}
@media (min-width: 785.71px) and (max-width: 1070.43px) {
  .reform .lodging__title {
    font-size: calc(2.7999440011vw + 0.0005599888px);
  }
}
@media (max-width: 784.71px) {
  .reform .lodging__title {
    font-size: 22px;
  }
}
.reform .lodging__title {
  margin-bottom: 22px;
}
.reform .lodging__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.1;
}
.reform .lodging__text + .lodging__text {
  margin-top: 14px;
}
.reform .lodging__list-wrap {
  margin-top: 44px;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 32px 36px;
}
@media screen and (max-width: 600px) {
  .reform .lodging__list-wrap {
    padding: 22px 18px;
    margin-top: 0;
    border-top: none;
  }
}
.reform .lodging__list-title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  text-align: center;
  margin-bottom: 18px;
}
@media screen and (max-width: 600px) {
  .reform .lodging__list-title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(18 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: inherit;
  }
}
.reform .lodging__list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 32px;
  max-width: 820px;
  margin: 0 auto;
}
@media screen and (max-width: 600px) {
  .reform .lodging__list {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}
.reform .lodging__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.reform .lodging__flow {
  margin-top: 44px;
}
@media screen and (max-width: 600px) {
  .reform .lodging__flow {
    margin-top: 32px;
  }
}
.reform .lodging__flow-row {
  display: grid;
  grid-template-columns: 1fr 36px 1fr 36px 1fr 36px 1fr;
  align-items: stretch;
  gap: 6px;
}
@media screen and (max-width: 960px) {
  .reform .lodging__flow-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}
.reform .lodging__flow-node {
  text-align: center;
  background: #f5f2ea;
  padding: 20px 10px 16px;
}
.reform .lodging__flow-node svg {
  display: block;
  margin: 0 auto 8px;
}
@media screen and (max-width: 600px) {
  .reform .lodging__flow-node svg {
    grid-row: 1/span 2;
    margin: 0;
  }
}
.reform .lodging__flow-node .ttl {
  font-style: normal;
  font-weight: 700;
  font-size: calc(15 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
.reform .lodging__flow-node .cap {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.65;
  margin-top: 4px;
}
@media screen and (max-width: 600px) {
  .reform .lodging__flow-node {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 0 14px;
    text-align: left;
    align-items: center;
    padding: 14px 16px;
  }
}
.reform .lodging__flow-node--last {
  background: #1b2a44;
}
.reform .lodging__flow-node--last .ttl {
  color: #fff;
}
.reform .lodging__flow-node--last .cap {
  color: rgba(255, 255, 255, 0.85);
}
.reform .lodging__flow-arw {
  display: grid;
  place-items: center;
}
@media screen and (max-width: 960px) {
  .reform .lodging__flow-arw svg {
    transform: rotate(90deg);
  }
}
.reform {
  /* ---------- 10 不動産の目利きから始める理由（図7 型D） ---------- */
}
.reform .reason {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .reason {
    padding: 56px 0;
  }
}
.reform .sec-head .sub {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: #63676e;
  letter-spacing: 0.06em;
  line-height: inherit;
  margin-bottom: 6px;
}
.reform .step-flow {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  max-width: 1040px;
  margin: 0 auto 64px;
}
@media screen and (max-width: 960px) {
  .reform .step-flow {
    grid-template-columns: 1fr;
    max-width: 440px;
  }
}
@media screen and (max-width: 600px) {
  .reform .step-flow {
    margin-bottom: 40px;
  }
}
.reform .step-flow__item {
  position: relative;
  text-align: center;
  padding: 26px 12px 20px;
  background: #fff;
  border: 1px solid #ddd6c8;
}
.reform .step-flow__item + .step-flow__item {
  margin-left: 30px;
}
@media screen and (max-width: 960px) {
  .reform .step-flow__item + .step-flow__item {
    margin-left: 0;
    margin-top: 30px;
  }
}
.reform .step-flow__item + .step-flow__item::before {
  content: "";
  position: absolute;
  left: -27px;
  top: 50%;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
  background: #b3924f;
  clip-path: polygon(0 22%, 52% 22%, 52% 0, 100% 50%, 52% 100%, 52% 78%, 0 78%);
}
@media screen and (max-width: 960px) {
  .reform .step-flow__item + .step-flow__item::before {
    left: 50%;
    top: -27px;
    transform: translateX(-50%) rotate(90deg);
  }
}
@media screen and (max-width: 600px) {
  .reform .step-flow__item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 0 16px;
    text-align: left;
    align-items: center;
    padding: 16px 18px;
  }
}
.reform .step-flow__item--last {
  border-color: #1b2a44;
  background: #1b2a44;
}
.reform .step-flow__item--last .step-flow__icon {
  background: #b3924f;
}
.reform .step-flow__item--last .step-flow__title {
  color: #fff;
}
.reform .step-flow__item--last .step-flow__text {
  color: rgba(255, 255, 255, 0.85);
}
.reform .step-flow__no {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.2em;
  line-height: inherit;
  margin-bottom: 12px;
}
@media screen and (max-width: 600px) {
  .reform .step-flow__no {
    margin-bottom: 2px;
  }
}
.reform .step-flow__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: #1b2a44;
  display: grid;
  place-items: center;
}
@media screen and (max-width: 600px) {
  .reform .step-flow__icon svg {
    width: 28px;
    height: 28px;
  }
}
@media screen and (max-width: 600px) {
  .reform .step-flow__icon {
    grid-row: 1/span 4;
    width: 56px;
    height: 56px;
    margin: 0;
  }
}
.reform .step-flow__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 6px;
}
.reform .step-flow__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.8;
  margin-bottom: 8px;
}
@media screen and (max-width: 600px) {
  .reform .step-flow__text br {
    display: none;
  }
}
@media screen and (max-width: 600px) {
  .reform .step-flow__text {
    margin-bottom: 2px;
  }
}
.reform .step-flow__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(9 / 16 * 1rem);
  color: #b4b0a6;
  letter-spacing: 0.2em;
  line-height: inherit;
}
.reform .reason__flow {
  display: grid;
  gap: 14px;
  max-width: 900px;
  margin: 0 auto;
}
@media screen and (max-width: 600px) {
  .reform .reason__flow {
    gap: 4px;
  }
}
.reform .reason-item {
  display: flex;
  gap: 22px;
  background: #fff;
  border: 1px solid #ddd6c8;
  padding: 24px 32px;
  align-items: center;
}
@media screen and (max-width: 600px) {
  .reform .reason-item {
    padding: 14px 0;
    gap: 14px;
    align-items: flex-start;
    background: transparent;
    border: none;
  }
}
.reform .reason-item__no {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #f5f2ea;
  display: grid;
  place-items: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: inherit;
  line-height: inherit;
}
.reform .reason-item__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(19 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 4px;
}
.reform .reason-item__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.95;
}
.reform {
  /* ---------- 10b 代表紹介（紺背景・横長） ---------- */
}
.reform .rep {
  background: #1b2a44;
  color: #fff;
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .reform .rep {
    padding: 56px 0;
  }
}
.reform .rep-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 56px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .reform .rep-card {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.reform .rep-card__photo img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: 50% 20%;
}
@media screen and (max-width: 960px) {
  .reform .rep-card__photo img {
    max-width: 300px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 600px) {
  .reform .rep-card__photo img {
    max-width: 240px;
  }
}
.reform .rep-card__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 12px;
}
.reform .rep-card__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(34 / 16 * 1rem);
  color: #fff;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1062.5px) {
  .reform .rep-card__name {
    font-size: 34px;
  }
}
@media (min-width: 812.5px) and (max-width: 1061.5px) {
  .reform .rep-card__name {
    font-size: calc(3.2vw + 0px);
  }
}
@media (max-width: 811.5px) {
  .reform .rep-card__name {
    font-size: 26px;
  }
}
.reform .rep-card__name {
  margin-bottom: 6px;
}
.reform .rep-card__name .role {
  font-size: 0.55em;
  margin-right: 14px;
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
}
.reform .rep-card__note {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.72);
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 20px;
}
.reform .rep-card__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: inherit;
  line-height: 2.1;
}
.reform .rep-card__text + .rep-card__text {
  margin-top: 14px;
}
.reform {
  /* ---------- 11 こんな方に選ばれています ---------- */
  /* 上の代表紹介（紺）から紺の五角形（下向き矢印）を垂らして chosen__box へ視線誘導 */
}
.reform .chosen {
  position: relative;
  padding: calc(96px + 48px) 0 96px;
}
.reform .chosen::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 72px;
  background: #1b2a44;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media screen and (max-width: 600px) {
  .reform .chosen::before {
    height: 40px;
  }
}
@media screen and (max-width: 600px) {
  .reform .chosen {
    padding: 76px 0 56px;
  }
}
.reform .chosen__box {
  position: relative;
  max-width: 960px;
  margin: 0 auto;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 64px;
}
@media screen and (max-width: 960px) {
  .reform .chosen__box {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 600px) {
  .reform .chosen__box {
    padding: 0;
    gap: 28px;
  }
}
.reform .chosen__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 16px;
}
.reform .chosen__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(28 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.7;
}
@media (min-width: 1076.92px) {
  .reform .chosen__title {
    font-size: 28px;
  }
}
@media (min-width: 846.15px) and (max-width: 1075.92px) {
  .reform .chosen__title {
    font-size: calc(2.5999913334vw + 0.0001733328px);
  }
}
@media (max-width: 845.15px) {
  .reform .chosen__title {
    font-size: 22px;
  }
}
.reform .chosen__title {
  margin-bottom: 20px;
}
.reform .chosen__lead {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.05;
}
.reform .chosen__list {
  display: grid;
  gap: 14px;
  align-content: center;
}
.reform .chosen__item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

/* ============================================================
   [2] page/newhome（`.newhome` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/newhome.html
============================================================ */
.newhome {
  /* ---------- 01 FV（reform と同型：PCは写真の上に左グラデ／SPは写真→紺パネル） ---------- */
}
.newhome .fv {
  position: relative;
  background: #131f33;
  color: #fff;
}
@media (min-width: 601px) {
  .newhome .fv {
    min-height: 640px;
    display: flex;
    align-items: center;
    overflow: hidden;
  }
}
.newhome .fv__photo {
  position: relative;
}
.newhome .fv__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 85% 40%;
}
@media screen and (max-width: 600px) {
  .newhome .fv__photo img {
    aspect-ratio: 16/10;
    height: auto;
    object-position: 60% 50%;
  }
}
@media (min-width: 601px) {
  .newhome .fv__photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(19, 31, 51, 0.92) 0%, rgba(19, 31, 51, 0.8) 40%, rgba(19, 31, 51, 0.42) 60%, rgba(19, 31, 51, 0) 82%);
  }
}
@media (max-width: 960px) and (min-width: 601px) {
  .newhome .fv__photo::after {
    background: linear-gradient(100deg, rgba(19, 31, 51, 0.92) 0%, rgba(19, 31, 51, 0.82) 55%, rgba(19, 31, 51, 0.4) 100%);
  }
}
@media (min-width: 601px) {
  .newhome .fv__photo {
    position: absolute;
    inset: 0;
  }
}
.newhome .fv__inner {
  position: relative;
  z-index: 2;
  width: min(1120px, 100% - 48px);
  margin: 0 auto;
}
.newhome .fv__en {
  display: flex;
  align-items: center;
  gap: 14px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 22px;
}
.newhome .fv__en::before {
  content: "";
  width: 34px;
  height: 1px;
  background: #cfb27a;
}
.newhome .fv__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(32 / 16 * 1rem);
  color: inherit;
  letter-spacing: 0.1em;
  line-height: 1.35;
  margin-bottom: 18px;
}
@media screen and (max-width: 600px) {
  .newhome .fv__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(30 / 16 * 1rem);
    color: inherit;
    letter-spacing: 0.1em;
    line-height: 1.35;
  }
}
.newhome .fv__title .sm {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(28 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1166.67px) {
  .newhome .fv__title .sm {
    font-size: 28px;
  }
}
@media (min-width: 833.33px) and (max-width: 1165.67px) {
  .newhome .fv__title .sm {
    font-size: calc(2.399952001vw + 0.0004799904px);
  }
}
@media (max-width: 832.33px) {
  .newhome .fv__title .sm {
    font-size: 20px;
  }
}
.newhome .fv__title .sm {
  margin-bottom: 10px;
}
.newhome .fv__title .lg {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(50 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
@media (min-width: 1250px) {
  .newhome .fv__title .lg {
    font-size: 50px;
  }
}
@media (min-width: 800px) and (max-width: 1249px) {
  .newhome .fv__title .lg {
    font-size: calc(4vw + 0px);
  }
}
@media (max-width: 799px) {
  .newhome .fv__title .lg {
    font-size: 32px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .fv__title .lg {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(29 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: inherit;
  }
}
.newhome .fv__brand {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(22 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.14em;
  line-height: inherit;
}
@media (min-width: 1157.89px) {
  .newhome .fv__brand {
    font-size: 22px;
  }
}
@media (min-width: 894.74px) and (max-width: 1156.89px) {
  .newhome .fv__brand {
    font-size: calc(1.9000570017vw + -0.0005700171px);
  }
}
@media (max-width: 893.74px) {
  .newhome .fv__brand {
    font-size: 17px;
  }
}
.newhome .fv__brand {
  margin-bottom: 20px;
}
@media screen and (max-width: 600px) {
  .newhome .fv__brand {
    font-style: normal;
    font-weight: 600;
    font-size: calc(17 / 16 * 1rem);
    color: #cfb27a;
    letter-spacing: 0.14em;
    line-height: inherit;
  }
}
.newhome .fv__lead {
  max-width: 560px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.92);
  letter-spacing: inherit;
  line-height: 2.05;
  margin-bottom: 36px;
}
@media screen and (max-width: 600px) {
  .newhome .fv__lead {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: rgba(255, 255, 255, 0.92);
    letter-spacing: inherit;
    line-height: 2.05;
    margin-bottom: 26px;
  }
}
.newhome .fv__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}
.newhome .fv__btn-main {
  background: rgba(253, 252, 248, 0.96);
  border-color: rgba(253, 252, 248, 0.96);
  color: #1b2a44;
}
@media (min-width: 601px) {
  .newhome .fv__panel {
    width: 100%;
    padding: 96px 0;
  }
}
@media screen and (max-width: 600px) {
  .newhome .fv__panel {
    padding: 36px 0 40px;
  }
}
.newhome {
  /* ---------- 02 企画住宅という家づくり（図1：基本の形＋家族の暮らし → 自分スタイルの家） ---------- */
}
.newhome .concept {
  padding: 96px 0 calc(96px + 40px);
}
@media screen and (max-width: 600px) {
  .newhome .concept {
    padding: 56px 0 calc(56px + 24px);
  }
}
.newhome .zu-concept {
  display: grid;
  grid-template-columns: 1fr 44px 1fr 60px 1.2fr;
  align-items: stretch;
  max-width: 1040px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .newhome .zu-concept {
    grid-template-columns: 1fr;
    max-width: 520px;
  }
}
.newhome .zu-concept__node {
  text-align: center;
  background: #f5f2ea;
  padding: 36px 20px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.newhome .zu-concept__node svg {
  display: block;
  width: 68px;
  height: 60px;
  margin-bottom: 16px;
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__node svg {
    grid-row: 1/span 2;
    width: 46px;
    height: 40px;
    margin: 0;
  }
}
.newhome .zu-concept__node .ttl {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(26 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
@media (min-width: 1130.43px) {
  .newhome .zu-concept__node .ttl {
    font-size: 26px;
  }
}
@media (min-width: 956.52px) and (max-width: 1129.43px) {
  .newhome .zu-concept__node .ttl {
    font-size: calc(2.3000402507vw + -0.000345006px);
  }
}
@media (max-width: 955.52px) {
  .newhome .zu-concept__node .ttl {
    font-size: 22px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__node .ttl {
    font-style: normal;
    font-weight: 600;
    font-size: calc(20 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
}
.newhome .zu-concept__node .cap {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.8;
  margin-top: 8px;
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__node .cap {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(13 / 16 * 1rem);
    color: #63676e;
    letter-spacing: inherit;
    line-height: 1.8;
    margin-top: 2px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__node {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 0 16px;
    text-align: left;
    align-items: center;
    justify-items: start;
    padding: 16px 18px;
  }
}
.newhome .zu-concept__node--goal {
  background: #1b2a44;
}
.newhome .zu-concept__node--goal .ttl {
  font-style: normal;
  font-weight: 600;
  font-size: calc(30 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.08em;
  line-height: 1.5;
}
@media (min-width: 1153.85px) {
  .newhome .zu-concept__node--goal .ttl {
    font-size: 30px;
  }
}
@media (min-width: 923.08px) and (max-width: 1152.85px) {
  .newhome .zu-concept__node--goal .ttl {
    font-size: calc(2.5999913334vw + 0px);
  }
}
@media (max-width: 922.08px) {
  .newhome .zu-concept__node--goal .ttl {
    font-size: 24px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__node--goal .ttl {
    font-style: normal;
    font-weight: 600;
    font-size: calc(21 / 16 * 1rem);
    color: #fff;
    letter-spacing: 0.08em;
    line-height: 1.5;
  }
}
.newhome .zu-concept__node--goal .cap {
  color: rgba(255, 255, 255, 0.86);
}
.newhome .zu-concept__op {
  display: grid;
  place-items: center;
}
.newhome .zu-concept__op svg {
  width: 22px;
  height: 22px;
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__op svg {
    width: 18px;
    height: 18px;
  }
}
@media screen and (max-width: 960px) {
  .newhome .zu-concept__op {
    padding: 10px 0;
  }
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__op {
    padding: 8px 0;
  }
}
.newhome .zu-concept__op--arw svg {
  width: 30px;
  height: 24px;
}
@media screen and (max-width: 960px) {
  .newhome .zu-concept__op--arw svg {
    transform: rotate(90deg);
  }
}
@media screen and (max-width: 600px) {
  .newhome .zu-concept__op--arw svg {
    width: 24px;
    height: 20px;
  }
}
.newhome {
  /* ---------- 03 住宅ラインナップ（ベージュ面。上端を前セクション色の五角形でくり抜き、見出しを重ねる） ---------- */
}
.newhome .lineup {
  position: relative;
  padding: 0 0 96px;
}
.newhome .lineup::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: min(760px, 66%);
  height: 210px;
  background: #fdfcf8;
  clip-path: polygon(0 0, 100% 0, 100% 56%, 50% 100%, 0 56%);
}
@media screen and (max-width: 600px) {
  .newhome .lineup::before {
    width: 84%;
    height: 140px;
    clip-path: polygon(0 0, 100% 0, 100% 62%, 50% 100%, 0 62%);
  }
}
@media screen and (max-width: 600px) {
  .newhome .lineup {
    padding-bottom: 56px;
  }
}
.newhome .lineup__head {
  position: relative;
  text-align: center;
  padding-top: 30px;
  margin-bottom: 104px;
}
.newhome .lineup__head .en {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.3em;
  line-height: inherit;
  margin-bottom: 12px;
}
.newhome .lineup__head .ja {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(38 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: 1.5;
}
@media (min-width: 1117.65px) {
  .newhome .lineup__head .ja {
    font-size: 38px;
  }
}
@media (min-width: 705.88px) and (max-width: 1116.65px) {
  .newhome .lineup__head .ja {
    font-size: calc(3.3999562863vw + 0.0003885664px);
  }
}
@media (max-width: 704.88px) {
  .newhome .lineup__head .ja {
    font-size: 24px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .lineup__head {
    padding-top: 22px;
    margin-bottom: 64px;
  }
}
.newhome .lineup__lead {
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: inherit;
}
@media (min-width: 1000px) {
  .newhome .lineup__lead {
    font-size: 20px;
  }
}
@media (min-width: 850px) and (max-width: 999px) {
  .newhome .lineup__lead {
    font-size: calc(2vw + 0px);
  }
}
@media (max-width: 849px) {
  .newhome .lineup__lead {
    font-size: 17px;
  }
}
.newhome .lineup__lead {
  margin-bottom: 36px;
}
@media screen and (max-width: 600px) {
  .newhome .lineup__lead {
    text-align: left;
    margin-bottom: 12px;
  }
}
.newhome .lineup__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px 24px;
}
@media screen and (max-width: 960px) {
  .newhome .lineup__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 600px) {
  .newhome .lineup__grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
.newhome .lineup-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  transition: opacity 0.25s;
}
.newhome .lineup-card:hover {
  opacity: 0.85;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card:last-child {
    border-bottom: none;
  }
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card {
    display: grid;
    grid-template-columns: 42% 1fr;
    gap: 0 16px;
    align-items: center;
    background: transparent;
    padding: 18px 0;
    border-bottom: 1px solid #ddd6c8;
  }
}
.newhome .lineup-card__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__photo img {
    aspect-ratio: 4/3;
  }
}
.newhome .lineup-card__body {
  padding: 22px 24px 22px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__body {
    padding: 0;
  }
}
.newhome .lineup-card__catch {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.7;
  margin-bottom: 6px;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__catch {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(12.5 / 16 * 1rem);
    color: #63676e;
    letter-spacing: inherit;
    line-height: 1.6;
    margin-bottom: 2px;
  }
}
.newhome .lineup-card__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(24 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: 1.4;
  flex: 1;
}
.newhome .lineup-card__name .kana {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: calc(12 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.16em;
  line-height: inherit;
  margin-top: 4px;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__name .kana {
    font-style: normal;
    font-weight: 500;
    font-size: calc(11 / 16 * 1rem);
    color: #b3924f;
    letter-spacing: 0.16em;
    line-height: inherit;
    margin-top: 2px;
  }
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__name {
    font-style: normal;
    font-weight: 600;
    font-size: calc(20 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.06em;
    line-height: 1.4;
    flex: none;
  }
}
.newhome .lineup-card__ext {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #ddd6c8;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12.5 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: inherit;
}
.newhome .lineup-card__ext svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
@media screen and (max-width: 600px) {
  .newhome .lineup-card__ext {
    justify-content: flex-start;
    border-top: none;
    padding-top: 0;
    margin-top: 8px;
    font-style: normal;
    font-weight: inherit;
    font-size: calc(11.5 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.06em;
    line-height: inherit;
  }
}
.newhome .lineup__note {
  margin-top: 28px;
  text-align: center;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
}
@media screen and (max-width: 600px) {
  .newhome .lineup__note {
    text-align: left;
    margin-top: 16px;
  }
}
.newhome {
  /* SPは枠なし：写真左＋文字右、要素間の下線のみ（最後は下線なし） */
  /* ---------- 04 吟味を重ねた家づくり ---------- */
}
.newhome .product {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .newhome .product {
    padding: 56px 0;
  }
}
.newhome .product__grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 64px;
  align-items: center;
  max-width: 1040px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .newhome .product__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.newhome .product__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 854/740;
  object-fit: cover;
}
@media screen and (max-width: 600px) {
  .newhome .product__photo img {
    aspect-ratio: 4/3;
  }
}
@media screen and (max-width: 600px) {
  .newhome .product__photo {
    margin: 0 -18px;
  }
}
.newhome .product__lead {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.1;
  margin-bottom: 28px;
}
.newhome .product__links {
  border-top: 1px solid #ddd6c8;
}
.newhome .product__links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 4px;
  border-bottom: 1px solid #ddd6c8;
  transition: opacity 0.25s;
}
.newhome .product__links a:hover {
  opacity: 0.7;
}
.newhome .product__links .lbl {
  line-height: 1.45;
}
.newhome .product__links .lbl small {
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(12 / 16 * 1rem);
  color: #63676e;
  letter-spacing: 0.08em;
  line-height: inherit;
}
.newhome .product__links .lbl b {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(18 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: inherit;
}
@media screen and (max-width: 600px) {
  .newhome .product__links .lbl b {
    font-style: normal;
    font-weight: 600;
    font-size: calc(17 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.06em;
    line-height: inherit;
  }
}
.newhome .product__links svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}
.newhome {
  /* ---------- 06 お問い合わせ（製品チェック） ---------- */
}
.newhome .nh-checks {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media screen and (max-width: 600px) {
  .newhome .nh-checks {
    grid-template-columns: 1fr;
  }
}
.newhome .nh-checks {
  counter-reset: nh-check;
}
.newhome .nh-checks .wpcf7-list-item {
  display: block;
  margin: 0;
}
.newhome .nh-checks label {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 100%;
  border: 1px solid #ddd6c8;
  background: #fdfcf8;
  padding: 12px 16px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.5;
  cursor: pointer;
}
.newhome .nh-checks input {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: #1b2a44;
}
.newhome .nh-checks .wpcf7-list-item-label::before {
  counter-increment: nh-check;
  content: counter(nh-check, decimal-leading-zero);
  display: block;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.12em;
  line-height: inherit;
}
.newhome .form-row__note {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin-top: 8px;
}
.newhome .form-confirm {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #f5f2ea;
  padding: 18px 20px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(14 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 1.8;
  cursor: pointer;
}
.newhome .form-confirm input {
  width: 18px;
  height: 18px;
  margin-top: 3px;
  flex-shrink: 0;
  accent-color: #1b2a44;
}

/* ============================================================
   WP化で追加：入力内容の確認チェック（CF7 の [acceptance]。label が文言ごと包む）
============================================================ */
.newhome .form-confirm .wpcf7-list-item {
  display: block;
  margin: 0;
}
.newhome .form-confirm label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
}

/* ============================================================
   [2] page/about（`.about` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/about.html
============================================================ */
.about {
  /* ---------- 02 リード（案3 住んだ後型）＋図1 ---------- */
}
.about .philosophy {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .about .philosophy {
    padding: 56px 0;
  }
}
.about .philosophy__title {
  text-align: center;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(40 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.1em;
  line-height: 1.65;
}
@media (min-width: 1111.11px) {
  .about .philosophy__title {
    font-size: 40px;
  }
}
@media (min-width: 722.22px) and (max-width: 1110.11px) {
  .about .philosophy__title {
    font-size: calc(3.5999897143vw + 0.0001542853px);
  }
}
@media (max-width: 721.22px) {
  .about .philosophy__title {
    font-size: 26px;
  }
}
.about .philosophy__title {
  margin-bottom: 30px;
}
@media screen and (max-width: 600px) {
  .about .philosophy__title {
    font-style: normal;
    font-weight: 600;
    font-size: calc(25 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.1em;
    line-height: 1.65;
    text-align: left;
  }
}
.about .philosophy__text {
  max-width: 680px;
  margin: 0 auto;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(16 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: 2.15;
}
@media screen and (max-width: 600px) {
  .about .philosophy__text {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: #63676e;
    letter-spacing: inherit;
    line-height: 2.15;
  }
}
.about {
  /* ---------- 03 代表紹介（紺背景・写真左＋本文右／reform の .rep と同型） ---------- */
}
.about .rep {
  background: #1b2a44;
  color: #fff;
  padding: 96px 0 calc(96px + 8px);
}
@media screen and (max-width: 600px) {
  .about .rep {
    padding: 56px 0;
  }
}
.about .rep-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 56px;
  align-items: center;
  max-width: 1000px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .about .rep-card {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.about .rep-card__photo img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/5;
  object-fit: cover;
  object-position: 50% 20%;
}
@media screen and (max-width: 960px) {
  .about .rep-card__photo img {
    max-width: 300px;
    margin: 0 auto;
  }
}
@media screen and (max-width: 600px) {
  .about .rep-card__photo img {
    max-width: 240px;
  }
}
.about .rep-card__en {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(11 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: 0.28em;
  line-height: inherit;
  margin-bottom: 12px;
}
.about .rep-card__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(36 / 16 * 1rem);
  color: #fff;
  letter-spacing: 0.1em;
  line-height: inherit;
}
@media (min-width: 1058.82px) {
  .about .rep-card__name {
    font-size: 36px;
  }
}
@media (min-width: 823.53px) and (max-width: 1057.82px) {
  .about .rep-card__name {
    font-size: calc(3.400059501vw + -0.0005100089px);
  }
}
@media (max-width: 822.53px) {
  .about .rep-card__name {
    font-size: 28px;
  }
}
.about .rep-card__name {
  margin-bottom: 10px;
}
.about .rep-card__name .role {
  font-size: 0.5em;
  margin-right: 14px;
  color: rgba(255, 255, 255, 0.75);
  font-weight: 500;
}
.about .rep-card__titles {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13.5 / 16 * 1rem);
  color: #cfb27a;
  letter-spacing: inherit;
  line-height: 1.9;
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.16);
}
.about .rep-card__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: rgba(255, 255, 255, 0.9);
  letter-spacing: inherit;
  line-height: 2.1;
}
.about .rep-card__text + .rep-card__text {
  margin-top: 14px;
}
@media screen and (max-width: 600px) {
  .about .rep-card__text {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: rgba(255, 255, 255, 0.9);
    letter-spacing: inherit;
    line-height: 2.1;
  }
}
.about {
  /* ---------- 04 会社概要（上端に紺の全幅▼を垂らして代表紹介から連続させる） ---------- */
}
.about .profile {
  position: relative;
  padding: calc(96px + 40px) 0 96px;
}
.about .profile::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  height: 64px;
  background: #1b2a44;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
@media screen and (max-width: 600px) {
  .about .profile::before {
    height: 36px;
  }
}
@media screen and (max-width: 600px) {
  .about .profile {
    padding: calc(56px + 28px) 0 56px;
  }
}
.about .profile__table {
  max-width: 900px;
  margin: 0 auto;
  border-top: 1px solid #1b2a44;
}
.about .profile__row {
  display: grid;
  grid-template-columns: 210px 1fr;
  border-bottom: 1px solid #ddd6c8;
}
@media screen and (max-width: 600px) {
  .about .profile__row {
    grid-template-columns: 1fr;
    padding: 16px 0;
  }
}
.about .profile__th {
  padding: 22px 20px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(16 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: 1.7;
}
@media screen and (max-width: 600px) {
  .about .profile__th {
    padding: 0 0 4px;
    font-style: normal;
    font-weight: 600;
    font-size: calc(14 / 16 * 1rem);
    color: #b3924f;
    letter-spacing: 0.06em;
    line-height: 1.7;
  }
}
.about .profile__td {
  padding: 22px 8px 22px 0;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.9;
}
.about .profile__td .item {
  display: block;
}
.about .profile__td .item + .item {
  margin-top: 6px;
}
.about .profile__td a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid #cfb27a;
  line-height: 1.6;
}
.about .profile__td a svg {
  width: 12px;
  height: 12px;
}
@media screen and (max-width: 600px) {
  .about .profile__td {
    padding: 0;
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 1.9;
  }
}
.about {
  /* ---------- 05 アクセス ---------- */
}
.about .access {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .about .access {
    padding: 56px 0;
  }
}
.about .access__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 48px;
  align-items: center;
  max-width: 1040px;
  margin: 0 auto;
}
@media screen and (max-width: 960px) {
  .about .access__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}
.about .access__map {
  background: #d9d5cb;
  aspect-ratio: 4/3;
}
.about .access__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
@media screen and (max-width: 600px) {
  .about .access__map {
    margin: 0 -18px;
    aspect-ratio: 1/1;
  }
}
.about .access__name {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(20 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: inherit;
  margin-bottom: 14px;
}
.about .access__addr {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 2;
  margin-bottom: 22px;
}
.about .access__tel {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(26 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
.about .access__tel svg {
  width: 22px;
  height: 22px;
}
.about .access__time {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin: 4px 0 26px;
}
.about .access__btn {
  min-width: 0;
}

/* ============================================================
   [2] page/privacy（`.privacy` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/privacy.html
============================================================ */
.privacy {
  /* ---------- 02 本文 ---------- */
}
.privacy .policy {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .privacy .policy {
    padding: 56px 0;
  }
}
.privacy .policy__inner {
  max-width: 820px;
  margin: 0 auto;
}
.privacy .policy__intro {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(16 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 2.1;
  padding-bottom: 40px;
  margin-bottom: 8px;
  border-bottom: 1px solid #ddd6c8;
}
@media screen and (max-width: 600px) {
  .privacy .policy__intro {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 2.1;
    padding-bottom: 28px;
  }
}
.privacy .policy-sec {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 20px;
  padding: 36px 0;
  border-bottom: 1px solid #ddd6c8;
}
.privacy .policy-sec:last-child {
  border-bottom: none;
}
@media screen and (max-width: 600px) {
  .privacy .policy-sec {
    grid-template-columns: 1fr;
    padding: 28px 0;
  }
}
.privacy .policy-sec__no {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(26 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
@media screen and (max-width: 600px) {
  .privacy .policy-sec__no {
    font-style: normal;
    font-weight: 600;
    font-size: calc(20 / 16 * 1rem);
    color: #b3924f;
    letter-spacing: 0.04em;
    line-height: 1.3;
    margin-bottom: 2px;
  }
}
.privacy .policy-sec__title {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(22 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
@media (min-width: 1000px) {
  .privacy .policy-sec__title {
    font-size: 22px;
  }
}
@media (min-width: 863.64px) and (max-width: 999px) {
  .privacy .policy-sec__title {
    font-size: calc(2.2000586682vw + -0.0005866823px);
  }
}
@media (max-width: 862.64px) {
  .privacy .policy-sec__title {
    font-size: 19px;
  }
}
.privacy .policy-sec__title {
  margin-bottom: 12px;
}
.privacy .policy-sec__text {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 2.05;
}
.privacy .policy-sec__text + .policy-sec__text {
  margin-top: 12px;
}
@media screen and (max-width: 600px) {
  .privacy .policy-sec__text {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 2.05;
  }
}
.privacy .policy-sec__list {
  margin: 14px 0;
  display: grid;
  gap: 8px;
}
.privacy .policy-sec__list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15.5 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 1.9;
}
@media screen and (max-width: 600px) {
  .privacy .policy-sec__list li {
    font-style: normal;
    font-weight: inherit;
    font-size: calc(15 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 1.9;
  }
}
.privacy .policy-sec__list li::before {
  content: "";
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 12px;
  background: #b3924f;
}
.privacy .policy-sec__contact {
  margin-top: 4px;
  background: #f5f2ea;
  padding: 24px 28px;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(15 / 16 * 1rem);
  color: inherit;
  letter-spacing: inherit;
  line-height: 2;
}
.privacy .policy-sec__contact .name {
  display: block;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 4px;
}
.privacy .policy-sec__contact a {
  color: #1b2a44;
  border-bottom: 1px solid #cfb27a;
}
@media screen and (max-width: 600px) {
  .privacy .policy-sec__contact {
    margin: 4px -18px 0;
    padding: 22px 18px;
    font-style: normal;
    font-weight: inherit;
    font-size: calc(14.5 / 16 * 1rem);
    color: inherit;
    letter-spacing: inherit;
    line-height: 2;
  }
}
.privacy .policy__date {
  margin-top: 28px;
  text-align: right;
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
}

/* ============================================================
   [2] page/contact（`.contact-main` 名前空間。メディアクエリは各ブロック直後）
   元：.docs/01_design-01/contact.html
============================================================ */
.contact-main {
  /* ---------- 02 お電話でのご相談 ---------- */
}
.contact-main .tel-first {
  padding: 96px 0 0;
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first {
    padding-top: 56px;
  }
}
.contact-main .tel-first__box {
  max-width: 760px;
  margin: 0 auto;
  background: #f5f2ea;
  padding: 40px 40px 36px;
  text-align: center;
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first__box {
    margin: 0 -18px;
    padding: 28px 18px 26px;
  }
}
.contact-main .tel-first__lead {
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(21 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: 0.06em;
  line-height: 1.7;
}
@media (min-width: 954.55px) {
  .contact-main .tel-first__lead {
    font-size: 21px;
  }
}
@media (min-width: 818.18px) and (max-width: 953.55px) {
  .contact-main .tel-first__lead {
    font-size: calc(2.1998973381vw + 0.0008799589px);
  }
}
@media (max-width: 817.18px) {
  .contact-main .tel-first__lead {
    font-size: 18px;
  }
}
.contact-main .tel-first__lead {
  margin-bottom: 18px;
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first__lead {
    font-style: normal;
    font-weight: 600;
    font-size: calc(17 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: 0.06em;
    line-height: 1.7;
  }
}
.contact-main .tel-first__steps {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 600;
  font-size: calc(17 / 16 * 1rem);
  color: #1b2a44;
  letter-spacing: inherit;
  line-height: inherit;
  margin-bottom: 14px;
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first__steps {
    font-style: normal;
    font-weight: 600;
    font-size: calc(15 / 16 * 1rem);
    color: #1b2a44;
    letter-spacing: inherit;
    line-height: inherit;
    gap: 6px 8px;
  }
}
.contact-main .tel-first__tel {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: "Shippori Mincho", "Noto Serif JP", serif;
  font-style: normal;
  font-weight: 700;
  font-size: calc(48 / 16 * 1rem);
  color: #b3924f;
  letter-spacing: 0.04em;
  line-height: 1.2;
}
@media (min-width: 960px) {
  .contact-main .tel-first__tel {
    font-size: 48px;
  }
}
@media (min-width: 680px) and (max-width: 959px) {
  .contact-main .tel-first__tel {
    font-size: calc(5vw + 0px);
  }
}
@media (max-width: 679px) {
  .contact-main .tel-first__tel {
    font-size: 34px;
  }
}
.contact-main .tel-first__tel svg {
  width: 30px;
  height: 30px;
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first__tel svg {
    width: 24px;
    height: 24px;
  }
}
@media screen and (max-width: 600px) {
  .contact-main .tel-first__tel {
    font-style: normal;
    font-weight: 700;
    font-size: calc(32 / 16 * 1rem);
    color: #b3924f;
    letter-spacing: 0.04em;
    line-height: 1.2;
    gap: 10px;
  }
}
.contact-main .tel-first__time {
  font-style: normal;
  font-weight: inherit;
  font-size: calc(13 / 16 * 1rem);
  color: #63676e;
  letter-spacing: inherit;
  line-height: inherit;
  margin-top: 6px;
}

/* ============================================================
   [2] page/汎用固定ページ（page.php・`.page-common` 名前空間）
   専用テンプレートのないページ用の予備。本文はWPエディタ
============================================================ */
.page-common .page-common__body {
  padding: 96px 0;
  font-style: normal;
  font-weight: 400;
  font-size: calc(16 / 16 * 1rem);
  color: #26292e;
  letter-spacing: inherit;
  line-height: 2;
}
@media screen and (max-width: 600px) {
  .page-common .page-common__body {
    padding: 56px 0;
    font-style: normal;
    font-weight: 400;
    font-size: calc(15 / 16 * 1rem);
    color: #26292e;
    letter-spacing: inherit;
    line-height: 2;
  }
}
.page-common .page-common__body p + p {
  margin-top: 1.2em;
}

/* ============================================================
   [2] page/404（`.page-404` 名前空間。design-01 には無いページ）
   見出しは共通の .page-head--plain、ボタンは共通の .btn
============================================================ */
.page-404 .notfound {
  padding: 96px 0;
}
@media screen and (max-width: 600px) {
  .page-404 .notfound {
    padding: 56px 0;
  }
}
.page-404 .notfound__text {
  max-width: 640px;
  margin: 0 auto 40px;
  font-style: normal;
  font-weight: 400;
  font-size: calc(16 / 16 * 1rem);
  color: #26292e;
  letter-spacing: inherit;
  line-height: 2;
}
@media screen and (max-width: 600px) {
  .page-404 .notfound__text {
    font-style: normal;
    font-weight: 400;
    font-size: calc(15 / 16 * 1rem);
    color: #26292e;
    letter-spacing: inherit;
    line-height: 2;
    margin-bottom: 32px;
  }
}
.page-404 .notfound__actions {
  text-align: center;
}
