@charset "UTF-8";
/*
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .miryo-container        - サイト共通の内側ラッパー（max1200 / 左右32pxガター）
 * .miryo-header 他        - スティッキー半透明ヘッダーの配色・2段ナビ装飾
 * .miryo-logo*            - Mマーク円形ロゴ（グラデ）＋英日2段テキスト
 * .miryo-headbtn / -btn-* - 角丸2pxのシャープなボタン群（MV/CTA/スライドfill）
 * .miryo-hero*            - 下層ページの濃緑グラデーションヒーロー
 * .miryo-footer*          - 濃緑フッター（ブランド＋Contact/Menu＋SNS）
 * .miryo-mv*              - TOPメインビュー（濃緑グラデ＋大型透かし英字）
 * .miryo-newsbar*         - TOP新着お知らせ（横1行バー）
 * .miryo-sec / .miryo-label - セクション余白・英日2段ラベル見出し（番号＋ライン）
 * .miryo-about/-recruit   - 画像＋テキスト2カラム（明緑背景）
 * .miryo-reason*          - 選ばれる理由（罫線グリッド・番号付き）
 * .miryo-svc*             - 事業内容ダークカード（濃緑背景）
 * .miryo-cta*             - 緑グラデのお問い合わせCTA帯
 * .miryo-ph               - 画像プレースホルダ（グラデ＋ラベル）
 * .miryo-service-row      - 事業内容ページ：写真＋テキストの交互行
 * .miryo-area*            - 対応エリア（マップ＋濃緑カード重なり）
 * .miryo-flow*            - 施工の流れ（横5ステップ・接続線）
 * .miryo-commit*          - こだわり（番号＋本文の罫線リスト）
 * .miryo-voice*           - お客様の声（濃緑背景カード）
 * .miryo-message*         - 代表挨拶（写真＋テキスト）
 * .miryo-profile/-quals   - 会社概要テーブル／資格グリッド
 * .miryo-banner           - 母体事業バナー
 * .miryo-persona/-req     - 採用：求める人材像／募集要項
 * .miryo-form*            - お問い合わせフォーム
 *
 * ======================================
 * 共通SCSSに不足していたもの（5分類）
 * ======================================
 * ・装飾パターン不足：濃緑グラデMV＋特大透かし英字、罫線1pxグリッドのカード割り
 * ・構造不足：2段ナビ（日本語上＋英語下）、英日ラベル見出し（番号＋短線）
 * ・値の粒度不足：左右32pxガター、角丸2pxのシャープボタン、660px等の固有高さ
 * ・状態不足：アウトラインボタンの左→右スライド塗りつぶしhover
 */

/* ===== グローバル ===== */
.miryo-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}
@media (max-width: 639px) {
  .miryo-container { padding: 0 20px; }
}

.miryo-en { font-family: "Cormorant", serif; }
.miryo-arrow,
.miryo-headbtn__arrow { font-family: "Cormorant", serif; font-weight: 500; }

/* スクロールフェードイン（デザイン踏襲） */
[data-fade] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .9s cubic-bezier(.16,.7,.3,1), transform .9s cubic-bezier(.16,.7,.3,1);
}
[data-fade].is-visible { opacity: 1; transform: none; }

/* 画像プレースホルダ（実写真が入るまでの仮表示・デザイン踏襲） */
.miryo-ph {
  position: relative;
  background: linear-gradient(150deg, #6e4524, #241708);
  overflow: hidden;
}
.miryo-ph::after {
  content: attr(data-label);
  position: absolute;
  bottom: 20px;
  left: 22px;
  font-family: "Cormorant", serif;
  font-size: 13px;
  letter-spacing: .12em;
  color: rgba(255,255,255,0.6);
}
.miryo-ph--glow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 70% 30%, rgba(255,230,112,0.35), transparent 55%);
}

