/* =========================================================
   かんだ整体院 トップページ（assets/css/top.css）
   ========================================================= */

/* ---- キービジュアル ---- */
.t-hero { padding:34px 0 0; }
.t-hero__grid { max-width:1320px; margin:0 auto; padding:0 28px; display:grid; grid-template-columns:repeat(12,1fr); align-items:center; }
.t-hero__img { grid-column:4 / 13; grid-row:1; border-radius:12px; overflow:hidden; aspect-ratio:16 / 9; }
.t-hero__img img { display:block; width:100%; height:100%; object-fit:cover; animation:t-kv 1.8s cubic-bezier(.165,.84,.44,1) both; }
@keyframes t-kv { from { transform:scale(1.06); } to { transform:scale(1); } }
.t-hero__card { grid-column:1 / 7; grid-row:1; position:relative; z-index:2; background:#fff; border-radius:12px; padding:44px 44px 40px; box-shadow:0 18px 50px rgba(24,48,34,.14); }
.t-hero__tag { margin:0; font-size:12px; font-weight:700; letter-spacing:.12em; color:#4BA37A; }
.t-hero__h1 { margin:16px 0 0; font-size:clamp(26px,2.8vw,38px); line-height:1.5; font-weight:700; color:#26332B; letter-spacing:.02em; }
.t-hero__lead { margin:16px 0 0; font-size:15px; line-height:1.9; color:#3D4A42; }
.t-hero__pts { margin:20px 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
.t-hero__pts li { font-size:12px; font-weight:700; color:#2E6B4C; background:#EEF5F0; border-radius:999px; padding:6px 14px; }
.t-btn-line {
  margin-top:26px; display:flex; align-items:center; justify-content:center; gap:10px; min-height:62px;
  border-radius:999px; background:#2E6B4C; color:#fff; font-size:16px; font-weight:700; text-decoration:none;
  box-shadow:0 10px 24px rgba(46,107,76,.25); transition:background-color .3s ease, transform .3s ease;
}
.t-btn-line span { font-size:10px; }
.t-btn-line:hover { background:#25583E; color:#fff; transform:translateY(-2px); }

/* ---- お知らせ ---- */
.t-news { max-width:1320px; margin:28px auto 0; padding:0 28px; }
.t-news__in { display:flex; align-items:center; gap:22px; padding:16px 24px; border:1px solid #E2EAE5; border-radius:8px; }
.t-news__in p { margin:0; }
.t-news__en { font-size:11px; font-weight:700; letter-spacing:.2em; color:#4BA37A; }
.t-news__d { font-size:13px; color:#66736B; }
.t-news__t { flex:1; min-width:0; font-size:14px; color:#3C4A41; text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.t-news__more { margin-left:auto; }

/* ---- 見出し＋説明の横並び ---- */
.t-head { display:flex; flex-wrap:wrap; gap:24px 60px; align-items:flex-end; }
.t-head .sh { flex:1; min-width:300px; }
.t-head__lead { flex:1; min-width:300px; margin:0; font-size:15px; line-height:2; color:#3D4A42; }

/* ---- メニュー ---- */
.t-menu { position:relative; margin-top:90px; padding:96px 0 110px; background:#EEF5F0; overflow:hidden; }
.t-menu .bigen { right:-30px; top:30px; color:#E2EEE6; }
.tmenu-list { margin:48px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.tmenu-list > li { display:flex; }
.tmenu-item {
  position:relative; isolation:isolate; overflow:hidden; flex:1; display:flex; align-items:center; gap:20px;
  background:#fff; border-radius:10px; padding:22px 24px; color:inherit; text-decoration:none;
  box-shadow:0 6px 18px rgba(24,48,34,.07);
}
.tmenu-item__icon { position:relative; flex:none; width:84px; height:84px; }
.tmenu-item__icon img { position:relative; display:block; width:100%; height:100%; border-radius:50%; transition:transform .4s ease; }
.tmenu-item__txt { flex:1; min-width:0; }
.tmenu-item__txt b { display:block; font-size:17px; line-height:1.5; color:#26332B; transition:color .3s ease; }
.tmenu-item__txt span { display:block; margin-top:4px; font-size:12px; color:#7FA98E; }
.tmenu-item__arrow { position:relative; flex:none; width:34px; height:34px; border-radius:50%; background:#2E6B4C; transition:transform .35s ease; }
.tmenu-item__arrow::after { content:""; position:absolute; left:44%; top:50%; width:7px; height:7px; border-top:2px solid #fff; border-right:2px solid #fff; transform:translate(-50%,-50%) rotate(45deg); }
.tmenu-item.is-link .tmenu-item__icon::before { content:""; position:absolute; left:50%; top:50%; z-index:-1; width:100%; height:100%; border-radius:50%; background:#E6F2EA; transform:translate(-50%,-50%); transition:width .55s ease, height .55s ease; }
@media (hover:hover) {
  .tmenu-item.is-link:hover { color:inherit; }
  .tmenu-item.is-link:hover .tmenu-item__icon::before { width:900%; height:900%; }
  .tmenu-item.is-link:hover .tmenu-item__icon img { transform:scale(1.05); }
  .tmenu-item.is-link:hover .tmenu-item__txt b { color:#2E6B4C; }
  .tmenu-item.is-link:hover .tmenu-item__arrow { transform:translateX(4px); }
}
.tmenu-item.is-link:focus-visible { outline:3px solid rgba(75,163,122,.45); outline-offset:3px; }

/* ---- はじめての方へ ---- */
.t-fv { padding:110px 0 50px; }
.t-fv__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; align-items:center; }
.t-fv__img { border-radius:12px; overflow:hidden; aspect-ratio:5 / 4; }
.t-fv__img img { display:block; width:100%; height:100%; object-fit:cover; }
.t-fv__lead { margin:22px 0 0; font-size:15px; line-height:2; color:#3D4A42; }
.fv-steps { display:flex; gap:10px; margin:24px 0 30px; padding:0; list-style:none; }
.fv-steps li { flex:1; text-align:center; font-size:12px; font-weight:700; line-height:1.5; color:#2E6B4C; background:#F5FAF6; border:1px solid #E2EAE5; border-radius:6px; padding:12px 4px; }
.fv-steps li b { display:block; font-size:10px; color:#4BA37A; letter-spacing:.1em; }

/* ---- 当院の特徴 ---- */
.t-feat { position:relative; padding:50px 0 110px; overflow:hidden; }
.t-feat .bigen { right:-20px; top:10px; }
.t-feat .blob { width:520px; height:460px; right:-140px; bottom:-90px; }
.t-feat__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; align-items:center; }
.t-feat__img { border-radius:12px; overflow:hidden; aspect-ratio:5 / 4; }
.t-feat__img img { display:block; width:100%; height:100%; object-fit:cover; }
.t-feat__lead { margin:22px 0 0; font-size:15px; line-height:2; color:#3D4A42; }
.feat-pts { margin:28px 0 0; padding:0; list-style:none; display:grid; grid-auto-rows:1fr; gap:12px; }
.feat-pts li { display:flex; gap:16px; align-items:center; background:#fff; border:1px solid #E2EAE5; border-radius:8px; padding:16px 18px; }
.feat-pts b { flex:none; font-family:"Helvetica Neue", Arial, sans-serif; font-weight:400; font-size:24px; line-height:1; color:#2E6B4C; }
.feat-pts strong { display:block; font-size:15px; color:#26332B; }
.feat-pts span { display:block; margin-top:2px; font-size:13px; line-height:1.8; color:#3D4A42; }

/* ---- お客様の声 ---- */
.t-voice { padding:100px 0 110px; background:#F5FAF6; }
.voice-list { margin:44px 0 0; padding:4px 0 16px; list-style:none; display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.voice-list::-webkit-scrollbar { display:none; }
.voice-card { position:relative; flex:0 0 calc((100% - 44px) / 3); scroll-snap-align:start; background:#fff; border-radius:12px; padding:40px 30px 30px; box-shadow:0 10px 30px rgba(24,48,34,.07); box-sizing:border-box; }
.voice-card::before { content:"“"; position:absolute; left:20px; top:-8px; font-family:Georgia, serif; font-size:96px; line-height:1; color:#D6E8DC; }
.voice-card__ttl { position:relative; margin:0; font-size:17px; font-weight:700; line-height:1.7; color:#26332B; }
.voice-card__meta { margin:8px 0 0; font-size:12px; color:#66736B; }
.voice-card__stars { color:#E3A33B; letter-spacing:.1em; margin-right:10px; font-size:13px; }
.voice-card__tx { margin:16px 0 0; font-size:15px; line-height:2; color:#3D4A42; }
.voice-card__res { margin:16px 0 0; padding-top:14px; border-top:1px solid #EDF2EE; font-size:15px; font-weight:700; color:#2E6B4C; }
.voice-card__res span { margin-right:12px; font-size:11px; font-weight:400; color:#66736B; }
.t-voice.is-single .voice-list { justify-content:center; overflow:visible; }
.t-voice.is-single .voice-card { flex:0 1 860px; padding:46px 56px 40px; }
.voice-nav { margin-top:18px; display:flex; align-items:center; justify-content:center; gap:16px; }
.voice-nav button { width:38px; height:38px; border-radius:50%; border:1px solid #2E6B4C; background:#fff; color:#2E6B4C; font-size:16px; line-height:1; cursor:pointer; }
.voice-nav__dots { display:flex; align-items:center; gap:8px; }
.voice-note { margin:16px 0 0; text-align:center; font-size:12px; color:#66736B; }

/* ---- よくある質問 ---- */
.t-faq { padding:110px 0; }
.faq-list { margin:44px auto 0; max-width:880px; padding:0; list-style:none; display:flex; flex-direction:column; gap:14px; }

/* ---- ブログ ---- */
.t-blog { padding:110px 0; }
.t-blog > div { max-width:1200px !important; padding:0 32px !important; }
.t-blog__head { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px; }
.blog-list { margin:40px 0 0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }

/* ---- 予約・アクセス ---- */
.t-rsv { position:relative; background:#2E6B4C; color:#fff; padding:100px 0; overflow:hidden; }
.t-rsv__circle { position:absolute; right:-120px; top:-160px; width:520px; aspect-ratio:1; border:1px solid rgba(255,255,255,.22); border-radius:50%; }
.t-rsv__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center; }
.t-rsv__grid > div, .t-fv__grid > div, .t-feat__grid > div { min-width:0; }
.t-rsv__lead { margin:20px 0 0; font-size:15px; line-height:2; color:#E3F0E8; }
.t-rsv__table { margin-top:22px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.t-rsv__table table { width:100%; min-width:520px; border-collapse:collapse; background:#fff; border-radius:8px; overflow:hidden; font-size:13px; color:#26332B; }
.t-rsv__table caption { text-align:left; font-size:12px; color:#CFE5D7; padding-bottom:8px; }
.t-rsv__table th, .t-rsv__table td { padding:12px 6px; text-align:center; border-bottom:1px solid #E2EAE5; font-weight:400; }
.t-rsv__table thead th { background:#EEF5F0; font-size:12px; }
.t-rsv__table tbody th { text-align:left; padding-left:16px; white-space:nowrap; }
.t-rsv__table td { color:#2E6B4C; }
.t-rsv__table td.off { color:#B9C4BC; }
.t-rsv__table tr:last-child th, .t-rsv__table tr:last-child td { border-bottom:0; }
.t-rsv__note { margin:10px 0 0; font-size:12px; color:#CFE5D7; }
.t-rsv__btns { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.t-rsv__line, .t-rsv__tel { flex:1; min-width:220px; display:flex; align-items:center; justify-content:center; gap:10px; min-height:62px; border-radius:999px; font-weight:700; text-decoration:none; transition:background-color .3s ease, color .3s ease; }
.t-rsv__line { background:#fff; color:#2E6B4C; font-size:16px; }
.t-rsv__line span { font-size:10px; }
.t-rsv__line:hover { background:#EEF5F0; color:#2E6B4C; }
.t-rsv__tel { border:1px solid rgba(255,255,255,.6); color:#fff; font-size:20px; }
.t-rsv__tel small { font-size:12px; font-weight:400; color:#CFE5D7; }
.t-rsv__tel:hover { background:rgba(255,255,255,.1); color:#fff; }
.t-rsv__map { position:relative; border-radius:10px; overflow:hidden; aspect-ratio:4 / 3; background:#E8EFEA; }
.t-rsv__map iframe { position:absolute; inset:0; display:block; width:100% !important; height:100% !important; border:0; }
.t-rsv__addr { margin:12px 0 0; font-size:13px; line-height:1.9; color:#CFE5D7; }

/* ---- スマホ ---- */
@media (max-width:900px) {
  .tmenu-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .voice-card { flex-basis:80%; }
}
@media (max-width:767px) {
  .t-hero__grid { display:block; padding:0 16px; }
  .t-hero__img { border-radius:10px; }
  .t-hero__card { margin:-40px 10px 0; padding:28px 22px; }
  .t-news { padding:0 16px; }
  .t-news__in { flex-wrap:wrap; gap:6px 14px; padding:14px 16px; }
  .t-news__t { flex-basis:100%; white-space:normal; }
  .t-menu, .t-fv, .t-feat, .t-voice, .t-faq, .t-blog, .t-rsv { padding-top:70px; padding-bottom:76px; }
  .t-menu { margin-top:60px; }
  .tmenu-list { grid-template-columns:1fr; gap:12px; }
  .tmenu-item { padding:16px 18px; }
  .tmenu-item__icon { width:64px; height:64px; }
  .t-fv__grid, .t-feat__grid, .t-rsv__grid, .t-msg__grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .t-feat__img { order:-1; }
  .t-fv { padding-bottom:40px; }
  .t-feat { padding-top:40px; }
  .t-msg__grid { padding:0 18px; }
  .t-msg__photo { max-width:360px; margin:0 auto; }
  .t-rsv__line, .t-rsv__tel { min-width:0; flex-basis:100%; }
  .fv-steps { flex-wrap:wrap; }
  .fv-steps li { flex:0 0 calc(50% - 5px); }
  .voice-card { flex-basis:86%; padding:36px 22px 24px; }
  .t-voice.is-single .voice-card { padding:36px 22px 26px; }
  .t-blog > div { padding:0 18px !important; }
  .blog-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
  .t-rsv__circle { width:300px; right:-120px; top:-100px; }
}


/* =========================================================
   トーン調整（v2.1）
   ・背景は「白」と「生成り（#F6F4EF）」を交互に。緑の面は使わない
   ・緑は見出しの英字・アイコン・予約ボタンだけ
   ・院長メッセージだけ濃い色の帯にして、ページにメリハリを
   ========================================================= */
.t-hero__pts li { background:none; border:1px solid #D7DFDA; color:#3D4A42; font-weight:500; }

/* メニュー */
.t-menu { background:#F6F4EF; }
.t-menu .bigen { color:#ECE8DF; }
.tmenu-item { box-shadow:none; border:1px solid #ECE8DF; transition:border-color .35s ease, box-shadow .35s ease; }
.tmenu-item__txt span { color:#8A948D; }
.tmenu-item__arrow { width:40px; height:40px; background:#fff; border:1px solid #C9D3CD; transition:transform .35s ease, background-color .35s ease, border-color .35s ease; }
.tmenu-item__arrow::after { border-color:#1F2A24; width:6px; height:6px; border-width:1.6px 1.6px 0 0; }
.tmenu-item.is-link .tmenu-item__icon::before { background:#F1F6F2; }
@media (hover:hover) {
  .tmenu-item.is-link:hover { border-color:#CFDCD3; box-shadow:0 14px 30px rgba(31,42,36,.08); }
  .tmenu-item.is-link:hover .tmenu-item__arrow { background:#2E6B4C; border-color:#2E6B4C; }
  .tmenu-item.is-link:hover .tmenu-item__arrow::after { border-color:#fff; }
}

/* はじめての方へ：箱をやめて、線と数字で */
.fv-steps { gap:0; margin:28px 0 34px; border-top:1px solid #1F2A24; }
.fv-steps li { background:none; border:0; border-radius:0; padding:16px 6px 0; text-align:left; font-size:14px; color:#1F2A24; }
.fv-steps li + li { border-left:1px solid #E3E6E2; padding-left:14px; }
.fv-steps li b { margin-bottom:6px; font-family:"Helvetica Neue", Arial, sans-serif; font-size:11px; font-weight:500; letter-spacing:.14em; color:#2E6B4C; }

/* 当院の特徴：箱をやめて、罫線で区切る */
.feat-pts { gap:0; grid-auto-rows:auto; border-top:1px solid #1F2A24; }
.feat-pts li { background:none; border:0; border-bottom:1px solid #E3E6E2; border-radius:0; padding:20px 4px; align-items:flex-start; }
.feat-pts b { font-size:13px; font-weight:500; letter-spacing:.1em; padding-top:4px; color:#2E6B4C; }
.feat-pts .blob { display:none; }
.t-feat .bigen { color:#F1F0EB; }

/* お客様の声 */
.t-voice { background:#F6F4EF; }
.voice-card { box-shadow:none; border:1px solid #ECE8DF; }
.voice-card::before { color:#E4EDE7; }
.voice-card__stars { color:#2E6B4C; font-size:11px; letter-spacing:.2em; }
.voice-nav button { border-color:#C9D3CD; color:#1F2A24; }

/* 院長メッセージ：濃い色の帯 */
.t-msg { position:relative; overflow:hidden; padding:120px 0; background:linear-gradient(135deg,#4A5E52 0%,#3E5046 100%); color:#fff; }
.t-msg .bigen { right:-30px; top:40px; color:rgba(255,255,255,.06); }
.t-msg__grid { width:100%; max-width:1200px; margin:0 auto; padding:0 32px; box-sizing:border-box; display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:72px; align-items:center; }
.t-msg__photo { min-width:0; }
.t-msg__img { display:block; width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; object-position:50% 15%; clip-path:inset(6px round 12px); }
.t-msg .sh__en { color:#BFE3CC; }
.t-msg .sh__en::before { background:#BFE3CC; }
.t-msg .sh__jp { color:#fff; }
.t-msg__tx { margin:22px 0 0; font-size:16px; line-height:2.1; color:rgba(255,255,255,.9); }
.t-msg__tx + .t-msg__tx { margin-top:14px; }
.t-msg__sign { margin:32px 0 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.22); font-size:12px; letter-spacing:.1em; color:rgba(255,255,255,.72); }
.t-msg__sign b { display:block; margin-top:6px; font-size:22px; letter-spacing:.24em; color:#fff; }
.t-msg__dl { margin:22px 0 0; display:grid; grid-template-columns:auto 1fr; gap:10px 20px; font-size:14px; line-height:1.9; }
.t-msg__dl dt { font-size:11px; font-weight:700; letter-spacing:.16em; color:#8CC7A5; padding-top:3px; }
.t-msg__dl dd { margin:0; color:rgba(255,255,255,.82); }

/* 法人・団体：緑の帯をやめて白地に写真カード */
.biz { background:#fff; padding:110px 0 120px; }
.biz__title::after { background:#1F2A24; height:1px; width:48px; }
.biz__points li::before { background-color:#1F2A24; }
.biz__points strong { color:#1F2A24; }
.biz__list { gap:20px; }
.biz-card { border-radius:12px; }
.biz-card:nth-child(n) .biz-card__img::after { background:linear-gradient(90deg,rgba(18,22,20,.68),rgba(18,22,20,.18)); }

/* 予約・アクセス：生成りの面 */
.t-rsv { background:#F6F4EF; color:#1F2A24; }
.t-rsv__circle { border-color:#E6E1D6; }
.t-rsv .sh--w .sh__en { color:#2E6B4C; }
.t-rsv .sh--w .sh__en::before, .t-rsv .sh--w .sh__en::after { background:#2E6B4C; }
.t-rsv .sh--w .sh__jp { color:#1F2A24; }
.t-rsv__lead { color:#3D4A42; }
.t-rsv__table table { border:1px solid #ECE8DF; }
.t-rsv__table caption, .t-rsv__note, .t-rsv__addr { color:#6B746E; }
.t-rsv__table thead th { background:#1F2A24; color:#fff; }
.t-rsv__line { background:#2E6B4C; color:#fff; box-shadow:0 10px 24px rgba(46,107,76,.22); }
.t-rsv__line:hover { background:#25583E; color:#fff; }
.t-rsv__tel { border-color:#C9D3CD; color:#1F2A24; background:#fff; }
.t-rsv__tel small { color:#6B746E; }
.t-rsv__tel:hover { background:#fff; border-color:#1F2A24; color:#1F2A24; }

@media (max-width:767px) {
  .t-msg { padding:80px 0; }
  .t-msg__grid { grid-template-columns:minmax(0,1fr); gap:36px; padding:0 18px; }
  .t-msg__photo { max-width:340px; margin:0 auto; width:100%; }
  .fv-steps { border-top:0; }
  .fv-steps li, .fv-steps li + li { border:0; border-top:1px solid #1F2A24; padding:12px 4px 0; }
  .fv-steps { gap:16px 12px; }
  .biz__list { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .t-hero__img img { animation:none; }
}

/* =========================================================
   ファーストビュー（v2.2）：写真を全面に、ゆっくり切り替え
   ========================================================= */
.t-hero2 { position:relative; height:clamp(560px,calc(100svh - 110px),820px); overflow:hidden; color:#fff; background:#1F2A24; }
.t-hero2__slides, .t-hero2__img { position:absolute; inset:0; }
.t-hero2__img { width:100%; height:100%; object-fit:cover; opacity:0; animation:t-hero2-fade 24s linear infinite; }
@keyframes t-hero2-fade {
  0%   { opacity:0; transform:scale(1.12); }
  4%   { opacity:1; }
  25%  { opacity:1; }
  30%  { opacity:0; transform:scale(1); }
  100% { opacity:0; transform:scale(1); }
}
.t-hero2__shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(14,22,18,.78) 0%,rgba(14,22,18,.5) 42%,rgba(14,22,18,.05) 75%), linear-gradient(0deg,rgba(14,22,18,.45) 0%,rgba(14,22,18,0) 35%); }
.t-hero2__in { position:relative; z-index:2; height:100%; max-width:1200px; margin:0 auto; padding:0 32px; display:flex; flex-direction:column; justify-content:center; }
.t-hero2__tag { display:flex; align-items:center; gap:14px; margin:0; font-size:13px; font-weight:700; letter-spacing:.12em; color:rgba(255,255,255,.88); }
.t-hero2__tag span { padding:4px 10px; border:1px solid rgba(255,255,255,.6); border-radius:999px; font-size:11px; letter-spacing:.24em; }
.t-hero2__h1 { margin:26px 0 0; font-size:clamp(36px,5.2vw,68px); font-weight:700; line-height:1.32; letter-spacing:.04em; color:#fff; text-shadow:0 2px 24px rgba(0,0,0,.25); }
.t-hero2__h1 span { display:block; opacity:0; transform:translateY(24px); animation:t-hero2-in .9s cubic-bezier(.165,.84,.44,1) forwards; }
.t-hero2__h1 span:nth-child(2) { animation-delay:.15s; }
.t-hero2__h1 span:nth-child(3) { animation-delay:.3s; }
.t-hero2__h1-em { color:#BFE3CC; }
@keyframes t-hero2-in { to { opacity:1; transform:none; } }
.t-hero2__lead { margin:24px 0 0; font-size:16px; line-height:2; color:rgba(255,255,255,.9); }
.t-hero2__pts { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 0; padding:0; list-style:none; }
.t-hero2__pts li { padding:6px 14px; border:1px solid rgba(255,255,255,.45); border-radius:999px; font-size:12.5px; font-weight:700; color:#fff; background:rgba(255,255,255,.08); backdrop-filter:blur(4px); }
.t-hero2__btns { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.t-hero2__line { display:inline-flex; align-items:center; gap:16px; min-height:64px; padding:0 30px; border-radius:999px; background:#2E6B4C; color:#fff; font-size:16px; font-weight:700; text-decoration:none; box-shadow:0 12px 30px rgba(0,0,0,.25); transition:background-color .3s ease, transform .3s ease; }
.t-hero2__line span { width:10px; height:10px; border-top:2px solid #fff; border-right:2px solid #fff; transform:rotate(45deg); transition:transform .3s ease; }
.t-hero2__line:hover { background:#25583E; color:#fff; transform:translateY(-2px); }
.t-hero2__line:hover span { transform:translateX(4px) rotate(45deg); }
.t-hero2__tel { display:inline-flex; align-items:center; gap:10px; min-height:64px; padding:0 26px; border:1px solid rgba(255,255,255,.6); border-radius:999px; color:#fff; font-size:20px; font-weight:700; text-decoration:none; transition:background-color .3s ease; }
.t-hero2__tel small { font-size:11px; letter-spacing:.14em; color:rgba(255,255,255,.75); }
.t-hero2__tel:hover { background:rgba(255,255,255,.12); color:#fff; }
.t-hero2__bar { position:absolute; z-index:3; right:32px; bottom:36px; display:flex; gap:8px; }
.t-hero2__bar i { position:relative; display:block; width:44px; height:2px; background:rgba(255,255,255,.3); overflow:hidden; }
.t-hero2__bar i::after { content:""; position:absolute; inset:0; background:#fff; transform:scaleX(0); transform-origin:left; animation:t-hero2-bar 24s linear infinite; animation-delay:inherit; }
@keyframes t-hero2-bar { 0% { transform:scaleX(0); } 25% { transform:scaleX(1); opacity:1; } 25.01%,100% { transform:scaleX(0); } }
.t-hero2__scroll { position:absolute; z-index:3; left:50%; bottom:0; width:1px; height:72px; background:rgba(255,255,255,.3); overflow:hidden; text-decoration:none; }
.t-hero2__scroll::after { content:""; position:absolute; left:0; top:-72px; width:1px; height:72px; background:#fff; animation:t-hero2-scroll 2s ease-in-out infinite; }
.t-hero2__scroll span { position:absolute; left:10px; top:0; font-size:10px; letter-spacing:.24em; color:#fff; writing-mode:vertical-rl; }
@keyframes t-hero2-scroll { to { top:72px; } }
.t-hero2 + .t-news { margin-top:-1px; }
@media (max-width:767px) {
  .t-hero2 { height:auto; min-height:620px; }
  .t-hero2__shade { background:linear-gradient(0deg,rgba(14,22,18,.86) 0%,rgba(14,22,18,.55) 55%,rgba(14,22,18,.15) 100%); }
  .t-hero2__in { padding:220px 20px 70px; justify-content:flex-end; }
  .t-hero2__h1 { font-size:clamp(30px,8.6vw,40px); margin-top:16px; }
  .t-hero2__lead { font-size:14px; margin-top:16px; }
  .t-hero2__lead .pc { display:none; }
  .t-hero2__btns { margin-top:24px; gap:10px; }
  .t-hero2__line, .t-hero2__tel { width:100%; justify-content:center; min-height:56px; font-size:15px; }
  .t-hero2__tel { font-size:18px; }
  .t-hero2__bar { right:20px; bottom:22px; }
  .t-hero2__bar i { width:28px; }
  .t-hero2__scroll { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  .t-hero2__img { animation:none; }
  .t-hero2__img:first-child { opacity:1; }
  .t-hero2__h1 span { animation:none; opacity:1; transform:none; }
  .t-hero2__bar, .t-hero2__scroll::after { display:none; }
}
.t-hero2__tel{flex-direction:row !important;flex-wrap:nowrap !important;white-space:nowrap}
.t-feat__img img{object-position:50% 20%}

/* =========================================================
   TOP：画面幅いっぱいに広げる（v2.4）
   ========================================================= */
@media (min-width:768px){

.t-hero{padding-top:0}
.t-hero__grid{max-width:none;padding:0;grid-template-columns:repeat(12,1fr);min-height:calc(100vh - 84px - 90px)}
.t-hero__img{grid-column:5 / 13;border-radius:0 0 0 40px;aspect-ratio:auto;height:100%;min-height:560px}
.t-hero__card{grid-column:1 / 7;margin-left:clamp(24px,5vw,96px);padding:clamp(40px,3.6vw,64px)}
.t-hero__h1{font-size:clamp(30px,3.2vw,52px)}
.t-news{max-width:none;padding:0 clamp(24px,5vw,96px)}
.w,.t-msg__grid,.biz__wrap,.t-blog > div{max-width:min(1600px,100%) !important;padding-left:clamp(24px,5vw,96px) !important;padding-right:clamp(24px,5vw,96px) !important}
.t-fv__grid,.t-feat__grid{gap:clamp(48px,6vw,120px)}
.t-fv__img,.t-feat__img{aspect-ratio:4/3}
.t-fv .w{padding-left:0 !important}
.t-fv__img{border-radius:0 24px 24px 0}
.t-feat .w{padding-right:0 !important}
.t-feat__img{border-radius:24px 0 0 24px}
.tmenu-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.tmenu-item{padding:28px 30px}
.biz__list{gap:24px}
.biz-card{min-height:clamp(320px,30vw,520px)}
.t-rsv__map{aspect-ratio:16/10}
.t-fv .w,.t-feat .w{max-width:none !important}
.t-fv .w{padding-right:clamp(24px,8vw,160px) !important}
.t-feat .w{padding-left:clamp(24px,8vw,160px) !important}

}

/* v2.5.4 キャッチコピー：サイズを抑え、文節の途中で改行しない */
.t-hero__h1 span{display:inline-block}
@media(min-width:768px){.t-hero__h1{font-size:clamp(26px,2.4vw,40px);line-height:1.6}}

/* v2.5.9 スマホ：はじめての方への4ステップを2×2のカードに */
@media(max-width:767px){
  .fv-steps{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;margin:22px 0 28px;border-top:0!important;counter-reset:none}
  .fv-steps li,.fv-steps li + li{flex:none!important;display:flex;flex-direction:column;justify-content:center;min-height:76px;margin:0;padding:12px 14px!important;border:1px solid #E3EAE5!important;border-left:3px solid #2E6B4C!important;border-radius:6px!important;background:#fff!important;font-size:14px;line-height:1.45;color:#1F2A24;text-align:left}
  .fv-steps li b{margin-bottom:4px;font-size:10.5px;letter-spacing:.14em;color:#2E6B4C}
}
