/* ===== Sticky header (常時) ===== */
.t2-header{
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: saturate(1.2) blur(6px);
}

/* ===== Mobile（〜767px） ===== */
@media (max-width: 767px){
  /* Hero：テキストを下・中央へ */
  .t2-hero{ place-items: end center; }
  .t2-hero .inner{
    justify-self: center;
    text-align: center;
    margin-left: 0;
    padding-bottom: 0;
    margin-bottom: clamp(16px, 8vw, 40px);
  }

  /* ヘッダー折返し */
  .t2-header .inner{ flex-wrap: wrap; row-gap: 8px; }
  .t2-nav{ width:100%; gap:16px; }

  /* ナビがさらに狭い時 */
  .t2-nav a{ font-size: 14px; line-height: 1.2; }


}


/* さらに狭い時のナビ調整（〜520px） */
@media (max-width: 520px){
  .t2-nav{ gap: 12px; flex-wrap: wrap; }
  .t2-nav a{ font-size: 14px; line-height: 1.2; }
}

/* ===== Tablet（768–1024px） ===== */
@media (min-width:768px) and (max-width:1024px){
  .t2-services{ grid-template-columns: repeat(2, 1fr); }
}

/* ===== Desktop（1025px〜） ===== */
@media (min-width:1025px){
  .t2-services{ grid-template-columns: repeat(3, 1fr); }
}

/* ===== 共通（>=768px）: Services 見出しは全幅スパン、Aboutを2カラム ===== */
@media (min-width: 768px){
  .t2-services .t2-section-title,
  .t2-services .t2-section-desc{ grid-column: 1 / -1; }

  .t2-about-grid{
    grid-template-columns: 1fr 1.1fr;
    gap: 40px;
  }
  .t2-about-media img{
    aspect-ratio: 4 / 3;
    object-fit: cover;
  }

  /* パンくずの現在地は折返し制限解除 */
  .t2-breadcrumb li[aria-current="page"]{ max-width: none; }
}

/* ===== br 表示ユーティリティ ===== */
/* （ベースCSSで非表示にしてある前提：sp-only / tab-only / pc-only / md-up） */
@media (max-width: 767px){ br.sp-only { display: inline; } }
@media (min-width: 768px) and (max-width: 1024px){ br.tab-only { display: inline; } }
@media (min-width: 1025px){ br.pc-only { display: inline; } }
@media (min-width: 768px){ br.md-up { display: inline; } }

/* ===== Facts（About / Access 共通）: 768px〜 ラベル列は最小必要幅＋間はタイト ===== */
@media (min-width: 768px){
  .t2-about-facts,
  .t2-access-facts{
    display: grid;
    grid-template-columns: max-content 1fr; /* 固定幅→自動最小幅 */
    column-gap: 12px;                       /* dt–dd の間を詰める */
    row-gap: 8px;
    text-align: left;
    align-items: start;
  }
  .t2-about-facts > div,
  .t2-access-facts > div{ display: contents; }
  .t2-about-facts dt,
  .t2-access-facts dt{
    white-space: nowrap;
    justify-self: start;
    text-align: left;
  }
  .t2-about-facts dd,
  .t2-access-facts dd{
    margin: 0;
    text-align: left;
    /* 日本語の不自然分割を抑制（対応ブラウザで効く） */
    overflow-wrap: normal;
    word-break: normal;
    line-break: strict;
    word-break: auto-phrase;
  }
}

/* 1025px〜：Facts の余白を少しだけ広げる（視認性） */
@media (min-width: 1025px){
  .t2-about-facts,
  .t2-access-facts{ column-gap: 14px; }
}

/* ===== Access: 2カラム設定 ===== */
/* 768px〜の基本：ドカンと肥大化しない下限＋適度なギャップ */
@media (min-width: 768px){
  .t2-access-grid{
    grid-template-columns:
      minmax(320px, 1fr)   /* map */
      minmax(280px, 1fr);  /* facts */
    align-items: start;
  }
}

/* 768px “ちょうど” の微調整：factsをもう少しだけ広げ＋文字を少し控えめに */
@media (width: 768px){
  .t2-access-grid{
    grid-template-columns:
      minmax(320px, 1fr)
      minmax(300px, 1fr);   /* 280→300 */
  }
  .t2-access-facts dt,
  .t2-access-facts dd{ font-size: 15px; } /* 16→15px（必要なら外してOK） */
  }

/* 1024px “ちょうど”：mapはそのまま、tableだけ右へ寄せる＋間を広げる */
@media (width: 1024px){
  .t2-access-grid{
    grid-template-columns:
      minmax(420px, 1.5fr)
      minmax(360px, 1fr);
    gap: 24px;
  }
  .t2-access-body{ padding-left: 10px; } /* ←ここはご指定どおり10px */
  .t2-access-facts{ column-gap: 14px; }
}

/* 1025px〜：画面に余裕が出たら少しだけゆとり */
@media (min-width: 1025px){
  .t2-access-grid{
    grid-template-columns:
      minmax(420px, 1.05fr)
      minmax(360px, 1fr);
  }
  .pc-only{ display: inline; } /* PC専用表示ユーティリティ */
}


/* SP：テーブル（右カラム）だけ右へ半歩寄せる */
@media (max-width: 767px){
  .t2-access-grid{
    /* 念のため水平方向の配置を有効化（既定でもOK） */
    justify-items: stretch;
  }
  .t2-access-body{
    width: calc(100% - 12px);  /* ← “少しだけ幅を狭く” がポイント */
    justify-self: end;         /* 右端に寄せる */
  }
}
/* もっと寄せたい → 12px を 14〜16px へ */

/* 768–1024px：間をやや広げる */
@media (min-width: 768px) and (max-width: 1024px){
  .t2-access-grid{ gap: 20px; }   /* 18〜22で微調整可 */
}

/* 1025px〜：PCでも少しゆとり */
@media (min-width: 1025px){
  .t2-access-grid{ gap: 24px; }   /* 22〜28で微調整可 */
}



  /* 紺プレートも“器”にフィットさせる（ガターと同じ14px） */
  .t2-services.t2-plaque-soft::before{
    margin-inline: 14px;
    border-radius: 14px; /* お好み。なくてもOK */
  }


/* 768px〜：2カラムにして、本文は全幅 */
@media (min-width: 768px){
  .t2-form{
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
    row-gap: 12px;
  }
  .t2-field-full{ grid-column: 1 / -1; }
}



/* 768px〜：ニュースは2カラムに */
@media (min-width: 768px){
  .t2-news-list{
    grid-template-columns: 1fr 1fr;
    gap: 14px;
  }
}

/* 1025px〜：余裕があれば3カラムも可（任意・好みで） */
/*
@media (min-width: 1025px){
  .t2-news-list{
    grid-template-columns: repeat(3, 1fr);
  }
}
*/



@media (min-width: 768px){
  .t2-works-list{ grid-template-columns: 1fr 1fr; gap: 16px; }
}
@media (min-width: 1025px){
  .t2-works-list{ grid-template-columns: repeat(3, 1fr); gap: 18px; }
}

/* 768px〜：2列、1025px〜：4列 */
@media (min-width: 768px){
  .t2-flow-list{ grid-template-columns: repeat(2, 1fr); gap: 14px; }
}
@media (min-width: 1025px){
  .t2-flow-list{ grid-template-columns: repeat(4, 1fr); gap: 16px; }
}


@media (min-width: 1025px){
  .t2-contact-sec .t2-section-title,
  .t2-contact-sec .lead,
  .t2-contact-sec .t2-form{
    max-width: min(1040px, calc(var(--t2-container) - 32px));
    margin-inline: auto;
  }
}

/* === SP 共通（〜767px）：縦並び・中央寄せ === */
@media (max-width: 767px){
  .t2-cta-split > .t2-cta{
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .t2-cta--article{ padding-inline: 14px; }

  /* privacy（SP）：横並びに戻す＋背低め（従来どおり） */
  .p-privacy .t2-cta-split > .t2-cta{
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    justify-items: stretch;
    text-align: left;
  }
  .p-privacy .t2-article--cta .t2-cta--article{ padding-block: 10px; }

  /* 文章は自然な改行、ただしURL等は折返し許可 */
  .p-privacy .t2-article,
  .p-privacy .t2-cta--article{
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
  }
  .p-privacy .t2-article a,
  .p-privacy .t2-cta--article a{ overflow-wrap: anywhere; }

  body.p-privacy{ overflow-x: hidden; } /* 最終安全弁（任意） */
}

/* === タブレット（768–1023px）：newsは中央寄せ＋近め配置 === */
@media (min-width: 768px) and (max-width: 1023px){
  .p-news .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto; /* ← 左を内容幅に */
    justify-content: center;                 /* ← セット全体を中央寄せ */
    column-gap: 20px;                        /* ← PCと同じ距離で安定 */
    align-items: center;
  }
  .p-news .t2-cta-text{
    white-space: normal;  /* 複数行OK */
  }
  .p-news .t2-cta-text br.tab-only{
    display: inline;
  }
}


