/* ===== site.css ===== */
/* ===================================================================
   産王重機株式会社 採用サイト — Global Styles
   実装ルール:
   - フォントサイズは最低 1rem(16px) 以上を厳守
   - サイズ/余白は clamp() による流動値（中間幅のズレを完全吸収）
   - ブレークポイントは 2 点のみ:
       1240px … ナビ→ハンバーガー（構造変化）
        640px … グリッド→1カラム（構造変化）
=================================================================== */

:root {
  /* Color (ディレクター指定) */
  --green: #2f6b43;
  --green-dark: #1e4d30;
  --accent: #7fb069;
  --bg: #ffffff;
  --bg-light: #f2f6f1;
  --bg-soft: #e8f0e9;
  --text: #1f2a24;
  --muted: #4a5750;
  --line: #d7e2d8;
  --grad: linear-gradient(135deg, #2f6b43 0%, #1e4d30 100%);

  /* Typography */
  --font-jp: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;
  --font-serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", serif;
  --font-en: "Anton", "Oswald", system-ui, sans-serif;
  --font-mono: "Space Mono", ui-monospace, monospace;

  /* Layout */
  --maxw: 1200px;
  --gutter: clamp(20px, 5vw, 80px);
  --radius: 8px;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}

body {
  font-family: var(--font-jp);
  /* 本文基準 16px 厳守 / 細字の可読性確保のため medium(500) */
  font-size: 1rem;
  font-weight: 500;
  color: var(--text);
  background: var(--bg);
  line-height: 1.9;
  letter-spacing: 0.02em;
  overflow-x: hidden;
}
body.is-loading { overflow: hidden; height: 100vh; }

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
ul { list-style: none; }
::selection { background: var(--green); color: #fff; }

/* キーボードフォーカスの可視化 */
:where(a, button, [tabindex]):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 3px;
}

.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* 日本語の改行制御：文節を割らない / PC・SPで改行位置を出し分け */
.nb { display: inline-block; }
.br-sp { display: none; }
.br-pc { display: inline; }
@media (max-width: 640px) {
  .br-pc { display: none; }
  .br-sp { display: inline; }
}
/* 文節単位での自動改行（対応ブラウザ） */
.hero-sub, .hero-position, .lead, .worry-item, .reason p,
.digest-body p, .contact p, .scene-card p, .statement-foot {
  word-break: auto-phrase;
  line-break: strict;
}

.wrap {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------- 共通パーツ ---------- */
.eyebrow {
  font-family: var(--font-mono);
  font-size: 1rem;                 /* 16px 厳守 */
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--green);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
}
.eyebrow::before {
  content: "";
  width: 32px;
  height: 2px;
  background: var(--green);
  display: inline-block;
}

.section {
  padding-block: clamp(72px, 11vh, 150px);
  position: relative;
}
.section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(36px, 5vh, 70px);
}
.section-head .title {
  font-weight: 700;
  font-size: clamp(2rem, 5vw, 3.5rem);
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: var(--green-dark);
}
.section-head .title .en {
  display: block;
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: 0.3em;
  color: var(--green);
  font-weight: 700;
  margin-bottom: 14px;
}
.section-head .lead {
  max-width: 42ch;
  font-size: clamp(1.0625rem, 1.4vw, 1.25rem);
  color: var(--muted);
}

/* ボタン: タップ対象 44px 以上 */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 15px 32px;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 100px;
  transition: transform 0.4s var(--ease), background 0.4s var(--ease), color 0.4s, box-shadow 0.4s;
}
.btn svg { width: 20px; height: 20px; transition: transform 0.4s var(--ease); }
.btn:hover svg { transform: translateX(5px); }
.btn-primary {
  background: var(--green);
  color: #fff;
  box-shadow: 0 12px 30px rgba(47, 107, 67, 0.28);
}
.btn-primary:hover { background: var(--green-dark); transform: translateY(-3px); }
.btn-ghost {
  background: #fff;
  color: var(--green-dark);
  border: 2px solid var(--green);
}
.btn-ghost:hover { background: var(--green); color: #fff; transform: translateY(-3px); }

/* ===================================================================
   Loader
=================================================================== */
#loader {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--grad); color: #fff;
  display: grid; place-items: center;
}
#loader .loader-inner { text-align: center; width: min(90vw, 560px); padding-inline: 24px; }
.loader-logo {
  display: block;
  width: clamp(154px, 36vw, 336px);
  height: auto;
  margin: 0 auto;
  /* 緑のローダー上では白く反転 */
  filter: brightness(0) invert(1);
}
.loader-progress { width: min(220px, 64%); margin: clamp(26px, 5vh, 44px) auto 0; }
#loader .loader-bar {
  height: 2px; width: 100%;
  background: rgba(255, 255, 255, 0.28);
  position: relative; overflow: hidden;
}
#loader .loader-bar i { position: absolute; inset: 0 100% 0 0; background: #fff; }
#loader .loader-count {
  display: flex; justify-content: space-between;
  margin-top: 14px;
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: 0.16em;
  color: rgba(255, 255, 255, 0.7);
}

/* ===================================================================
   Header
=================================================================== */
.site-header {
  position: fixed; top: 0; left: 0; width: 100%;
  z-index: 800;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px var(--gutter);
  transition: background 0.5s var(--ease), padding 0.5s var(--ease), box-shadow 0.5s;
}
.brand { display: inline-flex; align-items: center; }
.brand-logo {
  height: clamp(20px, 2.3vw, 29px);
  width: auto;
  /* 緑ロゴ → 透過ヘッダー上では白く反転、solid時は緑のまま */
  filter: brightness(0) invert(1);
  transition: filter 0.5s;
}
.site-header.solid .brand-logo { filter: none; }
.site-header.solid {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 var(--line);
  padding-block: 12px;
}
.site-header.solid .nav a { color: var(--text); }
.site-header.solid .nav-cta { border-color: var(--green); color: var(--green); }
/* 白背景ヒーロー用：透過状態でも暗色（ロゴ緑・ナビ黒） */
.site-header.on-light:not(.solid) .brand-logo { filter: none; }
.site-header.on-light:not(.solid) .nav a { color: var(--text); }
.site-header.on-light:not(.solid) .nav-cta { border-color: var(--green); color: var(--green); }
.site-header.on-light:not(.solid) .nav-toggle i { background: var(--text); }

.nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 34px); }
.nav a {
  position: relative;
  font-size: 1rem;
  letter-spacing: 0.04em;
  color: #fff;
  padding-block: 4px;
  font-weight: 500;
}
.nav a:not(.nav-cta)::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 100%; height: 2px; background: currentColor;
  transform: scaleX(0); transform-origin: right;
  transition: transform 0.4s var(--ease);
}
.nav a:not(.nav-cta):hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta {
  border: 2px solid #fff;
  padding: 10px 22px;
  border-radius: 100px;
  font-weight: 700;
  transition: background 0.4s var(--ease), color 0.4s;
}
.nav-cta:hover { background: var(--green); border-color: var(--green); color: #fff; }
/* hover時はどの状態でも白文字（通常ルールの詳細度に勝たせる） */
.site-header.on-light:not(.solid) .nav-cta:hover,
.site-header.solid .nav-cta:hover { color: #fff; }

/* ナビのプルダウン（孫ページ導線） */
.nav-item { position: relative; display: inline-flex; align-items: center; }
.nav-caret {
  display: inline-block; width: 7px; height: 7px; margin-left: 7px;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px); opacity: 0.65;
}
.nav-sub {
  position: absolute; top: 100%; left: 50%;
  transform: translateX(-50%) translateY(10px);
  min-width: 188px; padding: 8px;
  display: flex; flex-direction: column; gap: 2px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 18px 44px rgba(0, 40, 24, 0.14);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity 0.25s var(--ease), transform 0.25s var(--ease);
  z-index: 820;
}
.nav-item.has-sub:hover .nav-sub,
.nav-item.has-sub:focus-within .nav-sub {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(4px);
}
.site-header .nav-sub a { display: block; padding: 11px 16px; font-size: 1rem; font-weight: 500; color: var(--text); border-radius: 6px; white-space: nowrap; }
.site-header .nav-sub a::after { display: none; }
.site-header .nav-sub a:hover { background: var(--bg-light); color: var(--green); }

/* スマホ専用：下部固定の応募導線バー */
.mobile-cta { display: none; }
@media (max-width: 640px) {
  .mobile-cta {
    display: flex; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 700;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    border-top: 1px solid var(--line);
  }
  .mcta-btn {
    flex: 1; min-height: 52px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 100px; font-weight: 700; font-size: 1rem; letter-spacing: 0.02em;
  }
  .mcta-primary { background: var(--green); color: #fff; }
  .mcta-ghost { background: #fff; color: var(--green-dark); border: 2px solid var(--green); }
  /* バー分の余白（最後のコンテンツが隠れないように） */
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px)); }
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 6px; width: 34px; height: 34px;
  align-items: center; justify-content: center;
  z-index: 810;
}
.nav-toggle i {
  width: 28px; height: 2px; background: #fff; display: block;
  transition: transform 0.4s var(--ease), opacity 0.3s;
}
.site-header.solid .nav-toggle i { background: var(--text); }