/* ===== ボタン ===== */
.miryo-headbtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #ffe670;
  color: #241b10;
  text-decoration: none;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 12px 20px;
  border-radius: 2px;
  border: none;
  cursor: pointer;
  transition: background .3s ease, color .3s ease;
}
.miryo-headbtn:hover { background: #f4d246; color: #241b10; opacity: 1; }

.miryo-btn-primary,
.miryo-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  font-size: 1.5rem;
  letter-spacing: .04em;
  padding: 17px 32px;
  border-radius: 2px;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
.miryo-btn-primary { background: #ffe670; color: #241b10; font-weight: 700; }
.miryo-btn-primary:hover { background: #fff; color: #7e4a24; opacity: 1; }
.miryo-btn-ghost { background: transparent; color: #fff; font-weight: 500; border: 1px solid rgba(255,255,255,0.4); }
.miryo-btn-ghost:hover { border-color: #fff; background: rgba(255,255,255,0.08); opacity: 1; }

/* アウトライン → 左から塗りつぶしhover */
.miryo-btn-slide {
  position: relative;
  overflow: hidden;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #7e4a24;
  text-decoration: none;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .05em;
  border: 1px solid #ab6837;
  border-radius: 2px;
  padding: 15px 34px;
  background: transparent;
  transition: color .4s ease;
}
/* 左からグラデ背景がスライドインする */
.miryo-btn-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(120deg, #ffe670, #f4d246);
  transform: translateX(-100%);
  transition: transform .45s cubic-bezier(.16,.7,.3,1);
}
.miryo-btn-slide:hover { color: #241b10; opacity: 1; }
.miryo-btn-slide:hover::before { transform: translateX(0); }

.miryo-btn-white {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  color: #7e4a24;
  text-decoration: none;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 20px 40px;
  border-radius: 2px;
  transition: background .3s ease, color .3s ease;
}
.miryo-btn-white:hover { background: #ffe670; color: #241b10; opacity: 1; }

/* ===== ヘッダー ===== */
.miryo-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid #ede6d8;
}
.miryo-header .header__inner { max-width: 1200px; height: 84px; padding: 0 32px; }
@media (max-width: 1100px) {
  .miryo-header .header__inner { height: 64px; padding: 0 20px; }
}

/* ロゴ（画像） */
.miryo-logo-img { display: inline-flex; align-items: center; }
.miryo-logo-img img { display: block; height: 44px; width: auto; }
@media (max-width: 1100px) { .miryo-logo-img img { height: 34px; } }

/* ロゴ（テキスト版・フッター等で使用） */
.miryo-logo { gap: 13px; }
.miryo-logo__icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ab6837, #7e4a24);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-family: "Cormorant", serif;
  font-weight: 600;
  font-size: 22px;
  line-height: 1;
  flex-shrink: 0;
}
.miryo-logo__name {
  font-size: 1.9rem;
  font-weight: 700;
  color: #241b10;
  letter-spacing: .06em;
  line-height: 1.1;
}
.miryo-logo__sub {
  font-family: "Cormorant", serif;
  font-size: 1.2rem;
  letter-spacing: .22em;
  color: #ab6837;
  text-transform: uppercase;
}

/* PCナビ：日本語（上）＋英語（下） */
.miryo-nav { gap: 38px; align-items: center; }
.miryo-nav .header__nav-item a { padding: 6px 0; gap: 5px; }
.miryo-nav .header__nav-item a::after { display: none; }
.miryo-nav .header__nav-ja {
  order: 0;
  font-size: 1.4rem;
  font-weight: 500;
  color: #2b2417;
  letter-spacing: .04em;
  margin-top: 0;
  transition: color .3s ease;
}
.miryo-nav .header__nav-en {
  order: 1;
  font-family: "Cormorant", serif;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .16em;
  color: #bba98c;
  text-transform: uppercase;
}
.miryo-nav .header__nav-item a:hover .header__nav-ja { color: #7e4a24; }
.miryo-nav .header__nav-item--current a { position: relative; }
.miryo-nav .header__nav-item--current a::before {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 2px;
  background: #ab6837;
}

/* ===== 下層ヒーロー ===== */
.miryo-hero {
  position: relative;
  height: 320px;
  overflow: hidden;
  background: linear-gradient(120deg, #2a1c0e 0%, #5a3a1c 70%, #6e4524 100%);
}
.miryo-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 82% 30%, rgba(255,230,112,0.4), transparent 50%);
}
/* 背景写真版：写真をcoverで敷き、上に濃緑の暗幕を重ねて文字を読みやすく */
.miryo-hero--photo {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.miryo-hero--photo::before {
  background: linear-gradient(120deg, rgba(30,19,8,0.82) 0%, rgba(42,28,14,0.62) 55%, rgba(90,58,28,0.45) 100%);
}
.miryo-hero__watermark {
  position: absolute;
  right: 40px;
  bottom: -40px;
  font-family: "Cormorant", serif;
  font-size: 150px;
  color: rgba(255,255,255,0.06);
  user-select: none;
  line-height: 1;
}
.miryo-hero__inner {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.miryo-hero__en {
  font-family: "Cormorant", serif;
  font-size: 48px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .04em;
  color: #ffe670;
  margin: 0;
  text-transform: uppercase;
}
.miryo-hero__title {
  font-family: "Zen Old Mincho", serif;
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: #fff;
  margin: 0 0 20px;
}
.miryo-hero__crumb {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.25rem;
  color: rgba(255,255,255,0.7);
}
.miryo-hero__crumb a { color: rgba(255,255,255,0.7); text-decoration: none; }
.miryo-hero__crumb a:hover { color: #fff; opacity: 1; }
.miryo-hero__slash { font-family: "Cormorant", serif; }
.miryo-hero__current { color: #ffe670; }
@media (max-width: 639px) {
  .miryo-hero { height: 220px; }
  .miryo-hero__en { font-size: 34px; }
  .miryo-hero__title { font-size: 2rem; }
  .miryo-hero__watermark { font-size: 90px; right: 16px; }
}

/* ===== TOP メインビュー ===== */
.miryo-mv {
  position: relative;
  height: 660px;
  overflow: hidden;
  background: linear-gradient(120deg, #2a1c0e 0%, #5a3a1c 55%, #6e4524 100%);
}
/* 背景スライダー（#slideshow / CMSスライダー） */
.miryo-mv__slider { position: absolute; inset: 0; z-index: 0; }
/* CMSが出力する各コンテナを枠いっぱいに */
.miryo-mv__slider > div,
.miryo-mv__slider .swiper,
.miryo-mv__slider .swiper-container,
.miryo-mv__slider .swiper-wrapper,
.miryo-mv__slider .swiper-slide,
.miryo-mv__slider .main_slider__inner { width: 100%; height: 100%; }
.miryo-mv__slider img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* 暗幕（写真の上に重ねて文字を読みやすく） */
.miryo-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(120deg, rgba(30,19,8,0.78) 0%, rgba(42,28,14,0.55) 50%, rgba(90,58,28,0.42) 100%);
}
.miryo-mv__inner {
  position: relative;
  z-index: 3;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.miryo-mv__lead {
  font-family: "Cormorant", serif;
  font-size: 18px;
  letter-spacing: .24em;
  color: #ffe670;
  margin: 0 0 26px;
  text-transform: uppercase;
}
.miryo-mv__title {
  font-size: 6rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .04em;
  color: #fff;
  margin: 0 0 28px;
  transition-delay: .12s;
}
.miryo-mv__text {
  font-size: 1.7rem;
  line-height: 2.1;
  color: #e3d6bc;
  max-width: 560px;
  margin: 0 0 44px;
  transition-delay: .24s;
}
.miryo-mv__actions { display: flex; gap: 18px; transition-delay: .36s; }
.miryo-mv__scroll {
  position: absolute;
  z-index: 3;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,0.6);
}
.miryo-mv__scroll span:first-child {
  font-family: "Cormorant", serif;
  font-size: 11px;
  letter-spacing: .2em;
}
.miryo-mv__scroll-line {
  width: 1px;
  height: 38px;
  background: linear-gradient(to bottom, rgba(255,255,255,0.6), transparent);
}
@media (max-width: 896px) {
  .miryo-mv { height: 560px; }
  .miryo-mv__title { font-size: 4.4rem; }
}
@media (max-width: 639px) {
  .miryo-mv { height: 540px; }
  .miryo-mv__title { font-size: 3.2rem; }
  .miryo-mv__actions { flex-direction: column; }
  .miryo-btn-primary, .miryo-btn-ghost { justify-content: center; }
}

/* ===== TOP お知らせ ===== */
.miryo-newsbar { background: #fff; padding: 80px 0; }
.miryo-newsbar__list { max-width: 900px; margin: 0 auto; }
.miryo-newsbar__item {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 27px;
  border-bottom: 1px solid #f4efe4;
}
.miryo-newsbar__item:first-child { border-top: 1px solid #f4efe4; }
.miryo-newsbar__date {
  font-family: "EB Garamond", serif;
  font-size: 16px;
  letter-spacing: .04em;
  color: #998a72;
  width: 96px;
  flex-shrink: 0;
}
.miryo-newsbar__tag {
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: #7e4a24;
  background: #fff6d6;
  border-radius: 2px;
  padding: 4px 11px;
  flex-shrink: 0;
}
.miryo-newsbar__ttl { font-size: 1.45rem; color: #2e2519; }
@media (max-width: 639px) {
  .miryo-newsbar__item { flex-wrap: wrap; gap: 8px 14px; padding: 18px; }
}

/* ===== セクション共通余白＆英日ラベル ===== */
.miryo-sec { padding: 128px 0; }
.miryo-sec--light { background: #fffbef; }
.miryo-sec--white { background: #fff; }
.miryo-sec--dark { background: #2a1c0e; position: relative; overflow: hidden; }
/* TOP事業内容：ダーク背景をやめ、Recruit(#fffbef)より少し濃いベージュに。
   直後のRecruitセクションとの境界がぼやけないよう下端に区切り線を入れる */
.miryo-sec--svc-beige {
  background: #fbf9f3;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid #d8c39a;
}
.miryo-sec--svc-beige .miryo-secwm { color: rgba(126,74,36,0.06); }
/* 明るいペーパー調セクション（お客様の声など・区切り線なし） */
.miryo-sec--paper { background: #fbf9f3; position: relative; overflow: hidden; }
.miryo-sec--paper .miryo-secwm { color: rgba(126,74,36,0.06); }
@media (max-width: 896px) { .miryo-sec { padding: 72px 0; } }

.miryo-secwm {
  position: absolute;
  font-family: "Cormorant", serif;
  color: rgba(255,255,255,0.04);
  user-select: none;
  pointer-events: none;
  line-height: 1;
}
.miryo-secwm--service { top: -60px; right: -40px; font-size: 200px; }
.miryo-secwm--voice { top: -50px; right: -30px; font-size: 180px; }

/* 英日2段ラベル（番号＋短線＋英語大＋日本語） */
.miryo-label { margin-bottom: 44px; }
.miryo-label--center { text-align: center; }
.miryo-label__no {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 0;
}
.miryo-label--center .miryo-label__no { justify-content: center; }
.miryo-label__num { font-family: "EB Garamond", serif; font-size: 15px; letter-spacing: .18em; color: #ab6837; }
.miryo-label__line { width: 34px; height: 1px; background: #bba98c; }
.miryo-label__en {
  font-family: "Cormorant", serif;
  font-size: 42px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #ab6837;
  margin: 0;
}
.miryo-label__en--sm { font-size: 36px; }
.miryo-label__ja { font-family: "Zen Old Mincho", serif; font-size: 2.4rem; font-weight: 400; letter-spacing: .06em; color: #241b10; margin: 0; }
.miryo-label--dark .miryo-label__num { color: #ffe670; }
.miryo-label--dark .miryo-label__line { background: rgba(255,255,255,0.3); }
.miryo-label--dark .miryo-label__ja { color: #fff; }
@media (max-width: 639px) {
  .miryo-label__en { font-size: 32px; }
}

/* ===== TOP 会社紹介リード / 採用導入（2カラム） ===== */
.miryo-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.miryo-split--recruit { grid-template-columns: 0.9fr 1.1fr; gap: 72px; }
.miryo-split--about { grid-template-columns: 1.1fr 0.9fr; gap: 72px; }
.miryo-split--req { grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: stretch; }
.miryo-split__title--lg { font-size: 3.2rem; }
.miryo-split__img--about { height: 420px; background: linear-gradient(150deg, #5a3a1c, #2a1c0e); }
.miryo-split__title {
  font-family: "Zen Old Mincho", serif;
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: .05em;
  color: #241b10;
  margin: 0 0 28px;
}
.miryo-split__p { font-size: 1.55rem; line-height: 2.2; color: #5a4d3c; margin: 0 0 22px; }
.miryo-split__p:last-of-type { margin-bottom: 38px; }
.miryo-split__p strong { font-weight: 700; color: #7e4a24; }
.miryo-split__img {
  position: relative;
  height: 480px;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 30px 60px -28px rgba(42,28,14,0.5);
}
.miryo-split__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.miryo-split__img--recruit { height: 400px; background: linear-gradient(150deg, #5a3a1c, #2a1c0e); }
.miryo-split__img--req { height: auto; min-height: 480px; background: linear-gradient(150deg, #5a3a1c, #2a1c0e); box-shadow: none; }
@media (max-width: 896px) {
  .miryo-split, .miryo-split--recruit, .miryo-split--req { grid-template-columns: 1fr; gap: 40px; }
  .miryo-split__img { height: 320px; }
  .miryo-split__img--req { height: 320px; min-height: 0; }
  .miryo-split__img--order { order: -1; }
}

/* ===== TOP 採用導入（中央寄せレイアウト） ===== */
.miryo-recruit { max-width: 860px; margin-inline: auto; text-align: center; }
.miryo-recruit .miryo-label { margin-bottom: 30px; }
.miryo-recruit__title { margin-bottom: 34px; }
.miryo-recruit__img {
  position: relative;
  height: 400px;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 30px 60px -28px rgba(42,28,14,0.5);
  margin: 0 0 36px;
}
.miryo-recruit__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.miryo-recruit__p { text-align: center; }
@media (max-width: 896px) {
  .miryo-recruit__img { height: 320px; }
}

/* ===== TOP 選ばれる理由 ===== */
.miryo-reason {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  border-bottom: 1px solid #f0e9db; /* 一番下の横線 */
}
.miryo-reason__item {
  position: relative;
  background: #fff;
  padding: 52px 48px;
  display: flex;
  gap: 28px;
  align-items: flex-start;
  border-top: 1px solid #f0e9db; /* 各行の上の横線（全幅） */
}
/* 左カラムの右側に、文章の高さぶんの縦線（上下の横線とは離す＝全体を囲わない） */
.miryo-reason__item:nth-child(odd)::after {
  content: "";
  position: absolute;
  top: 52px;
  bottom: 52px;
  right: 0;
  width: 1px;
  background: #f0e9db;
}
.miryo-reason__no { font-family: "EB Garamond", serif; font-size: 46px; line-height: 1; color: #ead9b0; flex-shrink: 0; }
.miryo-reason__ttl { font-family: "Zen Old Mincho", serif; font-size: 2rem; font-weight: 700; letter-spacing: .03em; color: #241b10; margin: 6px 0 14px; }
.miryo-reason__txt { font-size: 1.45rem; line-height: 2; color: #6b5d49; margin: 0; }
@media (max-width: 639px) {
  .miryo-reason { grid-template-columns: 1fr; }
  .miryo-reason__item { padding: 36px 26px; gap: 20px; }
  .miryo-reason__item:nth-child(odd)::after { display: none; } /* 1列時は中央縦線なし */
}

/* ===== TOP 事業内容（ダークカード） ===== */
.miryo-svc {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.miryo-svc__card {
  text-decoration: none;
  display: block;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  border: none;
  box-shadow: 0 14px 34px -24px rgba(126,74,36,0.35);
}
.miryo-svc__card:hover { opacity: 1; }
.miryo-svc__thumb {
  position: relative;
  height: 190px;
  overflow: hidden;
  background: linear-gradient(150deg, #6e4524, #241708);
}
.miryo-svc__thumb img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .6s cubic-bezier(.16,.7,.3,1);
}
.miryo-svc__card:hover .miryo-svc__thumb img { transform: scale(1.05); }
.miryo-svc__no {
  position: absolute;
  top: 16px;
  left: 18px;
  font-family: "EB Garamond", serif;
  font-size: 30px;
  color: rgba(255,255,255,0.22);
  z-index: 2;
}
.miryo-svc__body { padding: 26px 24px 30px; }
.miryo-svc__ttl { font-size: 1.8rem; font-weight: 700; letter-spacing: .03em; color: #241b10; margin: 0 0 10px; line-height: 1.5; }
.miryo-svc__txt { font-size: 1.35rem; line-height: 1.7; color: #5a4d3c; margin: 0 0 18px; }
.miryo-svc__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: #ab6837;
}
@media (max-width: 896px) { .miryo-svc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .miryo-svc { grid-template-columns: 1fr; } }

/* ===== お問い合わせ CTA帯 ===== */
.miryo-cta {
  position: relative;
  background: linear-gradient(120deg, #ab6837, #7e4a24);
  padding: 96px 0;
  overflow: hidden;
}
.miryo-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 85% 20%, rgba(255,255,255,0.18), transparent 45%);
}
.miryo-cta__inner {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 48px;
}
.miryo-cta__en {
  font-family: "Cormorant", serif;
  font-size: 42px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 12px;
}
.miryo-cta__title { font-size: 2.4rem; font-weight: 700; letter-spacing: .05em; color: #fff; margin: 0 0 12px; }
.miryo-cta__title--lg { font-size: 3.2rem; letter-spacing: .04em; }
.miryo-cta__text { font-size: 1.5rem; line-height: 1.9; color: rgba(255,255,255,0.92); margin: 0; }
@media (max-width: 896px) {
  .miryo-cta { padding: 64px 0; }
  .miryo-cta__inner { flex-direction: column; align-items: flex-start; gap: 28px; }
}

/* ===== 事業内容ページ：イントロ／サービス行 ===== */
.miryo-lead { max-width: 860px; margin: 0 auto; text-align: center; }
.miryo-lead__ttl { font-size: 3rem; font-weight: 700; line-height: 1.6; letter-spacing: .04em; margin: 0 0 22px; }
.miryo-lead__txt { font-size: 1.55rem; line-height: 2.1; color: #5a4d3c; margin: 0; }
@media (max-width: 639px) { .miryo-lead__ttl { font-size: 2.2rem; } }

.miryo-rows { display: flex; flex-direction: column; gap: 96px; }
.miryo-service-row {
  display: grid;
  grid-template-columns: 480px 1fr;
  gap: 64px;
  align-items: center;
  scroll-margin-top: 110px;
}
.miryo-service-row__img {
  position: relative;
  height: 340px;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 26px 50px -28px rgba(42,28,14,0.45);
}
.miryo-service-row__img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.miryo-service-row__no {
  position: absolute;
  top: 20px;
  left: 22px;
  font-family: "EB Garamond", serif;
  font-size: 44px;
  color: rgba(255,255,255,0.2);
  z-index: 1;
}
.miryo-service-row__ttl { font-size: 2.7rem; font-weight: 700; letter-spacing: .03em; line-height: 1.5; margin: 0 0 18px; }
.miryo-service-row__lead { font-size: 1.6rem; line-height: 1.9; color: #7e4a24; font-weight: 500; margin: 0 0 16px; }
.miryo-service-row__txt { font-size: 1.5rem; line-height: 2.1; color: #5a4d3c; margin: 0; }
@media (max-width: 896px) {
  .miryo-service-row { grid-template-columns: 1fr; gap: 32px; }
  .miryo-service-row__img { height: 260px; }
}

/* ===== 対応エリア ===== */
.miryo-area { display: grid; grid-template-columns: 1fr 0.58fr; align-items: center; }
.miryo-area__map { position: relative; width: 100%; height: 430px; border-radius: 4px; overflow: hidden; box-shadow: 0 26px 52px -30px rgba(42,28,14,0.4); }
.miryo-area__map img { display: block; width: 100%; height: 100%; object-fit: cover; }
.miryo-area__card {
  position: relative;
  z-index: 2;
  margin-left: -100px;
  background: #2a1c0e;
  border-radius: 4px;
  padding: 48px 46px;
  box-shadow: 0 30px 60px -24px rgba(42,28,14,0.6);
}
.miryo-area__en { font-family: "Cormorant", serif; font-size: 15px; letter-spacing: .18em; color: #ffe670; margin: 0 0 14px; text-transform: uppercase; }
.miryo-area__ttl { font-size: 38px; font-weight: 700; letter-spacing: .08em; line-height: 1.25; color: #fff; margin: 0 0 20px; }
.miryo-area__ttl span { color: #ffe670; }
.miryo-area__txt { font-size: 1.45rem; line-height: 1.95; color: #dcc9a8; margin: 0; }
@media (max-width: 896px) {
  .miryo-area { grid-template-columns: 1fr; }
  .miryo-area__card { margin-left: 0; margin-top: -40px; margin-right: 20px; }
}

/* ===== 施工の流れ ===== */
.miryo-flow { position: relative; }
.miryo-flow__line { position: absolute; top: 28px; left: 10%; right: 10%; height: 2px; background: #ead9b0; z-index: 0; }
.miryo-flow__grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; }
.miryo-flow__step { position: relative; text-align: center; padding: 0 14px; }
.miryo-flow__no {
  width: 56px;
  height: 56px;
  margin: 0 auto 22px;
  border-radius: 50%;
  background: #fffbef;
  border: 1px solid #ead9b0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "EB Garamond", serif;
  font-size: 25px;
  color: #7e4a24;
}
.miryo-flow__ttl { font-size: 1.6rem; font-weight: 700; letter-spacing: .03em; margin: 0 0 10px; }
.miryo-flow__txt { font-size: 1.3rem; line-height: 1.8; color: #756651; margin: 0; }
@media (max-width: 896px) {
  .miryo-flow__grid { grid-template-columns: repeat(2, 1fr); gap: 36px 12px; }
  .miryo-flow__line { display: none; }
}
@media (max-width: 639px) { .miryo-flow__grid { grid-template-columns: 1fr; gap: 28px; } }

/* ===== こだわり ===== */
.miryo-commit-lead {
  display: grid;
  grid-template-columns: 1.05fr 0.9fr;
  gap: 76px;
  align-items: center;
}
.miryo-commit-lead__ttl {
  font-family: "YakuHanMP", "Zen Old Mincho", serif;
  font-size: 3.3rem;
  font-weight: 400;
  line-height: 1.75;
  letter-spacing: .04em;
  color: #241b10;
  margin: 0 0 28px;
}
.miryo-commit-lead__txt {
  font-family: "YakuHanJP", "Zen Kaku Gothic New", sans-serif;
  font-size: 1.6rem;
  line-height: 2.35;
  letter-spacing: .02em;
  color: #5a4d3c;
  margin: 0;
}
.miryo-commit-lead__img { position: relative; width: 100%; height: 440px; border-radius: 4px; overflow: hidden; box-shadow: 0 26px 52px -30px rgba(42,28,14,0.4); }
.miryo-commit-lead__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 896px) {
  .miryo-commit-lead { grid-template-columns: 1fr; gap: 36px; }
  .miryo-commit-lead__ttl { font-size: 2.5rem; }
  .miryo-commit-lead__img { height: 300px; }
}

.miryo-commit-imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: start; background: linear-gradient(to bottom, #fffbef 50%, #ffffff 50%); }
.miryo-commit-imgs__img { position: relative; width: 100%; height: 400px; overflow: hidden; }
.miryo-commit-imgs__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.miryo-commit-imgs__img--offset { margin-top: 90px; }
@media (max-width: 639px) { .miryo-commit-imgs__img { height: 240px; } }

.miryo-commit { display: flex; flex-direction: column; }
.miryo-commit__item {
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 40px;
  padding: 46px 0;
  border-top: 1px solid #f0e9db;
  align-items: start;
}
.miryo-commit__no { font-family: "EB Garamond", serif; font-size: 60px; line-height: 1; color: #ead9b0; }
.miryo-commit__ttl { font-family: "Zen Old Mincho", serif; font-size: 2.3rem; font-weight: 400; letter-spacing: .03em; line-height: 1.5; margin: 6px 0 16px; }
.miryo-commit__txt { font-size: 1.55rem; line-height: 2.1; color: #5a4d3c; margin: 0; max-width: 780px; }
@media (max-width: 639px) {
  .miryo-commit__item { grid-template-columns: 1fr; gap: 8px; padding: 34px 0; }
  .miryo-commit__no { font-size: 42px; }
  .miryo-commit__ttl { font-size: 1.9rem; }
}

/* ===== お客様の声 ===== */
.miryo-voice { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.miryo-voice__card {
  background: #fff;
  border: none;
  border-radius: 4px;
  padding: 38px 32px;
  box-shadow: 0 14px 34px -24px rgba(126,74,36,0.35);
}
.miryo-voice__quote { font-family: "Cormorant", serif; font-size: 54px; line-height: .4; color: #ab6837; display: block; height: 34px; }
.miryo-voice__ttl { font-size: 1.6rem; font-weight: 700; line-height: 1.7; color: #241b10; margin: 0 0 18px; }
.miryo-voice__txt { font-size: 1.4rem; line-height: 2; color: #5a4d3c; margin: 0 0 22px; }
.miryo-voice__who { font-size: 1.2rem; letter-spacing: .08em; color: #756651; margin: 0; }
@media (max-width: 896px) { .miryo-voice { grid-template-columns: 1fr; } }

/* ===== 会社概要：代表挨拶 ===== */
.miryo-message { display: grid; grid-template-columns: 440px 1fr; gap: 72px; align-items: center; }
.miryo-message__img { position: relative; height: 480px; border-radius: 3px; overflow: hidden; background: linear-gradient(150deg, #6e4524, #2a1c0e); box-shadow: 0 30px 60px -30px rgba(42,28,14,0.5); }
.miryo-message__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.miryo-message__ttl { font-family: "Zen Old Mincho", serif; font-size: 3rem; font-weight: 400; line-height: 1.6; letter-spacing: .04em; margin: 0 0 28px; }
.miryo-message__p { font-size: 1.55rem; line-height: 2.2; color: #5a4d3c; margin: 0 0 18px; }
.miryo-message__sign { font-size: 1.3rem; letter-spacing: .1em; color: #756651; margin: 12px 0 0; }
.miryo-message__sign b { font-size: 1.7rem; font-weight: 700; color: #241b10; letter-spacing: .04em; }
@media (max-width: 896px) {
  .miryo-message { grid-template-columns: 1fr; gap: 36px; }
  .miryo-message__img { height: 360px; }
  .miryo-message__ttl { font-size: 2.4rem; }
}

/* 会社概要セクション見出し（中央英日） */
.miryo-cap { text-align: center; margin-bottom: 54px; }
.miryo-cap__en { font-family: "Cormorant", serif; font-size: 36px; font-weight: 600; line-height: 1; letter-spacing: .04em; color: #ab6837; margin: 0; text-transform: uppercase; }
.miryo-cap__ja { font-family: "Zen Old Mincho", serif; font-size: 2.4rem; font-weight: 400; letter-spacing: .05em; margin: 0; }
.miryo-cap--left { text-align: left; margin-bottom: 34px; }
.miryo-req__btn { text-align: left; }

/* ===== 会社概要テーブル ===== */
.miryo-profile {
  background: #fff;
  border: 1px solid #e8dcc6;
  border-radius: 3px;
  overflow: hidden;
  margin: 0;
}
.miryo-profile__row { display: grid; grid-template-columns: 220px 1fr; border-bottom: 1px solid #f0e9db; }
.miryo-profile__row:last-child { border-bottom: none; }
.miryo-profile__k { background: #fffdf6; padding: 24px 28px; font-size: 1.4rem; font-weight: 700; letter-spacing: .04em; color: #7e4a24; margin: 0; }
.miryo-profile__v { margin: 0; padding: 24px 28px; font-size: 1.5rem; line-height: 1.8; color: #2e2519; }
@media (max-width: 639px) {
  .miryo-profile__row { grid-template-columns: 1fr; }
  .miryo-profile__k { padding-bottom: 6px; }
  .miryo-profile__v { padding-top: 6px; }
}

/* ===== 保有資格グリッド ===== */
.miryo-quals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: #f0e9db;
  border: 1px solid #f0e9db;
  margin: 0;
}
.miryo-quals__item { background: #fff; padding: 20px 24px; display: flex; align-items: center; gap: 14px; }
.miryo-quals__dot { width: 7px; height: 7px; border-radius: 50%; background: #ab6837; flex-shrink: 0; }
.miryo-quals__txt { font-size: 1.4rem; color: #2e2519; line-height: 1.5; }
@media (max-width: 896px) { .miryo-quals { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px) { .miryo-quals { grid-template-columns: 1fr; } }

/* ===== 母体事業バナー ===== */
.miryo-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  background: #fff;
  border: 1px solid #e8dcc6;
  border-radius: 3px;
  padding: 44px 52px;
  text-decoration: none;
  transition: border-color .3s ease;
}
.miryo-banner:hover { border-color: #ab6837; opacity: 1; }
.miryo-banner__en { font-family: "Cormorant", serif; font-size: 13px; letter-spacing: .16em; color: #ab6837; margin: 0 0 12px; text-transform: uppercase; }
.miryo-banner__ttl { font-size: 2.3rem; font-weight: 700; letter-spacing: .04em; color: #241b10; margin: 0 0 12px; }
.miryo-banner__txt { font-size: 1.45rem; line-height: 1.9; color: #5a4d3c; margin: 0; max-width: 620px; }
.miryo-banner__link {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: .05em;
  color: #7e4a24;
  border: 1px solid #ab6837;
  border-radius: 2px;
  padding: 14px 26px;
}
@media (max-width: 896px) {
  .miryo-banner { flex-direction: column; align-items: flex-start; gap: 28px; padding: 32px 28px; }
}

/* ===== 採用：求める人材像 ===== */
.miryo-persona { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.miryo-persona__card {
  background: #fff;
  border: 1px solid #e8dcc6;
  border-radius: 3px;
  padding: 44px 36px;
  text-align: center;
}
.miryo-persona__no { font-family: "EB Garamond", serif; font-size: 42px; line-height: 1; color: #ab6837; display: block; margin-bottom: 22px; }
.miryo-persona__ttl { font-size: 1.9rem; font-weight: 700; letter-spacing: .03em; margin: 0 0 14px; }
.miryo-persona__txt { font-size: 1.4rem; line-height: 2; color: #6b5d49; margin: 0; }
@media (max-width: 896px) { .miryo-persona { grid-template-columns: 1fr; } }

.miryo-note {
  margin-top: 36px;
  background: #fffbef;
  border: 1px dashed #d9c7a3;
  border-radius: 3px;
  padding: 28px 32px;
  text-align: center;
}
.miryo-note__txt { font-size: 1.45rem; line-height: 1.9; color: #5a4d3c; margin: 0; }

/* ===== お問い合わせ ===== */
.miryo-contact-lead { max-width: 780px; margin: 0 auto; text-align: center; }
.miryo-contact-lead__ttl { font-family: "Zen Old Mincho", serif; font-size: 3rem; font-weight: 400; line-height: 1.6; letter-spacing: .04em; margin: 0 0 20px; }
.miryo-contact-lead__txt { font-size: 1.55rem; line-height: 2.1; color: #5a4d3c; margin: 0; }
@media (max-width: 639px) { .miryo-contact-lead__ttl { font-size: 2.2rem; } }

.miryo-tel {
  max-width: 780px;
  margin: 0 auto;
  background: #fffbef;
  border: 1px solid #e8dcc6;
  border-radius: 3px;
  padding: 34px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.miryo-tel__en { font-family: "Cormorant", serif; font-size: 13px; letter-spacing: .16em; color: #ab6837; margin: 0 0 6px; text-transform: uppercase; }
.miryo-tel__label { font-size: 1.4rem; color: #756651; margin: 0; }
.miryo-tel__num { font-family: "EB Garamond", serif; font-size: 34px; font-weight: 600; letter-spacing: .04em; color: #241b10; margin: 0; line-height: 1.1; text-align: right; }
.miryo-tel__num--mail { font-size: 28px; }
.miryo-tel__num a { color: inherit; text-decoration: none; }
.miryo-tel__num a:hover { color: #ab6837; }
.miryo-tel__note { font-size: 1.2rem; color: #998a72; margin: 4px 0 0; text-align: right; }
@media (max-width: 639px) {
  .miryo-tel { flex-direction: column; align-items: flex-start; gap: 14px; }
  .miryo-tel__num, .miryo-tel__note { text-align: left; }
}

.miryo-tel-sec { padding: 24px 0 60px; }
.miryo-form-sec { padding: 20px 0 130px; }
@media (max-width: 639px) { .miryo-form-sec { padding: 20px 0 80px; } }
.miryo-form { max-width: 780px; margin: 0 auto; display: flex; flex-direction: column; gap: 30px; }
.miryo-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.miryo-form__field { display: flex; flex-direction: column; gap: 10px; }
.miryo-form__label { font-size: 1.3rem; font-weight: 700; letter-spacing: .04em; color: #2b2417; }
.miryo-form__req { color: #ab6837; }
.miryo-form__input,
.miryo-form__textarea {
  font-family: inherit;
  font-size: 1.5rem;
  color: #241b10;
  padding: 15px 16px;
  border: 1px solid #e2d6c2;
  border-radius: 2px;
  background: #fffdf6;
  width: 100%;
}
.miryo-form__textarea { line-height: 1.8; resize: vertical; }
.miryo-form__input:focus,
.miryo-form__textarea:focus { outline: none; border-color: #ab6837; background: #fff; }
.miryo-form__input::placeholder,
.miryo-form__textarea::placeholder { color: #c5b393; }
.miryo-form__notice { font-size: 1.3rem; line-height: 1.8; color: #998a72; margin: 0; text-align: center; }
.miryo-form__submit {
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #ffe670;
  color: #241b10;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .06em;
  padding: 20px 56px;
  border-radius: 2px;
  transition: background .3s ease;
}
.miryo-form__submit:hover { background: #f4d246; }
@media (max-width: 639px) { .miryo-form__row { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   CMSフォーム（rs-sys）を静的フォームデザインへ寄せる上書き
   構造: .form-contents > form > dl > dt(span.required/optional) + dd(input.textarea/.radio/.checkbox) + button.submit-btn
   CMSの mail-form.css は body へ後から注入されるため、.miryo-form-sec を前置して特異度で勝つ
   -------------------------------------------------------------------------- */
.miryo-form-sec .form-contents { max-width: 780px; margin: 0 auto; padding: 0; }
.miryo-form-sec .form-contents form dl { display: flex; flex-direction: column; }

/* dt = ラベル（静的 .miryo-form__label 相当）／dd = 入力エリア（横並び解除・縦積み） */
.miryo-form-sec .form-contents form dl dt:not(.pattern-exclusion) {
  width: 100%;
  margin-top: 26px;
  padding: 0 0 10px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: #2b2417;
}
.miryo-form-sec .form-contents form dl dt:not(.pattern-exclusion) span { padding: 0; }
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) {
  width: 100%;
  padding: 0 0 30px;
  margin: 0;
}

/* CMS標準の必須/任意バッジ（赤い必須ボックス等）を抑制し、静的と同じ「アクセント色の＊」に統一 */
.miryo-form-sec .form-pattern-1 dl dt:not(.pattern-exclusion) span.required::before,
.miryo-form-sec .form-pattern-1 dl dt:not(.pattern-exclusion) span.optional::before {
  content: none;
  padding: 0;
  margin: 0;
  background: none;
}
.miryo-form-sec .form-contents .required::after { content: "＊"; color: #ab6837; margin-left: 5px; font-weight: 700; }

/* テキスト入力・テキストエリア（静的 .miryo-form__input 相当） */
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) input.textarea,
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) .textarea,
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) textarea {
  font-family: inherit;
  font-size: 1.5rem;
  color: #241b10;
  padding: 15px 16px;
  border: 1px solid #e2d6c2;
  border-radius: 2px;
  background: #fffdf6;
  width: 100%;
}
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) textarea { line-height: 1.8; resize: vertical; }
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) input.textarea:focus,
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) .textarea:focus,
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) textarea:focus { outline: none; border-color: #ab6837; background: #fff; }
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) input.textarea::placeholder,
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) .textarea::placeholder,
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) textarea::placeholder { color: #c5b393; }

/* ラジオ／チェックボックス（横並び・幅リセット） */
.miryo-form-sec .form-contents form dl dd:not(.pattern-exclusion) label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 22px 10px 0;
  font-size: 1.4rem;
  color: #3d3320;
  cursor: pointer;
}
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) input.radio,
.miryo-form-sec .form-contents dd:not(.pattern-exclusion) input.checkbox {
  width: auto;
  margin: 0;
  accent-color: #ab6837;
}

/* 送信ボタン（静的 .miryo-form__submit 相当） */
.miryo-form-sec .form-contents .submit-btn,
.miryo-form-sec .form-contents :not(.pattern-exclusion) button {
  display: block;
  width: auto;
  min-width: 280px;
  margin: 10px auto 0;
  background: #ffe670;
  color: #241b10;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: .06em;
  padding: 20px 56px;
  border-radius: 2px;
  transition: background .3s ease;
}
.miryo-form-sec .form-contents .submit-btn:hover { background: #f4d246; }

/* サンクス／エラーメッセージ */
.miryo-form-sec .form-contents .form-thanks-msg { text-align: center; }
.miryo-form-sec .form-contents .form-thanks-msg p { font-size: 1.5rem; line-height: 1.9; color: #5a4d3c; }
.miryo-form-sec .form-contents .form-thanks-msg .back-home-btn a {
  display: inline-block; margin-top: 20px; background: #ffe670; color: #241b10;
  padding: 16px 40px; border-radius: 2px; font-weight: 700; letter-spacing: .06em; text-decoration: none;
}
.miryo-form-sec .form-contents .form-err-msg { border: 1px solid #d9a24a; background: #fff8ec; border-radius: 2px; color: #a15a12; }
.miryo-form-sec .form-contents .form-err-msg ul { margin: 0; padding-left: 1.4em; font-size: 1.4rem; line-height: 1.8; }

.miryo-thanks {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
  padding: 80px 32px;
  background: #fffbef;
  border: 1px solid #ead9b0;
  border-radius: 3px;
}
.miryo-thanks__en { font-family: "Cormorant", serif; font-size: 18px; letter-spacing: .16em; color: #ab6837; display: block; margin-bottom: 16px; text-transform: uppercase; }
.miryo-thanks__ttl { font-size: 2.4rem; font-weight: 700; letter-spacing: .04em; margin: 0 0 14px; }
.miryo-thanks__txt { font-size: 1.5rem; line-height: 2; color: #5a4d3c; margin: 0; }

/* ===== フッター（濃緑） ===== */
.miryo-footer { background: #2a1c0e; color: #e3d6bc; }
.miryo-footer .miryo-container { padding-top: 72px; padding-bottom: 0; }
.miryo-footer__top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 48px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.miryo-footer__brand { max-width: 420px; }
.miryo-footer__logo { display: flex; align-items: center; gap: 13px; margin-bottom: 22px; }
.miryo-footer__logo img { display: block; height: 48px; width: auto; filter: brightness(0) invert(1); }
.miryo-footer__logo .miryo-logo__icon { width: 40px; height: 40px; font-size: 23px; }
.miryo-footer__name { font-size: 2rem; font-weight: 700; color: #fff; letter-spacing: .06em; line-height: 1.15; }
.miryo-footer__lead { font-size: 1.4rem; line-height: 2; color: #bba98c; margin: 0; }
.miryo-footer__cols { display: flex; gap: 72px; }
.miryo-footer__col-title { font-family: "Cormorant", serif; font-size: 13px; letter-spacing: .16em; color: #ab6837; text-transform: uppercase; margin: 0 0 18px; }
.miryo-footer__dl { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.miryo-footer__dl dt { font-size: 1.1rem; letter-spacing: .1em; color: #93826a; margin-bottom: 3px; }
.miryo-footer__dl dd { margin: 0; font-size: 1.4rem; color: #efe6d6; line-height: 1.7; }
.miryo-footer__tel { font-size: 1.8rem; color: #fff; font-family: "EB Garamond", serif; letter-spacing: .04em; }
.miryo-footer__note { font-size: 1.1rem; color: #93826a; font-family: "YakuHanJP", "Zen Kaku Gothic New", sans-serif; }
.miryo-footer__menu { display: flex; flex-direction: column; gap: 12px; }
.miryo-footer__menu a { color: #dcc9a8; text-decoration: none; font-size: 1.4rem; transition: color .3s ease; }
.miryo-footer__menu a:hover { color: #fff; opacity: 1; }
.miryo-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding: 26px 0 34px; }
.miryo-footer__sns { display: flex; gap: 14px; align-items: center; }
.miryo-footer__sns-label { font-size: 1.2rem; color: #93826a; letter-spacing: .04em; }
.miryo-footer__chip { display: inline-flex; align-items: center; gap: 6px; font-size: 1.2rem; color: #bba98c; border: 1px solid rgba(255,255,255,0.14); border-radius: 999px; padding: 6px 14px; }
.miryo-footer__copy { margin: 0; font-family: "Cormorant", serif; font-size: 12px; letter-spacing: .1em; color: #93826a; }
@media (max-width: 896px) {
  .miryo-footer__top { flex-direction: column; gap: 36px; }
  .miryo-footer__cols { gap: 48px; }
  .miryo-footer__bottom { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 639px) {
  .miryo-footer__cols { flex-direction: column; gap: 32px; }
  .miryo-footer__sns { flex-wrap: wrap; }
}

/* ===== 下層ページ用：セクション余白・コンテナ幅・見出し補助 ===== */
.miryo-sec-pad-a { padding: 100px 0 40px; }   /* イントロ */
.miryo-sec-pad-b { padding: 60px 0 40px; }    /* サービス行 */
.miryo-sec-pad-c { padding: 90px 0; }         /* 対応エリア */
.miryo-sec-pad-d { padding: 120px 0; }        /* 流れ・挨拶・資格 */
.miryo-sec-pad-e { padding: 110px 0; }        /* こだわりリード・概要 */
.miryo-sec-pad-f { padding: 74px 0 90px; }    /* こだわり本文 */
.miryo-sec-pad-g { padding: 100px 0 40px; }   /* お問い合わせリード */
.miryo-area-sec { margin-top: 60px; }
@media (max-width: 896px) {
  .miryo-sec-pad-a { padding: 64px 0 24px; }
  .miryo-sec-pad-b { padding: 40px 0 24px; }
  .miryo-sec-pad-c { padding: 56px 0; }
  .miryo-sec-pad-d { padding: 72px 0; }
  .miryo-sec-pad-e { padding: 64px 0; }
  .miryo-sec-pad-f { padding: 64px 0 24px; }
  .miryo-sec-pad-g { padding: 64px 0 24px; }
}

.miryo-container--narrow  { max-width: 920px; }
.miryo-container--xnarrow { max-width: 950px; }

/* 左寄せ EN + 短線のアイブロウ */
.miryo-eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 0; }
.miryo-eyebrow__en { font-family: "Cormorant", serif; font-size: 36px; font-weight: 600; line-height: 1; letter-spacing: .04em; text-transform: uppercase; color: #ab6837; }
.miryo-eyebrow__line { width: 30px; height: 1px; background: #bba98c; }

/* 左寄せ見出しブロック（EN+JA+説明） */
.miryo-lhead { margin-bottom: 54px; }
.miryo-lhead--lg { margin-bottom: 72px; }
.miryo-lhead__ja { font-family: "Zen Old Mincho", serif; font-size: 2.4rem; font-weight: 400; letter-spacing: .05em; margin: 0 0 14px; }
.miryo-lhead__desc { font-size: 1.5rem; line-height: 1.9; color: #5a4d3c; margin: 0; }

/* 中央見出しブロック（Flow 等） */
.miryo-chead { text-align: center; margin-bottom: 64px; }
.miryo-form-sec .miryo-chead { margin-bottom: 0; }
.miryo-chead__en { font-family: "Cormorant", serif; font-size: 36px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #ab6837; margin: 0 0 16px; }
.miryo-chead__ja { font-size: 2.4rem; font-weight: 700; letter-spacing: .05em; margin: 0 0 16px; }
.miryo-chead__txt { font-size: 1.5rem; line-height: 1.9; color: #5a4d3c; margin: 0 auto; max-width: 680px; }
.miryo-cap--dark .miryo-cap__en { color: #ffe670; }
.miryo-cap--dark .miryo-cap__ja { color: #fff; }

.miryo-strong { color: #7e4a24; font-weight: 700; }

/* ==========================================================================
 * アニメーション強化（スクロール演出 / ホバー微動作 / メインビュー）
 * クリーンなトーンを保つため、動きは控えめ・なめらかに統一
 * ========================================================================== */

/* --- スクロール演出：方向バリエーション --- */
[data-fade="left"]  { transform: translateX(-44px); }
[data-fade="right"] { transform: translateX(44px); }
[data-fade="scale"] { transform: scale(.94); }
[data-fade].is-visible { opacity: 1; transform: none; }

/* --- 矢印の右スライド（ホバー） --- */
.miryo-arrow,
.miryo-headbtn__arrow,
.miryo-svc__more .miryo-arrow,
.miryo-banner__link .miryo-arrow { transition: transform .3s cubic-bezier(.16,.7,.3,1); }
.miryo-btn-primary:hover .miryo-arrow,
.miryo-btn-white:hover .miryo-arrow,
.miryo-btn-slide:hover .miryo-arrow,
.miryo-headbtn:hover .miryo-headbtn__arrow,
.miryo-banner:hover .miryo-banner__link .miryo-arrow,
.miryo-svc__card:hover .miryo-svc__more .miryo-arrow,
.miryo-form__submit:hover .miryo-arrow { transform: translateX(5px); }

/* --- カードの浮き上がり（ホバー微動作） --- */
.miryo-svc__card {
  transition: border-color .3s ease, transform .45s cubic-bezier(.16,.7,.3,1), box-shadow .45s ease;
}
.miryo-svc__card:hover {
  transform: translateY(-5px);
  box-shadow: 0 26px 50px -24px rgba(126,74,36,.45);
}
.miryo-svc__more { transition: color .3s ease; }
.miryo-svc__card:hover .miryo-svc__more { color: #7e4a24; }

.miryo-persona__card {
  transition: transform .45s cubic-bezier(.16,.7,.3,1), box-shadow .45s ease, border-color .3s ease;
}
.miryo-persona__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 42px -28px rgba(42,28,14,.45);
  border-color: #ab6837;
}
.miryo-persona__no { transition: transform .45s cubic-bezier(.16,.7,.3,1); }
.miryo-persona__card:hover .miryo-persona__no { transform: translateY(-3px); }

.miryo-voice__card { transition: opacity .9s cubic-bezier(.16,.7,.3,1), transform .6s cubic-bezier(.16,.7,.3,1), box-shadow .45s ease; }
.miryo-voice__card:hover { transform: translateY(-5px); box-shadow: 0 26px 50px -24px rgba(126,74,36,.45); }
/* お客様の声：時間差フェードインアップを少し強めに */
.miryo-voice__card[data-fade] { transform: translateY(44px); }
.miryo-voice__card[data-fade].is-visible { transform: none; }

.miryo-btn-white,
.miryo-headbtn { transition: background .3s ease, color .3s ease, transform .3s ease, box-shadow .3s ease; }
.miryo-btn-white:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -16px rgba(42,28,14,.5); }

/* 画像の微ズーム（行は内側のimg、2カラムは枠そのもの） */
.miryo-service-row__img img { transition: transform .6s cubic-bezier(.16,.7,.3,1); }
.miryo-service-row:hover .miryo-service-row__img img { transform: scale(1.05); }
.miryo-split__img { transition: transform .6s cubic-bezier(.16,.7,.3,1), box-shadow .6s ease; }
.miryo-split:hover .miryo-split__img { transform: scale(1.015); }
.miryo-split--req:hover .miryo-split__img--req { transform: none; }

/* --- メインビューの動き --- */
@keyframes miryoGlowDrift {
  from { transform: scale(1) translate3d(0, 0, 0); }
  to   { transform: scale(1.1) translate3d(-2%, 1.5%, 0); }
}
@keyframes miryoFloat {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-14px); }
}

/* スクロールインジケーターを流れる光 */
.miryo-mv__scroll-line { position: relative; overflow: hidden; }
.miryo-mv__scroll-line::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 45%;
  background: linear-gradient(to bottom, transparent, #ffe670, transparent);
  animation: miryoScrollFlow 1.9s ease-in-out infinite;
}
@keyframes miryoScrollFlow {
  0%   { transform: translateY(-110%); opacity: 0; }
  35%  { opacity: 1; }
  100% { transform: translateY(240%); opacity: 0; }
}

/* 下層ヒーローの透かし英字もゆっくり浮遊 */
.miryo-hero__watermark { animation: miryoFloat 11s ease-in-out infinite; }

/* アクセシビリティ：動きを減らす設定を尊重 */
@media (prefers-reduced-motion: reduce) {
  [data-fade] { opacity: 1; transform: none; transition: none; }
  .miryo-hero__watermark { animation: none; }
  .miryo-mv__scroll-line::after { animation: none; }
}

/* ==========================================================================
 * 本文行間をサイト全体で line-height: 2 に統一
 * （従来は 1.8〜2.35 が混在し、段落ごとに空き量がバラついていたため）
 * 見出し・ラベル・ボタン等のタイト行間はそのまま維持
 * ========================================================================== */
body { line-height: 2; }
.miryo-mv__text,
.miryo-split__p,
.miryo-message__p,
.miryo-commit__txt,
.miryo-commit-lead__txt,
.miryo-lead__txt,
.miryo-service-row__txt,
.miryo-service-row__lead,
.miryo-contact-lead__txt,
.miryo-banner__txt,
.miryo-area__txt,
.miryo-lhead__desc,
.miryo-chead__txt,
.miryo-note__txt,
.miryo-svc__txt,
.miryo-flow__txt,
.miryo-profile__v,
.miryo-form__notice,
.miryo-reason__txt,
.miryo-voice__txt,
.miryo-persona__txt,
.miryo-footer__lead { line-height: 2; }

/* ===== ページトップ（共通page-topの色味調整） ===== */
.page-top__link { background: #7e4a24; }

/* ==========================================================================
 * サイトローダー（初回読み込み時のみ表示） — 濃緑グラデにワードマーク＋流れるバー
 * JSで .is-hidden を付与してフェードアウト。JS不発でも失効アニメで自動的に消える
 * ========================================================================== */
.miryo-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(125deg, #1e1308 0%, #2a1c0e 45%, #5a3a1c 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .95s ease, visibility 0s linear .95s;
  /* 失効フェイルセーフ：万一JSが動かなくても約6.5秒で消す */
  animation: miryoLoaderFailsafe 0s linear 6.5s forwards;
}
.miryo-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .95s ease, visibility 0s linear .95s;
}
.loaded .miryo-loader { display: none; }

.miryo-loader__inner { text-align: center; }
.miryo-loader__logo-img {
  display: block;
  width: clamp(190px, 44vw, 310px);
  height: auto;
  margin: 0 auto 30px;
  /* 濃緑背景に合わせてロゴを白く反転（footerと同手法） */
  filter: brightness(0) invert(1);
  opacity: 0;
  transform: scale(.92);
  animation: miryoLoaderLogo 1.8s cubic-bezier(.22,.61,.36,1) .25s forwards;
}
.miryo-loader__bar {
  display: block;
  width: 188px;
  height: 2px;
  margin: 0 auto;
  background: rgba(255,255,255,.16);
  border-radius: 2px;
  overflow: hidden;
  opacity: 0;
  animation: miryoLoaderRise .6s ease .4s forwards;
}
.miryo-loader__bar-fill {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, #ab6837 40%, #ffe670);
  transform: translateX(-120%);
  animation: miryoLoaderSweep 1.5s cubic-bezier(.45,0,.35,1) infinite;
}
@keyframes miryoLoaderRise {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
@keyframes miryoLoaderLogo {
  from { opacity: 0; transform: scale(.94); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes miryoLoaderSweep {
  0%   { transform: translateX(-120%); }
  100% { transform: translateX(370%); }
}
@keyframes miryoLoaderFailsafe {
  to { opacity: 0; visibility: hidden; pointer-events: none; }
}
@media (prefers-reduced-motion: reduce) {
  .miryo-loader__logo-img,
  .miryo-loader__bar { animation: none; opacity: 1; transform: none; }
  .miryo-loader__bar-fill { animation: none; transform: none; width: 100%; }
}

/* ==========================================================================
 * アニメーション演出・第2弾（サイト全体）
 * 既存トーンに合わせ、控えめ・なめらか・cubic-bezier(.16,.7,.3,1) で統一
 * ========================================================================== */

/* --- ヘッダー：スクロールで引き締まる（高さ・影・透明度） --- */
.miryo-header {
  transition: height .4s cubic-bezier(.16,.7,.3,1),
              box-shadow .4s ease, background .4s ease;
}
.miryo-header .header__inner { transition: height .4s cubic-bezier(.16,.7,.3,1); }
.miryo-header.is-scrolled {
  background: rgba(255,255,255,0.96);
  box-shadow: 0 8px 28px -18px rgba(42,28,14,.45);
}
.miryo-header.is-scrolled .header__inner { height: 68px; }
@media (max-width: 1100px) {
  .miryo-header.is-scrolled .header__inner { height: 56px; }
}

/* --- PCナビ：ホバーで下線がスッと伸びる --- */
.miryo-nav .header__nav-item a { position: relative; }
.miryo-nav .header__nav-item a::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 2px;
  background: #ab6837;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.16,.7,.3,1);
}
.miryo-nav .header__nav-item:not(.header__nav-item--current) a:hover::after { transform: scaleX(1); }

/* --- 下層ヒーロー：読み込み時にやわらかく登場 --- */
.js-ready .miryo-hero__en,
.js-ready .miryo-hero__title,
.js-ready .miryo-hero__crumb {
  opacity: 0;
  transform: translateY(22px);
  animation: miryoHeroRise .95s cubic-bezier(.16,.7,.3,1) forwards;
}
.js-ready .miryo-hero__en    { animation-delay: .08s; }
.js-ready .miryo-hero__title { animation-delay: .22s; }
.js-ready .miryo-hero__crumb { animation-delay: .36s; }
@keyframes miryoHeroRise {
  to { opacity: 1; transform: translateY(0); }
}

/* --- 主要ボタン：ホバーで光のスイープが横切る --- */
.miryo-btn-primary,
.miryo-btn-white { position: relative; overflow: hidden; isolation: isolate; }
.miryo-btn-primary::after,
.miryo-btn-white::after {
  content: "";
  position: absolute;
  top: 0;
  left: -130%;
  width: 60%;
  height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.5), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
  z-index: 1;
}
.miryo-btn-primary:hover::after,
.miryo-btn-white:hover::after { animation: miryoSheen .8s cubic-bezier(.16,.7,.3,1); }
@keyframes miryoSheen {
  from { left: -130%; }
  to   { left: 130%; }
}

/* --- 見出しラベルの横線：表示時に左から伸びる --- */
.miryo-label__line { transform-origin: left center; transition: transform .7s cubic-bezier(.16,.7,.3,1) .15s; }
.miryo-label--center .miryo-label__line { transform-origin: center; }
[data-fade]:not(.is-visible) .miryo-label__line,
.miryo-label[data-fade]:not(.is-visible) .miryo-label__line { transform: scaleX(0); }

/* --- 2カラム画像：表示時にズームしながらなじむ --- */
.miryo-split__img img,
.miryo-service-row__img img { will-change: transform; }
[data-fade].miryo-split__img:not(.is-visible) img { transform: scale(1.08); }
.miryo-split__img img { transition: transform 1.1s cubic-bezier(.16,.7,.3,1); }

/* --- お知らせ・理由：ホバーでわずかに前へ --- */
.miryo-newsbar__item { transition: transform .35s cubic-bezier(.16,.7,.3,1), color .3s ease; }
.miryo-newsbar__item:hover { transform: translateX(6px); }
.miryo-reason__item { transition: transform .4s cubic-bezier(.16,.7,.3,1); }
.miryo-reason__item:hover { transform: translateY(-4px); }
.miryo-reason__no { transition: transform .45s cubic-bezier(.16,.7,.3,1), color .3s ease; }
.miryo-reason__item:hover .miryo-reason__no { transform: scale(1.08); }

/* --- フッターリンク：ホバーで下線がスッと伸びる --- */
.miryo-footer__menu a { position: relative; }
.miryo-footer__menu a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s cubic-bezier(.16,.7,.3,1);
}
.miryo-footer__menu a:hover::after { transform: scaleX(1); }

/* ==========================================================================
 * バー横切りリビール（.animation-txt） — JSで .animation-content/.animation-bar に内包
 * バーがブランドグリーンで左→右に横切り、通過後に画像がフェードイン
 * ========================================================================== */
@keyframes miryoBarSweep {
  0%   { left: 0;       width: 0; }
  50%  { left: 0;       width: 100%; }
  51%  { left: 0;       width: 100%; }
  100% { left: 100.5%;  width: 0; }
}
@keyframes miryoBarTxt {
  0%, 50% { opacity: 0; }
  100%    { opacity: 1; }
}

.animation-content { display: block; position: relative; }
.animation-bar { display: block; position: relative; transform: translate3d(0,0,0); }
.animation-bar::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 0;
  height: 100%;
  z-index: 1;
  background: linear-gradient(120deg, #fff3b0 0%, #ffe670 50%, #f3c63c 100%);
}
.animation-txt { opacity: 0; transform: translate3d(0,0,0); }
.animation-content.move .animation-bar::before { animation: miryoBarSweep 1.4s cubic-bezier(.7,0,.3,1) 0s 1 normal forwards; }
.animation-content.move .animation-txt { animation: miryoBarTxt 0s ease .75s 1 normal forwards; }

/* 画像コンテナ内では入れ子divを枠いっぱいに広げ、隙間に下地（濃緑）を敷く */
.miryo-split__img,
.miryo-service-row__img,
.miryo-message__img,
.miryo-commit-lead__img,
.miryo-commit-imgs__img,
.miryo-area__map { background: linear-gradient(150deg, #5a3a1c, #2a1c0e); }
.miryo-split__img .animation-content,
.miryo-split__img .animation-bar,
.miryo-service-row__img .animation-content,
.miryo-service-row__img .animation-bar,
.miryo-message__img .animation-content,
.miryo-message__img .animation-bar,
.miryo-commit-lead__img .animation-content,
.miryo-commit-lead__img .animation-bar,
.miryo-commit-imgs__img .animation-content,
.miryo-commit-imgs__img .animation-bar,
.miryo-area__map .animation-content,
.miryo-area__map .animation-bar,
.miryo-svc__thumb .animation-content,
.miryo-svc__thumb .animation-bar { position: absolute; inset: 0; }

/* --- 下からふわっと（.effect_fade）：data-fade を使わない箇所向けの汎用 --- */
.effect_fade { opacity: 0; transform: translateY(45px); transition: opacity 1.4s ease, transform 1.4s ease; }
.effect_fade.effect_scroll { opacity: 1; transform: none; }

/* --- アクセシビリティ：動きを減らす設定を尊重（第2弾ぶん） --- */
@media (prefers-reduced-motion: reduce) {
  .animation-txt { opacity: 1; }
  .animation-content.move .animation-bar::before,
  .animation-content.move .animation-txt { animation: none; }
  .animation-bar::before { display: none; }
  .effect_fade { opacity: 1; transform: none; transition: none; }
  .js-ready .miryo-hero__en,
  .js-ready .miryo-hero__title,
  .js-ready .miryo-hero__crumb { opacity: 1; transform: none; animation: none; }
  .miryo-btn-primary:hover::after,
  .miryo-btn-white:hover::after { animation: none; }
  .miryo-label .miryo-label__line,
  [data-fade]:not(.is-visible) .miryo-label__line { transform: none; }
  [data-fade].miryo-split__img:not(.is-visible) img { transform: none; }
}