/* === news：PC(>=1025px) 正規ブロック（特異性アップ版） === */
@media (min-width: 1025px){
  /* 直下型 / .inner 挟む型 / .t2-article 包み、すべてに適用 */
  .p-news .t2-cta-split > .t2-cta.t2-cta--article,
  .p-news .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-news .t2-article--cta .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;
  }
  .p-news .t2-cta-text{
    white-space: nowrap;
    max-width: none;
  }
  .p-news .t2-cta-text br{ display: none; }
}

/* === news：1024px（PCと同じ挙動） === */
@media (width: 1024px){
  .p-news .t2-cta-split > .t2-cta.t2-cta--article,
  .p-news .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-news .t2-article--cta .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;
  }
  .p-news .t2-cta-text{
    white-space: nowrap;
    max-width: none;
  }
  .p-news .t2-cta-text br{ display: none; }
  .p-news .t2-cta-text br.tab-only{ display: none !important; } /* ←この1箇所だけ維持 */
}

/* === news：768–1023px／中央寄せ＆近づけ（常用・!importantなし） === */
@media (min-width: 768px) and (max-width: 1023px){
  .p-news .t2-cta-split > .t2-cta.t2-cta--article,
  .p-news .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-news .t2-article--cta .t2-cta--article{
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 34px;
    align-items: center;
  }
  .p-news .t2-cta-text{ white-space: normal; }
  .p-news .t2-cta-text br.tab-only{ display: inline; }
}

/* === news：SP（〜767px）— テキスト↑ / ボタン↓ の縦並び === */
@media (max-width: 767px){
  /* 直下型／.inner 挟み／.t2-article 包み の全部に適用 */
  .p-news .t2-cta-split > .t2-cta.t2-cta--article,
  .p-news .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-news .t2-article--cta .t2-cta--article{
    grid-template-columns: 1fr;   /* ← 横並び → 縦並び */
    row-gap: 12px;                 /* ← テキストとボタンの間隔 */
    justify-items: center;         /* ← センター寄せ */
    text-align: center;            /* ← テキスト中央寄せ */
  }

  /* テキストは自然に折り返しOK */
  .p-news .t2-cta-text{
    white-space: normal;
    max-width: 40ch;               /* 読みやすい幅に（好みで調整） */
  }

  /* ボタンは中央に“実寸”で（全幅にしたければ下のコメントを外す） */
  .p-news .t2-cta--article .btn-gold{
    width: auto;                   /* ← デフォは実寸 */
    /* width: 100%;               ← 全幅にしたい場合はこれに変更 */
  }
}

/* === news：SP（〜767px）— 窮屈さ解消（テキスト右寄せ気味＋ボタンは実寸） === */
@media (max-width: 767px){
  .p-news .t2-cta-split > .t2-cta.t2-cta--article,
  .p-news .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-news .t2-article--cta .t2-cta--article{
    grid-template-columns: 1fr;
    row-gap: 16px;           
    justify-items: center;   /* ← テキストもボタンも中央に“寄せる基準” */
    text-align: left;        /* ← 文字自体は左揃えのまま */
    padding-inline: 8%;      /* ← 全体を少し右に寄せる（調整値：5〜12%） */
  }

  .p-news .t2-cta-text{
    white-space: normal;
    line-height: 1.7;
    max-width: 38ch;         /* ← 行幅を少し広めに（32〜40chで調整可） */
    margin: 0 auto;          /* ← セット全体を中央に置いた上で本文を制御 */
  }

  .p-news .t2-cta--article .btn-gold{
    width: auto;             /* ← 実寸 */
    padding-inline: 20px;    /* ← 少し広げて押しやすく */
    padding-block: 10px;     
    justify-self: center;    /* ← 中央配置 */
  }
}

/* === privacy：PC(>=1025px) — newsと同じ中央寄せ＆gap:30px === */
@media (min-width: 1025px){
  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;
  }
  .p-privacy .t2-cta-text{
    white-space: nowrap;
    max-width: none;
  }
  .p-privacy .t2-cta-text br{ display: none; }
}

/* === privacy：1024px — PCと同等挙動（tab-only改行は消す派なら下1行ON） === */
@media (width: 1024px){
  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;
  }
  .p-privacy .t2-cta-text{
    white-space: nowrap;
    max-width: none;
  }
  .p-privacy .t2-cta-text br{ display: none; }
  /* .p-privacy .t2-cta-text br.tab-only{ display: none !important; } */
}

/* === privacy：Tablet（768–1023px）— 近づけて中央寄せ（改行OK） === */
@media (min-width: 768px) and (max-width: 1023px){
  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: center;
  }
  .p-privacy .t2-cta-text{
    white-space: normal;  /* タブレットは複数行OK */
  }
}

@media (max-width: 767px){
  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    grid-template-columns: 1fr;
    row-gap: 16px;
    justify-items: center;
    text-align: left; /* 文字は左揃えのままでもOK。中央にしたければ center */
  }
}



@media (min-width: 1025px){
  .p-privacy .t2-cta-split > .inner{
    display: flex;
    justify-content: center;
  }
  .p-privacy .t2-cta-split{
    display: flex;
    justify-content: center;
  }

  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    width: auto;
    max-width: 840px;
    margin-inline: auto;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;
  }

  /* ← 改行禁止に戻す（newsと同じ見た目） */
  .p-privacy .t2-cta-text{
    white-space: nowrap;
    max-width: none;
    overflow-wrap: normal;
    word-break: normal;
  }

  /* 改行タグも無効化（newsと同じ挙動に） */
  .p-privacy .t2-cta-text br{ display: none; }

  .p-privacy .t2-cta-split{ margin: clamp(20px, 4vw, 36px) 0; }

  .p-privacy .t2-cta--article{
    padding-inline: 28px; /* news と揃える（clamp値のmax側に相当） */
  }
}

/* === privacy：1024px — newsと同じ1行固定スタイル === */
@media (width: 1024px){
  .p-privacy .t2-cta-split{ display:flex; justify-content:center; }
  .p-privacy .t2-cta-split > .inner{ display:flex; justify-content:center; }

  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    width: auto;
    max-width: 840px;
    margin-inline: auto;
    box-sizing: border-box;

    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 30px;
    align-items: baseline;

    min-width: 0;
  }

  /* ← newsと同じように1行固定 */
  .p-privacy .t2-cta-text{
    white-space: nowrap;        /* 改行禁止 */
    max-width: none;
    overflow-wrap: normal;
    word-break: normal;
  }

  /* 改行タグも無効化 */
  .p-privacy .t2-cta-text br{ display: none; }

  .p-privacy{ overflow-x: hidden; }
}

/* === privacy：768–1023px — 改行OK＋中央寄せ === */
@media (min-width: 768px) and (max-width: 1023px){
  .p-privacy .t2-cta-split{ display:flex; justify-content:center; }
  .p-privacy .t2-cta-split > .inner{ display:flex; justify-content:center; }

  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    width: auto;
    max-width: 840px;
    margin-inline: auto;
    box-sizing: border-box;

    display: grid;
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 20px;
    align-items: center;

    min-width: 0;
  }

  /* 改行を許可 */
  .p-privacy .t2-cta-text{
    white-space: normal;
    max-width: 42ch;           /* 行幅を抑えて読みやすく */
    line-height: 1.6;
  }

  /* tab-only の <br> を有効化 */
  .p-privacy .t2-cta-text br.tab-only{ display:inline; }

  .p-privacy{ overflow-x: hidden; }
}