/* ---- 構造変化 #1 : 1240px でハンバーガーへ ---- */
@media (max-width: 1240px) {
  .nav {
    position: fixed;
    top: 0; left: 0;
    width: 100vw; height: 100dvh;
    flex-direction: column;
    justify-content: center;
    gap: clamp(20px, 4vh, 40px);
    background: var(--grad);
    transform: translateY(-100%);
    transition: transform 0.6s var(--ease);
    padding: var(--gutter);
  }
  .nav.open { transform: translateY(0); }
  .nav a { color: #fff !important; font-size: 1.25rem; }
  .nav-cta { border-color: #fff; }
  .nav-toggle { display: flex; }
  .nav-open .nav-toggle i { background: #fff !important; }
  .nav-open .nav-toggle i:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .nav-open .nav-toggle i:nth-child(2) { opacity: 0; }
  .nav-open .nav-toggle i:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  /* サブメニューはインライン展開（常時表示） */
  .nav-item { flex-direction: column; }
  .nav-caret { display: none; }
  .nav-sub {
    position: static; transform: none; opacity: 1; visibility: visible; pointer-events: auto;
    min-width: 0; padding: 0; margin-top: 12px; gap: 12px;
    background: transparent; border: none; box-shadow: none;
  }
  .site-header .nav-sub a { color: #fff; padding: 0; font-size: 1.0625rem; opacity: 0.82; text-align: center; }
}

@media (max-width: 375px) {
  .nav a { font-size: 1rem; }
  .nav-cta { padding: 8px 16px; font-size: 0.9375rem; }
  .nav { gap: clamp(14px, 3vh, 24px); }
}

/* ===================================================================
   Hero (FV)
=================================================================== */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  isolation: isolate;   /* z-index を hero 内に閉じる */
  color: #fff;
  /* 白背景＋文字裏のみ緑ボックス。層：緑ボックス → 写真 → 文字 */
  background: #fff;
}
.hero-grid {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 100% 25%, 25% 100%;
}
/* Figma配置を固定比率ステージとして再現し、右上にアンカー（全幅で一体スケール） */
.hero-collage {
  position: absolute;
  top: 8.9%; right: 3.7%;
  width: clamp(300px, 56.5vw, 1000px);
  aspect-ratio: 814 / 764;   /* Figmaクラスタの外接比 */
  z-index: 4;   /* 緑ベタ(.hero-inner z3)より前面 = 写真が緑の上に乗る */
  pointer-events: none;
}
.hp {
  position: absolute;
  object-fit: cover;
  box-shadow: 0 24px 60px rgba(0, 22, 13, 0.4);
  will-change: transform;
}
.hp1 { left: 23.1%; top: 0%;    width: 73.7%; aspect-ratio: 4 / 3; }   /* 特大 */
.hp2 { left: 0%;    top: 0%;    width: 22.1%; aspect-ratio: 1 / 1; }   /* 小・左上 */
.hp5 { left: 5.9%;  top: 53.5%; width: 49.1%; aspect-ratio: 4 / 3; }   /* 大・左下 */
.hp3 { left: 56.0%; top: 59.9%; width: 28.3%; aspect-ratio: 230 / 306; } /* 中・右下 */
.hp4 { left: 85.3%; top: 59.9%; width: 14.7%; aspect-ratio: 1 / 1; }   /* 小・右下 */
/* 見出し可読性のための局所スクリム（左下を暗く・右上の写真は鮮明） */
.hero-scrim { display: none; }
.hero-glow {
  position: absolute; z-index: 1;
  width: 80vw; height: 80vw; max-width: 900px; max-height: 900px;
  top: -20%; right: -10%;
  background: radial-gradient(circle, rgba(127, 176, 105, 0.3), transparent 65%);
  pointer-events: none;
  mix-blend-mode: screen;
}
.hero-bgword {
  position: absolute;
  right: -1%; bottom: -8%;
  z-index: 1;
  font-family: var(--font-en);
  font-size: clamp(9rem, 32vw, 30rem);
  line-height: 0.78;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.06);
  pointer-events: none;
  user-select: none;
  will-change: transform;
}
.hero-title .line-mask { display: block; overflow: hidden; }
.hero-title .line { display: block; white-space: nowrap; will-change: transform; }
.hero-inner {
  position: relative;
  width: fit-content;
  max-width: calc(100% - clamp(32px, 8vw, 160px));
  margin: 0 0 clamp(48px, 8vh, 100px) clamp(20px, 5vw, 100px);
  padding: clamp(32px, 4vw, 56px) clamp(40px, 4.6vw, 76px) clamp(36px, 4.2vw, 60px);
}
/* 緑ボックス：文字裏だけ・写真より背面（z2 < 写真 z4 < 文字 z6） */
.hero-panel {
  position: absolute; inset: 0; z-index: 2;
  background: var(--green-dark);
  box-shadow: 0 30px 80px rgba(0, 30, 18, 0.22);
}
.hero-text { position: relative; z-index: 6; }
.hero-eyebrow { color: #fff; margin-bottom: 22px; }
.hero-eyebrow::before { background: #fff; }
.hero-title {
  font-weight: 700;
  /* 折り返さないよう幅に応じて縮小（min は16px以上を確保） */
  font-size: clamp(1.5rem, 7.5vw, 6rem);
  line-height: 1.2;
  letter-spacing: 0.015em;
  text-shadow: 0 2px 10px rgba(0, 18, 10, 0.5), 0 4px 40px rgba(0, 40, 24, 0.25);
}
.hero-title .accent { color: var(--accent); }
/* 「鉄」のみ大きく明朝・グリッドからはみ出してOK */
.hero-title .line2.line-mask { overflow: visible; }
.hero-title .tetsu {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: 1.9em;
  line-height: 0;
  color: var(--accent);
  display: inline-block;
  vertical-align: -0.16em;
  transform: translateY(4px);   /* 「鉄」だけ少し下げる */
  margin-left: -0.18em;   /* 左へはみ出す */
  margin-right: 0.02em;
}
.hero-sub {
  margin-top: 26px;
  max-width: 44ch;
  font-size: clamp(1.0625rem, 1.6vw, 1.3rem);
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.95;
}
.hero-position {
  margin-top: 14px;
  font-size: clamp(1rem, 1.3vw, 1.15rem);
  color: rgba(255, 255, 255, 0.78);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: clamp(32px, 5vh, 52px); }
.hero .btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.hero .btn-ghost:hover { background: #fff; color: var(--green-dark); }
/* お問い合わせ：白地＋緑文字＋緑枠 */
.hero .btn-primary { background: #fff; color: var(--green); border: 2px solid var(--green); box-shadow: none; }
.hero .btn-primary:hover { background: var(--green); color: #fff; border-color: var(--green); }
.scroll-cue {
  position: absolute; right: var(--gutter); bottom: 32px; z-index: 3;
  writing-mode: vertical-rl;
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: 0.25em;
  color: var(--muted);
  display: flex; align-items: center; gap: 14px;
}
.scroll-cue .line { width: 1px; height: 60px; background: rgba(31, 42, 36, 0.28); position: relative; overflow: hidden; }
.scroll-cue .line::after {
  content: ""; position: absolute; inset: 0; background: var(--accent);
  transform: translateY(-100%);
  animation: scrollLine 2s var(--ease) infinite;
}
@keyframes scrollLine { 0% { transform: translateY(-100%); } 60%, 100% { transform: translateY(100%); } }

/* 1240px 以下では縦書きスクロールキューは省略 */
@media (max-width: 1240px) { .scroll-cue { display: none; } }


/* ===================================================================
   Marquee
=================================================================== */
.marquee {
  background: var(--bg-light);
  color: var(--green-dark);
  overflow: hidden;
  padding: 14px 0;
  border-block: 1px solid var(--line);
}
.marquee-track { display: flex; gap: 40px; width: max-content; white-space: nowrap; will-change: transform; }
.marquee-track span {
  font-family: var(--font-en);
  font-size: clamp(1.3rem, 2.6vw, 2rem);
  letter-spacing: 0.06em;
}

/* ===================================================================
   Stats (数字で見る産王重機)
=================================================================== */
.stats { background: var(--bg-light); }
/* 縦書き見出しセクション共通：見出しを固定幅で左に、内容を右に整列 */
.vsec-layout { display: flex; align-items: flex-start; gap: clamp(28px, 4vw, 72px); }
.vsec-layout > .vhead-main { flex: 0 0 auto; }
.vsec-body { flex: 1 1 0; min-width: 0; }
.vsec-lead { margin-bottom: clamp(20px, 3vh, 34px); }
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(20px, 2.4vw, 36px);
}
.stat {
  background: #fff;
  border-radius: var(--radius);
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid var(--line);
  box-shadow: 0 10px 30px rgba(30, 77, 48, 0.05);
}
.stat .num {
  font-family: var(--font-en);
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  line-height: 1;
  color: var(--green-dark);
  display: flex; align-items: baseline; gap: 6px;
}
.stat .num em {
  font-style: normal;
  font-family: var(--font-jp);
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--green);
}
.stat .label {
  margin-top: 14px;
  font-size: 1rem;
  color: var(--muted);
  letter-spacing: 0.04em;
}
.stat .num .pre { margin-right: 0.1em; }
.stat .num .num-sep { font-size: 0.42em; font-weight: 700; color: var(--green); align-self: center; margin: 0 0.12em; }
.stats-link { margin-top: clamp(32px, 4vh, 52px); display: flex; justify-content: flex-start; }

/* ===================================================================
   私たちと働くということ（数字×罫線グリッドで力強く・緑地）
=================================================================== */
.facts {
  position: relative;
  overflow: hidden;
  isolation: isolate;   /* 乗算をこのセクション内に閉じる */
  background: var(--grad);
  color: #fff;
  padding-block: clamp(72px, 11vh, 150px);
}
/* 緑の上に写真を乗算合成（緑を残すため opacity で調整） */
.facts-photo {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image: url("https://cdn.cuezilla-cms.com/sanoh-juki.com/images/1420/facts-plant.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* 完全固定パララックス */
  mix-blend-mode: multiply;
  opacity: 0.55;
}
.facts .wrap { position: relative; z-index: 1; }
.facts-layout {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(28px, 4vw, 72px);
}
.facts-head {
  flex: 0 0 auto;
  display: flex;
  align-items: flex-start;
}
.facts-title {
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);  /* .vtitle と統一 */
  letter-spacing: 0.14em;
  line-height: 1.5;
  color: #fff;
}
.facts-main {
  flex: 0 0 auto; min-width: 0;
  display: flex; flex-direction: column; align-items: center;
}
.facts-img {
  display: block; width: auto; max-width: 100%;
  height: clamp(460px, 68vh, 880px);   /* 下層 NumberBand と統一 */
}
.facts-link { display: flex; justify-content: center; margin-top: clamp(36px, 5vh, 64px); }
.facts-btn { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, 0.7); }
.facts-btn:hover { background: #fff; color: var(--green-dark); }
@media (max-width: 640px) {
  /* 他セクション（.vsec-layout）と同じく左始まりに揃える */
  .facts-layout { flex-direction: column; align-items: stretch; gap: clamp(24px, 4vh, 36px); }
  .facts-head { justify-content: flex-start; }
  .facts-title { writing-mode: horizontal-tb; letter-spacing: 0.06em; line-height: 1.4; }
  .facts-main { width: 100%; }
  .facts-img { width: 70%; height: auto; }   /* スマホは70%に縮小 */
}

/* ===================================================================
   悩み (こんな不安、ありませんか？)
=================================================================== */
.worry { position: relative; overflow: hidden; background: #14201a; padding-block: clamp(44px, 6.5vh, 84px); }
.worry-media {
  position: absolute; inset: 0; z-index: 0;
  background-image: url("https://cdn.cuezilla-cms.com/sanoh-juki.com/images/1420/worry-bg.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* 完全固定パララックス */
}
.worry-media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(8, 16, 12, 0.5) 0%, rgba(8, 16, 12, 0.84) 100%);
}
.worry .wrap { position: relative; z-index: 1; }
.worry .eyebrow { color: var(--accent); }
.worry .eyebrow::before { background: var(--accent); }
.worry-title {
  font-family: var(--font-serif);
  font-size: clamp(1.8rem, 4.5vw, 3rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: #fff;
  margin: 14px 0 clamp(22px, 3.5vh, 36px);
}
.worry-list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(12px, 1.6vw, 18px);
  margin-bottom: clamp(24px, 3.5vh, 40px);
}
.worry-item {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--radius);
  padding: clamp(18px, 2vw, 24px);
  font-size: clamp(1rem, 1.3vw, 1.125rem);
  font-weight: 500;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(2px);
}
.worry-item::before {
  content: "“";
  display: block;
  font-family: var(--font-en);
  font-size: 2em;
  line-height: 0.4;
  color: var(--accent);
  margin-bottom: 6px;
}
.worry-answer {
  text-align: center;
  font-family: var(--font-jp);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #fff;
}
.worry-answer .accent { color: var(--accent); }
@media (max-width: 1240px) { .worry-list { grid-template-columns: repeat(2, 1fr); } }

/* ===================================================================
   選ばれる理由 (reasons)
=================================================================== */
.reasons { background: var(--bg); }
.reasons-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(14px, 1.6vw, 22px);
}
.reason {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: clamp(18px, 3vw, 44px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: clamp(22px, 3vw, 36px) clamp(26px, 3.4vw, 46px);
}
.reason .r-no {
  font-family: var(--font-en);
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  line-height: 0.9;
  color: var(--green);
}
.reason h3 {
  font-size: clamp(1.3rem, 2.4vw, 1.75rem);
  font-weight: 700;
  color: var(--green-dark);
  margin: 0 0 8px;
  line-height: 1.45;
}
.reason p { font-size: 1.0625rem; font-weight: 500; color: var(--muted); }

/* ===================================================================
   分岐バナー (採用を知る / お問い合わせ)
=================================================================== */
.branch { background: var(--bg-light); }
.branch-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(16px, 2vw, 28px);
}
.branch-card {
  position: relative;
  display: flex; flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  min-height: clamp(220px, 28vh, 300px);
  padding: clamp(30px, 4vw, 52px);
  border-radius: var(--radius);
  overflow: hidden;
  color: #fff;
  background: var(--grad);
  transition: transform 0.5s var(--ease);
}
.branch-card.alt { background: #fff; color: var(--text); border: 2px solid var(--line); }
.branch-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.branch-card.has-media::before {
  content: "";
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(8, 18, 13, 0.45) 0%, rgba(8, 18, 13, 0.8) 100%);
}
.branch-card.has-media > :not(.branch-media) { position: relative; z-index: 2; }
.branch-card:hover { transform: translateY(-6px); color: #fff; }
.branch-card.alt:hover { color: var(--text); }
.branch-card.has-media:hover .branch-media { transform: scale(1.05); }
.branch-media { transition: transform 0.6s var(--ease); }
.branch-card .b-en { font-family: var(--font-mono); font-size: 1rem; letter-spacing: 0.2em; opacity: 0.85; }
.branch-card h3 { font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 700; line-height: 1.4; }
.branch-card.alt h3 { color: var(--green-dark); }
.branch-card p { font-size: 1.0625rem; opacity: 0.92; }
.branch-card .b-arrow {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 10px;
  font-weight: 700; font-size: 1.0625rem;
}
.branch-card .b-arrow svg { width: 22px; height: 22px; }

/* ===================================================================
   ダイジェスト (業務 / カルチャー)
=================================================================== */
.digest { background: var(--bg); }
.digest-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 64px);
  align-items: center;
}
.digest-row + .digest-row { margin-top: clamp(56px, 8vh, 110px); }
.digest-row.rev .digest-media { order: 2; }
.digest-media {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(30, 77, 48, 0.16);
}
.digest-media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.digest-body .eyebrow { margin-bottom: 16px; }
.digest-body h3 {
  font-size: clamp(1.6rem, 3.4vw, 2.5rem);
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1.4;
  margin-bottom: 16px;
}
.digest-body p { font-size: 1.0625rem; font-weight: 500; color: var(--muted); margin-bottom: 12px; }
.digest-body .note {
  display: inline-block;
  margin: 8px 0 20px;
  font-size: 1rem;
  color: var(--green-dark);
  background: var(--bg-soft);
  padding: 8px 14px;
  border-radius: 6px;
}
.digest-body .btn { margin-top: 8px; }

/* ===================================================================
   ブログ新着
=================================================================== */
.blog { background: var(--bg-light); }
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(20px, 2.5vw, 36px);
}
.blog-card {
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(30, 77, 48, 0.06);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.blog-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(30, 77, 48, 0.12); }
.blog-thumb {
  aspect-ratio: 16 / 10;
  background: var(--bg-soft);
  overflow: hidden;
}
.blog-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.8s var(--ease); }
.blog-card:hover .blog-thumb img { transform: scale(1.05); }
.blog-body { padding: clamp(20px, 2.4vw, 28px); }
.blog-body time { font-family: var(--font-mono); font-size: 1rem; color: var(--green); letter-spacing: 0.08em; }
.blog-body .cat {
  display: inline-block; margin-left: 10px;
  font-size: 1rem; color: var(--muted);
  background: var(--bg-light); padding: 2px 10px; border-radius: 100px;
}
.blog-body h3 { font-size: 1.125rem; font-weight: 700; color: var(--text); line-height: 1.6; margin-top: 12px; }
.blog-link { margin-top: clamp(36px, 5vh, 56px); display: flex; justify-content: center; }

