@charset "UTF-8";
/* =====================================================================
   TRINITY marriage 結寿 ─ サイト共通スタイル
   ---------------------------------------------------------------------
   このファイルは index.html の <style> を機械的に写した自動生成物です。
   直接編集しないこと。TOPのCSSを直したら次のコマンドで再生成します。
       python3 _build/run.py
   下層ページ固有のスタイルは assets/sub-extra.css に書きます。
   ===================================================================== */
  :root {
    /* ── TRINITY marriage 結寿 カラー定義 ─────────────────
       ロゴ：ローズピンク × ダークブラウン
       写真トーン：夕日ゴールド・アイボリー・グレーベージュ
    ─────────────────────────────────────────────────── */
    --wire-bg: #faf6f3;          /* アイボリーベージュ（ページ地） */
    --wire-block: #f0e8e2;       /* ライトローズベージュ（カード地） */
    --wire-line: #d4c4bb;        /* ウォームグレー（ボーダー） */
    --wire-dark: #3d2218;        /* ダークブラウン（ロゴ文字色） */
    --wire-mid: #8c6e63;         /* ミドルブラウン（サブテキスト） */
    --wire-accent: #c9837e;      /* ローズピンク（ロゴ主色） */
    --wire-accent-light: #e8b8b5;/* ライトローズ（ホバー・タグ） */
    --wire-gold: #b8965a;        /* 夕日ゴールド（装飾アクセント） */
    --wire-white: #fffaf8;       /* オフホワイト */
    --wire-img: #d6c9c2;         /* 画像プレースホルダー */
    --wire-img-dark: #b8a89e;    /* 濃い画像プレースホルダー */
    --wire-btn: #3d2218;         /* ボタン地 */
    --wire-tag: #f0e2df;         /* タグ地（ローズ系） */
  }

  html { scroll-behavior: smooth; }
  * { box-sizing: border-box; margin: 0; padding: 0; }

  body {
    font-family: 'Noto Serif JP', serif;
    background: var(--wire-bg);
    color: var(--wire-dark);
    font-size: 13px;
    line-height: 1.7;
  }

  /* ─── LABEL SYSTEM ─── */
  .wf-label {
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--wire-mid);
    display: block;
    margin-bottom: 4px;
  }
  .wf-section-tag {
    display: inline-block;
    font-size: 9px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    background: var(--wire-tag);
    color: var(--wire-mid);
    padding: 3px 10px;
    border-radius: 20px;
    margin-bottom: 12px;
  }

  /* ─── PLACEHOLDER BLOCKS ─── */
  .img-ph {
    background: var(--wire-img);
    border: 1.5px dashed var(--wire-line);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
  }
  .img-ph::after {
    content: '';
    position: absolute;
    inset: 0;
    background: repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 8px,
      rgba(0,0,0,0.03) 8px,
      rgba(0,0,0,0.03) 9px
    );
  }
  .img-ph span {
    font-family: 'Cormorant Garamond', serif;
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.1em;
    z-index: 1;
    text-align: center;
    padding: 8px;
  }
  .img-ph-dark {
    background: var(--wire-img-dark);
  }

  .text-ph {
    background: var(--wire-block);
    height: 10px;
    border-radius: 3px;
    margin-bottom: 6px;
  }
  .text-ph.short { width: 60%; }
  .text-ph.medium { width: 80%; }
  .text-ph.full { width: 100%; }
  .text-ph.title { height: 18px; width: 70%; margin-bottom: 10px; }
  .text-ph.subtitle { height: 14px; width: 50%; margin-bottom: 8px; }

  .btn-ph {
    display: inline-block;
    padding: 10px 28px;
    border: 1.5px solid var(--wire-dark);
    border-radius: 2px;
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.15em;
    color: var(--wire-dark);
    text-decoration: none;
    margin-top: 8px;
  }
  .btn-ph.solid {
    background: var(--wire-dark);
    color: var(--wire-white);
  }
  .btn-ph.accent {
    border-color: var(--wire-accent);
    color: var(--wire-accent);
  }

  /* ─── PAGE STRUCTURE ─── */
  .page-wrapper {
    max-width: 100%;
    background: var(--wire-white);
  }

  /* ─── HEADER ─── */
  .wf-header {
    background: var(--wire-bg);
    border-bottom: 1.5px solid var(--wire-line);
    padding: 0 60px;
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 100;
    overflow: hidden;
    background: rgba(250,246,243,0.96);
    backdrop-filter: blur(8px);
  }
  .header-logo {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
  }

  .header-logo-img {
    height: 72px;
    width: auto;
    display: block;
    object-fit: contain;
    mix-blend-mode: multiply;
  }

  .header-logo .en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    color: var(--wire-dark);
    white-space: nowrap;
  }
  .header-logo .ja {
    font-size: 8px;
    color: var(--wire-mid);
    letter-spacing: 0.08em;
    white-space: nowrap;
  }
  .header-nav {
    display: flex;
    gap: 14px;
    list-style: none;
    flex-shrink: 1;
    min-width: 0;
  }
  .header-nav li {
    font-size: 10px;
    letter-spacing: 0.04em;
    color: var(--wire-mid);
    cursor: pointer;
    padding: 4px 0;
    border-bottom: 1px solid transparent;
    white-space: nowrap;
  }
  .header-nav li:hover {
    border-bottom-color: var(--wire-accent);
    color: var(--wire-dark);
  }
  .header-cta {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
  }
  .cta-line {
    background: var(--wire-block);
    padding: 7px 12px;
    border-radius: 3px;
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.04em;
    white-space: nowrap;
  }
  .cta-contact {
    background: var(--wire-dark);
    color: var(--wire-white);
    padding: 7px 14px;
    border-radius: 3px;
    font-size: 10px;
    letter-spacing: 0.04em;
    white-space: nowrap;
  }

  /* ─── SECTIONS GENERAL ─── */
  section {
    padding: 80px 60px;
    position: relative;
    max-width: 1080px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
  /* section の交互背景は .section-wrap で制御 */

  .section-header {
    margin-bottom: 48px;
    text-align: center;
  }
  .section-header .en-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.25em;
    color: var(--wire-mid);
    display: block;
    line-height: 1;
    text-transform: uppercase;
  }
  .section-header .ja-title {
    font-family: 'Noto Serif JP', serif;
    font-size: 28px;
    font-weight: 300;
    color: var(--wire-dark);
    letter-spacing: 0.1em;
    display: block;
    margin-top: 6px;
    line-height: 1.3;
  }
  .section-divider {
    width: 40px;
    height: 1px;
    background: var(--wire-accent);
    margin: 14px auto 0;
  }

  /* ─── HERO ─── */
  .wf-hero {
    padding: 0;
    position: relative;
    height: 600px;
    overflow: hidden;
    background: var(--wire-img-dark);
    max-width: 100%;
    margin: 0;
  }
  .hero-bg {
    width: 100%;
    height: 100%;
    background: var(--wire-img-dark);
    border: none;
    border-radius: 0;
    position: absolute;
    inset: 0;
  }
  .hero-bg span { font-size: 12px; }
  .hero-overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(to right, rgba(30,15,8,0.72) 0%, rgba(30,15,8,0.25) 60%, rgba(30,15,8,0.05) 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 80px 80px;
  }
  .hero-tag {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: rgba(255,255,255,0.7);
    text-transform: uppercase;
    margin-bottom: 20px;
    display: block;
  }
  .hero-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 44px;
    font-weight: 300;
    color: #fff;
    line-height: 1.2;
    letter-spacing: 0.12em;
    margin-bottom: 2px;
    white-space: nowrap;
  }
  .hero-title-ja {
    font-size: 20px;
    color: rgba(255,255,255,0.9);
    letter-spacing: 0.3em;
    margin-bottom: 28px;
    font-weight: 300;
  }
  .hero-copy {
    font-size: 12px;
    color: rgba(255,255,255,0.8);
    max-width: 320px;
    line-height: 1.9;
    margin-bottom: 36px;
    letter-spacing: 0.05em;
  }
  .hero-btns {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
  }
  .hero-btn {
    padding: 12px 32px;
    font-size: 11px;
    letter-spacing: 0.15em;
    border: 1.5px solid rgba(255,255,255,0.8);
    color: #fff;
    border-radius: 2px;
    cursor: pointer;
    background: rgba(255,255,255,0.1);
  }
  .hero-btn.primary {
    background: rgba(255,255,255,0.9);
    color: var(--wire-dark);
    border-color: transparent;
  }
  .hero-scroll {
    position: absolute;
    bottom: 32px;
    right: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
  .hero-scroll span {
    font-family: 'Cormorant Garamond', serif;
    font-size: 9px;
    letter-spacing: 0.2em;
    color: rgba(255,255,255,0.6);
    text-transform: uppercase;
  }
  .scroll-line {
    width: 1px;
    height: 40px;
    background: rgba(255,255,255,0.4);
  }

  /* ─── SLOGAN BAND ─── */
  .wf-slogan {
    background: var(--wire-dark);
    padding: 28px 60px;
    text-align: center;
  }
  .slogan-text {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    font-style: italic;
    color: rgba(255,255,255,0.85);
    letter-spacing: 0.2em;
  }

  /* ─── PHILOSOPHY ─── */
  .philosophy-story {
    margin-top: 56px;
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
  }
  /* 縦の連結ライン */
  .philosophy-story::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom, transparent, var(--wire-line) 10%, var(--wire-line) 90%, transparent);
    transform: translateX(-50%);
  }
  .philo-row {
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
    align-items: center;
    gap: 0;
    margin-bottom: 0;
    position: relative;
  }
  /* ノードのエリア */
  .philo-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 2;
  }
  .philo-node-circle {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--wire-white);
    border: 2px solid var(--wire-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 9px;
    letter-spacing: 0.1em;
    color: var(--wire-accent);
    text-align: center;
    line-height: 1.3;
    flex-shrink: 0;
  }
  /* コンテンツカード */
  .philo-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 28px 32px;
    position: relative;
  }
  .philo-card.left { text-align: right; }
  .philo-card.right { text-align: left; }
  /* カードの矢印 */
  .philo-card.left::after {
    content: '';
    position: absolute;
    right: -9px;
    top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 9px solid var(--wire-line);
  }
  .philo-card.left::before {
    content: '';
    position: absolute;
    right: -7px;
    top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-left: 8px solid var(--wire-white);
    z-index: 1;
  }
  .philo-card.right::after {
    content: '';
    position: absolute;
    left: -9px;
    top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-right: 9px solid var(--wire-line);
  }
  .philo-card.right::before {
    content: '';
    position: absolute;
    left: -7px;
    top: 50%;
    transform: translateY(-50%);
    width: 0; height: 0;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    border-right: 8px solid var(--wire-white);
    z-index: 1;
  }
  .philo-card-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-weight: 300;
    letter-spacing: 0.2em;
    color: var(--wire-accent);
    display: block;
    margin-bottom: 4px;
  }
  .philo-card-ja {
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.12em;
    display: block;
    margin-bottom: 14px;
  }
  .philo-card-body {
    font-size: 13px;
    color: var(--wire-dark);
    line-height: 1.85;
    letter-spacing: 0.04em;
  }
  /* 空きセル（左右の空き） */
  .philo-empty { }
  /* スペーサー行 */
  .philo-spacer {
    height: 40px;
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
  }
  /* 最後のスローガンバナー */
  .philo-slogan-row {
    margin-top: 40px;
    position: relative;
    z-index: 2;
  }
  .philo-slogan-banner {
    background: var(--wire-dark);
    border-radius: 4px;
    padding: 32px 48px;
    text-align: center;
    position: relative;
  }
  .philo-slogan-banner::before {
    content: '';
    position: absolute;
    top: -24px;
    left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 24px;
    background: var(--wire-accent);
  }
  .philo-slogan-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: rgba(255,255,255,0.45);
    text-transform: uppercase;
    display: block;
    margin-bottom: 12px;
  }
  .philo-slogan-text {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-style: italic;
    color: rgba(255,255,255,0.9);
    letter-spacing: 0.15em;
    display: block;
    margin-bottom: 8px;
  }
  .philo-slogan-ja {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    letter-spacing: 0.2em;
    display: block;
  }

  /* ─── REASON ─── */
  .reason-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
  }
  .reason-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
    transition: box-shadow 0.2s;
  }
  .reason-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.06);
  }
  .reason-img {
    width: 100%;
    height: 160px;
  }
  .reason-body {
    padding: 20px;
  }
  .reason-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    color: var(--wire-line);
    line-height: 1;
    display: block;
    margin-bottom: 8px;
  }
  .reason-title { height: 14px; width: 80%; background: var(--wire-block); border-radius: 3px; margin-bottom: 12px; }
  .reason-desc .text-ph { margin-bottom: 5px; }
  .reason-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
  }
  .reason-tag {
    font-size: 9px;
    letter-spacing: 0.08em;
    color: var(--wire-mid);
    background: var(--wire-tag);
    padding: 3px 10px;
    border-radius: 20px;
  }

  /* ─── MESSAGE ─── */
  .message-inner {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 60px;
    align-items: start;
    margin-top: 48px;
  }
  .message-img {
    width: 100%;
    height: 380px;
    border-radius: 4px;
  }
  .message-content { }
  .message-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 13px;
    letter-spacing: 0.15em;
    color: var(--wire-accent);
    margin-bottom: 4px;
  }
  .message-title-ph {
    height: 20px;
    width: 90%;
    background: var(--wire-block);
    border-radius: 3px;
    margin-bottom: 24px;
  }
  .message-paras {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .message-para { display: flex; flex-direction: column; gap: 5px; }
  .message-sig {
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--wire-line);
    display: flex;
    align-items: center;
    gap: 16px;
  }
  .sig-icon {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--wire-img);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    color: var(--wire-mid);
    flex-shrink: 0;
  }
  .sig-name {
    font-size: 12px;
    color: var(--wire-dark);
    letter-spacing: 0.08em;
  }
  .sig-title { font-size: 10px; color: var(--wire-mid); letter-spacing: 0.05em; }

  /* ─── TRACK RECORD ─── */
  .track-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
  }
  .track-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
    text-align: center;
  }
  .track-img {
    width: 100%;
    height: 140px;
  }
  .track-body {
    padding: 20px 16px;
  }
  .track-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 38px;
    font-weight: 300;
    color: var(--wire-dark);
    line-height: 1;
  }
  .track-unit {
    font-size: 14px;
    color: var(--wire-mid);
  }
  .track-label { height: 12px; width: 70%; background: var(--wire-block); border-radius: 3px; margin: 10px auto 6px; }
  .track-desc { height: 10px; width: 90%; background: var(--wire-block); border-radius: 3px; margin: 0 auto; }

  /* ─── VOICE ─── */
  .voice-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 48px;
  }
  .voice-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
    display: flex;
    gap: 0;
    align-items: center;
  }
  .voice-img {
    width: 120px;
    height: 120px;
    flex-shrink: 0;
    background: var(--wire-img);
    border-radius: 0;
  }
  .voice-body {
    padding: 18px 20px;
    flex: 1;
  }
  .voice-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
  }
  .voice-badge {
    font-size: 9px;
    letter-spacing: 0.06em;
    background: var(--wire-tag);
    color: var(--wire-mid);
    padding: 3px 8px;
    border-radius: 2px;
  }
  .voice-period { font-size: 10px; color: var(--wire-mid); }
  .voice-title { height: 12px; width: 85%; background: var(--wire-block); border-radius: 3px; margin-bottom: 8px; }
  .voice-desc .text-ph { margin-bottom: 5px; }

  /* ─── SERVICE COMPARISON ─── */
  .comparison-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 48px;
    font-size: 11px;
  }
  .comparison-table th, .comparison-table td {
    border: 1px solid var(--wire-line);
    padding: 14px 16px;
    text-align: center;
    vertical-align: middle;
  }
  .comparison-table th {
    background: var(--wire-block);
    font-weight: 600;
    letter-spacing: 0.08em;
    font-size: 11px;
  }
  .comparison-table th.highlight {
    background: var(--wire-dark);
    color: var(--wire-white);
  }
  .comparison-table td.highlight {
    background: rgba(184,154,122,0.08);
  }
  .comparison-table tr:nth-child(even) td { background: var(--wire-bg); }
  .comparison-table tr:nth-child(even) td.highlight { background: rgba(184,154,122,0.12); }
  .check { color: var(--wire-accent); font-size: 16px; }
  .cross { color: var(--wire-line); font-size: 14px; }

  /* ─── FLOW ─── */
  .flow-steps {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 48px;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }
  .flow-step {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    position: relative;
  }
  .flow-step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 20px;
    top: 44px;
    width: 1px;
    height: calc(100% - 8px);
    background: var(--wire-line);
    z-index: 0;
  }
  .flow-num {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--wire-dark);
    color: var(--wire-white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 16px;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
  }
  .flow-content {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 18px 22px;
    flex: 1;
    margin-bottom: 20px;
  }
  .flow-title { height: 14px; width: 50%; background: var(--wire-block); border-radius: 3px; margin-bottom: 8px; }
  .flow-desc .text-ph { margin-bottom: 5px; }

  /* ─── PLAN ─── */
  .plan-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
  }
  .plan-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 28px 24px;
    text-align: center;
    position: relative;
  }
  .plan-card.featured {
    border-color: var(--wire-accent);
    box-shadow: 0 8px 32px rgba(184,154,122,0.15);
  }
  .plan-badge {
    position: absolute;
    top: -10px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--wire-accent);
    color: var(--wire-white);
    font-size: 9px;
    letter-spacing: 0.12em;
    padding: 3px 14px;
    border-radius: 20px;
    white-space: nowrap;
  }
  .plan-name { height: 16px; width: 60%; background: var(--wire-block); border-radius: 3px; margin: 0 auto 16px; }
  .plan-price-area {
    margin: 16px 0;
    padding: 16px 0;
    border-top: 1px solid var(--wire-line);
    border-bottom: 1px solid var(--wire-line);
  }
  .plan-price {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    color: var(--wire-dark);
    line-height: 1;
  }
  .plan-price-unit { font-size: 11px; color: var(--wire-mid); }
  .plan-features {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    text-align: left;
  }
  .plan-feature { display: flex; align-items: center; gap: 8px; }
  .plan-check {
    width: 14px;
    height: 14px;
    background: var(--wire-tag);
    border-radius: 50%;
    flex-shrink: 0;
  }
  .plan-feature-text { height: 10px; background: var(--wire-block); border-radius: 3px; flex: 1; }

  /* ─── CASE ─── */
  .case-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
  }
  .case-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
    text-align: center;
  }
  .case-img {
    width: 100%;
    height: 140px;
  }
  .case-body { padding: 20px 16px; }
  .case-q { height: 12px; width: 75%; background: var(--wire-block); border-radius: 3px; margin: 0 auto 8px; }
  .case-q2 { height: 12px; width: 55%; background: var(--wire-block); border-radius: 3px; margin: 0 auto 10px; }
  .case-desc .text-ph { margin-bottom: 5px; }

  /* ─── CTA BAND ─── */
  .wf-cta {
    position: relative;
    padding: 72px 60px;
    text-align: center;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  .wf-cta::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(25,10,4,0.72);
    z-index: 0;
  }
  .wf-cta > * {
    position: relative;
    z-index: 1;
  }
  .cta-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.3em;
    color: rgba(255,255,255,0.5);
    text-transform: uppercase;
    display: block;
    margin-bottom: 16px;
  }
  .cta-title {
    font-size: 22px;
    color: #fff;
    letter-spacing: 0.2em;
    margin-bottom: 12px;
    font-weight: 300;
  }
  .cta-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    letter-spacing: 0.1em;
    margin-bottom: 32px;
    line-height: 1.8;
  }
  .cta-btns { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
  .cta-btn {
    padding: 14px 40px;
    font-size: 11px;
    letter-spacing: 0.15em;
    border: 1.5px solid rgba(255,255,255,0.6);
    color: #fff;
    border-radius: 2px;
    cursor: pointer;
    background: transparent;
  }
  .cta-btn.line {
    background: rgba(255,255,255,0.08);
  }
  .cta-btn.primary {
    background: rgba(255,255,255,0.9);
    color: var(--wire-dark);
    border-color: transparent;
  }

  /* ─── NEWS / BLOG ─── */
  .news-list {
    border-top: 1px solid var(--wire-line);
    margin-top: 48px;
  }
  .news-item {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 18px 0;
    border-bottom: 1px solid var(--wire-line);
  }
  .news-date {
    font-family: 'Cormorant Garamond', serif;
    font-size: 12px;
    color: var(--wire-mid);
    letter-spacing: 0.1em;
    width: 80px;
    flex-shrink: 0;
  }
  .news-cat {
    font-size: 9px;
    letter-spacing: 0.1em;
    background: var(--wire-tag);
    color: var(--wire-mid);
    padding: 2px 10px;
    border-radius: 2px;
    white-space: nowrap;
  }
  .news-title { height: 12px; background: var(--wire-block); border-radius: 3px; flex: 1; }

  .blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-top: 48px;
  }
  .blog-card {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
  }
  .blog-img { width: 100%; height: 140px; }
  .blog-body { padding: 18px; }
  .blog-date { font-family: 'Cormorant Garamond', serif; font-size: 11px; color: var(--wire-mid); display: block; margin-bottom: 8px; }
  .blog-title { height: 12px; width: 90%; background: var(--wire-block); border-radius: 3px; margin-bottom: 6px; }
  .blog-title2 { height: 12px; width: 70%; background: var(--wire-block); border-radius: 3px; }

  /* ─── CONTACT ─── */
  .contact-inner {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 60px;
    margin-top: 48px;
    align-items: start;
  }
  .contact-form {
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 32px;
  }
  .form-field {
    margin-bottom: 20px;
  }
  .form-label { display: block; font-size: 11px; color: var(--wire-mid); letter-spacing: 0.08em; margin-bottom: 6px; }
  .form-input {
    width: 100%;
    height: 38px;
    background: var(--wire-bg);
    border: 1px solid var(--wire-line);
    border-radius: 3px;
  }
  .form-textarea {
    width: 100%;
    height: 100px;
    background: var(--wire-bg);
    border: 1px solid var(--wire-line);
    border-radius: 3px;
  }
  .contact-info {
    padding: 0;
  }
  .contact-info-item {
    padding: 16px 0;
    border-bottom: 1px solid var(--wire-line);
  }
  .info-label { font-size: 10px; color: var(--wire-mid); letter-spacing: 0.12em; margin-bottom: 4px; }
  .info-value { font-size: 12px; color: var(--wire-dark); letter-spacing: 0.05em; line-height: 1.6; }
  .contact-map {
    width: 100%;
    height: 160px;
    margin-top: 20px;
    background: var(--wire-img);
    border: 1.5px dashed var(--wire-line);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.1em;
  }

  /* ─── FOOTER ─── */
  .wf-footer {
    background: var(--wire-dark);
    padding: 56px 60px 32px;
  }
  .footer-inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 48px;
    padding-bottom: 40px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    max-width: 960px;
    margin: 0 auto;
  }
  .footer-brand-en {
    font-family: 'Cormorant Garamond', serif;
    font-size: 18px;
    letter-spacing: 0.2em;
    color: rgba(255,255,255,0.9);
    display: block;
    margin-bottom: 4px;
  }
  .footer-brand-ja {
    font-size: 10px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 0.15em;
    display: block;
    margin-bottom: 16px;
  }
  .footer-addr { font-size: 10px; color: rgba(255,255,255,0.5); line-height: 1.8; letter-spacing: 0.05em; }
  .footer-nav-title {
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    margin-bottom: 16px;
    font-family: 'Cormorant Garamond', serif;
  }
  .footer-nav-list { list-style: none; }
  .footer-nav-list li {
    font-size: 11px;
    color: rgba(255,255,255,0.5);
    padding: 5px 0;
    letter-spacing: 0.05em;
    cursor: pointer;
  }
  .footer-nav-list li:hover { color: rgba(255,255,255,0.9); }
  .footer-bottom {
    padding-top: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .footer-copy {
    font-size: 10px;
    color: rgba(255,255,255,0.3);
    letter-spacing: 0.08em;
  }
  .footer-social {
    display: flex;
    gap: 12px;
  }
  .social-icon {
    width: 32px;
    height: 32px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: rgba(255,255,255,0.5);
    cursor: pointer;
  }
  .social-icon:hover { border-color: rgba(255,255,255,0.6); color: rgba(255,255,255,0.9); }

  /* ─── ANNOTATION SYSTEM ─── */
  .annotation {
    position: relative;
  }
  .note {
    position: absolute;
    right: -160px;
    top: 0;
    width: 150px;
    background: #fffde8;
    border: 1px solid #e8d870;
    border-radius: 3px;
    padding: 8px 10px;
    font-size: 9px;
    line-height: 1.5;
    color: #6b5e00;
    letter-spacing: 0.04em;
  }
  .note::before {
    content: '';
    position: absolute;
    left: -8px;
    top: 10px;
    width: 0;
    height: 0;
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-right: 8px solid #e8d870;
  }

  /* ─── MORE LINK ─── */
  .more-link {
    text-align: center;
    margin-top: 40px;
  }
  .more-link a {
    font-family: 'Cormorant Garamond', serif;
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--wire-mid);
    text-decoration: none;
    border-bottom: 1px solid var(--wire-line);
    padding-bottom: 2px;
  }

  /* ─── TOP ANNOTATION BAR ─── */
  .wf-meta {
    background: #2c2520;
    color: rgba(255,255,255,0.6);
    padding: 10px 60px;
    font-size: 10px;
    letter-spacing: 0.15em;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .wf-meta span:first-child {
    font-family: 'Cormorant Garamond', serif;
    font-size: 12px;
    color: rgba(255,255,255,0.8);
    letter-spacing: 0.2em;
  }

  /* ─── CONCEPT ─── */
  .concept-inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 56px;
    align-items: start;
    margin-top: 48px;
  }
  .concept-img {
    width: 100%;
    height: 360px;
    border-radius: 4px;
  }
  .concept-body { }
  .concept-catch {
    font-family: 'Noto Serif JP', serif;
    font-size: 17px;
    font-weight: 400;
    color: var(--wire-dark);
    line-height: 1.75;
    letter-spacing: 0.08em;
    margin-bottom: 20px;
  }
  .concept-divider {
    width: 32px;
    height: 1px;
    background: var(--wire-accent);
    margin-bottom: 20px;
  }
  .concept-text {
    font-size: 12px;
    color: var(--wire-mid);
    line-height: 1.95;
    letter-spacing: 0.04em;
    margin-bottom: 16px;
  }

  /* ─── PROMISE ─── */
  .promise-section {
    position: relative;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  .promise-section::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(30,12,5,0.68);
    z-index: 0;
  }
  .promise-section > * {
    position: relative;
    z-index: 1;
  }
  .promise-section .section-header .en-title {
    color: rgba(255,255,255,0.9);
  }
  .promise-section .section-header .ja-title {
    color: rgba(255,255,255,0.5);
  }
  .promise-section .wf-section-tag {
    background: rgba(255,255,255,0.1);
    color: rgba(255,255,255,0.6);
  }
  .promise-inner {
    max-width: 640px;
    margin: 40px auto 0;
    text-align: center;
  }
  .promise-catch {
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 400;
    color: rgba(255,255,255,0.9);
    line-height: 1.8;
    letter-spacing: 0.1em;
    margin-bottom: 28px;
    padding-bottom: 28px;
    border-bottom: 1px solid rgba(255,255,255,0.15);
  }
  .promise-text {
    font-size: 12px;
    color: rgba(255,255,255,0.6);
    line-height: 2;
    letter-spacing: 0.05em;
  }

  /* ─── NAME ORIGIN ─── */
  .nameorigin-inner {
    display: grid;
    grid-template-columns: 1fr 1px 1fr;
    gap: 48px;
    align-items: start;
    margin-top: 48px;
  }
  .nameorigin-divider {
    background: var(--wire-line);
    width: 1px;
    height: 100%;
    min-height: 200px;
    align-self: stretch;
  }
  .nameorigin-heading {
    font-size: 13px;
    font-weight: 600;
    color: var(--wire-dark);
    line-height: 1.7;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
  }
  .nameorigin-sub,
  .nameorigin-text {
    font-size: 12px;
    color: var(--wire-mid);
    line-height: 1.95;
    letter-spacing: 0.03em;
    margin-bottom: 24px;
  }
  .nameorigin-meaning-line {
    display: inline-flex;
    flex-wrap: wrap;
    column-gap: 1em;
    row-gap: 0;
  }
  .nameorigin-meaning-line span {
    white-space: nowrap;
  }
  .trinity-three {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
  }
  .trinity-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
  }
  .trinity-icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1.5px solid var(--wire-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Serif JP', serif;
    font-size: 18px;
    color: var(--wire-accent);
    background: var(--wire-white);
  }
  .trinity-label {
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.08em;
  }
  .trinity-plus {
    font-size: 18px;
    color: var(--wire-line);
    margin-bottom: 16px;
    font-weight: 300;
  }
  .yuzu-kanji {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-top: 24px;
    flex-wrap: wrap;
  }
  .yuzu-char {
    font-family: 'Noto Serif JP', serif;
    font-size: 48px;
    font-weight: 300;
    color: var(--wire-accent);
    line-height: 1;
    letter-spacing: 0.05em;
  }
  .yuzu-char-label {
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.1em;
    margin-right: 8px;
  }
  .yuzu-kanji-pair {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    white-space: nowrap;
  }

  /* ─── MESSAGE REAL TEXT ─── */
  .message-real-text {
    font-size: 12px;
    color: var(--wire-mid);
    line-height: 2;
    letter-spacing: 0.04em;
  }

  /* ─── HERO キラキラ i ─── */
  .hero-I {
    /* 大文字I: スパークルなし */
    display: inline-block;
  }
  .hero-i {
    /* 小文字i: iの点の位置にスパークル */
    position: relative;
    display: inline-block;
    /* iの点を非表示にして✦に置き換える */
  }
  .hero-i::after {
    content: '✦';
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 8px;
    color: rgba(255,255,255,1);
    animation: sparkle 2.2s ease-in-out infinite;
    line-height: 1;
    pointer-events: none;
  }
  @keyframes sparkle {
    0%, 100% { opacity: 0.3; transform: translateX(-50%) scale(0.7); }
    50% { opacity: 1; transform: translateX(-50%) scale(1.3); }
  }
  .hero-title-sub {
    font-family: 'Cormorant Garamond', serif;
    font-size: 48px;
    font-weight: 300;
    color: rgba(255,255,255,0.95);
    letter-spacing: 0.08em;
    margin-bottom: 4px;
    line-height: 1.1;
  }
  .hero-yuzu {
    font-family: 'Cormorant Garamond', serif;
    font-size: 44px;
    font-weight: 300;
    letter-spacing: 0.12em;
  }

  /* ─── REASON card text ─── */
  .reason-card-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--wire-dark);
    letter-spacing: 0.05em;
    margin-bottom: 10px;
    line-height: 1.6;
  }
  .reason-card-text {
    font-size: 11px;
    color: var(--wire-mid);
    line-height: 1.9;
    letter-spacing: 0.03em;
  }

  /* ─── FLOW lead & step text ─── */
  .flow-lead {
    text-align: center;
    font-size: 13px;
    color: var(--wire-dark);
    letter-spacing: 0.08em;
    margin-bottom: 40px;
    font-weight: 600;
  }
  .flow-step-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--wire-dark);
    letter-spacing: 0.05em;
    margin-bottom: 6px;
  }
  .flow-step-text {
    font-size: 12px;
    color: var(--wire-mid);
    line-height: 1.85;
    letter-spacing: 0.03em;
    margin: 0;
  }

  /* ─── PLAN OPTIONS ─── */
  .plan-option-section {
    margin-top: 56px;
    padding-top: 40px;
    border-top: 1px solid var(--wire-line);
  }
  .plan-option-title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    letter-spacing: 0.15em;
    color: var(--wire-dark);
    text-align: center;
    margin-bottom: 32px;
  }
  .plan-option-title-num {
    font-family: 'Cormorant Garamond', serif;
    font-variant-numeric: lining-nums;
  }
  .plan-option-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
  .plan-option-card {
    background: var(--wire-bg);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 24px 20px;
    text-align: center;
  }
  .plan-option-num {
    font-family: 'Cormorant Garamond', serif;
    font-size: 28px;
    color: var(--wire-line);
    line-height: 1;
    margin-bottom: 8px;
  }
  .plan-option-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--wire-dark);
    letter-spacing: 0.05em;
    margin-bottom: 10px;
  }
  .plan-option-text {
    font-size: 11px;
    color: var(--wire-mid);
    line-height: 1.85;
    letter-spacing: 0.03em;
    margin: 0;
  }
  .plan-option-note {
    text-align: center;
    font-size: 11px;
    color: var(--wire-mid);
    margin-top: 20px;
    letter-spacing: 0.05em;
  }

  /* ─── FAQ ─── */
  .faq-list {
    max-width: 720px;
    margin: 40px auto 0;
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .faq-item {
    border-bottom: 1px solid var(--wire-line);
  }
  .faq-q, .faq-a {
    padding: 18px 0;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    font-size: 12px;
    line-height: 1.85;
    letter-spacing: 0.03em;
  }
  .faq-q {
    font-weight: 600;
    color: var(--wire-dark);
    border-bottom: 1px dashed var(--wire-line);
  }
  .faq-a {
    color: var(--wire-mid);
  }
  .faq-icon {
    font-family: 'Cormorant Garamond', serif;
    font-size: 20px;
    font-weight: 300;
    color: var(--wire-accent);
    flex-shrink: 0;
    line-height: 1.4;
  }
  .faq-icon-a {
    color: var(--wire-mid);
  }

  /* ─── VOICE real text ─── */
  .voice-real-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--wire-dark);
    letter-spacing: 0.05em;
    margin: 0 0 6px;
  }
  .voice-real-text {
    font-size: 11px;
    color: var(--wire-mid);
    line-height: 1.85;
    letter-spacing: 0.03em;
    margin: 0;
  }

  /* ─── SIG TITLE wrap ─── */
  .sig-title {
    font-size: 10px;
    color: var(--wire-mid);
    letter-spacing: 0.04em;
    line-height: 1.7;
  }

  /* ─── PLAN SINGLE ─── */
  .plan-single {
    display: flex;
    justify-content: center;
    margin-top: 48px;
  }
  .plan-single-card {
    background: var(--wire-white);
    border: 1.5px solid var(--wire-accent);
    border-radius: 6px;
    padding: 48px 56px;
    width: 100%;
    max-width: 520px;
    box-shadow: 0 8px 32px rgba(184,154,122,0.12);
  }
  .plan-single-name {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    letter-spacing: 0.2em;
    color: var(--wire-dark);
    text-align: center;
    margin-bottom: 32px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--wire-line);
  }
  .plan-single-prices {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-bottom: 16px;
  }
  .plan-single-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--wire-line);
  }
  .plan-single-label {
    font-size: 12px;
    color: var(--wire-mid);
    letter-spacing: 0.1em;
  }
  .plan-single-price {
    font-family: 'Cormorant Garamond', serif;
    font-size: 32px;
    font-weight: 300;
    color: var(--wire-dark);
    letter-spacing: 0.02em;
  }
  .plan-single-unit,
  .plan-single-tax {
    font-size: 14px;
    color: var(--wire-mid);
    letter-spacing: 0.05em;
  }
  .plan-single-tax {
    margin-right: 4px;
  }
  .plan-single-note {
    font-size: 11px;
    color: var(--wire-mid);
    text-align: right;
    letter-spacing: 0.05em;
    margin-top: 8px;
  }

  /* ─── NEWS 1col ─── */
  .news-list-single {
    width: 100%;
    max-width: 800px;
    margin: 40px auto 0;
    border-top: 1px solid var(--wire-line);
  }
  .news-title-text {
    font-size: 12px;
    color: var(--wire-dark);
    letter-spacing: 0.04em;
    flex: 1;
  }

  /* ─── BLOG 1col ─── */
  .blog-single {
    display: flex;
    flex-direction: column;
    gap: 24px;
    width: 100%;
    max-width: 800px;
    margin: 40px auto 0;
  }
  .blog-single-card {
    display: flex;
    flex-direction: row;
    gap: 0;
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 12px;
    overflow: hidden;
    align-items: stretch;
  }
  a.blog-single-card {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
  }
  a.blog-single-card:hover {
    border-color: var(--wire-accent-light);
    box-shadow: 0 10px 28px rgba(61,34,24,0.08);
    transform: translateY(-1px);
  }
  .blog-single-card .blog-img {
    width: 200px;
    height: 130px;
    flex-shrink: 0;
    border-radius: 0;
  }
  .blog-single-card .blog-body {
    padding: 24px 32px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1;
  }
  .blog-title-text {
    font-size: 13px;
    color: var(--wire-dark);
    letter-spacing: 0.04em;
    line-height: 1.7;
    margin-top: 6px;
  }

  /* ─── CONTACT 1col ─── */
  .contact-form-single {
    max-width: 600px;
    margin: 40px auto 0;
    background: var(--wire-white);
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 40px 48px;
  }
  .contact-form-lead {
    font-size: 12px;
    color: var(--wire-mid);
    letter-spacing: 0.08em;
    margin-bottom: 28px;
    text-align: center;
  }
  .form-required {
    color: var(--wire-accent);
    font-size: 11px;
  }

  /* ─── COMPANY TABLE ─── */
  .company-table {
    max-width: 720px;
    margin: 40px auto 0;
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    overflow: hidden;
  }
  .company-row {
    display: grid;
    grid-template-columns: 160px 1fr;
    border-bottom: 1px solid var(--wire-line);
  }
  .company-row:last-child {
    border-bottom: none;
  }
  .company-th {
    background: var(--wire-bg);
    padding: 16px 20px;
    font-size: 11px;
    color: var(--wire-mid);
    letter-spacing: 0.08em;
    display: flex;
    align-items: center;
  }
  .company-td {
    padding: 16px 24px;
    font-size: 12px;
    color: var(--wire-dark);
    letter-spacing: 0.04em;
    line-height: 1.75;
  }

  /* ─── RESPONSIVE LINE BREAK CONTROL ─── */
  .br-pc { display: inline; }
  .br-sp { display: none; }
  .keep { display: inline-block; white-space: nowrap; }
  .natural-ja {
    word-break: keep-all;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }
  @media (max-width: 768px) {
    .br-pc { display: none; }
    .br-sp { display: inline; }
    .keep { white-space: normal; }
    .natural-ja { word-break: keep-all; overflow-wrap: anywhere; }
  }

  /* 該当箇所の読みやすさ調整 */
  .nameorigin-heading,
  .nameorigin-sub,
  .flow-lead,
  .plan-option-note,
  .cta-title,
  .cta-sub,
  .ibj-text {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  @media (min-width: 769px) {
    .flow-lead.natural-ja,
    .plan-option-note.natural-ja,
    .cta-title.natural-ja,
    .cta-sub.natural-ja,
    .ibj-text.natural-ja {
      text-align: center;
    }
  }


  /* ════════════════════════════════════════
     RESPONSIVE
  ════════════════════════════════════════ */
  @media (max-width: 768px) {
    /* PAGE */
    .page-wrapper { max-width: 100%; }

    /* HEADER */
    .wf-header {
      height: auto;
      padding: 12px 16px;
      flex-wrap: wrap;
      gap: 10px;
    }
    .header-nav { display: none; }
    .header-logo-img { height: 36px; }
    .header-cta { gap: 8px; }
    .cta-line, .cta-contact { font-size: 10px; padding: 7px 10px; }

    /* SECTIONS */
    section { padding: 52px 20px; max-width: 100%; margin: 0; }

    /* HERO */
    .wf-hero { height: 480px; }
    .hero-overlay {
      padding: 36px 20px;
      justify-content: flex-end;
      padding-bottom: 60px;
      background: linear-gradient(to top, rgba(30,15,8,0.82) 0%, rgba(30,15,8,0.45) 55%, rgba(30,15,8,0.08) 100%);
    }
    .hero-title { font-size: 22px; white-space: normal; letter-spacing: 0.04em; }
    .hero-title-ja { font-size: 13px; letter-spacing: 0.12em; margin-bottom: 20px; }
    .hero-copy { font-size: 12px; }
    .hero-btns { flex-direction: column; gap: 10px; }
    .hero-btn { padding: 11px 24px; font-size: 11px; text-align: center; }
    .hero-scroll { display: none; }

    /* SECTION HEADER */
    .section-header .en-title { font-size: 11px; }
    .section-header .ja-title { font-size: 22px; }

    /* CONCEPT */
    .concept-inner { grid-template-columns: 1fr; gap: 28px; }
    .concept-img { height: 220px; }

    /* PROMISE */
    .promise-inner { padding: 0 8px; }
    .promise-catch { font-size: 14px; }

    /* NAME ORIGIN */
    .nameorigin-inner { grid-template-columns: 1fr; gap: 32px; }
    .nameorigin-divider { display: none; }

    /* REASON */
    .reason-grid { grid-template-columns: 1fr; }

    /* MESSAGE */
    .message-inner { grid-template-columns: 1fr; gap: 28px; }
    .message-img { height: 240px; }

    /* VOICE */
    .voice-grid { grid-template-columns: 1fr; }
    .voice-card { flex-direction: column; }
    .voice-icon-wrap { width: 100%; height: 80px; border-right: none; border-bottom: 1px solid var(--wire-line); }
    .voice-img { width: 100%; height: 160px; }

    /* COMPARISON TABLE */
    .comparison-table { font-size: 10px; }
    .comparison-table th, .comparison-table td { padding: 10px 8px; }

    /* FLOW */
    .flow-steps { padding: 0 0 0 16px; }

    /* PLAN SINGLE */
    .plan-single-card { padding: 32px 24px; }
    .plan-single-price { font-size: 26px; }

    /* PLAN OPTION */
    .plan-option-grid { grid-template-columns: 1fr; }

    /* BLOG SINGLE */
    .blog-single-card { flex-direction: column; }
    .blog-real-img { width: 100% !important; height: 220px; }
    .blog-single-card .blog-body { padding: 16px; }

    /* CONTACT FORM */
    .contact-form-single { padding: 28px 20px; }

    /* COMPANY TABLE */
    .company-row { grid-template-columns: 1fr; }
    .company-th { padding: 12px 16px; border-bottom: 1px solid var(--wire-line); }
    .company-td { padding: 12px 16px; }

    /* FOOTER */
    .wf-footer { padding: 40px 20px 24px; }
    .footer-inner { grid-template-columns: 1fr; gap: 28px; }
    .wf-meta { padding: 10px 16px; flex-direction: column; gap: 4px; text-align: center; }

    /* FAQ */
    .faq-list { padding: 0 4px; }

    /* CTA */
    .wf-cta { padding: 48px 20px; }
    .cta-title { font-size: 17px; }
    .cta-btns { flex-direction: column; align-items: center; }
    .cta-btn { width: 100%; max-width: 280px; text-align: center; }

    /* SLOGAN */
    .wf-slogan { padding: 20px 20px; }
    .slogan-text { font-size: 13px; letter-spacing: 0.08em; }
  }

  @media (max-width: 480px) {
    .hero-title { font-size: 19px; white-space: normal; letter-spacing: 0.03em; }
    .section-header .en-title { font-size: 11px; }
    .section-header .ja-title { font-size: 18px; }
    .plan-single-price { font-size: 22px; }
    .yuzu-char { font-size: 36px; }
  }

  /* ─── REAL PHOTO STYLES ─── */
  .hero-real-img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: none;
  }
  .concept-real-img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center 78%;
    border-radius: 4px;
    display: block;
  }
  .reason-real-img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    object-position: center top;
    display: block;
  }
  .message-real-img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    object-position: center 30%;
    border-radius: 4px;
    display: block;
  }
  .voice-real-img {
    width: 130px;
    height: 130px;
    object-fit: cover;
    object-position: center center;
    flex-shrink: 0;
    display: block;
    border-radius: 0;
  }
  .blog-real-img {
    width: 280px;
    height: 200px;
    object-fit: cover;
    object-position: center;
    flex-shrink: 0;
    display: block;
  }
  .flow-hero-img {
    width: 100%;
    max-width: 800px;
    margin: 0 auto 40px;
    border-radius: 8px;
    overflow: hidden;
  }
  .flow-hero-img img {
    width: 100%;
    height: 380px;
    object-fit: cover;
    object-position: center 20%;
    display: block;
  }
  .nameorigin-top-img {
    margin-bottom: 40px;
    text-align: center;
  }
  .nameorigin-real-img {
    width: 100%;
    max-width: 480px;
    height: 220px;
    object-fit: cover;
    object-position: center;
    border-radius: 4px;
    display: inline-block;
  }

  /* ─── カラー定義の反映 ─── */
  /* accent: ローズピンク */
  .section-divider { background: var(--wire-accent); }
  .vm-card::before { background: var(--wire-accent); }
  .philo-node-circle { border-color: var(--wire-accent); color: var(--wire-accent); }
  .reason-num { color: var(--wire-accent-light); }
  .plan-single-card { border-color: var(--wire-accent); }
  .plan-badge { background: var(--wire-accent); }
  .faq-icon { color: var(--wire-accent); }
  .trinity-icon { border-color: var(--wire-accent); color: var(--wire-accent); }
  .yuzu-char { color: var(--wire-accent); }
  .concept-divider { background: var(--wire-accent); }
  .nameorigin-heading { color: var(--wire-dark); }

  /* header ロゴ下線をアクセントに */
  .header-nav li:hover { border-bottom-color: var(--wire-accent); }

  /* ボタン類 */
  .btn-ph.solid { background: var(--wire-dark); border-color: var(--wire-dark); }
  .btn-ph.solid:hover { background: var(--wire-accent); border-color: var(--wire-accent); }

  /* plan single */
  .plan-single-price { color: var(--wire-dark); }

  /* comparison highlight */
  .comparison-table th.highlight { background: var(--wire-accent); color: #fff; }
  .comparison-table td.highlight { background: rgba(201,131,126,0.13); font-weight: 500; }
  .check { color: var(--wire-accent); }

  /* flow num */
  .flow-num { background: var(--wire-dark); }

  /* voice badge */
  .voice-badge { background: var(--wire-tag); color: var(--wire-accent); }

  /* company th */
  .company-th { background: var(--wire-block); }

  /* header CTA */
  .cta-contact { background: var(--wire-accent); }

  /* footer */
  .wf-footer { background: var(--wire-dark); }

  /* responsive fix for real images */
  @media (max-width: 768px) {
    .reason-real-img { height: 200px; }
    .message-real-img { height: 240px; }
    .voice-real-img { width: 100%; height: 180px; }
    .blog-real-img { width: 100% !important; height: 200px; }
    .nameorigin-real-img { height: 160px; }
    .flow-hero-img img { height: 260px; object-position: center 20%; }
    .concept-real-img { height: 220px; }
  }

  .plan-visual-strip {
    position: relative;
    height: 200px;
    overflow: hidden;
    margin: 40px 0 0;
  }
  .plan-strip-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    display: block;
  }
  .plan-strip-overlay {
    position: absolute;
    inset: 0;
    background: rgba(61,34,24,0.45);
  }
  @media (max-width: 768px) {
    .plan-visual-strip { height: 140px; }
  }

  /* ─── LOGO PLACEMENTS ─── */
  .hero-logo-img {
    height: 120px;
    width: auto;
    object-fit: contain;
    display: block;
    margin-bottom: 20px;
    filter: brightness(0) invert(1) opacity(0.92);
    /* ロゴを白抜きにしてヒーロー背景に馴染ませる */
  }
  .footer-logo-img {
    height: 80px;
    width: auto;
    object-fit: contain;
    display: block;
    margin-bottom: 4px;
    mix-blend-mode: screen;
  }
  .nameorigin-logo-wrap {
    text-align: center;
    margin: 0 auto 48px;
    max-width: 400px;
  }
  .nameorigin-logo-img {
    height: 220px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    display: inline-block;
  }

  @media (max-width: 768px) {
    .hero-logo-img { height: 80px; margin-bottom: 12px; }
    .footer-logo-img { height: 60px; }
    .nameorigin-logo-img { height: 160px; }
    .wf-header { height: 72px; }
  }

  /* ─── FOOTER ANCHOR LINKS ─── */
  .footer-anchor {
    color: inherit;
    text-decoration: none;
    transition: color 0.2s;
  }
  .footer-anchor:hover {
    color: rgba(255,255,255,0.95);
  }

  /* ─── NEWS / BLOG 見出し（左寄せ） ─── */
  .section-header--left {
    text-align: left;
    margin-bottom: 0;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
  .section-divider--left {
    margin: 14px 0 0;
  }

  /* ─── SECTION WRAP（全幅背景コンテナ）─── */
  .section-wrap {
    width: 100%;
  }
  .section-wrap:nth-child(even) {
    background: var(--wire-bg);
  }
  /* 全幅セクション（ヒーロー・Promise・CTA）はwrap不要 */
  .section-wrap--full {
    background: transparent !important;
  }

  /* ─── PC専用: nameoriginテキストサイズ拡大 ─── */
  @media (min-width: 769px) {
    .nameorigin-heading {
      font-size: 17px;
      line-height: 1.8;
    }
    .nameorigin-sub,
    .nameorigin-text {
      font-size: 15px;
      line-height: 2.0;
    }
    .yuzu-char {
      font-size: 52px;
    }
    .yuzu-char-label {
      font-size: 13px;
    }
  }

  /* SP: object-position 調整 */
  @media (max-width: 768px) {
    .concept-real-img { object-position: center 85%; }
    .message-real-img { object-position: center 35%; }
  }
  @media (max-width: 480px) {
    .concept-real-img { object-position: center 88%; }
  }

  /* ─── VOICE SVG ICON ─── */
  .voice-icon-wrap {
    width: 110px;
    height: 110px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    border-right: 1px solid var(--wire-line);
  }
  .voice-icon-wrap svg {
    width: 52px;
    height: 52px;
    opacity: 0.85;
  }

  /* ─── NAV ANCHOR ─── */
  .nav-anchor {
    color: inherit;
    text-decoration: none;
    display: block;
    padding: 4px 0;
  }
  .nav-anchor:hover {
    color: var(--wire-accent);
  }
  .cta-contact {
    text-decoration: none;
    display: inline-block;
  }
  /* hero-btn をaタグでも同スタイルに */
  a.hero-btn {
    display: inline-block;
    text-decoration: none;
  }
  a.cta-btn {
    text-decoration: none;
  }
  /* ─── IBJ AFFILIATION ─── */
  .ibj-section {
    max-width: 860px;
    padding: 56px 24px 72px;
    margin: 0 auto 64px;
    background: #fff;
  }
  .ibj-inner {
    max-width: 620px;
    margin: 0 auto;
    text-align: center;
  }
  .ibj-logo {
    display: block;
    margin: 0 auto 24px;
    max-width: 210px;
    width: 100%;
    height: auto;
  }
  .ibj-text {
    font-family: 'Shippori Mincho', serif;
    font-size: 14px;
    line-height: 2.0;
    color: #4a4036;
    letter-spacing: 0.05em;
    margin: 0;
  }
  @media (max-width: 600px) {
    .ibj-section { padding: 44px 20px 56px; margin-bottom: 48px; }
    .ibj-logo { max-width: 180px; margin-bottom: 20px; }
    .ibj-text { font-size: 13px; line-height: 1.9; }
  }

  /* ─── PC ONLY: 全セクション・全要素を元サイズの150%で表示 ───
     スマホ表示は既存の @media (max-width: 768px) を維持するため、
     769px以上のPC表示にのみ全体スケールを適用。 */
  @media (min-width: 769px) {
    body {
      zoom: 1.5;
    }
  }



  /* ─── FINAL ADJUST: 数字フォント・VOICE背景 ─── */
  .reason-num,
  .track-num,
  .flow-num,
  .plan-option-num,
  .plan-single-price {
    font-family: 'Noto Serif JP', 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN', serif;
    font-variant-numeric: lining-nums tabular-nums;
    font-feature-settings: "lnum" 1, "tnum" 1;
    letter-spacing: 0.03em;
  }

  .flow-num {
    font-weight: 500;
  }

  .plan-single-price {
    font-weight: 400;
  }

  .section-wrap:has(#voice),
  .voice-section-wrap,
  #voice,
  #voice .voice-grid,
  #voice .voice-card,
  #voice .voice-body,
  #voice .voice-icon-wrap {
    background: #ffffff !important;
  }

  #voice .voice-card {
    border-color: var(--wire-line);
  }


  /* ─── SP FINAL ADJUST: お客様の声アイコン罫線・余白調整 ─── */
  @media (max-width: 768px) {
    #voice .voice-grid {
      gap: 14px !important;
      margin-top: 28px !important;
    }

    #voice .voice-card {
      padding: 18px 18px 20px !important;
      gap: 0 !important;
      align-items: flex-start !important;
    }

    #voice .voice-icon-wrap {
      width: 100% !important;
      height: auto !important;
      min-height: 48px !important;
      margin: 0 0 12px !important;
      padding: 0 !important;
      justify-content: center !important;
      border-right: none !important;
      border-bottom: none !important;
      background: #ffffff !important;
    }

    #voice .voice-icon-wrap svg {
      width: 42px !important;
      height: 42px !important;
    }

    #voice .voice-body {
      padding: 0 !important;
      width: 100% !important;
    }

    #voice .voice-meta {
      margin-bottom: 6px !important;
    }

    #voice .voice-real-title {
      margin-bottom: 6px !important;
    }

    #voice .voice-real-text {
      line-height: 1.75 !important;
    }
  }

  /* ─── 2026-05-13 CLIENT FIXES ─── */
  .hero-slides {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
  }
  .hero-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    animation: heroSlide 12s ease-in-out infinite;
    will-change: opacity, transform;
  }
  .hero-slide:nth-child(1) { animation-delay: 0s; }
  .hero-slide:nth-child(2) { animation-delay: 3s; }
  .hero-slide:nth-child(3) { animation-delay: 6s; }
  .hero-slide:nth-child(4) { animation-delay: 9s; }
  @keyframes heroSlide {
    0% { opacity: 0; transform: scale(1.02); }
    8%, 25% { opacity: 1; transform: scale(1.035); }
    33%, 100% { opacity: 0; transform: scale(1.06); }
  }
  .hero-yomi {
    display: inline-block;
    margin-bottom: 10px;
    color: rgba(255,255,255,0.72);
    font-size: 12px;
    letter-spacing: 0.18em;
    line-height: 1.6;
  }
  .contact-form-single form {
    display: grid;
    gap: 18px;
  }
  .contact-form-single .form-input,
  .contact-form-single .form-textarea {
    width: 100%;
    font-family: inherit;
    color: var(--wire-dark);
    background: #fff;
  }
  .contact-form-single button.btn-ph {
    border: 0;
    cursor: pointer;
    font-family: inherit;
  }
  .company-instagram {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
  }
  .company-instagram-qr {
    width: 116px;
    height: 116px;
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--wire-line);
    border-radius: 4px;
    padding: 8px;
  }
  @media (max-width: 768px) {
    .wf-header {
      justify-content: center;
      overflow: visible;
    }
    .header-logo {
      width: 100%;
      align-items: center;
    }
    .header-cta {
      width: 100%;
      justify-content: center;
      flex-wrap: wrap;
    }
    .hero-yomi {
      font-size: 10px;
      letter-spacing: 0.12em;
    }
    .hero-title {
      white-space: normal;
    }
    .company-instagram {
      align-items: flex-start;
    }
  }

  /* ─── 2026-05-17 RESPONSIVE DEBUG FIXES ─── */
  .hero-overlay > * {
    max-width: min(760px, 100%);
  }
  .hero-title,
  .hero-title-ja,
  .section-header .ja-title,
  .flow-step-title,
  .plan-single-price {
    word-break: keep-all;
    overflow-wrap: anywhere;
  }
  .hero-title {
    max-width: 100%;
  }
  .hero-yuzu {
    white-space: nowrap;
  }
  .hero-slide {
    object-position: center center;
  }
  .hero-slide:nth-child(2) {
    object-position: center 45%;
  }
  .hero-slide:nth-child(4) {
    object-position: center 42%;
  }
  .message-img {
    overflow: hidden;
  }
  .message-real-img {
    object-position: center 28%;
  }
  .reason-real-img {
    height: 210px;
  }
  .reason-card:nth-child(1) .reason-real-img {
    object-position: center 42% !important;
  }
  .reason-card:nth-child(2) .reason-real-img {
    object-position: center 48% !important;
  }
  .reason-card:nth-child(3) .reason-real-img {
    object-position: center 34% !important;
  }
  .message-real-img {
    object-position: center 24%;
  }
  .voice-card,
  .flow-step,
  .plan-single-card,
  .company-td {
    min-width: 0;
  }
  .message-real-text,
  .voice-real-text,
  .flow-step-text,
  .faq-a,
  .company-td,
  .contact-note {
    line-break: strict;
    word-break: normal;
    overflow-wrap: anywhere;
  }
  @media (max-width: 1024px) and (min-width: 769px) {
    .wf-header {
      padding: 0 28px;
    }
    .header-nav {
      gap: 10px;
    }
    .header-nav li,
    .cta-line,
    .cta-contact {
      font-size: 9px;
    }
    .hero-overlay {
      padding: 64px 48px;
    }
    .hero-title {
      font-size: 38px;
      letter-spacing: 0.08em;
      white-space: normal;
    }
  }
  @media (max-width: 768px) {
    .wf-header {
      align-items: center;
    }
    .header-cta {
      row-gap: 8px;
    }
    .wf-hero {
      height: 520px;
    }
    .hero-overlay {
      padding: 34px 20px 56px;
    }
    .hero-title {
      font-size: clamp(27px, 7.6vw, 40px);
      line-height: 1.22;
      letter-spacing: 0.05em;
    }
    .hero-i::after {
      top: 4px;
    }
    .hero-yuzu {
      display: block;
      font-size: clamp(42px, 14vw, 62px);
      line-height: 1.05;
      margin-top: 3px;
      letter-spacing: 0.08em;
    }
    .hero-title-ja {
      line-height: 1.7;
      letter-spacing: 0.18em;
    }
    .hero-btns {
      display: grid;
      grid-template-columns: 1fr;
      gap: 12px;
      width: min(100%, 390px);
    }
    .hero-btn {
      width: 100%;
      min-height: 46px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 11px 16px;
      box-sizing: border-box;
    }
    .hero-slide,
    .hero-slide:nth-child(2),
    .hero-slide:nth-child(4) {
      object-position: center center;
    }
    .message-real-img {
      width: 100%;
      height: auto !important;
      aspect-ratio: 4 / 5;
      max-height: 520px;
      object-position: center 24%;
    }
    .plan-single-row {
      gap: 14px;
    }
    .plan-single-price {
      white-space: normal;
      text-align: right;
    }
  }
  @media (max-width: 480px) {
    .wf-header {
      padding: 10px 14px;
      gap: 8px;
    }
    .header-logo-img {
      height: 34px;
    }
    .cta-line,
    .cta-contact {
      padding: 7px 9px;
      letter-spacing: 0.02em;
    }
    .hero-overlay {
      padding: 32px 20px 52px;
    }
    .hero-yomi {
      margin-bottom: 8px;
    }
    .hero-title {
      font-size: clamp(24px, 7vw, 30px);
    }
    .hero-yuzu {
      font-size: clamp(42px, 14.5vw, 56px);
    }
    .section-header .ja-title {
      letter-spacing: 0.06em;
    }
    .message-real-img {
      aspect-ratio: 3 / 4;
    }
    .flow-step-title {
      line-height: 1.65;
    }
    .plan-single-row {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: baseline;
      gap: 12px;
    }
    .plan-single-price {
      text-align: right;
      font-size: clamp(22px, 7vw, 28px);
    }
  }
  @media (max-width: 374px) {
    .cta-line,
    .cta-contact {
      font-size: 9px;
      padding: 7px 8px;
    }
    .hero-title {
      font-size: 23px;
    }
    .hero-yuzu {
      font-size: 40px;
    }
  }

  /* ─── 2026-05-18 HEADER RESPONSIVE FIXES ─── */
  .wf-header,
  .wf-header * {
    box-sizing: border-box;
  }
  .wf-header {
    width: 100%;
    max-width: 100vw;
  }
  .header-logo,
  .header-nav,
  .header-cta {
    min-width: 0;
  }
  .header-logo-img {
    max-width: 180px;
  }
  .header-nav {
    justify-content: center;
    flex-wrap: wrap;
    row-gap: 6px;
  }
  .cta-line,
  .cta-contact {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.3;
    text-decoration: none;
  }
  @media (max-width: 1180px) and (min-width: 769px) {
    .wf-header {
      height: 80px;
      padding: 0 24px;
      gap: 10px;
    }
    .header-logo-img {
      height: 56px;
      max-width: 150px;
    }
    .header-nav {
      gap: 8px 10px;
    }
    .header-nav li {
      font-size: 9px;
      letter-spacing: 0.02em;
    }
    .cta-line,
    .cta-contact {
      min-height: 34px;
      padding: 7px 10px;
      font-size: 9px;
      letter-spacing: 0.02em;
    }
  }
  @media (max-width: 920px) and (min-width: 769px) {
    .header-nav {
      display: none;
    }
    .wf-header {
      justify-content: space-between;
    }
  }
  @media (max-width: 768px) {
    .wf-header {
      display: grid;
      grid-template-columns: 1fr;
      justify-items: center;
      align-items: center;
      height: auto;
      padding: 10px 14px 12px;
      gap: 8px;
      overflow: visible;
    }
    .header-logo {
      width: auto;
      max-width: 100%;
      align-items: center;
    }
    .header-logo-img {
      height: 42px;
      max-width: 160px;
    }
    .header-cta {
      width: 100%;
      max-width: 360px;
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 8px;
    }
    .cta-line,
    .cta-contact {
      width: 100%;
      min-height: 36px;
      white-space: normal;
      padding: 7px 8px;
      font-size: 10px;
      letter-spacing: 0.02em;
    }
  }
  @media (max-width: 500px) {
    .header-cta {
      justify-self: center;
      width: 292px;
      max-width: calc(100vw - 28px);
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      margin-left: auto;
      margin-right: auto;
    }
    .cta-line,
    .cta-contact {
      min-width: 0;
      padding: 7px 5px;
      font-size: 9px;
      letter-spacing: 0;
    }
    .hero-title,
    .hero-title-ja,
    .hero-yomi,
    .hero-btns {
      max-width: 292px;
    }
    .hero-title {
      font-size: 24px;
      letter-spacing: 0.03em;
    }
    .hero-yuzu {
      font-size: 42px;
      letter-spacing: 0.06em;
    }
    .hero-btns {
      width: 292px;
      justify-items: stretch;
    }
  }
  @media (max-width: 340px) {
    .header-cta {
      grid-template-columns: 1fr;
      max-width: 240px;
    }
    .header-logo-img {
      height: 38px;
    }
  }

  /* ─── CMS / MOBILE CTA OVERRIDES ─── */
  .news-empty,
  .blog-empty {
    color: var(--wire-mid);
    font-size: 12px;
    letter-spacing: 0.04em;
    padding: 18px 0;
    text-align: center;
  }
  .news-title-text a,
  .blog-title-text a {
    color: inherit;
    text-decoration: none;
  }
  .news-title-text a:hover,
  .blog-title-text a:hover {
    color: var(--wire-accent);
  }
  .blog-excerpt {
    color: var(--wire-mid);
    font-size: 11px;
    letter-spacing: 0.04em;
    line-height: 1.8;
    margin-top: 8px;
  }
  .mobile-fixed-cta {
    display: none;
  }
  @media (max-width: 768px) {
    body {
      padding-bottom: calc(76px + env(safe-area-inset-bottom));
    }
    .wf-header {
      min-height: 70px;
      padding: 8px 14px;
    }
    .header-logo-img {
      height: 54px;
      max-width: 188px;
    }
    .wf-header .header-cta {
      display: none;
    }
    .mobile-fixed-cta {
      position: fixed;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 120;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px;
      padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
      background: rgba(255,250,248,0.94);
      border-top: 1px solid var(--wire-line);
      box-shadow: 0 -8px 24px rgba(61,34,24,0.08);
      backdrop-filter: blur(10px);
    }
    .mobile-fixed-cta a {
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border-radius: 3px;
      font-size: 11px;
      letter-spacing: 0.04em;
      line-height: 1.3;
      text-align: center;
      text-decoration: none;
    }
    .mobile-fixed-cta .mobile-line {
      color: var(--wire-dark);
      background: var(--wire-tag);
      border: 1px solid var(--wire-accent-light);
    }
    .mobile-fixed-cta .mobile-contact {
      color: var(--wire-white);
      background: var(--wire-accent);
      border: 1px solid var(--wire-accent);
    }
  }
  @media (max-width: 340px) {
    .mobile-fixed-cta a {
      font-size: 10px;
      letter-spacing: 0;
    }
    .header-logo-img {
      height: 50px;
      max-width: 176px;
    }
  }