/* === privacy：SP（〜767px）— CTAを“制定：枠”幅に揃える === */
@media (max-width: 767px){
  .p-privacy .t2-cta-split{ display:flex; justify-content:center; }
  .p-privacy .t2-cta-split > .inner{ display:flex; justify-content:center; }

  .p-privacy .t2-cta-split > .t2-cta.t2-cta--article,
  .p-privacy .t2-cta-split > .inner > .t2-cta.t2-cta--article,
  .p-privacy .t2-article--cta .t2-cta--article{
    grid-template-columns: 1fr;
    row-gap: 16px;
    justify-items: center;
    padding-block: 18px;
    width: min(96vw, var(--t2-container));  /* ← 制定：枠と同じ器幅に */
    margin-inline: auto;
    box-sizing: border-box;
  }

  .p-privacy .t2-cta-text{
    white-space: normal;
    line-height: 1.7;
    /* max-width は外す → 制定枠に揃える */
    margin: 0 auto;
    text-align: left;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .p-privacy .t2-cta--article .btn-gold{
    width: auto;
    justify-self: center;
    padding-block: 10px;
    padding-inline: 20px;
  }

  .p-privacy{ overflow-x: hidden; }
}

/* アクティブ演出は通常リンクだけに適用（ボタンは対象外） */
.t2-nav a:not(.btn-gold){
  display:inline-block;
  transition: color .2s ease, transform .2s ease;
}
.t2-nav a:not(.btn-gold):hover,
.t2-nav a:not(.btn-gold):focus{
  color:#d4af37;
  transform: translateY(-2px);
}
.t2-header .t2-nav a.btn-gold,
.t2-header .t2-nav a.btn-gold:hover,
.t2-header .t2-nav a.btn-gold:focus,
.t2-header .t2-nav a.btn-gold:active{
  color: #fff !important;
  transform: none;
}
/* ヘッダーの「お問い合わせ」ボタン：色は白固定＋軽いモーション */
.t2-header .t2-nav a.btn-gold{
  color:#fff !important;                  /* 文字は常に白 */
  transition: transform .18s ease, 
              box-shadow .18s ease, 
              filter .18s ease;
  will-change: transform;
}

/* ホバー/フォーカス時：ふわっと持ち上げ＋少し明るく */
@media (hover:hover){
  .t2-header .t2-nav a.btn-gold:hover,
  .t2-header .t2-nav a.btn-gold:focus-visible{
    transform: translateY(-1px);
    filter: brightness(1.06);             /* 背景だけ少し明るく */
    box-shadow: 0 6px 16px rgba(0,0,0,.16);
  }
}

/* クリック中：押し込み感 */
.t2-header .t2-nav a.btn-gold:active{
  transform: translateY(0);
  filter: brightness(.97);
  box-shadow: 0 2px 6px rgba(0,0,0,.22) inset;
}

/* モーション苦手な人へ配慮（OS設定尊重） */
@media (prefers-reduced-motion: reduce){
  .t2-header .t2-nav a.btn-gold{ transition:none; }
}

/* === Header：SP（〜767px）— 上質ミニマルのテキストナビ + 視認性レイヤ === */
@media (max-width: 767px){

  /* 背景が明るい画像の上でも読めるようにする（上質な濃紺の半透明） */
  .t2-header{
    background: rgba(15, 30, 47, .82);
    -webkit-backdrop-filter: saturate(1.2) blur(6px);
    backdrop-filter: saturate(1.2) blur(6px);
    box-shadow: 0 2px 10px rgba(0,0,0,.06);
  }

  /* ヘッダー内レイアウト：すっきり縦積み＋中央寄せ */
  .t2-header .inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    row-gap: 8px;
  }

  /* ナビは折り返し可能な行中央 */
  .t2-nav{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 18px;
    width: 100%;
    padding: 6px 0 2px;
    overflow: visible; /* チップ化の overflow 設定を打ち消し */
  }

  /* 通常リンクは“文字だけ”（下線はアクティブ/ホバー時だけ） */
  .t2-nav a:not(.btn-gold){
    position: relative;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 6px 2px;
    color: #fff;             /* 通常時は白 */
    text-decoration: none;
    font-weight: 500;
    letter-spacing: .02em;
    transition: color .2s ease;
  }
  .t2-nav a:not(.btn-gold)::after{
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -4px;
    height: 1px;
    background: currentColor;
    opacity: 0;
    transform: scaleX(.5);
    transform-origin: center;
    transition: opacity .2s ease, transform .2s ease;
  }
  /* ホバー/フォーカス/アクティブで金色＋下線 */
  .t2-nav a:not(.btn-gold):hover,
  .t2-nav a:not(.btn-gold):focus,
  .t2-nav a.is-active:not(.btn-gold),
  .t2-nav a[aria-current="page"]:not(.btn-gold){
    color: #d4af37;
  }
  .t2-nav a:not(.btn-gold):hover::after,
  .t2-nav a:not(.btn-gold):focus::after,
  .t2-nav a.is-active:not(.btn-gold)::after,
  .t2-nav a[aria-current="page"]:not(.btn-gold)::after{
    opacity: 1;
    transform: scaleX(1);
  }

  /* お問い合わせボタンはひとつ下の段で中央（白文字は既存CSSがキープ） */
  .t2-nav a.btn-gold{
    order: 2;
    width: auto;
    padding: 8px 16px;
    margin-top: 2px;
    align-self: center;
  }
}

/* === team：PC（>=1025px）— 横並び1行・中央寄せ・gap:30px・幅は必要分だけ === */
@media (min-width: 1025px){
  .p-team .t2-card-cta{
    display: grid;
    grid-template-columns: max-content auto; /* 左=テキスト（1行）／右=ボタン */
    align-items: baseline;
    justify-content: center;                 /* セットを中央へ */
    column-gap: 30px;                        /* newsと同じ距離感 */
    width: fit-content;                      /* カード幅に対して“狭め” */
    margin: 24px auto 0;                     /* 上だけ24px、左右は中央 */
  }
  .p-team .t2-card-cta-text{
    margin: 0;
    white-space: nowrap;                     /* 1行固定 */
    max-width: none;
  }
}

/* === team：1024px（PCと同じ挙動で固定） === */
@media (width: 1024px){
  .p-team .t2-card-cta{
    display: grid;
    grid-template-columns: max-content auto;
    align-items: baseline;
    justify-content: center;
    column-gap: 30px;
    width: fit-content;
    margin: 24px auto 0;
  }
  .p-team .t2-card-cta-text{
    white-space: nowrap;
    max-width: none;
  }
  /* 1024は tab-only 改行は使わない（＝PCと同等） */
  .p-team .t2-card-cta-text br.tab-only{ display: none !important; }
}

/* === team：タブレット（768–1023px）— 中央寄せ・改行OK・少し狭め === */
@media (min-width: 768px) and (max-width: 1023px){
  .p-team .t2-card-cta{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto; /* 左は複数行OK */
    align-items: center;
    justify-content: center;
    column-gap: 14px;                           /* タブは少し詰める */
    width: auto;
    max-width: 680px;                           /* カードより気持ち狭め */
    margin: 20px auto 0;
  }
  .p-team .t2-card-cta-text{
    margin: 0;
    white-space: normal;                         /* 改行OK */
    line-height: 1.6;
  }
}

/* === team：SP（〜767px）— 縦並び・中央／読みやすさ優先 === */
@media (max-width: 767px){
  .p-team .t2-card-cta{
    display: grid;
    grid-template-columns: 1fr;   /* 縦積み */
    row-gap: 14px;
    justify-items: center;
    width: 100%;
    margin-top: 16px;
  }
  .p-team .t2-card-cta-text{
    margin: 0 14px;               /* 端の圧迫回避 */
    line-height: 1.7;
    text-align: left;             /* 読みやすさ重視（中央が好みなら center に） */
    white-space: normal;
  }
  .p-team .t2-card-cta .btn-gold{
    width: auto;                  /* 横いっぱいにしない */
    padding: 10px 20px;
    justify-self: center;
  }
}

/* team CTA：折り返したくない塊をNoWrapに */
.p-team .t2-card-cta-text .nb{ white-space: nowrap; }

/* ほんとに狭い端末では無理せず折返し許可（安全弁） */
@media (max-width: 360px){
  .p-team .t2-card-cta-text .nb{ white-space: normal; }
}

/* team CTA：SPだけ2行を“塊”として固定（他幅は影響なし） */
@media (max-width: 767px){
  .p-team .t2-card-cta-text .line1,
  .p-team .t2-card-cta-text .line2{
    display: inline-block;
    white-space: nowrap;   /* ← 中で折り返さない（<br>だけで改行） */
    max-width: 100%;
  }
  /* レイアウトのゆとり（好みで微調整可） */
  .p-team .t2-card-cta-text{ 
    text-align: left;
    margin: 0 14px;
    line-height: 1.7;
    letter-spacing: .01em; /* わずかに詰める → 収まりやすい */
  }
}

/* すごく狭い端末の安全弁（必要なら） */
@media (max-width: 360px){
  .p-team .t2-card-cta-text .line2{ white-space: normal; } /* 2行目だけ許容 */
  /* もしくは軽く縮めたい場合：
  .p-team .t2-card-cta-text{ font-size: .95rem; }
  */
}

/* SP 基本は16px */
@media (max-width: 767px){
  .p-team .t2-card-cta-text{ font-size: 16px; line-height: 1.7; }
}
/* ほんとに狭い端末だけ15pxに */
@media (max-width: 360px){
  .p-team .t2-card-cta-text{ font-size: 15px; }
}