/* ===================================================================
   横スライド (SCENES / 現場ギャラリー)
   - デスクトップ: GSAPで縦スクロール→横スライド（ピン留め）
   - 640px 以下: ネイティブ横スワイプ（scroll-snap）
=================================================================== */
.scenes { background: var(--bg); overflow-x: clip; }
.scenes-viewport {
  display: flex;
  align-items: center;
}
.scenes-inner {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  display: flex;
  align-items: center;
  gap: clamp(24px, 4vw, 64px);
  padding: clamp(48px, 7vh, 90px) var(--gutter);
}
.scenes-vhead { flex: 0 0 auto; }
.scenes-right {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 3vh, 30px);
}
.scenes-nav { align-self: flex-end; display: inline-flex; align-items: center; gap: 14px; }
.scenes-hint {
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: 0.16em;
  color: var(--muted);
}
.scenes-arrow {
  width: 46px; height: 46px; flex: 0 0 auto;
  border-radius: 50%;
  border: 1.5px solid var(--line);
  background: #fff; color: var(--green-dark);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.125rem; line-height: 1; cursor: pointer;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), opacity 0.25s;
}
.scenes-arrow:hover { background: var(--green); color: #fff; border-color: var(--green); }
.scenes-arrow:disabled { opacity: 0.3; cursor: default; }
.scenes-arrow:disabled:hover { background: #fff; color: var(--green-dark); border-color: var(--line); }
.scenes-pin {
  overflow-x: auto;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  /* ネイティブの横スクロールバーは非表示（矢印＋ドラッグ＋進捗バーで代替） */
  scrollbar-width: none;
  cursor: grab;
  /* 右端をデバイス端まで伸ばし、カードが見切れて「続きがある」ことを示す（左はそのまま） */
  margin-right: calc(-1 * (50vw - min(50vw, var(--maxw) / 2) + var(--gutter)));
}
.scenes-pin::-webkit-scrollbar { display: none; }
.scenes-pin.dragging { cursor: grabbing; scroll-snap-type: none; }
.scenes-pin.dragging .scene-card { pointer-events: none; }
.scenes-track {
  display: flex;
  gap: clamp(20px, 3vw, 40px);
  width: max-content;
  /* 終端の余白：最後のカードが画面右端に貼り付かず、内側で読める位置に収まる */
  padding-right: calc(50vw - min(50vw, var(--maxw) / 2) + var(--gutter));
}
.scene-card {
  flex: 0 0 auto;
  width: clamp(280px, 42vw, 440px);
  scroll-snap-align: start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 14px 40px rgba(30, 77, 48, 0.06);
}
.scene-card .ph {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--bg-soft);
  display: grid; place-items: center;
}
.scene-card .ph img { width: 100%; height: 100%; object-fit: cover; }
.scene-card .ph svg { width: 60px; height: 60px; color: var(--green); }
.scene-card .ph .tag {
  position: absolute; top: 16px; left: 16px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--green-dark);
  font-family: var(--font-mono); font-size: 1rem; letter-spacing: 0.08em;
  padding: 4px 14px; border-radius: 100px; font-weight: 700;
}
.scene-card .body { padding: clamp(22px, 2.6vw, 30px); }
.scene-card .s-no { font-family: var(--font-mono); font-size: 1rem; letter-spacing: 0.2em; color: var(--green); font-weight: 700; }
.scene-card h3 { font-size: clamp(1.3rem, 2.4vw, 1.8rem); font-weight: 700; color: var(--green-dark); line-height: 1.4; margin: 8px 0 10px; }
.scene-card p { font-size: 1.0625rem; font-weight: 500; color: var(--muted); }
.scenes-progress .bar { height: 3px; background: var(--line); border-radius: 3px; overflow: hidden; }
.scenes-progress .bar i { display: block; height: 100%; width: 100%; transform-origin: left; transform: scaleX(0.18); background: var(--grad); transition: transform 0.1s linear; }

