/* ============================================================
   ThemeModern (Bootstrap 5) — スマホ119
   ============================================================ */
:root{
  /* スマホ119 コーポレートカラー = ピンク（水色は競合カラーのため不使用）。
     白文字CTAでもWCAG AAを満たす濃さの brand を採用 */
  --tm-brand:#db1f74; --tm-brand-dark:#9e1257; --tm-ink:#241019;
  --tm-bg:#fbf6f8; --tm-line:#efe2e8;
}
.tm-body{ background:var(--tm-bg); color:var(--tm-ink); font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",sans-serif;
  /* モバイルファースト：読みやすい大きめのベースフォント（全体で統一） */
  font-size:17px; line-height:1.8; -webkit-text-size-adjust:100%; }
@media (min-width:992px){ .tm-body{ font-size:18px; } }
a{ color:var(--tm-brand-dark); }

/* ===== Header ===== */
.tm-header{ background:#fff; border-bottom:1px solid var(--tm-line); box-shadow:0 2px 10px rgba(11,42,58,.05); z-index:1030; }
.tm-logo{ color:var(--tm-ink); font-weight:900; font-size:19px; }
.tm-logo i{ color:var(--tm-brand); }
.tm-nav-link{ color:var(--tm-ink); text-decoration:none; font-weight:700; font-size:14px; padding:8px 10px; border-radius:8px; transition:.15s; white-space:nowrap; }
.tm-nav-link:hover,.tm-nav-link.active{ background:var(--tm-brand); color:#fff; }
.tm-tel{ background:var(--tm-brand); color:#fff!important; font-weight:800; border-radius:999px; }
.tm-tel:hover{ background:var(--tm-brand-dark); color:#fff; }
.tm-burger{ font-size:22px; color:var(--tm-ink); }

/* ===== Hero zone（全幅） ===== */
.tm-hero-zone{ width:100%; }
.tm-hero-zone:empty{ display:none; }

/* ===== Content / layout ===== */
.tm-content{ padding-top:28px; padding-bottom:40px; }
.tm-main{ min-width:0; }
.tm-sheet{ margin-bottom:6px; }
/* 旧ブロックの原寸画像・幅広表が本文カラム(col-8)を押し広げないようにする互換シム。
   inline width/height を上書きしてレスポンシブ化（縦横比は維持） */
.tm-sheet img{ max-width:100%!important; height:auto!important; }
.tm-sheet table{ max-width:100%; }
.tm-sheet iframe{ max-width:100%; }
/* 旧コンテンツの青・水色ボタンをブランドピンクに統一（水色=競合カラーを排除）。緑(LINE/success)は維持 */
.tm-sheet .px-cta-tel,
.tm-sheet .btn-primary,
.tm-sheet .btn-info{ background:var(--tm-brand)!important; border-color:var(--tm-brand)!important; color:#fff!important; }
.tm-sheet .btn-primary:hover,
.tm-sheet .btn-info:hover,
.tm-sheet .px-cta-tel:hover{ background:var(--tm-brand-dark)!important; border-color:var(--tm-brand-dark)!important; }
.tm-sheet a.btn-info,.tm-sheet a.btn-primary{ color:#fff!important; }
/* 「<button class="btn btn-info"><a>ラベル</a></button>」形式の内側リンクもピンク地で白文字に */
.tm-sheet .btn-info a,.tm-sheet .btn-primary a,.tm-sheet .px-cta-tel a{ color:#fff!important; }
.tm-side-sticky{ position:sticky; top:78px; }
/* 縦積み（タブレット/モバイル）時にサイドバーが全幅に広がりスカスカになるのを防ぐ＝最大幅を抑えて中央寄せ */
@media (max-width:991px){ .tm-side-sticky{ position:static; } .tm-side{ max-width:680px; margin-left:auto; margin-right:auto; } }

/* ===== Blog ===== */
.tm-entries{ display:flex; flex-direction:column; gap:22px; }
.tm-entry{ background:#fff; border:1px solid var(--tm-line); border-radius:14px; padding:22px 24px; }
.tm-entry-title a{ color:var(--tm-ink); text-decoration:none; font-size:23px; font-weight:800; line-height:1.45; }
.tm-entry-title a:hover{ color:var(--tm-brand); }
.tm-entry-sub{ display:flex; gap:16px; color:#8a97a3; font-size:13px; margin:8px 0 14px; }
.tm-entry-sub a{ color:#8a97a3; text-decoration:none; }
.tm-entry-body{ line-height:1.85; }
/* 記事本文の画像は inline の width/height(例 960x1281) を上書きしてレスポンシブ化（縦伸び防止） */
.tm-entry-body img{ max-width:100%!important; height:auto!important; }
.tm-more{ display:inline-block; margin-top:12px; color:var(--tm-brand); font-weight:700; text-decoration:none; }

/* 記事シェア */
.tm-share{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:26px; padding-top:18px; border-top:1px solid var(--tm-line); }
.tm-share-label{ font-size:13px; font-weight:700; color:#8a97a3; }
.tm-share-btn{ width:42px; height:42px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; font-size:17px; transition:transform .15s; }
.tm-share-btn:hover{ transform:translateY(-2px); color:#fff; }
.tm-share-btn.x{ background:#000; } .tm-share-btn.fb{ background:#1877F2; }
.tm-share-btn.line{ background:#06C755; } .tm-share-btn.ig{ background:linear-gradient(135deg,#feda75,#fa7e1e,#d62976,#962fbf,#4f5bd5); }

.tm-comments{ margin-top:28px; }
.tm-comments-h{ font-size:18px; font-weight:800; }
.tm-comment{ background:#fff; border:1px solid var(--tm-line); border-radius:10px; padding:12px 16px; margin-bottom:10px; }
.tm-comment-meta{ font-size:12px; color:#8a97a3; } .tm-comment-meta .name{ font-weight:700; color:var(--tm-ink); }

/* ===== Footer ===== */
.tm-footer{ background:var(--tm-ink); color:#ecdde4; margin-top:30px; }
.tm-foot-brand{ font-size:18px; font-weight:900; color:#fff; }
.tm-foot-desc{ font-size:13px; line-height:1.8; margin-top:8px; color:#bda6b0; }
.tm-foot-sns{ margin-top:10px; display:flex; gap:12px; font-size:22px; }
.tm-foot-sns a{ color:#ecdde4; } .tm-foot-sns a:hover{ color:#fff; }
.tm-foot-h{ font-weight:800; color:#fff; margin-bottom:10px; }
.tm-foot-tel{ font-size:22px; font-weight:900; color:#fff; text-decoration:none; }
.tm-foot-small{ font-size:12px; color:#bda6b0; margin-top:4px; }
.tm-foot-link{ display:block; color:#ecdde4; text-decoration:none; padding:3px 0; font-size:14px; }
.tm-foot-link:hover{ color:#fff; }
.tm-copy{ border-top:1px solid rgba(255,255,255,.12); margin-top:22px; padding-top:14px; font-size:12px; color:#bda6b0; text-align:center; }

/* ===== Offcanvas ===== */
.tm-offcanvas-nav a{ display:block; padding:15px 6px; border-bottom:1px solid var(--tm-line); color:var(--tm-ink); text-decoration:none; font-weight:700; font-size:18px; }
.tm-offcanvas-nav a.active,.tm-offcanvas-nav a:hover{ color:var(--tm-brand); }

/* ===== 404 ===== */
.tm-404{ padding:70px 0; } .tm-404-code{ font-size:90px; font-weight:900; color:var(--tm-brand); line-height:1; }
.tm-404-msg{ color:#566; margin:14px 0 24px; }

/* ===== 共有サイドバー（統一デザイン） ===== */
.tm-sb{ display:flex; flex-direction:column; gap:18px; }
.tm-sb-cta{ background:#fff; border:1px solid var(--tm-line); border-radius:14px; padding:14px; box-shadow:0 4px 14px rgba(11,42,58,.06); }
.tm-sb-tel{ display:flex; align-items:center; gap:12px; background:var(--tm-brand); color:#fff; text-decoration:none; border-radius:10px; padding:12px 16px; }
.tm-sb-tel i{ font-size:20px; }
.tm-sb-tel small{ display:block; font-size:12px; opacity:.9; font-weight:600; }
.tm-sb-tel strong{ display:block; font-size:24px; font-weight:900; letter-spacing:.02em; line-height:1.1; }
.tm-sb-line{ display:flex; align-items:center; justify-content:center; gap:8px; background:#06C755; color:#fff; text-decoration:none; font-weight:800; font-size:16px; border-radius:10px; padding:13px; margin-top:8px; }
.tm-sb-line:hover,.tm-sb-tel:hover{ filter:brightness(.95); color:#fff; }

.tm-sb-group{ background:#fff; border:1px solid var(--tm-line); border-radius:14px; overflow:hidden; }
.tm-sb-h{ background:var(--tm-ink); color:#fff; font-weight:800; font-size:17px; padding:14px 18px; letter-spacing:.02em; }
.tm-sb-h i{ margin-right:7px; color:var(--tm-brand); }
.tm-sb-link{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:16px 18px; color:var(--tm-ink); text-decoration:none; font-weight:700; font-size:17px; border-top:1px solid var(--tm-line); border-left:3px solid transparent; transition:.15s; }
.tm-sb-group .tm-sb-link:first-of-type{ border-top:0; }
.tm-sb-link i{ color:#d6c4cd; font-size:14px; }
.tm-sb-link:hover{ background:#fdeef5; border-left-color:var(--tm-brand); color:var(--tm-brand-dark); }
.tm-sb-link:hover i{ color:var(--tm-brand); }
.tm-sb-link.sm{ font-weight:600; font-size:15px; line-height:1.6; color:#445; }
.tm-sb-link.sm:hover{ color:var(--tm-brand-dark); }

/* ============================================================
   旧 Bootstrap 3/4 互換シム（既存コンテンツを崩さないため）
   ============================================================ */
.btn-block{ display:block; width:100%; }
.btn-block + .btn-block{ margin-top:8px; }
.col-xs-12{ flex:0 0 100%; max-width:100%; }
.col-xs-6{ flex:0 0 50%; max-width:50%; }
.col-xs-4{ flex:0 0 33.3333%; max-width:33.3333%; }
.col-xs-3{ flex:0 0 25%; max-width:25%; }
[class*="col-xs-"]{ position:relative; width:100%; padding-right:15px; padding-left:15px; float:left; }
/* col-sm/md/lg を col-xs より後に再宣言して上書きできるようにする（BS3カスケード復元）。
   例: <div class="col-xs-4 col-sm-3"> は SP=3列(33%)・PC=4列(25%) になる */
@media (min-width:576px){
  .col-sm-1{flex:0 0 8.3333%;max-width:8.3333%} .col-sm-2{flex:0 0 16.6667%;max-width:16.6667%}
  .col-sm-3{flex:0 0 25%;max-width:25%} .col-sm-4{flex:0 0 33.3333%;max-width:33.3333%}
  .col-sm-5{flex:0 0 41.6667%;max-width:41.6667%} .col-sm-6{flex:0 0 50%;max-width:50%}
  .col-sm-7{flex:0 0 58.3333%;max-width:58.3333%} .col-sm-8{flex:0 0 66.6667%;max-width:66.6667%}
  .col-sm-9{flex:0 0 75%;max-width:75%} .col-sm-10{flex:0 0 83.3333%;max-width:83.3333%}
  .col-sm-11{flex:0 0 91.6667%;max-width:91.6667%} .col-sm-12{flex:0 0 100%;max-width:100%}
}
@media (min-width:768px){
  .col-md-1{flex:0 0 8.3333%;max-width:8.3333%} .col-md-2{flex:0 0 16.6667%;max-width:16.6667%}
  .col-md-3{flex:0 0 25%;max-width:25%} .col-md-4{flex:0 0 33.3333%;max-width:33.3333%}
  .col-md-5{flex:0 0 41.6667%;max-width:41.6667%} .col-md-6{flex:0 0 50%;max-width:50%}
  .col-md-7{flex:0 0 58.3333%;max-width:58.3333%} .col-md-8{flex:0 0 66.6667%;max-width:66.6667%}
  .col-md-9{flex:0 0 75%;max-width:75%} .col-md-10{flex:0 0 83.3333%;max-width:83.3333%}
  .col-md-11{flex:0 0 91.6667%;max-width:91.6667%} .col-md-12{flex:0 0 100%;max-width:100%}
}
@media (min-width:992px){
  .col-lg-1{flex:0 0 8.3333%;max-width:8.3333%} .col-lg-2{flex:0 0 16.6667%;max-width:16.6667%}
  .col-lg-3{flex:0 0 25%;max-width:25%} .col-lg-4{flex:0 0 33.3333%;max-width:33.3333%}
  .col-lg-5{flex:0 0 41.6667%;max-width:41.6667%} .col-lg-6{flex:0 0 50%;max-width:50%}
  .col-lg-7{flex:0 0 58.3333%;max-width:58.3333%} .col-lg-8{flex:0 0 66.6667%;max-width:66.6667%}
  .col-lg-9{flex:0 0 75%;max-width:75%} .col-lg-10{flex:0 0 83.3333%;max-width:83.3333%}
  .col-lg-11{flex:0 0 91.6667%;max-width:91.6667%} .col-lg-12{flex:0 0 100%;max-width:100%}
}
.row-10,.row-20{ display:flex; flex-wrap:wrap; }
.row-10{ margin:0 -5px; } .row-10>[class*="col-"]{ padding:0 5px; }
.row-20{ margin:0 -10px; } .row-20>[class*="col-"]{ padding:0 10px; }
.embed-responsive{ position:relative; display:block; width:100%; padding:0; overflow:hidden; }
.embed-responsive::before{ display:block; content:""; }
.embed-responsive-16by9::before{ padding-top:56.25%; }
.embed-responsive-4by3::before{ padding-top:75%; }
.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive video{ position:absolute; top:0; bottom:0; left:0; width:100%; height:100%; border:0; }
/* visible/hidden（BS3）最低限の復元 */
.visible-xs,.visible-sm,.visible-md,.visible-lg{ display:none!important; }
@media (max-width:767px){ .visible-xs{ display:block!important; } .hidden-xs{ display:none!important; } }
@media (min-width:768px) and (max-width:991px){ .visible-sm{ display:block!important; } .hidden-sm{ display:none!important; } }
@media (min-width:992px) and (max-width:1199px){ .visible-md{ display:block!important; } .hidden-md{ display:none!important; } }
@media (min-width:1200px){ .visible-lg{ display:block!important; } .hidden-lg{ display:none!important; } }
.list-group-item{ display:block; padding:10px 15px; background:#fff; border:1px solid var(--tm-line); }