/* === Footer：SP（〜767px）— ガラス調プレート＋金のアクセント === */
@media (max-width: 767px){
  .t2-footer{
    position: relative;
    padding-block: 20px 22px;
  }
  /* 背景に“上質なプレート”を敷く */
  .t2-footer::before{
    content: "";
    position: absolute;
    inset: 8px 14px; /* サイト全体のガター=14pxに揃える */
    background: linear-gradient(to bottom, rgba(15,30,47,.06), rgba(15,30,47,.03));
    border: 1px solid rgba(15,30,47,.08);
    border-radius: 14px;
    pointer-events: none;
  }

  .t2-footer .inner{
    position: relative;           /* ::before の上に載せる */
    display: grid;
    justify-items: center;
    text-align: center;
    row-gap: 10px;
  }

  /* ブランドの下に“金のヘアライン” */
  .t2-foot-brand{
    margin: 0;
    font-weight: 600;
    letter-spacing: .04em;
    padding-bottom: 6px;
  }
  .t2-foot-brand::after{
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    margin: 6px auto 0;
    background: linear-gradient(90deg, transparent, #d4af37, transparent);
    opacity: .9;
  }

  .t2-address{
    margin: 0;
    line-height: 1.7;             /* 圧迫感を除去 */
  }
  .t2-address a{ overflow-wrap: anywhere; }

  /* 連絡先は“上品ラベル”＋中央整列 */
  .t2-contact{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px 14px;
    margin-top: 2px;
  }
  .t2-contact .t2-tel::before,
  .t2-contact .t2-mail::before{
    content: attr(data-label);    /* デフォルトは後ろの固定文字を使用 */
    content: unset;               /* 古いブラウザ保険：下の固定文字が使われる */
  }
  .t2-contact .t2-tel::before{ content: "TEL"; }
  .t2-contact .t2-mail::before{ content: "MAIL"; }
  .t2-contact .t2-tel::before,
  .t2-contact .t2-mail::before{
    display: inline-block;
    font-size: 12px;
    letter-spacing: .06em;
    color: #0f1e2f;
    background: rgba(212,175,55,.12);       /* 金の淡い面 */
    border: 1px solid rgba(212,175,55,.25); /* うっすら縁取り */
    border-radius: 999px;
    padding: 2px 6px;
    margin-right: 6px;
    vertical-align: middle;
  }

  .t2-copy{
    display: block;
    margin-top: 10px;
    padding-top: 10px;
    width: 100%;
    border-top: 1px solid rgba(15,30,47,.08); /* 締めのヘアライン */
    color: #4a5a68;
    font-size: 12px;
    letter-spacing: .04em;
  }
}

/* === ヘッダー／フッター：反応の基本（全端末共通） === */
.t2-nav a,
.t2-foot-nav a{
  transition: color .2s ease, transform .15s ease, opacity .2s ease;
}

/* マウス等 hover できる端末 */
@media (hover: hover) and (pointer: fine){
  .t2-nav a:hover,
  .t2-nav a:focus-visible,
  .t2-foot-nav a:hover,
  .t2-foot-nav a:focus-visible{
    color: #d4af37;
    transform: translateY(-1px);
    outline: none;
  }
}

/* タッチ端末：タップ時に色変化 */
@media (hover: none), (pointer: coarse){
  .t2-nav a:active,
  .t2-nav a:focus,
  .t2-foot-nav a:active,
  .t2-foot-nav a:focus{
    color: #d4af37;
    transform: none;
    outline: none;
  }
}

/* === フッター配色（共通トーン） === */
.t2-footer{
  background: #0f1e2f;      /* 濃紺バンド */
  color: #e8eef5;
}
.t2-foot-nav a{
  color: #fff;
  font-weight: 500;
  letter-spacing: .02em;
  white-space: nowrap;
  text-decoration: none;
  opacity: .95;
}
.t2-copy{
  color: rgba(255,255,255,.78);
  font-size: 12px;
  letter-spacing: .04em;
  line-height: 1.5;
}

/* === SP（〜767px）：シンプル中央寄せ、自然折返し === */
@media (max-width: 767px){
  .t2-footer{ padding-block: 22px; }
  .t2-footer .inner{
    display: grid;
    justify-items: center;
    text-align: center;
    row-gap: 10px;
    width: min(96vw, var(--t2-container));
    margin-inline: auto;
    padding-inline: 14px;
  }
  .t2-foot-nav{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px 16px;
  }
  .t2-foot-nav a{ padding: 10px 6px; line-height: 1.35; } /* タップ面＋少しタイト */
}

/* === タブレット（768–1023px）：3列×2行で整える === */
@media (min-width: 768px) and (max-width: 1023px){
  .t2-footer{ padding-block: 26px; }
  .t2-footer .inner{
    display: grid;
    justify-items: center;
    text-align: center;
    row-gap: 12px;
    width: min(92vw, var(--t2-container));
    margin-inline: auto;
    padding-inline: 16px;
  }
  .t2-foot-nav{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
    column-gap: 20px;
    row-gap: 10px;
    margin-top: 2px;
  }
  .t2-foot-nav a{ padding: 8px 4px; text-align: center; }
}

/* === 1024pxピンポイント：1行横並び固定 === */
@media (width: 1024px){
  .t2-foot-nav{
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 18px;
  }
  .t2-foot-nav a{ padding: 8px 4px; }
}

/* === PC（>=1025px）：1行横並び、ゆとり少し＋字組きれいに === */
@media (min-width: 1025px){
  .t2-footer{ padding-block: 28px; }
  .t2-footer .inner{
    display: grid;
    justify-items: center;
    text-align: center;
    row-gap: 12px;
    width: min(92vw, var(--t2-container));
    margin-inline: auto;
    padding-inline: 16px;
  }
  .t2-foot-nav{
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 20px;   /* 18〜24でお好み調整OK */
  }
  .t2-foot-nav a{ padding: 8px 4px; }
}

/* SP：超狭幅でも2行×3列に寄せる（360〜480px向け） */
@media (min-width: 360px) and (max-width: 480px){
  .t2-foot-nav{
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* 3列固定 */
    justify-items: center;
    column-gap: 12px;   /* 10〜14で微調整OK */
    row-gap: 8px;
    margin-top: 2px;
  }
  .t2-foot-nav a{
    white-space: nowrap;                 /* 1リンク=1行 */
    text-align: center;
    padding: 8px 2px;                    /* 横幅確保のため控えめ */
    font-size: clamp(12px, 3.5vw, 14px); /* 375pxで約13pxに収まる */
    line-height: 1.35;
    letter-spacing: .02em;
  }
}

/* さらに狭い ≤340px は1列へフォールバック（既出） */
@media (max-width: 340px){
  .t2-foot-nav{
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 6px;
  }
  .t2-foot-nav a{ text-align: center; padding-left: 0; }
}

/* SP（〜767px）：2列×3行／中央寄せ＋文字は左揃え */
@media (max-width: 767px){
  .t2-foot-nav{
    display: grid;
    grid-template-columns: max-content max-content; /* 列幅＝中身の最大幅 */
    justify-content: center;                        /* 2列を中央に寄せる */
    justify-items: stretch;                         /* 各セルは列幅いっぱい */
    column-gap: 12px;                               /* 10〜16で微調整OK */
    row-gap: 8px;
    margin-top: 2px;
    text-align: initial;                            /* 親のcenterを打消し保険 */
    padding-left: 32px;           /* 8〜16pxで微調整OK */
  }
  .t2-footer .t2-foot-nav a{
    display: block;          /* セル幅いっぱいをクリック可能に */
    width: 100%;
    text-align: left;        /* ← 文字始まりを左に */
    white-space: nowrap;     /* 1リンク＝1行 */
    padding: 10px 6px 10px 0;/* タップ面：上下10px */
    font-size: clamp(12px, 3.6vw, 14px);
    line-height: 1.35;
    letter-spacing: .02em;
  }
}

/* ===== 1024px だけの調整 ===== */
@media (width: 1024px){

  /* お知らせ：ボタンを中央＆▼▼▼追加 */
  .t2-news-actions{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
    text-align: center;
  }
  /*
  .t2-news-actions::before{
    content: "▾▾▾";
    font-size: 18px;
    line-height: 1;
    opacity: .55;
    color: color-mix(in oklab, var(--navy) 35%, white);
  }
    */

  /* お問い合わせ：送信ボタンを中央 */
  .t2-form-actions{
    display: flex;
    justify-content: center;
  }

  /* フッター：© を中央寄せ */
  .t2-footer .inner{
    display: grid;          /* ここだけグリッドにして中央寄せ */
    justify-items: center;
    text-align: center;
  }
}

/* ===== 768–1023px：News と Contact のボタンを中央に ===== */
@media (min-width: 768px) and (max-width: 1023px){
  /* お知らせ：ボタン中央（装飾は出さない） */
  .t2-news-actions{
    display: flex;
    justify-content: center;
    text-align: center;
  }
  .t2-news-actions::before{ content: none; } /* ▼▼▼は非表示 */

  /* お問い合わせ：送信ボタン中央 */
  .t2-form-actions{
    display: flex;
    justify-content: center;
  }
}

/* ===== SP（〜767px）：お知らせ/お問い合わせのボタン中央＋h2中央 ===== */
@media (max-width: 767px){
  /* お知らせ：ボタン中央（装飾は出さない） */
  .t2-news-actions{
    display: flex;
    justify-content: center;
    text-align: center;
  }
  .t2-news-actions::before{ content: none; }

  /* お問い合わせ：送信ボタン中央 */
  .t2-form-actions{
    display: flex;
    justify-content: center;
  }

  /* 各セクションの見出し（h2）を中央 */
  .t2-section-title{
    text-align: center;
  }
}

@media (max-width: 767px){
  .t2-access-links{
    display: flex;
    justify-content: center;
  }
}

/* team：Tablet（768–1023px） 2行／テキストとボタンを近づける */
@media (min-width: 768px) and (max-width: 1023px){
  .p-team .t2-card-cta{
    /* 左=テキストは“中身の幅だけ”、右=ボタンはそのまま */
    grid-template-columns: max-content auto;
    justify-content: center;
    column-gap: 24px;              /* 近づけ具合：10〜16pxでお好み */
  }
  .p-team .t2-card-cta-text{
    max-width: 44ch;               /* 2行目安。3行になるなら 46ch へ */
    margin: 0;                      /* 余計な押し出しをリセット */
    text-wrap: balance;             /* 対応ブラウザで改行をきれいに */
  }
  .p-team .t2-card-cta .btn-gold{
    min-width: auto;          /* ← 横長固定を解除 */
    padding-inline: 1.1em;    /* ← 横の余白を少しだけ細めに（既定1.4em→1.1em） */
    display: inline-flex;
    justify-content: center;
  }
}

/* === CTA 共通レイアウト（スイッチ式） ========================= */
/* body に .is-cta-unified が付いているページだけ有効になる */

@media (max-width: 767px){
  .is-cta-unified .t2-cta--article{
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 12px;
    justify-items: center;
    text-align: center;
    padding-block: 16px;
  }
  .is-cta-unified .t2-cta-text{
    max-width: 40ch;
    margin: 0 auto;
    line-height: 1.7;
  }
  .is-cta-unified .t2-cta--article .btn-gold{
    width: auto;
    padding: 10px 20px;
  }
}

@media (min-width: 768px) and (max-width: 1023px){
  .is-cta-unified .t2-cta--article{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto; /* 左=テキスト, 右=ボタン */
    align-items: center;
    justify-content: center;
    column-gap: 16px; /* 近づける */
  }
  .is-cta-unified .t2-cta-text{ line-height: 1.6; }
}

@media (min-width: 1025px){
  .is-cta-unified .t2-cta--article{
    display: grid;
    grid-template-columns: max-content auto;  /* 1行で凛と見せる */
    align-items: baseline;
    justify-content: center;                  /* セット全体を中央へ */
    column-gap: 30px;
  }
  .is-cta-unified .t2-cta-text{
    white-space: nowrap; /* PCは1行固定 */
    margin: 0;
  }
}

/* PCだけ：お知らせのボタン＆フォーム送信ボタンを中央寄せ */
@media (width:1024px), (min-width:1025px){
  /* お知らせセクションのボタン行 */
  .t2-news .t2-news-actions{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }

  /* お問い合わせフォームの送信ボタン行 */
  .t2-contact-sec .t2-form-actions{
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;              /* グリッド内でも行全体を使う */
  }

  /* ボタン要素側の縦中央（見た目のズレ防止の保険） */
  .t2-news .t2-news-actions > a,
  .t2-contact-sec .t2-form-actions > :is(a, button, input[type="submit"]){
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

/* 768px だけ：お知らせボタンの“上”に少し余白 */
@media (width: 768px){
  .t2-news .t2-news-actions{
    margin-top: 16px;
  }
}

/* PCサイズ（1024含む）：お知らせボタンの“上”に少し余白 */
@media (width:1024px), (min-width:1025px){
  .t2-news .t2-news-actions{
    margin-top: 20px;  /* 16pxでもOK。お好みで */
  }
  /* （任意）ボタン自体の margin-top が邪魔なら 0 に */
  /* .t2-news .t2-news-actions > a{ margin-top: 0; } */
}

/* PC/1024 時はタイトル+リードを1行連結（余白ゼロ） */
@media (width:1024px), (min-width:1025px){
  .cta-local__body{
    display: flex;
    align-items: baseline;
    white-space: nowrap;
    gap: 0;             /* ← これで「にて」と「承ります。」の間の余白ゼロ */
    max-width: none;    /* 折返し抑制のため */
  }
  .cta-local__title,
  .cta-local__lead{
    display: inline;
    margin: 0;
  }
}




@media (min-width:768px){
  .t2-cta--article .t2-cta-tel{
    flex-direction: row !important;
    text-align: left !important;
  }
  .t2-cta--article .t2-cta-tel__link,
  .t2-cta--article .t2-cta-tel__hours{
    display: inline-block !important;
    white-space: nowrap !important;
  }
}

@media (max-width: 767px){
  .t2-cta.t2-cta--article .t2-cta-tel{
    flex-direction: column;
    text-align: center;
  }
}

/* ===== CTA 最終版 ===== */

/* PC & タブレット（769px〜）：左2行＋右ボタン縦中央、中央寄せ */
@media (min-width: 769px){
  .t2-cta-split > .inner > .t2-cta,
  .t2-cta-split > .t2-cta{
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: center;
    column-gap: 22px;   /* ←距離はここで調整 */
    row-gap: 6px;
    align-items: center;
  }
  .t2-cta--article .t2-cta-text{
    grid-column: 1; grid-row: 1;
    margin: 0;
    white-space: nowrap;
  }
  .t2-cta--article .t2-cta-text br{ display: none; }
  .t2-cta--article .t2-cta-tel{
    grid-column: 1; grid-row: 2;
    display: flex; flex-wrap: nowrap; align-items: baseline;
    gap: 12px; white-space: nowrap; margin: 0;
  }
  .t2-cta--article .btn-gold{
    grid-column: 2; grid-row: 1 / span 2;
    align-self: center; justify-self: start;
    margin: 0; white-space: nowrap;
  }
}

/* 768px ちょうど：テキストは自然に2行、TELは横1行、中央寄せ */
@media (width: 768px){
  .t2-cta-split > .inner > .t2-cta,
  .t2-cta-split > .t2-cta{
    display: grid;
    grid-template-columns: fit-content(44ch) auto;
    justify-content: center;
    column-gap: 22px; row-gap: 6px; align-items: center;
  }
  .t2-cta--article .t2-cta-text{
    grid-column: 1; grid-row: 1;
    margin: 0; white-space: normal; max-width: 42ch; min-width: 0;
  }
  .t2-cta--article .t2-cta-text br{ display: none; }
  .t2-cta--article .t2-cta-tel{
    grid-column: 1; grid-row: 2;
    display: flex; flex-wrap: nowrap; align-items: baseline;
    gap: 12px; white-space: nowrap; margin: 0;
  }
  .t2-cta--article .btn-gold{
    grid-column: 2; grid-row: 1 / span 2;
    align-self: center; justify-self: start;
    margin: 0; white-space: nowrap;
  }
}

/* モバイル（〜767px）：テキスト → TEL → ボタン（ボタンは一番下） */
@media (max-width: 767px){
  .t2-cta-split > .inner > .t2-cta,
  .t2-cta-split > .t2-cta{
    display: flex; flex-direction: column; gap: 12px; align-items: stretch;
  }
  .t2-cta--article .t2-cta-text{ order: 1; text-align: center; }
  .t2-cta--article .t2-cta-tel{
    order: 2;
    display: flex; flex-direction: column; align-items: center;
    text-align: center; gap: 6px; margin-top: -4px; align-self: center;
    width: max-content;
  }
  .t2-cta--article .btn-gold{ order: 3; align-self: center; }
}
/* --- 769px〜：TEL&営業時間の間隔と縦位置を安定化 --- */
@media (min-width: 769px){
  .t2-cta--article .t2-cta-tel{
    align-items: center;      /* ベースラインではなく中央揃えにして段差解消 */
    gap: 12px !important;     /* 距離を明示（上書き確実化） */
  }
}

/* --- 768px ちょうど：同じく中央揃え＆距離確保 --- */
@media (width: 768px){
  .t2-cta--article .t2-cta-tel{
    align-items: center;
    gap: 12px !important;
  }
}


/* ——— 一覧/詳細の表示切替（JSなし） ——— */
.news-detail{ display: none; }
.news-detail:target{ display: block; }

/* 何かの news-detail が表示されているときは一覧を隠す */
body:has(.news-detail:target) #list{ display: none; }
body:has(.news-detail:target) .t2-pagination{ display: none; } /* ページネーションも非表示 */

/* 最小レイアウト（必要に応じてお好みで） */
.news-detail{
  max-width: 840px; margin: 0 auto;
  padding: clamp(16px,3.5vw,28px) 16px; box-sizing: border-box;
}
.news-detail__title{ font-size: clamp(20px,2.2vw,28px); line-height: 1.5; margin: 0 0 8px; }
.news-detail__meta{ color:#6b7a8b; font-size: .95rem; display:flex; gap:12px; align-items:center; margin:0 0 16px; }
.news-pager{ display:grid; grid-template-columns: 1fr; justify-items:center; gap:12px; margin-top: clamp(20px,4vw,28px); }
.news-detail{ scroll-margin-top: 80px; } /* ヘッダー高さに合わせて調整 */

.news-pager{ margin-top: clamp(20px, 4vw, 32px); }


/* ===== works.html 専用：シンプルCTA（.x-cta）最終版 ===== */

/* 共通（見た目の箱） */
.x-cta{
  width: min(92vw, var(--t2-container, 1100px));
  margin: clamp(16px, 4vw, 28px) auto;
  padding: clamp(16px, 3.5vw, 28px) 16px;
  box-sizing: border-box;
  border-radius: 14px;
  background: #0f1e2f;
  color: #fff;
}
.x-cta .xL > *{ margin: 0; }     /* xText と xTel の余白を初期化 */
.x-cta .xText{ margin: 0; }
.x-cta .xTel{ margin: 0; }

/* PC & タブレット（769px〜）：左2段（1:テキスト／2:TEL&時間）＋右ボタン“縦中央”、中央寄せ */
@media (min-width:769px){
  .x-cta{
    display: grid;
    grid-template-columns: max-content max-content;  /* 左右を内容幅で */
    justify-content: center;                         /* 中央に集合 */
    column-gap: 22px; row-gap: 6px;
    align-items: center;
  }
  .x-cta .xL{
    display: grid;
    grid-auto-flow: row;
    row-gap: 6px;
    min-width: 0;
  }
  .x-cta .xText{
    white-space: nowrap;       /* 1行で見せる */
    max-width: none;
  }
  .x-cta .xTel{
    display: flex;
    flex-wrap: nowrap;
    align-items: center;       /* 小さめフォントの段差を解消 */
    gap: 12px;                 /* TEL と 営業時間の間隔 */
    white-space: nowrap;       /* 折返し禁止で1行固定 */
    min-width: 0;
  }
  .x-cta .xTel a,
  .x-cta .xTel .xHours{
    display: inline-block;
    white-space: nowrap;
    line-height: inherit;
  }
  .x-cta .xBtn{
    grid-column: 2; grid-row: 1 / span 2;
    align-self: center;        /* 縦中央 */
    justify-self: start;       /* 端に貼り付けず中央側へ */
    white-space: nowrap;
  }
}

/* 768px ちょうど：テキストは自然に2行OK、TEL&時間は横1行、右ボタンは縦中央＆中央寄せ */
@media (width:768px){
  .x-cta{
    display: grid;
    grid-template-columns: fit-content(44ch) auto;
    justify-content: center;
    column-gap: 22px; row-gap: 6px; align-items: center;
  }
  .x-cta .xText{
    white-space: normal;       /* 折返しを許可（2行想定） */
    max-width: 42ch; min-width: 0;
  }
  .x-cta .xTel{
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
  }
  .x-cta .xBtn{
    grid-column: 2; grid-row: 1 / span 2;
    align-self: center; justify-self: start;
  }
}

/* モバイル（〜767px）：テキスト → TEL → ボタン（ボタン最後） */
@media (max-width:767px){
  .x-cta{
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
    text-align: center;
  }
  .x-cta .xText{ order: 1; }
  .x-cta .xTel{
    order: 2;
    display: flex; flex-direction: column;
    align-items: center; text-align: center;
    gap: 6px; margin-top: -4px;          /* 上との距離ちょい詰め（お好みで 0〜-8px） */
    align-self: center; width: max-content;
  }
  .x-cta .xBtn{ order: 3; align-self: center; }
}
/* ===== works.html CTA：PC/1024 だけ最小復旧 ===== */

/* 箱の見た目（全サイズ共通でOK：背景/角丸/内側余白/中央寄せ/幅の上限） */
.x-cta{
  max-width: 840px;                 /* ← 横幅を狭める（お好みで 720〜900px へ） */
  width: 100%;
  margin: clamp(16px,4vw,28px) auto;/* 中央配置 */
  padding: clamp(16px,3.5vw,28px) 16px;
  box-sizing: border-box;
  border-radius: 14px;
  background: #0f1e2f;
  color: #fff;
}

/* PC/1024：左に2段（テキスト / TEL&時間）＋右にボタン（縦中央）を中央寄せ */
@media (min-width: 769px){
  .x-cta{
    display: grid;
    grid-template-columns: max-content max-content;
    justify-content: center;         /* 左右を中央付近に集合 */
    column-gap: 22px;                /* 距離はここで調整 */
    row-gap: 6px;
    align-items: center;
  }
  .x-cta .xL{
    display: grid;
    grid-auto-flow: row;
    row-gap: 6px;
    min-width: 0;
  }
  .x-cta .xText{
    margin: 0;
    white-space: nowrap;             /* 1行に収める */
  }
  .x-cta .xTel{
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;             /* ベースライン段差を解消 */
    gap: 12px;                       /* TELと営業時間の間隔 */
    white-space: nowrap;             /* 折返し防止 */
    min-width: 0;
  }
  /* “青字”対策：TELリンクはCTAの文字色を継承＆下線オフ */
  .x-cta .xTel a{
    color: inherit;
    text-decoration: none;
  }
  .x-cta .xBtn{
    grid-column: 2; 
    grid-row: 1 / span 2;
    align-self: center;              /* 縦中央 */
    justify-self: start;             /* 端貼り付きを避け中央側へ */
    white-space: nowrap;
  }
}

/* 見た目をsmall相当に（HTMLが <span class="xHours"> でもOK） */
.x-cta .xHours{
  font-size: 0.95em;                 /* 他ページの<small>に寄せる */
  opacity: .95;
}
/* ===== x-CTA：ボタンだけ縦中央（PC/タブレット＆768） ===== */



/* 768pxちょうど */
@media (width: 768px){
  .x-cta .xBtn{
    grid-row: 1 / -1 !important;
    align-self: center !important;
  }
}

/* （参考）リンク青対策をより確実にしたい場合 */
.x-cta .xTel a:link,
.x-cta .xTel a:visited{
  color: inherit;
  text-decoration: none;
}
/* ===== x-CTA：ボタンだけ縦中央（PC: 1025px〜 と 1024px だけ） ===== */

/* ===== x-CTA：PC/1024 だけボタンを確実に“縦中央” ===== */

/* PC（1025px〜） */
@media (min-width: 1025px){
  .x-cta{
    display: grid !important;
    grid-template-columns: max-content max-content; /* 既存の見た目を維持 */
    grid-template-rows: auto auto !important;      /* ← 2行を用意するのがカギ */
    align-items: center !important;
  }
  .x-cta .xL{  grid-column: 1; grid-row: 1 / 3 !important; }
  .x-cta .xBtn{grid-column: 2; grid-row: 1 / 3 !important; align-self: center !important; }
}

/* 1024px ちょうど */
@media (width: 1024px){
  .x-cta{
    display: grid !important;
    grid-template-columns: fit-content(44ch) auto;  /* 1024は左を少し可変に */
    grid-template-rows: auto auto !important;
    align-items: center !important;
  }
  .x-cta .xL{  grid-column: 1; grid-row: 1 / 3 !important; }
  .x-cta .xBtn{grid-column: 2; grid-row: 1 / 3 !important; align-self: center !important; }
}
/* PC（1025px〜） */
@media (min-width: 1025px){
  .x-cta .xBtn{
    margin: 0 !important;                 /* ← ここで打消し */
    grid-row: 1 / 3 !important;           /* 左2段ぶち抜き */
    align-self: center !important;        /* 縦中央 */
    justify-self: start !important;       /* 横は中央側へ */
  }
}

/* 1024px ちょうど */
@media (width: 1024px){
  .x-cta .xBtn{
    margin: 0 !important;                 /* ← ここで打消し */
    grid-row: 1 / 3 !important;
    align-self: center !important;
    justify-self: start !important;
  }
}


/* ===== 768pxちょうど：x-CTA を中央寄せ＆テキスト1行化＆青リンク解除 ===== */
@media (width: 768px){
  /* 中身を中央に寄せ、2カラムの距離はお好みで */
  .x-cta{
    display: grid;
    grid-template-columns: max-content auto; /* 左=内容幅, 右=ボタン */
    justify-content: center;                 /* 全体を中央に集合 */
    column-gap: 22px;
    row-gap: 6px;
    align-items: center;
  }

  /* 「す。」だけ改行されないよう、1行に固定 */
  .x-cta .xText{
    margin: 0;
    white-space: nowrap;     /* ← 1行化 */
    max-width: none;
    min-width: 0;
  }

  /* TEL＋営業時間は横1行のまま */
  .x-cta .xTel{
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    min-width: 0;
  }

  /* 電話リンクの青字をやめてCTAの色に統一 */
  .x-cta .xTel a:link,
  .x-cta .xTel a:visited{
    color: inherit;
    text-decoration: none;
  }
}

/* 他サイズと見た目を揃える“営業時間”（<span class="xHours">のままでOK） */
.x-cta .xHours{ font-size: 0.95em; opacity: .95; }
/* ===== 768pxちょうど：ボタンの縦中央 + margin-topを無効化 ===== */
@media (width: 768px){
  .x-cta{
    display: grid !important;
    grid-template-columns: fit-content(44ch) auto; /* 左=内容幅, 右=ボタン */
    grid-template-rows: auto auto !important;     /* ← 2行を明示して中央基準を作る */
    align-items: center !important;
  }
  .x-cta .xL{  grid-column: 1; grid-row: 1 / 3 !important; }  /* 左塊は2行ぶち抜き */
  .x-cta .xBtn{
    grid-column: 2; grid-row: 1 / 3 !important;   /* ボタンも2行ぶち抜き */
    align-self: center !important;                 /* 自分の縦領域内で中央 */
    justify-self: start !important;                /* 端貼り付きを防ぎ中央側へ */
    margin: 0 !important;                          /* ← ここで margin-top を確実にゼロに */
  }
}
/* 768px：左カラム(.xL)内のテキスト行とTEL行の間隔を広げる */
@media (width: 768px){
  .x-cta .xL{
    display: grid;
    grid-auto-flow: row;
    row-gap: 4px;   /* ← お好みで 6〜12px に調整 */
  }
}

/* ===== works.html の x-CTA：モバイルだけの最小調整 ===== */
@media (max-width: 767px){
  /* 箱を中央に・右ベタ付きを解消（幅を少しだけ縮めて中央寄せ） */
  .x-cta{
    width: min(94vw, 560px) !important;
    margin-inline: auto !important;
    text-align: center;                 /* デフォで中央寄せ */
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;                /* 子要素も中央寄せ */
  }

  /* テキスト：自然な改行（1〜2行想定）＆読みやすい行幅 */
  .x-cta .xText{
    white-space: normal;                /* ← nowrapを無効化 */
    max-width: 32ch;                    /* 行長を整えて“変な所での改行”を回避 */
    line-height: 1.6;                   /* 行間を少し広めに */
    margin: 0 auto;
  }

  /* TEL＋営業時間：中央寄せ・縦積み・行間少しタイトめ */
  .x-cta .xTel{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    margin-top: -2px;                   /* 上との間隔を微調整（±0〜-6でお好み） */
    align-self: center;
  }

  /* 電話リンクの“青字”を無効化（親の色＝白を継承） */
  .x-cta .xTel a:link,
  .x-cta .xTel a:visited{
    color: inherit;
    text-decoration: none;
  }

  /* ボタンは中央に（余計なマージンを排除） */
  .x-cta .xBtn{
    align-self: center;
    margin: 0;
    width: max-content;
  }

  /* “営業時間”は他サイズと統一（<span class="xHours">でもOK） */
  .x-cta .xHours{ font-size: 0.95em; opacity: .95; }
}
/* ===== x-CTA：モバイル強制リセット（右ベタ/左寄り/青リンク/改行の乱れを一括解消） ===== */
@media (max-width: 767px){
  /* 箱そのものを中央へ・右ベタ付きを解消 */
  .x-cta{
    width: min(94vw, 560px) !important;
    margin: clamp(16px,4vw,28px) auto !important;
    padding: clamp(16px,3.5vw,28px) 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    float: none !important;
    clear: both !important;
  }

  /* テキスト：自然な改行に（行幅と行間を整える） */
  .x-cta .xText{
    white-space: normal !important;     /* ← nowrapを打ち消す */
    max-width: 32ch !important;         /* 行の長さを制御（26–36chで調整可） */
    line-height: 1.6 !important;
    margin: 0 auto !important;
  }

  /* TEL＋営業時間：中央寄せ＆縦積み */
  .x-cta .xTel{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 6px !important;
    margin: 0 !important;
  }

  /* 青リンクを禁止（親色=白を継承） */
  .x-cta .xTel a:link,
  .x-cta .xTel a:visited{
    color: inherit !important;
    text-decoration: none !important;
  }

  /* ボタンは中央。余計な上マージンを無効化 */
  .x-cta .xBtn{
    align-self: center !important;
    margin: 0 !important;               /* ← .btn-gold の margin-top を打ち消し */
    width: max-content !important;
  }

  /* “営業時間”の見た目を統一（<span class="xHours">でもOK） */
  .x-cta .xHours{ font-size: .95em !important; opacity: .95 !important; }
}

/* ===== x-CTA：モバイル最終パッチ（横スクロール防止・中央配置・青リンク解除） ===== */
@media (max-width: 767px){
  .x-cta{
    width: 100% !important;          /* ← vw を使わない */
    max-width: 560px !important;     /* お好みで 520–600px に調整可 */
    margin: clamp(16px,4vw,28px) auto !important;
    padding: clamp(16px,3.5vw,28px) 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;  /* 中央寄せ */
    text-align: center !important;
  }

  /* テキスト：自然な改行＋行幅＆行間の調整 */
  .x-cta .xText{
    white-space: normal !important;  /* nowrapを打ち消す */
    max-width: 32ch !important;      /* 26–36chで好みに */
    line-height: 1.6 !important;
    margin: 0 auto !important;
  }

  /* TEL＋営業時間：中央寄せ・縦積み */
  .x-cta .xTel{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 0 !important;
  }

  /* 電話リンクの青字を禁止（親色を継承） */
  .x-cta .xTel a:link,
  .x-cta .xTel a:visited{
    color: inherit !important;
    text-decoration: none !important;
  }

  /* ボタン：中央・余計な上マージン無効化 */
  .x-cta .xBtn{
    align-self: center !important;
    margin: 0 !important;            /* ← .btn-gold の margin-top を無効化 */
    width: max-content !important;
  }

  /* “営業時間”の見た目統一（<span class="xHours">のままでOK） */
  .x-cta .xHours{ font-size: .95em !important; opacity: .95 !important; }
}
/* ===== x-CTA：モバイルのTEL+営業時間を中央寄せに強制 ===== */
@media (max-width: 767px){
  .x-cta .xTel{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;   /* 横方向の中央寄せ */
    text-align: center !important;    /* テキスト中央 */
    align-self: center !important;    /* 親の中でも中央 */
  }
  .x-cta .xTel a,
  .x-cta .xTel .xHours{
    display: inline-block !important; /* block指定を打ち消す */
    margin: 0 auto !important;        /* 中央に配置 */
    text-align: center !important;
  }
}
/* ===== x-CTA：モバイル（〜767px）で TEL+営業時間 を中央寄せにする本命修正 ===== */
@media (max-width: 767px){
  /* 親を flex 化：これで .xTel の align-self も効くようになるが、下で子側も中央寄せするのでどちらでもOK */
  .x-cta .xL{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;   /* ← これで .xText も .xTel も中央揃え */
    text-align: center !important;
  }

  /* 念押し：.xTel 自体と中身も中央寄せ */
  .x-cta .xTel{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    gap: 2px !important;
    margin: 0 !important;
  }
  .x-cta .xTel a,
  .x-cta .xTel .xHours{
    display: inline-block !important;
    margin: 0 auto !important;
  }
}
/* モバイル：テキストとTELの間に少し余白 */
@media (max-width: 767px){
  .x-cta .xL{
    gap: 8px !important;  /* お好みで 6–12px に調整 */
  }
}
/* x-cta内の電話リンクの色/下線を統一（全ページ共通） */
.x-cta .xTel a:link,
.x-cta .xTel a:visited { color: inherit; text-decoration: none; }

.x-cta .xTel a:hover,
.x-cta .xTel a:focus-visible { text-decoration: underline; }


/* ===== service-governance CTA：PCだけテキスト行間を少し狭く ===== */
@media (min-width: 1025px){
  .x-cta .xText{
    line-height: 1.25;  /* 目安：1.25〜1.4 の範囲で微調整可 */
  }
}

/* ===== service-governance CTA：1024pxだけ 1行＋重なり解消（fit-content不使用） ===== */
@media (width: 1024px){
  .x-cta{
    display: grid;
    grid-template-columns: max-content max-content; /* 左=テキスト自然幅 / 右=ボタン */
    justify-content: center;                        /* 全体を中央へ */
    column-gap: 16px;                               /* ← 距離は必要最小限に */
    row-gap: 6px;
    align-items: center;
  }

  .x-cta .xL{ grid-column: 1; grid-row: 1 / 3; }

  /* ← テキストは1行固定。わずかに縮めて収まりを作る */
  .x-cta .xText{
    white-space: nowrap;
    font-size: 0.95em;           /* 0.94〜0.97emで微調整可 */
    letter-spacing: -0.01em;     /* ほんの少しだけ詰める */
    line-height: 1.30;           /* 行高はややタイトに */
    margin: 0;
  }

  .x-cta .xTel{
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
    margin: 0;
  }

  /* ← ボタンも横幅を少しだけ絞る（見た目はほぼ変わらず） */
  .x-cta .xBtn{
    grid-column: 2; grid-row: 1 / 3;
    align-self: center; justify-self: start;
    margin: 0;
    padding-inline: 1.0em;       /* 0.95〜1.1emで微調整可 */
    font-size: 0.95em;           /* テキストとバランスを取る */
  }
}
/* ===== service-governance CTA：1024pxだけ行間を少し狭く ===== */
@media (width: 1024px){
  .x-cta .xText{
    line-height: 1.26; /* 1.26〜1.30で微調整OK */
  }
}




/* ===== service-governance CTA：768pxだけ「案件の…」から2行目＋重なり防止 ===== */
@media (width: 768px){
  .x-cta{
    display: grid;
    grid-template-columns: auto auto;   /* 左=内容幅 / 右=ボタン */
    justify-content: center;
    column-gap: 22px;                   /* 距離はお好みで 18〜26px */
    row-gap: 6px;
    align-items: center;
  }
  .x-cta .xL{ grid-column: 1; grid-row: 1 / 3; }

  /* テキストは2行に。行間はややタイト、確実に2行にするため各行をblock化 */
  .x-cta .xText{
    margin: 0;
    white-space: normal;
    line-height: 1.36;                  /* 1.28〜1.36で微調整可 */
  }
  .x-cta .xText .xL1,
  .x-cta .xText .xL2{ display: block; } /* ← 1行目／2行目を確定 */

  /* TELは横1行固定、ボタンは縦中央＆余計なマージンなし */
  .x-cta .xTel{
    display: flex; flex-wrap: nowrap; align-items: center;
    gap: 12px; white-space: nowrap; margin: 0;
  }
  .x-cta .xBtn{
    grid-column: 2; grid-row: 1 / 3;
    align-self: center; justify-self: start; margin: 0;
  }
}


@media (max-width: 767px){
  /* 2行目の中身を2ブロック化 → 「概要と」で改行 */
  .x-cta .xText .xL2-1,
  .x-cta .xText .xL2-2{ display: block; }
}
/* ===== service-governance CTA：モバイルだけ 1行目を「…予約制です。案件の概要と」に固定 ===== */
@media (max-width: 767px){
  /* 768で block にしている .xL1 / .xL2 を、このサイズでは inline に戻す */
  .x-cta .xText .xL1,
  .x-cta .xText .xL2{ display: inline !important; }

  /* 1行目は xL1 + xL2-1 を“連結して折り返さない” */
  .x-cta .xText .xL2-1{
    display: inline !important;
    white-space: nowrap !important;   /* ← ここで「予約制です。案件の概要と」を一塊に */
  }

  /* 2行目の先頭をここで確定 */
  .x-cta .xText .xL2-2{ display: block !important; }
}

/* ===== x-CTA：モバイルのTEL＋営業時間の行間をタイトに ===== */
@media (max-width: 767px){
  .x-cta .xTel{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 0 !important;              /* ← まず gap をゼロにリセット */
    margin: 0 !important;
  }
  .x-cta .xTel a,
  .x-cta .xTel .xHours{
    display: inline-block !important;
    margin: 0 !important;           /* 余計な上下マージンをゼロに */
    padding: 0 !important;          /* 念のため内側余白もゼロに */
    line-height: 1.30 !important;   /* ← 文字の上下をタイトに（1.22〜1.30で調整） */
    text-align: center !important;
  }

  /* それでもまだ広く見えるときだけ微調整（任意） */
  /* .x-cta .xTel .xHours{ margin-top: -2px !important; } */
}

@media (max-width: 767px){
  /* 「に。」を前の文字とセットで折り返さない */
  .x-cta--ip .xText .nb{ white-space: nowrap; }

  /* 1行目に“に。”が乗る余白を少しだけ増やす（必要なら） */
  .x-cta--ip .xText{ max-width: 34ch; }  /* 32ch→34ch。入らなければ 35–36ch に */
}


/* service-ip：PC/1024 の行間だけ調整（このCTA限定） */
@media (min-width: 1025px){
  .x-cta--ip .xText{ line-height: 1.0; }
}
/* 1024px を確実に拾う帯域（ズーム等の誤差対策） */
@media (min-width: 1023px) and (max-width: 1025px){
  .x-cta--ip .xText{ line-height: 1.2; }
}

/* モバイル：「に。」を前の語とセットで折り返さない（このCTA限定） */
@media (max-width: 767px){
  .x-cta--ip .xText .nb{ white-space: nowrap; }
  /* もし1行目に乗り切らない時は、行幅をほんの少しだけ広げる */
  /* .x-cta--ip .xText{ max-width: 34ch; }  */ /* 必要になったら解除して使ってね */
}


@media (max-width: 767px){
  .x-cta--ip .xText{ max-width: 34ch; } /* 32→34〜36chで微調整 */
}

@media (max-width: 767px){
  /* 「安全に。」をひとかたまりで折り返さない */
  .x-cta--ip .xText .keep{ white-space: nowrap; }
}


/* 共通：ヒーローの箱（高さ/配置） */
.t2-page-hero{
  position: relative;
  min-height: 62vh;
  display: grid;
  place-items: end start;   /* 左下にテキストを配置 */
  color: #fff;

  /* 画像の描画設定（どの背景指定が来ても最後に効かせるため別プロパティに分解） */
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}

/* ページ別の背景画像（！important で theme-trust の background: を上書き） */
.t2-page-hero--news{
  background-image: url("../img/service-01.jpg") !important;
}

/* グラデは別レイヤーに（background: の競合を避ける） */
.t2-page-hero::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.68));
  z-index: 0;
}
.t2-page-hero > *{ position: relative; z-index: 1; } /* テキストを前面へ */

.t2-page-hero{
  position: relative;
  min-height: 62vh;
  display: grid;
  place-items: end start;
  color: #fff;
  background-size: cover;
  background-position: center 40%;
  background-repeat: no-repeat;
}

/* ページ別ヒーロー（CSSは docs/css/ → 画像は ../img/ で参照） */
.t2-page-hero--news{      background-image: url('../img/service-01.jpg'); }
.t2-page-hero--corporate{ background-image: url('../img/service-02.jpg'); }
.t2-page-hero--ip{        background-image: url('../img/service-03.jpg'); }
/* 必要に応じて増やす */


/* ガバナンス用ヒーロー画像（実ファイル名に合わせて .jpg/.jpeg を選んでね） */
.t2-page-hero--governance{
  background-image: url('../img/service-03.jpg') !important;
}

/* Hero: works */
.t2-page-hero--works{
  background-image: url('../img/service-01.jpg') !important; /* 実ファイル名に合わせて .jpg/.jpeg を変更 */
}

/* Hero: privacy */
.t2-page-hero--privacy{
  background-image: url('../img/service-03.jpg') !important; /* ← フォルダは img、拡張子は .jpg */
}

/* team のヒーロー画像（CSSは docs/css/ → 画像は ../img/… で参照） */
.t2-page-hero--team{
  background-image: url('../img/hero02.jpg?v=1') !important;
  background-position: center 38%;     /* 見せたい位置に微調整 */
  min-height: 40vh;                    /* VS寄りに少し低め（32〜44vhで好み調整） */
}

/* 暗さを“軽め”に上書き（既存の ::before を弱める） */
.t2-page-hero--light::before{
  content:"";
  position:absolute; inset:0; z-index:0;
  background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.40)) !important;
}