/* ===================================================================
   CTA (お問い合わせ)
=================================================================== */
.contact {
  background: var(--grad);
  color: #fff;
  text-align: center;
  padding-block: clamp(90px, 14vh, 180px);
  position: relative;
  overflow: hidden;
}
.contact-media {
  position: absolute; inset: 0; z-index: 0;
  background-image: url("https://cdn.cuezilla-cms.com/sanoh-juki.com/images/1420/contact-bg.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* 完全固定パララックス */
}
.contact-media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(8, 18, 13, 0.66) 0%, rgba(8, 18, 13, 0.85) 100%);
}
.contact .wrap { position: relative; z-index: 1; }
.contact .eyebrow { color: #fff; justify-content: center; }
.contact .eyebrow::before { background: #fff; }
.contact h2 {
  font-family: var(--font-serif);
  font-size: clamp(1.6rem, 3.4vw, 2.6rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.4;
  margin: 22px 0 18px;
  position: relative;
}
.contact p {
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  color: rgba(255, 255, 255, 0.92);
  max-width: 50ch; margin: 0 auto 16px; position: relative;
}
.contact-actions { display: flex; flex-wrap: wrap; gap: 16px; justify-content: center; margin-top: clamp(28px, 4vh, 44px); position: relative; }
.contact .btn-primary { background: #fff; color: var(--green-dark); }
.contact .btn-primary:hover { background: var(--accent); color: #fff; }
.contact .btn-ghost { background: transparent; color: #fff; border-color: rgba(255, 255, 255, 0.7); }
.contact .btn-ghost:hover { background: #fff; color: var(--green-dark); }
.contact .tel {
  margin-top: 26px; position: relative;
  font-family: var(--font-en); font-size: clamp(1.8rem, 4vw, 2.8rem); letter-spacing: 0.04em;
}
.contact .tel-note { font-size: 1rem; color: rgba(255, 255, 255, 0.78); margin-top: 4px; }

/* ===================================================================
   Footer
=================================================================== */
.site-footer {
  background: #fff;
  color: var(--muted);
  padding-block: clamp(56px, 8vh, 96px) 36px;
  border-top: 4px solid var(--green);
}
.footer-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(32px, 5vw, 72px);
  padding-bottom: clamp(40px, 5vh, 56px);
  border-bottom: 1px solid var(--line);
}
/* 会社情報は折り返さず広めに確保 */
.footer-brand { flex: 0 1 auto; min-width: 0; }
.footer-brand img { height: clamp(26px, 2.8vw, 34px); width: auto; }
.footer-brand p { margin-top: 20px; font-size: 1rem; color: var(--muted); }
.footer-brand .addr { margin-top: 16px; font-size: 1rem; line-height: 2; white-space: nowrap; }
/* 密：メニューは右に寄せてまとめる */
.footer-menus { display: flex; gap: clamp(40px, 6vw, 84px); flex: 0 0 auto; }
.footer-col h4 {
  color: var(--green-dark);
  font-size: 1rem;
  letter-spacing: 0.12em;
  font-family: var(--font-mono);
  margin-bottom: 14px;
}
.footer-col a { display: block; padding: 9px 0; font-size: 1rem; color: var(--muted); transition: color 0.3s, padding-left 0.3s; white-space: nowrap; }
.footer-col a:hover { color: var(--green); padding-left: 8px; }
.footer-bottom {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px;
  padding-top: 28px;
  font-size: 1rem;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
}

/* ===================================================================
   構造変化 #2 : 640px で 1カラムへ
=================================================================== */
@media (max-width: 640px) {
  .stats-grid,
  .worry-list,
  .reasons-grid,
  .branch-grid,
  .blog-grid { grid-template-columns: 1fr; }
  .reason:last-child { grid-column: auto; }
  .digest-row { grid-template-columns: 1fr; }
  .digest-row.rev .digest-media { order: 0; }
  .footer-top { flex-direction: column; gap: 32px; }
  .footer-menus { gap: clamp(32px, 12vw, 64px); }
  /* 狭幅では住所の折り返しを許可（横溢れ防止） */
  .footer-brand .addr { white-space: normal; }
  /* スマホ：ポジション文のみ隠し、価値訴求のサブコピーは短縮表示で残す */
  .hero { align-items: flex-end; }
  /* 緑ボックスの左右余白を均一に（幅calc＋auto中央寄せ） */
  .hero-inner {
    width: calc(100% - clamp(36px, 10vw, 48px));
    max-width: none;
    margin-left: auto;
    margin-right: auto;
  }
  .hero-position { display: none; }
  .hero-sub { margin-top: 16px; font-size: 1rem; line-height: 1.8; max-width: none; }
  /* iOS Safari は background-attachment:fixed が破綻するため scroll に切替 */
  .worry-media, .contact-media, .facts-photo, .statement-media { background-attachment: scroll; }
  /* CTAボタンは縦並び時に同一幅へ */
  .hero-actions { flex-direction: column; align-items: stretch; margin-top: clamp(24px, 4vh, 36px); }
  .hero-actions .btn { width: 100%; justify-content: center; }

  /* スマホ：縦書き見出しセクションは縦積み（本文は全幅に伸ばす） */
  .vsec-layout { flex-direction: column; align-items: stretch; gap: clamp(20px, 4vh, 32px); }
  .scenes-viewport { min-height: auto; }
  .scenes-inner { flex-direction: column; align-items: stretch; gap: clamp(20px, 4vh, 32px); padding-block: clamp(64px, 9vh, 100px); }
  .scenes-right { gap: 16px; }
  .scenes-pin { overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-block: 6px 16px; }
  .scenes-track { transform: none !important; }
  .scene-card { width: 80vw; scroll-snap-align: start; }
  .anniv { gap: 16px; }
  .anniv-cap { display: none; }
}

/* ===================================================================
   PHILOSOPHY (ダーク・スクロール文字点灯)
=================================================================== */
.statement {
  position: relative;
  background: #14201a;
  color: #fff;
  overflow: hidden;
}
.statement-media {
  position: absolute; inset: 0; z-index: 0;
  background-image: url("https://cdn.cuezilla-cms.com/sanoh-juki.com/images/1420/section-site.webp");
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* 完全固定パララックス */
}
.statement-media::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10, 20, 15, 0.8) 0%, rgba(8, 16, 12, 0.9) 100%);
}
.statement::after {
  content: "";
  position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
  background-size: 100% 20%, 12.5% 100%;
}
.statement .wrap {
  position: relative;
  z-index: 1;
  min-height: 92vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: clamp(80px, 12vh, 160px);
}
.statement .eyebrow { color: var(--accent); margin-bottom: clamp(20px, 3vh, 36px); }
.statement .eyebrow::before { background: var(--accent); }
/* 縦書きレイアウト（、。で改行） */
.statement-body {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(28px, 5vw, 72px);
  margin-top: clamp(32px, 5vh, 56px);
}
.statement-text {
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  font-size: clamp(1.45rem, 3.4vw, 2.9rem);
  font-weight: 600;
  line-height: 2.1;
  letter-spacing: 0.12em;
}
.statement-text .w { color: rgba(255, 255, 255, 0.16); transition: color 0.5s var(--ease); }
.statement-text .tcy {
  text-combine-upright: all;
  -webkit-text-combine: horizontal;
  margin-bottom: 0.22em;    /* 「60」の下に余白 */
}
.statement-text .w.on { color: #fff; }
.statement-text .w.accent-w.on { color: var(--accent); }
.statement-foot {
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  font-size: clamp(1.0625rem, 1.5vw, 1.25rem);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.65);
}
/* タブレット：補足文を隠し本文を大きく、背景の高さを適正化 */
@media (max-width: 1240px) {
  .statement .wrap { min-height: auto; padding-block: clamp(64px, 9vh, 120px); }
  .statement-foot { display: none; }
  .statement-text { font-size: clamp(1.9rem, 4.6vw, 3.2rem); }
}
/* スマホ：縦書きをやめ横書きに */
@media (max-width: 640px) {
  .statement-body { flex-direction: column; align-items: flex-start; gap: 20px; }
  .statement-text {
    writing-mode: horizontal-tb;
    font-size: clamp(1.5rem, 6.5vw, 2.1rem);
    line-height: 1.65;
    letter-spacing: 0.04em;
  }
}

/* ---------- ゴーストワード（背面の大型英字） ---------- */
.has-ghost { position: relative; overflow: hidden; }
.has-ghost > .wrap { position: relative; z-index: 1; }
.ghost-word {
  position: absolute;
  z-index: 0;
  top: clamp(-30px, -4vw, -10px);
  right: -2%;
  font-family: var(--font-en);
  font-size: clamp(6rem, 22vw, 18rem);
  line-height: 0.8;
  letter-spacing: 0.02em;
  color: rgba(47, 107, 67, 0.05);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}

/* ---------- 縦書きレール（和アクセント・常設） ---------- */
.vrail {
  position: fixed;
  left: clamp(14px, 1.6vw, 26px);
  top: 50%;
  transform: translateY(-50%);
  z-index: 700;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.62em;
  color: var(--green);
  opacity: 0.75;
  pointer-events: none;
  user-select: none;
}
.vrail::after {
  content: "";
  writing-mode: horizontal-tb;
  width: 1px; height: clamp(40px, 7vh, 80px);
  background: currentColor;
  opacity: 0.6;
}
/* 縦書きレールは構造変化点(1240px)以下で省略 */
@media (max-width: 1240px) { .vrail { display: none; } }

/* ---------- 周年ロックアップ（数字シンボル × 明朝縦書き） ---------- */
.anniv {
  display: flex;
  align-items: flex-end;
  gap: clamp(18px, 3vw, 40px);
  margin-bottom: clamp(40px, 6vh, 72px);
  padding-bottom: clamp(32px, 5vh, 56px);
  border-bottom: 1px solid var(--line);
}
.anniv-meta { padding-bottom: 0.3em; }
.anniv-num {
  font-family: var(--font-en);
  font-size: clamp(5rem, 15vw, 11rem);
  line-height: 0.78;
  color: var(--green-dark);
  letter-spacing: 0.01em;
  display: flex;
  align-items: baseline;
  gap: 0.12em;
}
.anniv-unit {
  font-style: normal;
  font-family: var(--font-en);
  font-size: 0.26em;
  letter-spacing: 0.08em;
  color: var(--green);
}
.anniv-meta { display: flex; flex-direction: column; gap: 8px; }
.anniv-en { font-family: var(--font-mono); font-size: 1rem; letter-spacing: 0.22em; color: var(--green); font-weight: 700; }
.anniv-cap { font-size: 1.0625rem; font-weight: 500; color: var(--muted); white-space: nowrap; }
/* 720px以下：「60 YEARS」と「SINCE 1962／3代にわたり…」を縦並びに */
@media (max-width: 720px) {
  .anniv { flex-direction: column; align-items: flex-start; gap: clamp(10px, 2.5vw, 18px); }
  .anniv-meta { padding-bottom: 0; }
}

/* ---------- セクション・インデックス番号（数字シンボル） ---------- */
.sec-no {
  color: var(--accent);
  margin-right: 0.85em;
  font-variant-numeric: tabular-nums;
}

/* ---------- 縦書き小見出し + 積層ライン（明色セクション） ---------- */
.section-head.vhead, .scenes-head.vhead { align-items: flex-start; }
.vhead-main { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(14px, 2vh, 22px); }
.vhead-en {
  font-family: var(--font-mono);
  font-size: 1rem;
  letter-spacing: 0.3em;
  color: var(--green);
  font-weight: 700;
}
.vtitle {
  writing-mode: vertical-rl;
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: clamp(1.8rem, 3.2vw, 2.8rem);
  letter-spacing: 0.14em;
  line-height: 1.5;
  color: var(--green-dark);
}
/* 640px 以下では縦書き小見出しを横並びの簡易表示に */
@media (max-width: 640px) {
  .vtitle { writing-mode: horizontal-tb; letter-spacing: 0.04em; line-height: 1.35; }
  .hero-title .tetsu { font-size: 1.5em; }
}

/* ---------- パララックス（画像の奥行き） ---------- */
.digest-media { position: relative; aspect-ratio: 4 / 3; }
.digest-media img {
  position: absolute; inset: 0;
  width: 100%; height: 128%; top: -14%;
  object-fit: cover;
  will-change: transform;
}

/* ---------- reveal（JS有効時のみ隠す。無効/失敗時は常に表示） ---------- */
.js [data-reveal] { opacity: 0; transform: translateY(46px); }
.js [data-reveal].is-in { opacity: 1; transform: none; transition: opacity 1s var(--ease), transform 1s var(--ease); }
[data-reveal-delay="1"].is-in { transition-delay: 0.12s; }
[data-reveal-delay="2"].is-in { transition-delay: 0.24s; }

/* no-JS フォールバック：ローダーを隠しスクロールロックを解除 */
.no-js #loader { display: none; }
.no-js body.is-loading { overflow: auto; height: auto; }

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
  .js [data-reveal] { opacity: 1; transform: none; }
}


/* ===== pages.css ===== */
/* 受領各ページの scoped <style> を集約（順序保持・重複排除） */
.breadcrumb[data-astro-cid-qaanghzh]{margin-bottom:20px}.breadcrumb[data-astro-cid-qaanghzh] ol[data-astro-cid-qaanghzh]{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;list-style:none;font-family:var(--font-mono);font-size:1rem;letter-spacing:0.04em}.breadcrumb[data-astro-cid-qaanghzh] li[data-astro-cid-qaanghzh]{display:inline-flex;align-items:center;gap:8px 10px;color:rgba(255,255,255,0.7)}.breadcrumb[data-astro-cid-qaanghzh] li[data-astro-cid-qaanghzh]:not(:last-child)::after{content:"/";color:rgba(255,255,255,0.45)}.breadcrumb[data-astro-cid-qaanghzh] a[data-astro-cid-qaanghzh]{color:rgba(255,255,255,0.82);transition:color 0.3s}.breadcrumb[data-astro-cid-qaanghzh] a[data-astro-cid-qaanghzh]:hover{color:#fff;text-decoration:underline}.breadcrumb[data-astro-cid-qaanghzh] [data-astro-cid-qaanghzh][aria-current=page]{color:#fff}

.lhero[data-astro-cid-s5hxusys]{position:relative;margin-top:clamp(72px,9vh,104px);min-height:clamp(380px,52vh,540px);display:flex;align-items:center;overflow:hidden;isolation:isolate;color:#fff;background:#fff}.lhero-en[data-astro-cid-s5hxusys]{position:absolute;left:var(--gutter);top:-6%;z-index:0;font-family:var(--font-en);font-size:clamp(5rem,15vw,12rem);line-height:0.78;letter-spacing:0.02em;color:rgba(30,77,48,0.06);pointer-events:none;user-select:none}.lhero-inner[data-astro-cid-s5hxusys]{position:relative;width:calc(100% - clamp(40px,10vw,160px));margin-inline:auto;min-height:clamp(220px,30vh,300px);padding:clamp(28px,3vw,46px) clamp(32px,4vw,60px);display:flex;align-items:center;overflow:visible}.lhero-panel[data-astro-cid-s5hxusys]{position:absolute;inset:0;z-index:1;background:var(--green-dark);box-shadow:0 26px 70px rgba(0,30,18,0.24)}.lhero-photos[data-astro-cid-s5hxusys]{position:absolute;top:0;bottom:0;right:0;width:52%;z-index:2;pointer-events:none}.lp[data-astro-cid-s5hxusys]{position:absolute;object-fit:cover;border-radius:4px;box-shadow:0 12px 30px rgba(0,22,13,0.2)}.lp1[data-astro-cid-s5hxusys]{right:30%;top:2%;width:60%;aspect-ratio:4 / 3}.lp2[data-astro-cid-s5hxusys]{right:5%;top:44%;width:38%;aspect-ratio:4 / 3}.lhero-text[data-astro-cid-s5hxusys]{position:relative;z-index:3;max-width:none}.lhero-eyebrow[data-astro-cid-s5hxusys]{color:#fff;margin-bottom:14px}.lhero-eyebrow[data-astro-cid-s5hxusys]::before{background:var(--accent)}.lhero-title[data-astro-cid-s5hxusys]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.9rem,4.4vw,3.1rem);line-height:1.34;letter-spacing:0.04em;white-space:nowrap;text-shadow:0 2px 16px rgba(0,22,13,0.55)}.lhero-lead[data-astro-cid-s5hxusys]{margin-top:clamp(12px,1.8vh,20px);font-size:clamp(1rem,1.3vw,1.125rem);font-weight:500;line-height:1.9;color:rgba(255,255,255,0.95);white-space:nowrap;text-shadow:0 1px 12px rgba(0,22,13,0.55)}.lhero-crumb[data-astro-cid-s5hxusys]{position:absolute;z-index:5;left:clamp(20px,5vw,80px);right:clamp(20px,5vw,80px);bottom:clamp(16px,2.6vh,30px)}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb{margin-bottom:0}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb li{color:var(--muted)}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb li:not(:last-child)::after{color:var(--line)}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb a{color:var(--green)}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb a:hover{color:var(--green-dark)}.lhero-crumb[data-astro-cid-s5hxusys] .breadcrumb [aria-current="page"]{color:var(--text)}@media (max-width: 1240px){.lhero-title[data-astro-cid-s5hxusys],.lhero-lead[data-astro-cid-s5hxusys]{white-space:normal}}@media (max-width: 640px){.lhero[data-astro-cid-s5hxusys]{min-height:clamp(300px,42vh,420px);align-items:flex-end}.lhero-photos[data-astro-cid-s5hxusys]{display:none}.lhero-inner[data-astro-cid-s5hxusys]{width:calc(100% - clamp(36px,10vw,48px));min-height:0;margin-block:0 clamp(28px,5vh,44px)}.lhero-title[data-astro-cid-s5hxusys],.lhero-lead[data-astro-cid-s5hxusys]{text-shadow:none}.lhero-en[data-astro-cid-s5hxusys]{font-size:clamp(4rem,26vw,9rem)}}

.sechead[data-astro-cid-pzvqjql2]{margin-bottom:clamp(32px,5vh,56px)}.sechead[data-astro-cid-pzvqjql2].is-center{text-align:center}.sechead[data-astro-cid-pzvqjql2].is-center .eyebrow[data-astro-cid-pzvqjql2]{justify-content:center}.sechead-title[data-astro-cid-pzvqjql2]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.45;letter-spacing:0.04em;color:var(--green-dark);margin-top:14px}.sechead-lead[data-astro-cid-pzvqjql2]{margin-top:clamp(12px,2vh,18px);font-size:clamp(1.0625rem,1.4vw,1.2rem);font-weight:500;line-height:1.95;color:var(--muted)}.sechead[data-astro-cid-pzvqjql2].is-center .sechead-lead[data-astro-cid-pzvqjql2]{margin-inline:auto}

.frows[data-astro-cid-pmfcrph4]{display:flex;flex-direction:column;gap:clamp(48px,8vh,110px)}.frow[data-astro-cid-pmfcrph4]{display:grid;grid-template-columns:1.05fr 0.95fr;align-items:center;gap:clamp(28px,5vw,72px)}.frow[data-astro-cid-pmfcrph4].rev{direction:rtl}.frow[data-astro-cid-pmfcrph4].rev>[data-astro-cid-pmfcrph4]{direction:ltr}.frow-media[data-astro-cid-pmfcrph4]{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius);box-shadow:0 24px 60px rgba(0,40,24,0.14)}.frow-media[data-astro-cid-pmfcrph4] img[data-astro-cid-pmfcrph4]{width:100%;height:100%;object-fit:cover}.frow-tag[data-astro-cid-pmfcrph4]{position:absolute;left:16px;top:16px;font-family:var(--font-mono);font-size:1rem;letter-spacing:0.14em;font-weight:700;color:#fff;background:var(--green);padding:5px 14px;border-radius:100px}.frow-no[data-astro-cid-pmfcrph4]{font-family:var(--font-en);font-size:clamp(2.2rem,5vw,3.4rem);color:var(--accent);line-height:1;display:block;margin-bottom:10px}.frow-title[data-astro-cid-pmfcrph4]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.5rem,3vw,2.2rem);color:var(--green-dark);line-height:1.45;margin-bottom:clamp(14px,2vh,20px)}.frow-text[data-astro-cid-pmfcrph4]{font-size:1.0625rem;font-weight:500;line-height:2;color:var(--muted)}@media (max-width: 640px){.frow[data-astro-cid-pmfcrph4],.frow[data-astro-cid-pmfcrph4].rev{grid-template-columns:1fr;direction:ltr;gap:clamp(20px,4vh,28px)}}

.machinelist[data-astro-cid-i6zzjar4]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,32px)}.machine-card[data-astro-cid-i6zzjar4]{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.machine-ph[data-astro-cid-i6zzjar4]{aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-soft)}.machine-ph[data-astro-cid-i6zzjar4] img[data-astro-cid-i6zzjar4]{width:100%;height:100%;object-fit:cover}.machine-meta[data-astro-cid-i6zzjar4]{display:flex;flex-direction:column;align-items:stretch;gap:clamp(12px,1.6vw,18px);padding:clamp(18px,2.2vw,26px)}.machine-name[data-astro-cid-i6zzjar4]{font-size:clamp(1.2rem,1.9vw,1.5rem);font-weight:700;color:var(--green-dark);line-height:1.4}.machine-spec[data-astro-cid-i6zzjar4]{display:flex;align-items:baseline;gap:0.6em;background:var(--bg-light);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);padding:clamp(10px,1.4vw,14px) clamp(12px,1.6vw,18px);font-family:var(--font-mono);font-size:1rem;color:var(--muted);letter-spacing:0.04em;line-height:1.5}.machine-spec[data-astro-cid-i6zzjar4] b[data-astro-cid-i6zzjar4]{font-family:var(--font-jp);font-size:1.125rem;font-weight:800;color:var(--green-dark);letter-spacing:0.02em}@media (max-width: 1240px){.machinelist[data-astro-cid-i6zzjar4]{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.machinelist[data-astro-cid-i6zzjar4]{grid-template-columns:1fr}}

.emband[data-astro-cid-qna5ve3z]{position:relative;overflow:hidden;isolation:isolate;background:var(--green-dark);color:#fff;padding-block:clamp(72px,12vh,150px)}.emband-photo[data-astro-cid-qna5ve3z]{position:absolute;inset:0;z-index:0;pointer-events:none;background-size:cover;background-position:center;background-attachment:fixed;opacity:0.28}.emband-inner[data-astro-cid-qna5ve3z]{position:relative;z-index:1;text-align:center}.emband-eyebrow[data-astro-cid-qna5ve3z]{color:var(--accent);justify-content:center;margin-bottom:clamp(18px,3vh,30px)}.emband-eyebrow[data-astro-cid-qna5ve3z]::before{background:var(--accent)}.emband-text[data-astro-cid-qna5ve3z]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.8rem,5vw,3.4rem);line-height:1.7;letter-spacing:0.06em}.emband-lead[data-astro-cid-qna5ve3z]{margin-top:clamp(20px,3vh,32px);max-width:60ch;margin-inline:auto;font-size:1rem;font-weight:500;line-height:2;color:rgba(255,255,255,0.82)}@media (max-width: 640px){.emband-photo[data-astro-cid-qna5ve3z]{background-attachment:scroll}}

.ctaband[data-astro-cid-kokrr3jq]{position:relative;overflow:hidden;isolation:isolate;background:var(--green-dark);color:#fff;padding-block:clamp(72px,12vh,150px);text-align:center}.ctaband-photo[data-astro-cid-kokrr3jq]{position:absolute;inset:0;z-index:0;pointer-events:none;background-size:cover;background-position:center;background-attachment:fixed}.ctaband-photo[data-astro-cid-kokrr3jq]::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,18,13,0.66) 0%,rgba(8,18,13,0.85) 100%)}.ctaband-inner[data-astro-cid-kokrr3jq]{position:relative;z-index:1}.ctaband-eyebrow[data-astro-cid-kokrr3jq]{color:var(--accent);justify-content:center;margin-bottom:clamp(16px,2.5vh,26px)}.ctaband-eyebrow[data-astro-cid-kokrr3jq]::before{background:var(--accent)}.ctaband-title[data-astro-cid-kokrr3jq]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.9rem,4.5vw,3rem);line-height:1.5}.ctaband-body[data-astro-cid-kokrr3jq]{margin-top:clamp(14px,2vh,22px);font-size:1.0625rem;font-weight:500;line-height:2;color:rgba(255,255,255,0.9)}.ctaband-actions[data-astro-cid-kokrr3jq]{margin-top:clamp(28px,4vh,44px);display:flex;justify-content:center}.ctaband[data-astro-cid-kokrr3jq] .btn-primary[data-astro-cid-kokrr3jq]{background:#fff;color:var(--green-dark);border:2px solid #fff}.ctaband[data-astro-cid-kokrr3jq] .btn-primary[data-astro-cid-kokrr3jq]:hover{background:var(--accent);border-color:var(--accent);color:#fff}.ctaband-tel[data-astro-cid-kokrr3jq]{display:inline-block;margin-top:clamp(22px,3vh,32px);font-family:var(--font-en);font-size:clamp(1.8rem,4vw,2.8rem);letter-spacing:0.04em;color:#fff}.ctaband-note[data-astro-cid-kokrr3jq]{font-size:1rem;color:rgba(255,255,255,0.78);margin-top:4px}@media (max-width: 640px){.ctaband-photo[data-astro-cid-kokrr3jq]{background-attachment:scroll}}

.leadcopy-wrap[data-astro-cid-4jiukswq]{max-width:56rem}.leadcopy-title[data-astro-cid-4jiukswq]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.9rem,4.6vw,3.2rem);line-height:1.5;letter-spacing:0.05em;color:var(--green-dark)}.leadcopy-text[data-astro-cid-4jiukswq]{margin-top:clamp(20px,3vh,34px);font-size:clamp(1.0625rem,1.5vw,1.25rem);font-weight:500;line-height:2.1;letter-spacing:0.02em;color:var(--muted)}

.salary-month[data-astro-cid-ab6huqy5]{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;padding-bottom:clamp(24px,3.5vh,40px);margin-bottom:clamp(24px,3.5vh,40px);border-bottom:1px solid var(--line)}.salary-label[data-astro-cid-ab6huqy5]{font-family:var(--font-mono);font-size:1rem;letter-spacing:0.2em;color:var(--green);font-weight:700}.salary-amount[data-astro-cid-ab6huqy5]{font-family:var(--font-en);font-size:clamp(2.9rem,7.5vw,5.2rem);color:var(--green-dark);line-height:1}.salary-note[data-astro-cid-ab6huqy5]{font-size:1rem;color:var(--muted)}.salary-grid[data-astro-cid-ab6huqy5]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}.salary-card[data-astro-cid-ab6huqy5]{display:flex;flex-direction:column;gap:8px;justify-content:flex-end;background:var(--bg-light);border-radius:var(--radius);padding:clamp(22px,2.8vw,34px)}.sc-stage[data-astro-cid-ab6huqy5]{font-size:1rem;font-weight:700;color:var(--green-dark)}.sc-income[data-astro-cid-ab6huqy5]{font-family:var(--font-en);font-size:clamp(2.2rem,4.5vw,3.2rem);color:var(--green-dark);line-height:1;display:flex;align-items:baseline;gap:4px}.salary-card[data-astro-cid-ab6huqy5]:nth-child(1) .sc-income[data-astro-cid-ab6huqy5]{font-size:clamp(1.9rem,3.6vw,2.6rem)}.salary-card[data-astro-cid-ab6huqy5]:nth-child(2) .sc-income[data-astro-cid-ab6huqy5]{font-size:clamp(2.3rem,4.7vw,3.4rem)}.salary-card[data-astro-cid-ab6huqy5]:nth-child(3) .sc-income[data-astro-cid-ab6huqy5]{font-size:clamp(2.8rem,5.8vw,4.4rem)}.sc-income[data-astro-cid-ab6huqy5] em[data-astro-cid-ab6huqy5]{font-style:normal;font-family:var(--font-jp);font-size:1.125rem;font-weight:800;color:var(--green)}.sc-note[data-astro-cid-ab6huqy5]{font-size:1rem;font-weight:500;color:var(--muted);line-height:1.8}@media (max-width: 640px){.salary-grid[data-astro-cid-ab6huqy5]{grid-template-columns:1fr}}

.ifeat[data-astro-cid-pibbkd2g]{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)}.ifeat-item[data-astro-cid-pibbkd2g]{background:var(--bg-light);border-radius:var(--radius);padding:clamp(24px,2.6vw,36px) clamp(16px,2vw,24px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.ifeat-icon[data-astro-cid-pibbkd2g]{width:clamp(48px,5vw,64px);height:clamp(48px,5vw,64px);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--green);box-shadow:0 8px 22px rgba(0,40,24,0.1)}.ifeat-icon[data-astro-cid-pibbkd2g] svg{width:52%;height:52%}.ifeat-label[data-astro-cid-pibbkd2g]{font-weight:700;font-size:1.0625rem;color:var(--green-dark);line-height:1.5}.ifeat-desc[data-astro-cid-pibbkd2g]{font-size:1rem;font-weight:500;line-height:1.7;color:var(--muted)}@media (max-width: 1240px){.ifeat[data-astro-cid-pibbkd2g]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.ifeat[data-astro-cid-pibbkd2g]{grid-template-columns:1fr}}

.hubcards[data-astro-cid-2rszkow3]{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.6vw,36px)}.hubcard[data-astro-cid-2rszkow3]{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform 0.5s var(--ease),box-shadow 0.5s var(--ease)}.hubcard[data-astro-cid-2rszkow3]:hover{transform:translateY(-6px);box-shadow:0 28px 60px rgba(0,40,24,0.16)}.hubcard-media[data-astro-cid-2rszkow3]{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:var(--bg-soft)}.hubcard-media[data-astro-cid-2rszkow3] img[data-astro-cid-2rszkow3]{width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease)}.hubcard[data-astro-cid-2rszkow3]:hover .hubcard-media[data-astro-cid-2rszkow3] img[data-astro-cid-2rszkow3]{transform:scale(1.06)}.hubcard-body[data-astro-cid-2rszkow3]{padding:clamp(22px,2.6vw,34px);display:flex;flex-direction:column;gap:8px}.hubcard-en[data-astro-cid-2rszkow3]{font-family:var(--font-mono);font-size:1rem;letter-spacing:0.18em;color:var(--green);font-weight:700}.hubcard-title[data-astro-cid-2rszkow3]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.35rem,2.4vw,1.85rem);color:var(--green-dark);line-height:1.4}.hubcard-desc[data-astro-cid-2rszkow3]{font-size:1rem;font-weight:500;line-height:1.85;color:var(--muted)}.hubcard-arrow[data-astro-cid-2rszkow3]{margin-top:auto;align-self:flex-end;font-size:1.4rem;color:var(--green);transition:transform 0.4s var(--ease)}.hubcard[data-astro-cid-2rszkow3]:hover .hubcard-arrow[data-astro-cid-2rszkow3]{transform:translateX(6px)}@media (max-width: 640px){.hubcards[data-astro-cid-2rszkow3]{grid-template-columns:1fr}}

.rgrid[data-astro-cid-escckfl4]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,30px)}.rcard[data-astro-cid-escckfl4]{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(26px,3vw,40px);display:flex;flex-direction:column;gap:12px;transition:transform 0.5s var(--ease),box-shadow 0.5s var(--ease)}.rcard[data-astro-cid-escckfl4]:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(0,40,24,0.12)}.rcard-no[data-astro-cid-escckfl4]{font-family:var(--font-en);font-size:clamp(2rem,4vw,3rem);line-height:1;color:var(--accent);letter-spacing:0.02em}.rcard-title[data-astro-cid-escckfl4]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.2rem,2vw,1.5rem);color:var(--green-dark);line-height:1.5}.rcard-body[data-astro-cid-escckfl4]{font-size:1rem;font-weight:500;line-height:1.9;color:var(--muted)}.rcard-evi[data-astro-cid-escckfl4]{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:1rem;font-weight:700;color:var(--green);line-height:1.7}@media (max-width: 1240px){.rgrid[data-astro-cid-escckfl4]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.rgrid[data-astro-cid-escckfl4]{grid-template-columns:1fr}}

.stepflow[data-astro-cid-mmp7dwgm]{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:clamp(16px,2vw,28px)}.step[data-astro-cid-mmp7dwgm]{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,2.6vw,32px)}.step[data-astro-cid-mmp7dwgm]:not(:last-child)::after{content:"→";position:absolute;top:50%;right:calc(clamp(16px,2vw,28px) / -2);transform:translate(50%,-50%);color:var(--green);font-size:1.4rem;font-weight:700}.step-no[data-astro-cid-mmp7dwgm]{font-family:var(--font-mono);font-size:1rem;letter-spacing:0.18em;color:var(--accent);font-weight:700}.step-title[data-astro-cid-mmp7dwgm]{font-size:clamp(1.125rem,1.8vw,1.4rem);font-weight:700;color:var(--green-dark);line-height:1.45;margin:10px 0 8px}.step-desc[data-astro-cid-mmp7dwgm]{font-size:1.0625rem;font-weight:500;line-height:1.85;color:var(--muted)}@media (max-width: 1240px){.stepflow[data-astro-cid-mmp7dwgm]{grid-auto-flow:row;grid-auto-columns:auto}.step[data-astro-cid-mmp7dwgm]:not(:last-child)::after{content:"↓";top:auto;bottom:calc(clamp(16px,2vw,28px) / -2);right:50%;transform:translate(50%,50%)}}

.joblist[data-astro-cid-m5x2lo23]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.2vw,32px)}.job-card[data-astro-cid-m5x2lo23]{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 12px 34px rgba(30,77,48,0.06)}.job-ph[data-astro-cid-m5x2lo23]{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--bg-soft)}.job-ph[data-astro-cid-m5x2lo23] img[data-astro-cid-m5x2lo23]{width:100%;height:100%;object-fit:cover}.job-tag[data-astro-cid-m5x2lo23]{position:absolute;top:14px;left:14px;background:rgba(255,255,255,0.92);color:var(--green-dark);font-family:var(--font-mono);font-size:1rem;letter-spacing:0.08em;padding:4px 12px;border-radius:100px;font-weight:700}.job-body[data-astro-cid-m5x2lo23]{padding:clamp(22px,2.6vw,32px)}.job-no[data-astro-cid-m5x2lo23]{font-family:var(--font-en);font-size:clamp(2rem,3.4vw,2.8rem);color:var(--accent);line-height:1}.job-name[data-astro-cid-m5x2lo23]{font-size:clamp(1.25rem,2.2vw,1.6rem);font-weight:700;color:var(--green-dark);line-height:1.4;margin:8px 0 12px}.job-desc[data-astro-cid-m5x2lo23]{font-size:1.0625rem;font-weight:500;line-height:1.9;color:var(--muted)}@media (max-width: 1240px){.joblist[data-astro-cid-m5x2lo23]{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.joblist[data-astro-cid-m5x2lo23]{grid-template-columns:1fr}}

.jobrows{display:flex;flex-direction:column;gap:clamp(36px,5.5vw,84px)}
.jobrow{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(28px,4.5vw,72px)}
.jobrow.rev .jobrow-ph{order:2}
.jobrow-ph{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius);background:var(--bg-soft);box-shadow:0 20px 48px rgba(30,77,48,0.14)}
.jobrow-ph img{width:100%;height:100%;object-fit:cover}
.jobrow-tag{position:absolute;top:16px;left:16px;background:rgba(255,255,255,0.92);color:var(--green-dark);font-family:var(--font-mono);font-size:1rem;letter-spacing:0.08em;padding:5px 14px;border-radius:100px;font-weight:700}
.jobrow-no{font-family:var(--font-en);font-size:clamp(2.6rem,5vw,3.8rem);color:var(--accent);line-height:1}
.jobrow-name{font-size:clamp(1.45rem,2.8vw,2rem);font-weight:700;color:var(--green-dark);line-height:1.4;margin:6px 0 18px}
.jobrow-desc{font-size:clamp(1.0625rem,1.3vw,1.18rem);font-weight:500;line-height:2.05;color:var(--muted);text-wrap:pretty}
@media (max-width:760px){.jobrow{grid-template-columns:1fr;gap:clamp(18px,4vw,28px)}.jobrow.rev .jobrow-ph{order:0}}
.termgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}
.termcard{background:#fff;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--radius);padding:clamp(22px,2.6vw,32px);box-shadow:0 12px 34px rgba(30,77,48,0.06)}
.termcard dt{display:flex;align-items:baseline;gap:6px 14px;flex-wrap:wrap}
.term-word{font-size:clamp(1.2rem,2.1vw,1.5rem);font-weight:700;color:var(--green-dark);line-height:1.3}
.term-read{font-family:var(--font-mono);font-size:0.95rem;letter-spacing:0.06em;color:var(--green);font-weight:700}
.termcard dd{margin:14px 0 0;font-size:1.0625rem;font-weight:500;line-height:1.95;color:var(--muted);text-wrap:pretty}
@media (max-width:760px){.termgrid{grid-template-columns:1fr}}

.day-timeline[data-astro-cid-hzzqsazd]{list-style:none;position:relative}.day-row[data-astro-cid-hzzqsazd]{position:relative;display:grid;grid-template-columns:clamp(64px,10vw,96px) 24px 1fr;align-items:start;gap:clamp(12px,2vw,24px);padding:clamp(14px,1.8vh,22px) 0}.day-row[data-astro-cid-hzzqsazd]>[data-astro-cid-hzzqsazd]{position:relative;z-index:1}.day-time[data-astro-cid-hzzqsazd]{font-family:var(--font-mono);font-size:1.0625rem;font-weight:700;color:var(--green-dark);letter-spacing:0.04em;padding-top:2px}.day-dot[data-astro-cid-hzzqsazd]{position:relative;justify-self:center;width:14px;height:14px;margin-top:6px;border-radius:50%;background:var(--green)}.day-row[data-astro-cid-hzzqsazd]:not(:last-child) .day-dot[data-astro-cid-hzzqsazd]::after{content:"";position:absolute;left:50%;top:14px;transform:translateX(-50%);width:2px;height:calc(100% + clamp(28px,3.6vh,44px));background:var(--line)}.day-label[data-astro-cid-hzzqsazd]{font-size:1.0625rem;font-weight:500;line-height:1.85;color:var(--text)}.day-badge[data-astro-cid-hzzqsazd]{display:inline-block;margin-left:10px;vertical-align:2px;font-size:1rem;font-weight:700;color:#fff;background:var(--accent);padding:2px 12px;border-radius:100px}.day-row[data-astro-cid-hzzqsazd].is-break::before{content:"";position:absolute;z-index:0;top:0;bottom:0;left:clamp(-20px,-2vw,-12px);right:clamp(-20px,-2vw,-12px);background:var(--bg-soft);border-radius:var(--radius)}.day-row[data-astro-cid-hzzqsazd].is-break .day-dot[data-astro-cid-hzzqsazd]{background:var(--accent)}.day-row[data-astro-cid-hzzqsazd].is-break .day-label[data-astro-cid-hzzqsazd]{color:var(--green-dark);font-weight:700}

.data-table[data-astro-cid-jcqriyoz]{border-top:1px solid var(--line)}.data-row[data-astro-cid-jcqriyoz]{display:grid;grid-template-columns:clamp(140px,22%,240px) 1fr;gap:clamp(12px,3vw,40px);padding:clamp(16px,2.2vw,26px) clamp(4px,1vw,12px);border-bottom:1px solid var(--line)}.data-row[data-astro-cid-jcqriyoz] dt[data-astro-cid-jcqriyoz]{font-weight:700;font-size:1rem;color:var(--green-dark);letter-spacing:0.04em}.data-row[data-astro-cid-jcqriyoz] dd[data-astro-cid-jcqriyoz]{font-size:1.0625rem;font-weight:500;line-height:1.9;color:var(--text)}@media (max-width: 640px){.data-row[data-astro-cid-jcqriyoz]{grid-template-columns:1fr;gap:4px;padding-block:16px}.data-row[data-astro-cid-jcqriyoz] dt[data-astro-cid-jcqriyoz]{color:var(--green)}}

.ifeat[data-astro-cid-pibbkd2g]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}.ifeat-item[data-astro-cid-pibbkd2g]{background:var(--bg-light);border-radius:var(--radius);padding:clamp(24px,2.6vw,36px) clamp(16px,2vw,24px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.ifeat-icon[data-astro-cid-pibbkd2g]{width:clamp(48px,5vw,64px);height:clamp(48px,5vw,64px);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--green);box-shadow:0 8px 22px rgba(0,40,24,0.1)}.ifeat-icon[data-astro-cid-pibbkd2g] svg{width:52%;height:52%}.ifeat-label[data-astro-cid-pibbkd2g]{font-weight:700;font-size:1.0625rem;color:var(--green-dark);line-height:1.5}.ifeat-desc[data-astro-cid-pibbkd2g]{font-size:1rem;font-weight:500;line-height:1.7;color:var(--muted)}@media (max-width: 1240px){.ifeat[data-astro-cid-pibbkd2g]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.ifeat[data-astro-cid-pibbkd2g]{grid-template-columns:1fr}}

.people[data-astro-cid-uaw6cg4a]{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.5vw,36px)}.person-card[data-astro-cid-uaw6cg4a]{display:grid;grid-template-columns:clamp(120px,30%,220px) 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 34px rgba(30,77,48,0.06)}.person-ph[data-astro-cid-uaw6cg4a]{background:var(--bg-soft);display:grid;place-items:center}.person-ph[data-astro-cid-uaw6cg4a] img[data-astro-cid-uaw6cg4a]{width:100%;height:100%;object-fit:cover}.person-ph-empty[data-astro-cid-uaw6cg4a]{font-family:var(--font-mono);font-size:1rem;color:var(--accent);letter-spacing:0.1em}.person-body[data-astro-cid-uaw6cg4a]{position:relative;padding:clamp(22px,2.6vw,32px)}.person-quote[data-astro-cid-uaw6cg4a]{font-family:var(--font-en);font-size:2.6rem;line-height:0.6;color:var(--accent);display:block;margin-bottom:8px}.person-comment[data-astro-cid-uaw6cg4a]{font-size:1.0625rem;font-weight:500;line-height:1.95;color:var(--text)}.person-name[data-astro-cid-uaw6cg4a]{margin-top:16px;font-weight:700;color:var(--green-dark)}.person-role[data-astro-cid-uaw6cg4a]{margin-left:10px;font-size:1rem;font-weight:500;color:var(--muted)}@media (max-width: 640px){.people[data-astro-cid-uaw6cg4a]{grid-template-columns:1fr}.person-card[data-astro-cid-uaw6cg4a]{grid-template-columns:1fr}.person-ph[data-astro-cid-uaw6cg4a]{aspect-ratio:16 / 10}}

.philosophy-quote[data-astro-cid-6riitr5y]{position:relative;text-align:center;padding:clamp(28px,5vh,56px) clamp(16px,4vw,48px)}.pq-mark[data-astro-cid-6riitr5y]{display:block;font-family:var(--font-serif);font-weight:700;font-size:clamp(3.4rem,9vw,5.6rem);line-height:0.9;height:0.62em;color:var(--accent);margin-bottom:clamp(10px,2vh,20px)}.pq-text[data-astro-cid-6riitr5y]{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.6rem,4.6vw,3rem);line-height:1.7;letter-spacing:0.06em;color:var(--green-dark)}.pq-lead[data-astro-cid-6riitr5y]{margin-top:clamp(20px,3vh,32px);max-width:60ch;margin-inline:auto;font-size:clamp(1.0625rem,1.5vw,1.2rem);font-weight:500;line-height:2;color:var(--muted)}