/* ビネットも控えめに（入れていない場合は無害） */
.t2-page-hero--light::after{
  content:"";
  position:absolute; inset:0; z-index:0; pointer-events:none;
  box-shadow:
    inset 0 0 90px rgba(0,0,0,.22),
    inset 0 -45px 60px rgba(0,0,0,.18);
}

/* 子要素は前面へ（オーバーレイの上にテキストを出す） */
.t2-page-hero--light > *{ position:relative; z-index:1; }



@media (max-width: 768px){ #newsCta .sp-only{ display:inline; } }
/* 375px以下：タブレット改行を打ち消し、xs-only だけ表示 */
#newsCta .xs-only{ display:none; }
@media (max-width: 375px){
  #newsCta .sp-only{ display:none; }   /* ← ココがポイント（タブレット改行を無効化） */
  #newsCta .xs-only{ display:inline; } /* “お電話にて”の直後で改行 */
}


@media (max-width: 768px){ #privacyCta .sp-only{ display:inline; } }
/* 375px以下：タブレット改行を打ち消し、xs-only だけ表示 */
#privacyCta .xs-only{ display:none; }
@media (max-width: 375px){
  #privacyCta .sp-only{ display:none; }   /* ← ココがポイント（タブレット改行を無効化） */
  #privacyCta .xs-only{ display:inline; } /* “お電話にて”の直後で改行 */
}

@media (max-width: 768px){ #teamCta .sp-only{ display:inline; } }
/* 375px以下：タブレット改行を打ち消し、xs-only だけ表示 */
#teamCta .xs-only{ display:none; }
@media (max-width: 375px){
  #teamCta .sp-only{ display:none; }   /* ← ココがポイント（タブレット改行を無効化） */
  #teamCta .xs-only{ display:inline; } /* “お電話にて”の直後で改行 */
}

@media (max-width: 375px){
  /* 親のflexを解除して x-cta を横幅いっぱいに */
  #privacyCta > .inner{ display:block; }
  #privacyCta .x-cta{ width:100%; }

  /* 「お電話にて」を分割しない */
  #privacyCta .xText .nb{ white-space: nowrap; }
}

@media (max-width:375px){
  #privacyCta .sp-only{ display:none; }   /* タブレット用改行は消す */
  #privacyCta .xs-only{ display:inline; } /* ← この位置で改行 */
  #privacyCta > .inner{ display:block; }  /* 親flex解除で幅確保 */
  #privacyCta .x-cta{ width:100%; }
  #privacyCta .xText .nb{ white-space:nowrap; } /* 「お電話にて」を一塊に */
}