.numband[data-astro-cid-6ggiauze]{position:relative;overflow:hidden;isolation:isolate;background:var(--grad);color:#fff;padding-block:clamp(72px,11vh,150px)}.numband-photo[data-astro-cid-6ggiauze]{position:absolute;inset:0;z-index:0;pointer-events:none;background-size:cover;background-position:center;background-attachment:fixed;mix-blend-mode:multiply;opacity:0.55}.numband[data-astro-cid-6ggiauze] .wrap[data-astro-cid-6ggiauze]{position:relative;z-index:1}.numband-layout[data-astro-cid-6ggiauze]{display:flex;justify-content:center;align-items:flex-start;gap:clamp(28px,4vw,72px)}.numband-head[data-astro-cid-6ggiauze]{flex:0 0 auto}.numband-title[data-astro-cid-6ggiauze]{writing-mode:vertical-rl;font-family:var(--font-serif);font-weight:600;font-size:clamp(1.8rem,3.2vw,2.8rem);letter-spacing:0.14em;line-height:1.5;color:#fff}.numband-main[data-astro-cid-6ggiauze]{flex:0 0 auto;min-width:0;display:flex;flex-direction:column;align-items:center}.numband-img[data-astro-cid-6ggiauze]{display:block;width:auto;max-width:100%;height:clamp(460px,68vh,880px)}.numband-link[data-astro-cid-6ggiauze]{display:flex;justify-content:center;margin-top:clamp(36px,5vh,64px)}.numband-btn[data-astro-cid-6ggiauze]{background:transparent;color:#fff;border:2px solid rgba(255,255,255,0.7)}.numband-btn[data-astro-cid-6ggiauze]:hover{background:#fff;color:var(--green-dark)}@media (max-width: 640px){.numband-layout[data-astro-cid-6ggiauze]{flex-direction:column;align-items:stretch;gap:clamp(24px,4vh,36px)}.numband-title[data-astro-cid-6ggiauze]{writing-mode:horizontal-tb;letter-spacing:0.06em}.numband-img[data-astro-cid-6ggiauze]{width:70%;height:auto}.numband-photo[data-astro-cid-6ggiauze]{background-attachment:scroll}}

.access[data-astro-cid-gp22thol]{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,2.5vw,40px)}.access-map[data-astro-cid-gp22thol]{aspect-ratio:16 / 10;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}.access-map[data-astro-cid-gp22thol] iframe[data-astro-cid-gp22thol]{width:100%;height:100%;border:0;display:block}.access-map-ph[data-astro-cid-gp22thol]{width:100%;height:100%;background:var(--bg-soft);display:grid;place-items:center;gap:6px}.access-map-ph[data-astro-cid-gp22thol] span[data-astro-cid-gp22thol]{font-family:var(--font-mono);font-size:1rem;letter-spacing:0.2em;color:var(--accent)}.access-map-ph[data-astro-cid-gp22thol] small[data-astro-cid-gp22thol]{font-size:1rem;color:var(--muted)}.access-name[data-astro-cid-gp22thol]{margin-top:16px;font-size:clamp(1.125rem,1.8vw,1.4rem);font-weight:700;color:var(--green-dark)}.access-addr[data-astro-cid-gp22thol]{margin-top:8px;font-size:1.0625rem;font-weight:500;line-height:1.9;color:var(--muted)}@media (max-width: 640px){.access[data-astro-cid-gp22thol]{grid-template-columns:1fr}}

.faq[data-astro-cid-z6gx6xcw]{border-top:1px solid var(--line)}.faq-item[data-astro-cid-z6gx6xcw]{border-bottom:1px solid var(--line)}.faq-item[data-astro-cid-z6gx6xcw] summary[data-astro-cid-z6gx6xcw]{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(12px,1.6vw,18px);padding:clamp(18px,2.2vw,26px) clamp(4px,1vw,10px)}.faq-item[data-astro-cid-z6gx6xcw] summary[data-astro-cid-z6gx6xcw]::-webkit-details-marker{display:none}.faq-q-mark[data-astro-cid-z6gx6xcw]{font-family:var(--font-en);font-size:1.4rem;color:var(--accent);line-height:1}.faq-q[data-astro-cid-z6gx6xcw]{font-size:clamp(1.0625rem,1.6vw,1.25rem);font-weight:700;color:var(--green-dark);line-height:1.6}.faq-icon[data-astro-cid-z6gx6xcw]{position:relative;width:18px;height:18px;flex:0 0 auto}.faq-icon[data-astro-cid-z6gx6xcw]::before,.faq-icon[data-astro-cid-z6gx6xcw]::after{content:"";position:absolute;background:var(--green);transition:transform 0.3s var(--ease)}.faq-icon[data-astro-cid-z6gx6xcw]::before{top:8px;left:0;width:18px;height:2px}.faq-icon[data-astro-cid-z6gx6xcw]::after{left:8px;top:0;width:2px;height:18px}.faq-item[data-astro-cid-z6gx6xcw][open] .faq-icon[data-astro-cid-z6gx6xcw]::after{transform:scaleY(0)}.faq-a[data-astro-cid-z6gx6xcw]{padding:0 clamp(4px,1vw,10px) clamp(20px,2.4vw,28px) clamp(34px,4vw,46px)}.faq-a[data-astro-cid-z6gx6xcw] p[data-astro-cid-z6gx6xcw]{font-size:1.0625rem;font-weight:500;line-height:1.95;color:var(--muted)}@media (prefers-reduced-motion: reduce){.faq-icon[data-astro-cid-z6gx6xcw]::before,.faq-icon[data-astro-cid-z6gx6xcw]::after{transition:none}}

.bloglist-grid[data-astro-cid-35dpazjw]{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,2.5vw,36px)}.bl-card[data-astro-cid-35dpazjw]{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 10px 30px rgba(30,77,48,0.06);transition:transform 0.5s var(--ease),box-shadow 0.5s var(--ease)}.bl-card[data-astro-cid-35dpazjw]:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(30,77,48,0.12)}.bl-thumb[data-astro-cid-35dpazjw]{aspect-ratio:16 / 10;overflow:hidden;background:var(--bg-soft);display:grid;place-items:center}.bl-thumb[data-astro-cid-35dpazjw] img[data-astro-cid-35dpazjw]{width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease)}.bl-card[data-astro-cid-35dpazjw]:hover .bl-thumb[data-astro-cid-35dpazjw] img[data-astro-cid-35dpazjw]{transform:scale(1.05)}.bl-thumb[data-astro-cid-35dpazjw] span[data-astro-cid-35dpazjw]{font-family:var(--font-mono);color:var(--accent);letter-spacing:0.1em;font-size:1rem}.bl-body[data-astro-cid-35dpazjw]{padding:clamp(20px,2.4vw,28px)}.bl-body[data-astro-cid-35dpazjw] time[data-astro-cid-35dpazjw]{font-family:var(--font-mono);font-size:1rem;color:var(--green);letter-spacing:0.08em}.bl-cat[data-astro-cid-35dpazjw]{display:inline-block;margin-left:10px;font-size:1rem;color:var(--muted);background:var(--bg-light);padding:2px 10px;border-radius:100px}.bl-body[data-astro-cid-35dpazjw] h3[data-astro-cid-35dpazjw]{font-size:1.125rem;font-weight:700;color:var(--text);line-height:1.6;margin-top:12px}.bl-pager[data-astro-cid-35dpazjw]{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:clamp(40px,5vh,64px)}.bl-page[data-astro-cid-35dpazjw]{min-width:48px;min-height:48px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:1rem;border:1px solid var(--line);border-radius:var(--radius);color:var(--green-dark);transition:background 0.3s,color 0.3s,border-color 0.3s}.bl-page[data-astro-cid-35dpazjw]:hover{border-color:var(--green)}.bl-page[data-astro-cid-35dpazjw].is-current{background:var(--green);color:#fff;border-color:var(--green)}@media (max-width: 1240px){.bloglist-grid[data-astro-cid-35dpazjw]{grid-template-columns:1fr 1fr}}@media (max-width: 640px){.bloglist-grid[data-astro-cid-35dpazjw]{grid-template-columns:1fr}}

.inquiry-form[data-astro-cid-v56yoci2]{display:flex;flex-direction:column;gap:clamp(18px,2.4vw,26px)}.field[data-astro-cid-v56yoci2]{display:flex;flex-direction:column;gap:8px}.field-row[data-astro-cid-v56yoci2]{display:grid;grid-template-columns:1fr 1fr;gap:clamp(18px,2.4vw,26px)}.field[data-astro-cid-v56yoci2] label[data-astro-cid-v56yoci2],.agree[data-astro-cid-v56yoci2]{font-size:1rem;font-weight:700;color:var(--green-dark)}.req[data-astro-cid-v56yoci2]{font-size:1rem;font-weight:700;color:#fff;background:var(--accent);padding:1px 10px;border-radius:100px;margin-left:8px}.field[data-astro-cid-v56yoci2] input[data-astro-cid-v56yoci2],.field[data-astro-cid-v56yoci2] textarea[data-astro-cid-v56yoci2]{font:inherit;font-size:1rem;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;width:100%;transition:border-color 0.25s,box-shadow 0.25s}.field[data-astro-cid-v56yoci2] input[data-astro-cid-v56yoci2]::placeholder,.field[data-astro-cid-v56yoci2] textarea[data-astro-cid-v56yoci2]::placeholder{color:#9aa79f}.field[data-astro-cid-v56yoci2] input[data-astro-cid-v56yoci2]:focus,.field[data-astro-cid-v56yoci2] textarea[data-astro-cid-v56yoci2]:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,107,67,0.15)}.field[data-astro-cid-v56yoci2] input[data-astro-cid-v56yoci2]:user-invalid{border-color:#c0492f}.agree[data-astro-cid-v56yoci2]{display:flex;align-items:flex-start;gap:10px;font-weight:500;color:var(--text)}.agree[data-astro-cid-v56yoci2] input[data-astro-cid-v56yoci2]{margin-top:4px;width:18px;height:18px;accent-color:var(--green)}.agree[data-astro-cid-v56yoci2] a[data-astro-cid-v56yoci2]{color:var(--green);text-decoration:underline}.form-action[data-astro-cid-v56yoci2]{margin-top:8px}.form-action[data-astro-cid-v56yoci2] .btn[data-astro-cid-v56yoci2]{width:100%;max-width:380px;justify-content:center}.form-note[data-astro-cid-v56yoci2]{font-size:1rem;color:var(--muted)}@media (max-width: 640px){.field-row[data-astro-cid-v56yoci2]{grid-template-columns:1fr}}

.inquiry-wrap[data-astro-cid-wshnj3dk]{max-width:760px}.inquiry-tel[data-astro-cid-wshnj3dk]{margin-top:clamp(28px,4vh,44px);font-size:1.0625rem;font-weight:500;color:var(--muted)}.inquiry-tel[data-astro-cid-wshnj3dk] a[data-astro-cid-wshnj3dk]{font-family:var(--font-en);font-size:clamp(1.5rem,3vw,2rem);color:var(--green-dark);letter-spacing:0.04em;margin-left:8px;vertical-align:-2px}

.prose[data-astro-cid-apjhz64k]{max-width:76ch}.prose[data-astro-cid-apjhz64k] h2{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.5;color:var(--green-dark);margin:clamp(36px,5vh,56px) 0 clamp(14px,2vh,20px);padding-bottom:12px;border-bottom:1px solid var(--line)}.prose[data-astro-cid-apjhz64k] h2:first-child{margin-top:0}.prose[data-astro-cid-apjhz64k] h3{font-weight:700;font-size:clamp(1.2rem,2.2vw,1.5rem);color:var(--green-dark);line-height:1.6;margin:clamp(28px,4vh,40px) 0 10px}.prose[data-astro-cid-apjhz64k] p{font-size:1.0625rem;font-weight:500;line-height:2;color:var(--text);margin:0 0 1.2em}.prose[data-astro-cid-apjhz64k] a{color:var(--green);text-decoration:underline}.prose[data-astro-cid-apjhz64k] ul,.prose[data-astro-cid-apjhz64k] ol{margin:0 0 1.4em 1.4em}.prose[data-astro-cid-apjhz64k] li{font-size:1.0625rem;font-weight:500;line-height:1.95;color:var(--text);margin:0.3em 0}.prose[data-astro-cid-apjhz64k] ul li{list-style:none;position:relative;padding-left:1.2em}.prose[data-astro-cid-apjhz64k] ul li::before{content:"";position:absolute;left:0;top:0.82em;width:8px;height:8px;border-radius:50%;background:var(--accent)}.prose[data-astro-cid-apjhz64k] strong{color:var(--green-dark);font-weight:700}.prose[data-astro-cid-apjhz64k] blockquote{margin:1.6em 0;padding:clamp(18px,2.4vw,28px);background:var(--bg-light);border-radius:var(--radius);font-weight:600;color:var(--green-dark)}


/* ===== cuezilla-skin.css ===== */
/* ============================================================
   CueZilla 動的パーツ スキンキット v1.0
   ------------------------------------------------------------
   目的: ブログ/施工実績(blog-ex)/お問い合わせ/パンくず/ページヘッダー等の
         CueZilla 既定パーツを、サイトのトンマナ（ダーク/ライト・ブランド色・
         フォント・角丸）に "自動で寄せる" 汎用CSS。案件ごとの調整を最小化する。

   思想:
     (1) 色は CueZilla テーマ変数(--main-color 等)から自動連動
         → サイトのテーマ設定がそのまま skin にも効く（色は一元管理）
     (2) フォント/角丸/グリッド幅はトークンで指定（テーマ変数に無いため）
     (3) partsNNN は採番が可変だが接尾辞は共通(_post_wrap 等)
         → 属性セレクタ [class*="_xxx"] で番号非依存に当てる

   使い方:
     1. §0 のトークンを案件に合わせて調整（ダーク/ライトはプリセットをコピー）
     2. CueZilla テーマカラー(--main-color 等)をブランド値に設定
     3. 本ファイルをサイト全体CSS(AddCssInfo)へ貼る（サイト固有のフリーコーディングCSSの後ろ）
   ============================================================ */


/* ============================================================
   §0  トークン ─ ここだけ案件ごとに調整
   ============================================================ */
:root{
  /* --- 色: CueZilla テーマ変数から自動取得（無い場合のフォールバック付き） --- */
  --dyn-bg:        var(--background-color, #ffffff);   /* ページ/セクション背景 */
  --dyn-surface:   var(--temporary-color, #f4f4f2);    /* カード/パネル/入力欄の面 */
  --dyn-text:      var(--text-color, #222222);         /* 本文 */
  --dyn-heading:   var(--text-color, #111111);         /* 見出し */
  --dyn-muted:     var(--sub-color, #8a8a8a);          /* 補助/日付 */
  --dyn-border:    var(--sub-color, #dddddd);          /* 罫線/枠 */
  --dyn-accent:    var(--main-color, #1e3a5f);         /* アクセント（ボタン/チップ/見出しバー） */
  --dyn-accent-2:  var(--link-color, var(--main-color, #1e3a5f)); /* リンク/ホバー */
  --dyn-on-accent: #ffffff;                             /* アクセント面の上の文字 */

  /* --- フォント（site.css の :root に定義があればそれを使用） --- */
  --dyn-font-display: var(--font-display, "Noto Serif JP","Yu Mincho",serif);
  --dyn-font-body:    var(--font-body, "Noto Sans JP","Yu Gothic",sans-serif);
  --dyn-font-numeric: var(--font-numeric, "EB Garamond","Noto Serif JP",serif);

  /* --- 角丸（チップ/ボタン/カード）。角なしにするなら 0 --- */
  --dyn-radius: 6px;
  /* --- 一覧カードの最小幅 / 段組ギャップ --- */
  --dyn-card-min: 300px;
  --dyn-gap: 32px;
}

/* === テーマ プリセット（使う方を §0 の後にコピペして上書き） =========
   【ダーク】
   :root{
     --dyn-bg:#0A0A0A; --dyn-surface:#111110; --dyn-text:#F4F1EC; --dyn-heading:#FAF7F1;
     --dyn-muted:#8C857A; --dyn-border:#3A352D; --dyn-accent:#8E3A22; --dyn-accent-2:#B0533A;
     --dyn-on-accent:#FAF7F1; --dyn-radius:0;
   }
   【ライト】
   :root{
     --dyn-bg:#ffffff; --dyn-surface:#f7f7f5; --dyn-text:#222222; --dyn-heading:#111111;
     --dyn-muted:#8a8a8a; --dyn-border:#e3e3e3; --dyn-accent:#1e3a5f; --dyn-accent-2:#1e3a5f;
     --dyn-on-accent:#ffffff; --dyn-radius:6px;
   }
   ※ CueZilla テーマ変数(--main-color 等)を設定する場合は §0 が自動連動するのでプリセット不要。
   ============================================================ */


/* ============================================================
   §1  パンくず（CueZilla parts###_breadcrumb / p-breadcrumb）
   実markup: div.parts###_breadcrumb.p-breadcrumb.c-breadcrumb
             > ul.p-breadcrumb__inner(BreadcrumbList) > li.p-breadcrumb__item(ListItem)
   CueZilla共通CSSにパンくず装飾は無い → skin側で横並び・区切り・配色を付与
   ============================================================ */
[class*="_breadcrumb"], .p-breadcrumb{ background:var(--dyn-bg) !important; }
.p-breadcrumb__inner{
  list-style:none; margin:0 auto; padding:14px 24px;
  max-width:1200px; display:flex; flex-wrap:wrap; align-items:center;
}
.p-breadcrumb__item{
  display:inline-flex; align-items:center;
  color:var(--dyn-muted) !important; font-family:var(--dyn-font-body);
  font-size:.78rem; letter-spacing:.04em;
}
.p-breadcrumb__item a{ color:var(--dyn-muted) !important; text-decoration:none; }
.p-breadcrumb__item a:hover{ color:var(--dyn-accent-2) !important; text-decoration:underline; }
.p-breadcrumb__item:last-child{ color:var(--dyn-text) !important; }   /* 現在地 */
/* 区切り（2件目以降の前に "›"） */
.p-breadcrumb__item + .p-breadcrumb__item::before{
  content:"\203A"; margin:0 .6em; color:var(--dyn-border) !important; font-size:.95em;
}
.p-breadcrumb meta{ display:none; }   /* schema.org の <meta itemprop="position"> は非表示 */


/* ============================================================
   §2  ページヘッダー（[class*="_article_header"]）画像上のタイトル
   ============================================================ */
[class*="_article_header"] .ja, [class*="_article_header"] h1, [class*="_article_header"] h2{
  color:var(--dyn-heading) !important; font-family:var(--dyn-font-display) !important;
  text-shadow:0 2px 14px rgba(0,0,0,.5) !important;
}
[class*="_article_header"] .en{ color:var(--dyn-muted) !important; font-family:var(--dyn-font-numeric) !important; letter-spacing:.1em; text-shadow:0 1px 10px rgba(0,0,0,.5) !important; }


/* ============================================================
   §3  ページネーション（.pagination_* / [class*="_pagenation"]）
   ============================================================ */
.pagination_num, .pagination_prev, .pagination_next,
[class*="_pagenation"] a, [class*="_pagenation"] span{
  font-family:var(--dyn-font-numeric); color:var(--dyn-text) !important;
  border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius);
  min-width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none;
}
.pagination_num.current, [class*="_pagenation"] .current, [class*="_pagenation"] .active{
  background:var(--dyn-accent) !important; border-color:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important;
}
.pagination_num:hover, .pagination_prev:hover, .pagination_next:hover{ border-color:var(--dyn-accent-2) !important; color:var(--dyn-accent-2) !important; }
.pe-none{ opacity:.3; pointer-events:none; }


/* ============================================================
   §4  ブログ / 施工実績(blog-ex) 一覧（番号非依存）
   ============================================================ */
/* 一覧セクションの地 */
[class*="_post_list"], [class*="_post_wrap"]{ } /* 下で個別指定 */
/* カード並び（最小幅を確保して細くなりすぎない） */
[class*="_post_list"]{ display:grid !important; grid-template-columns:repeat(auto-fill, minmax(var(--dyn-card-min), 1fr)) !important; gap:var(--dyn-gap) !important; }
/* カード */
[class*="_post_wrap"]{
  display:block !important; width:auto !important; max-width:none !important; text-decoration:none;
  background:var(--dyn-surface) !important; border:1px solid var(--dyn-border) !important;
  border-radius:var(--dyn-radius); overflow:hidden;
  transition:transform .3s ease, border-color .3s ease;
}
[class*="_post_wrap"]:hover{ transform:translateY(-4px); border-color:var(--dyn-accent-2) !important; }
[class*="_post_img"]{ width:100%; display:block; border-radius:0; }
/* カード内のテキストに左右余白 */
[class*="_post_status"]{ border:none !important; background:transparent !important; margin:14px 16px 0 !important; padding:0 !important; display:flex !important; gap:10px; align-items:center; }
[class*="_post_title-excerpt"]{ padding:10px 16px 16px !important; }
[class*="_post_title"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_post_excerpt"]{ color:var(--dyn-muted) !important; }
[class*="_post_date"]{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ/ステータスは1チップに */
[class*="_post_category"], [class*="_post_status"] > span:last-child{ border:1px solid var(--dyn-accent); border-radius:var(--dyn-radius); padding:2px 8px; color:var(--dyn-accent-2) !important; }
.parts-blog-ex-tag_wrap{ display:flex; flex-wrap:wrap; gap:6px; padding:0 16px 14px; }
.parts-blog-ex_tag{ font-size:.72rem; color:var(--dyn-muted) !important; background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:2px 8px; }


/* ============================================================
   §5  サイドバー / 最近の投稿 / カテゴリ記事数
   ============================================================ */
[class*="_sidebar"], .recent_posts_wrap{ color:var(--dyn-text); }
[class*="_sidebar_post_title"], .recent_post_title{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_sidebar_date"], .recent_post_date{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
/* カテゴリ右の記事数を視認できるチップに */
[class*="_sidebar_post_category_count"]{ background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:0 8px !important; }


/* ============================================================
   §6  詳細ページ（本文 / 署名 / SNS / 詳細内スライダー）
   ============================================================ */
.parts-blog-ex_text{ font-family:var(--dyn-font-body); color:var(--dyn-text) !important; line-height:1.9; }
.parts-blog-ex_text h2, .parts-blog-ex_text h3{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
.signature_wrap{ font-family:var(--dyn-font-display); color:var(--dyn-muted) !important; border-top:1px solid var(--dyn-border); padding-top:16px; }
.slick-prev, .slick-next{ color:var(--dyn-accent-2) !important; }
/* ※詳細本文の親ラッパーが固定class薄め。崩れる場合は実ページで本文コンテナを確認し追補 */


/* ============================================================
   §7  お問い合わせフォーム
   ============================================================ */
.contact_section, [class*="_section_form"], [class*="_section_content"], [class*="_content_wrap"], [class*="_content"]{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
[class*="_form_wrap"]{ max-width:720px; margin:0 auto; }
[class*="_form_wrap"] label, [class*="_form_wrap"] dt, [class*="_form_wrap"] .ja, [class*="_form_wrap"] .en{ color:var(--dyn-text) !important; }
/* 入力欄を十分な大きさに（チェック/ラジオは除外） */
[class*="_form_wrap"] dd input:not([type="checkbox"]):not([type="radio"]),
[class*="_form_wrap"] dd select{ width:100% !important; max-width:none !important; padding:14px 16px !important; font-size:16px !important; min-height:54px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
[class*="_form_wrap"] textarea, .form_textarea textarea{ width:100% !important; padding:14px 16px !important; font-size:16px !important; min-height:220px !important; background:var(--dyn-surface) !important; color:var(--dyn-text) !important; border:1px solid var(--dyn-border) !important; border-radius:var(--dyn-radius); }
/* チェックボックス/ラジオはサイズ統一 */
[class*="_form_wrap"] input[type="checkbox"], [class*="_form_wrap"] input[type="radio"]{ width:18px !important; height:18px !important; min-height:0 !important; padding:0 !important; margin:0 8px 0 0 !important; vertical-align:-3px; accent-color:var(--dyn-accent); flex:none !important; }
/* 必須バッジ: 文字を中央・折り返さない・角丸はトークン */
.required{ display:inline-flex !important; align-items:center !important; justify-content:center !important; line-height:1 !important; white-space:nowrap !important; padding:6px 12px !important; border-radius:var(--dyn-radius) !important; background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }
.error{ color:var(--dyn-accent-2) !important; }
/* 「お問い合わせ内容」を囲む大きな箱(枠線)を撤去 */
.form_textarea, .form_text_dt{ border:none !important; background:transparent !important; }
/* 送信ボタン */
.contact_submit, .contact_submit button, .contact_submit input{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; border:none !important; border-radius:var(--dyn-radius) !important; }
/* プライバシー同意 */
.privacypolicy{ background:var(--dyn-surface) !important; border:1px solid var(--dyn-border); border-radius:var(--dyn-radius); padding:16px; color:var(--dyn-muted) !important; }
.privacypolicy-link{ color:var(--dyn-accent-2) !important; }
/* 電話/メール等の content バー（角丸はトークン） */
[class*="_content"] [class*="btn"], [class*="_content"] a[class*="round"]{ border-radius:var(--dyn-radius) !important; }


/* ============================================================
   §8  トップ用 お知らせ/ブログ teaser（notice-news / blog teaser）
   ============================================================ */
.parts040506_notice-news{ background:var(--dyn-bg) !important; color:var(--dyn-text) !important; }
.parts040506_notice-news *{ color:var(--dyn-text) !important; }
.parts040506_notice-news .title, .parts040506_notice-news .title a{ color:var(--dyn-heading) !important; }
.parts040506_notice-news [class*="date"], .parts040506_notice-news .f_yugothic{ font-family:var(--dyn-font-numeric) !important; color:var(--dyn-muted) !important; }
.parts040506_notice-news .more{ white-space:nowrap !important; color:var(--dyn-accent-2) !important; }
.parts040506_notice-news a{ color:var(--dyn-accent-2) !important; }
/* サムネ型ブログ teaser */
[class*="_blog_title_wrap"]{ font-family:var(--dyn-font-display) !important; color:var(--dyn-heading) !important; }
[class*="_blog_thumbnail"]{ border-radius:var(--dyn-radius); }
/* teaser内が Bootstrap .card（既定で白）の場合のダーク/トーン化 */
[class*="_blog"] .card{ background:var(--dyn-surface) !important; border-color:var(--dyn-border) !important; border-radius:var(--dyn-radius) !important; }
[class*="_blog"] .card-title, [class*="_blog"] .card-text{ color:var(--dyn-text) !important; }
[class*="_blog"] .card-title{ font-family:var(--dyn-font-display) !important; }


/* ============================================================
   §9  Bootstrap汎用クラスの地ならし（パーツ内に限定）
       text-dark / bg-light 等がパーツ内でトーンを乱すのを抑える
   ============================================================ */
[class*="parts"] .text-dark{ color:var(--dyn-text) !important; }
[class*="parts"] .bg-light{ background:var(--dyn-surface) !important; }
.card-header.bg-light{ background:var(--dyn-accent) !important; color:var(--dyn-on-accent) !important; }


/* ============================================================
   §10  プライバシーポリシー（templates/privacy-policy.html のフリーコーディング設置版）
   ※CueZilla既定パーツ(item_title/item_description)へ転記する場合は §5 等で別途適用される
   ============================================================ */
.privacy{ max-width:880px; margin:0 auto; padding:64px 24px; color:var(--dyn-text); font-family:var(--dyn-font-body); line-height:1.9; }
.privacy__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,4vw,2.6rem); }
.privacy__subtitle{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:1.2rem; margin-top:8px; }
.privacy__lead{ color:var(--dyn-muted); margin:24px 0 40px; }
.privacy-item{ margin-bottom:32px; }
.privacy-item__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); border-left:3px solid var(--dyn-accent); padding-left:12px; margin-bottom:12px; }
.privacy-item__body{ color:var(--dyn-text); }
/* 原文の (1)(2)… 表記を維持（auto ol の "1." ではなく括弧付き番号で表示） */
.privacy-item__list{ list-style:none; counter-reset:pp; margin:8px 0; padding:0; }
.privacy-item__list li{ counter-increment:pp; padding-left:2.2em; text-indent:-2.2em; margin:4px 0; color:var(--dyn-text); }
.privacy-item__list li::before{ content:"(" counter(pp) ") "; }


/* ============================================================
   §11  下層ヘッダーパーツ（templates/subpage-header.html）
   サイトヘッダーとパンくずの間。フリーコーディングで別パーツ化
   ============================================================ */
/* padding-top に固定ヘッダー高さ(--fixed-header-h)を加算＝固定ヘッダーへのめり込み防止。
   固定ヘッダーが無いサイトは既定0で無影響。固定ヘッダー採用サイトは案件CSSで :root{ --fixed-header-h:88px } 等を設定（R-18）。 */
.subpage-header{ position:relative; padding:calc(72px + var(--fixed-header-h, 0px)) 24px 72px; background:var(--dyn-surface); text-align:center; overflow:hidden; }
.subpage-header__bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45; z-index:0; }
.subpage-header__inner{ position:relative; z-index:1; }
.subpage-header__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,3rem); line-height:1.3; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.subpage-header__en{ font-family:var(--dyn-font-numeric); color:var(--dyn-muted); letter-spacing:.12em; margin-top:8px; }


/* ============================================================
   §12  システム定型ページ：送信完了(thanks) / 404
   templates/thanks.html, templates/404.html 用。トークンスキン準拠
   ============================================================ */
.thanks, .notfound{ max-width:760px; margin:0 auto; padding:calc(80px + var(--fixed-header-h, 0px)) 24px 96px; text-align:center; }
/* CueZilla 既定404（section.not-found）はレイアウトを変えず、固定ヘッダー分の上余白だけ確保（R-18） */
.not-found{ padding-top: calc(var(--fixed-header-h, 0px) + 24px); }
.thanks__title, .notfound__title{ font-family:var(--dyn-font-display); color:var(--dyn-heading); font-size:clamp(1.8rem,5vw,2.6rem); line-height:1.3; margin-bottom:28px; }
.thanks__lead, .notfound__lead{ color:var(--dyn-text); line-height:2; margin-bottom:40px; }
.thanks__action, .notfound__action{ margin-top:8px; }


/* ============================================================
   §13  Bootstrap(テーマ)既定の恒久打ち消し（R-20）
   ------------------------------------------------------------
   CueZillaテーマが読み込む Bootstrap の "素のタグ/汎用クラス" が
   フリーHTMLに当たって崩す症状を、案件ごとの手当て無しで地ならしする。
   ここは確認済みの実害2件（test0605）に限定して打ち消す。
   ※「色/余白/タイポ」を意図して変える装飾は接頭辞クラス(.xw- 等)で
     付け直す＝下記より高詳細度になり、本セクションに勝つ（壊さない）。
   ============================================================ */
/* (a) <mark> / .mark の黄ハイライト背景：ロゴや見出しが黄色い箱になる症状 → 無効化。
       意図的なマーカー装飾は専用クラスで（Bootstrap名 .mark を流用しない＝R-20）。 */
mark, .mark{
  background-color:transparent !important; color:inherit !important;
  padding:0 !important; border-radius:0 !important;
}
/* (b) a:hover が Bootstrap青(#0a58ca)になる症状 → 既定は「ホバーで色を変えない」。
       !important は付けない＝個別のホバー装飾(接頭辞クラスや site.css の指定)が
       そのまま勝ち、未指定リンクだけが青化を免れる（フォールバック）。 */
a:hover{ color:inherit; }

/* (c) 電話番号リンク(tel:)の最低タップ確保（R-24／§5.5-3）。
       本文中インラインでも折り返さない。CTA/ボタン用途は接頭辞クラスで44px確保。 */
a[href^="tel:"]{ white-space:nowrap; }


/* ===== site-extra.override.css ===== */
/* 産王重機 追補CSS（R-18 固定ヘッダー高さ・補完ページ用） */
:root { --fixed-header-h: 104px; }
@media (max-width: 1240px) { :root { --fixed-header-h: 72px; } }

.parts231_breadcrumb.p-breadcrumb { display: none; }
.lhero[data-astro-cid-s5hxusys] { margin-top: 40px !important; }
header { margin-top: 0 !important; }
.ifeat[data-astro-cid-pibbkd2g] { grid-template-columns: repeat(4, 1fr) !important; }
.step-desc[data-astro-cid-mmp7dwgm] { white-space: nowrap; }

/* ── parts273 新着情報 ─────────────────────────── */
.parts273_z9pfPsg373 {
  background: #e8f0e9;
  padding: clamp(64px, 10vw, 120px) var(--gutter);
}
/* display:contents でh2・subheaderをcontainerの直接子にして並べ替え */
.parts273_z9pfPsg373 .container {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(28px, 4vw, 60px);
}
.parts273_z9pfPsg373 .header_wrap {
  display: contents;
}
/* subheaderを一番上・横幅100% */
.parts273_z9pfPsg373 .subheader {
  order: 1;
  width: 100%;
  font-size: 1.0625rem;
  color: var(--muted);
  margin: 0;
}
/* h2を左側に縦書き */
.parts273_z9pfPsg373 .header {
  order: 2;
  font-family: var(--font-serif);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  color: #000000;
  margin: 0;
  writing-mode: vertical-rl;
  letter-spacing: .12em;
  align-self: stretch;
}
/* カードエリアを右側 */
.parts273_z9pfPsg373 .content {
  order: 3;
  flex: 1 1 0;
  min-width: 0;
}
/* カードリスト（Bootstrapのrowを上書き） */
.parts273_z9pfPsg373 .row {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(20px, 2.5vw, 36px) !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
.parts273_z9pfPsg373 .row > li {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
}
/* カードリンク */
.parts273_z9pfPsg373 a.pb-4 {
  display: block !important;
  background: #fff;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(30,77,48,.06);
  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
  text-decoration: none;
  padding: 0 !important;
}
.parts273_z9pfPsg373 a.pb-4:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 50px rgba(30,77,48,.12);
}
/* カード内wrapper */
.parts273_z9pfPsg373 .d-lg-flex {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  margin: 0 !important;
}
/* サムネイル */
.parts273_z9pfPsg373 .image_area {
  aspect-ratio: 16 / 10;
  width: 100%;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  margin: 0 !important;
  overflow: hidden;
  transition: transform .8s var(--ease);
}
.parts273_z9pfPsg373 a.pb-4:hover .image_area { transform: scale(1.05); }
/* カード本文エリア */
.parts273_z9pfPsg373 .card-foot-area {
  padding: clamp(16px, 2vw, 24px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
}
/* 日付 */
.parts273_z9pfPsg373 .date {
  font-family: var(--font-mono);
  font-size: 1rem;
  color: var(--green);
  letter-spacing: .08em;
  margin: 0 0 6px !important;
  display: block;
}
/* カテゴリバッジ */
.parts273_z9pfPsg373 .categorytag {
  display: inline-block !important;
  font-size: .875rem !important;
  color: var(--muted) !important;
  background: var(--bg-soft) !important;
  padding: 2px 10px !important;
  border-radius: 100px !important;
  margin: 0 0 10px !important;
  text-align: left !important;
}
/* タイトル */
.parts273_z9pfPsg373 .card-foot-area > span:last-child {
  font-size: 1.0625rem !important;
  font-weight: 700 !important;
  color: var(--text) !important;
  line-height: 1.6;
  margin: 0 !important;
  display: block !important;
}
/* もっと見るボタン */
.parts273_z9pfPsg373 .past_link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: fit-content;
  margin: clamp(36px, 5vh, 56px) auto 0;
  padding: .75rem 2.2rem;
  border: 1.5px solid var(--green);
  border-radius: 100px;
  color: var(--green-dark) !important;
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-decoration: none;
  transition: background .3s, color .3s;
}
.parts273_z9pfPsg373 .past_link:hover { background: var(--green); color: #fff !important; }
.parts273_z9pfPsg373 .yazirusi { display: none; }
.parts273_z9pfPsg373 .past_link { font-size: 0; }
.parts273_z9pfPsg373 .past_link::after { content: "記事一覧へ"; font-size: 1rem; }

/* ── design-parts-8_z9pfPsg373 ───────────────── */
.design-parts-8_z9pfPsg373.bg-color { background-color: #e8f0e9 !important; }
.design-parts-8_z9pfPsg373 .container .header { text-align: left !important; }
/* レスポンシブ */
@media (max-width: 1240px) {
  .parts273_z9pfPsg373 .row { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 1024px) {
  .parts273_z9pfPsg373 { overflow-x: hidden; }
  .parts273_z9pfPsg373 .container { flex-direction: column; }
  .parts273_z9pfPsg373 .header {
    writing-mode: horizontal-tb;
    align-self: auto;
    width: 100%;
  }
  .parts273_z9pfPsg373 .content { flex: none; width: 100%; max-width: 100%; }
  .parts273_z9pfPsg373 .row { display: flex !important; flex-wrap: wrap !important; max-width: 100% !important; }
  .parts273_z9pfPsg373 .row > li { width: 48% !important; max-width: 48% !important; }
}
@media (max-width: 640px) {
  .parts273_z9pfPsg373 .container { flex-direction: column; align-items: center; }
  .parts273_z9pfPsg373 .header {
    writing-mode: horizontal-tb;
    align-self: auto;
    width: 100%;
    font-size: clamp(1.75rem, 6vw, 2.5rem);
  }
  .parts273_z9pfPsg373 .content { flex: none; width: 100%; }
  .parts273_z9pfPsg373 .row {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .parts273_z9pfPsg373 .row > li { width: 100% !important; max-width: 100% !important; flex: none !important; }
}

/* ── 640px以下 共通調整 ─────────────────────────────────────── */
@media (max-width: 640px) {
  .lhero-crumb[data-astro-cid-s5hxusys] { transform: translateY(40px); }
  .design-parts-8_z9pfPsg373 .container .content { display: block !important; }
  .ifeat[data-astro-cid-pibbkd2g] {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
  }
  .ifeat-item[data-astro-cid-pibbkd2g],
  .ifeat-item[data-astro-cid-pibbkd2g].is-in { width: 100% !important; max-width: 100% !important; }
}

/* ── parts222 post_wrap margin-bottom リセット ──────────────── */
.parts222_post_wrap:nth-child(7),
.parts222_post_wrap:last-child { margin-bottom: auto !important; }

/* ── parts222 カテゴリサイドバー border 除去 ─────────────────── */
.parts222_sidebar_post_category,
.parts222_sidebar_post_category_count.f_yugothic {
  border: none !important;
}