/* ============================================================
   ThemeModern (Bootstrap 5) — スマホ119
   ============================================================ */
:root{
  /* スマホ119 ブランド=ピンク（水色=競合は不使用）。ポップ&カラフルのアクセント群 */
  --tm-brand:#e21d7a; --tm-brand-dark:#b3185f;
  --tm-yellow:#ffc933; --tm-mint:#16c2a0; --tm-purple:#8b5cf6; --tm-coral:#ff6a4d;
  --tm-ink:#2a1119; --tm-bg:#fff0f6; --tm-line:#f3d9e5;
  /* ポップ用トークン：大きい角丸・太線・ハードシャドウ */
  --tm-radius:24px; --tm-bd:3px solid var(--tm-ink); --tm-bd2:2.5px solid var(--tm-ink);
  --tm-shadow:5px 5px 0 rgba(42,17,25,.13); --tm-shadow-sm:3px 3px 0 rgba(42,17,25,.13);
  /* 統一タイプスケール（モバイル基準） */
  --fs-sm:15px; --fs-base:17px; --fs-md:18px; --fs-lg:20px; --fs-h3:22px; --fs-h2:27px; --fs-h1:33px;
}
@media (min-width:992px){
  :root{ --fs-sm:16px; --fs-base:18px; --fs-md:19px; --fs-lg:21px; --fs-h3:24px; --fs-h2:30px; --fs-h1:40px; }
}
*{ -webkit-tap-highlight-color:transparent; }
.tm-body{ background:var(--tm-bg); color:var(--tm-ink);
  font-family:"M PLUS Rounded 1c","Hiragino Maru Gothic ProN","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;
  font-weight:500; font-size:var(--fs-base); line-height:1.85; -webkit-text-size-adjust:100%;
  background-image:radial-gradient(rgba(226,29,122,.10) 1.5px, transparent 1.5px); background-size:24px 24px; }
a{ color:var(--tm-brand-dark); font-weight:700; }
.tm-main h1,.tm-main h2,.tm-main h3{ font-weight:900; line-height:1.4; }
.tm-main h1{ font-size:var(--fs-h1); } .tm-main h2{ font-size:var(--fs-h2); } .tm-main h3{ font-size:var(--fs-h3); }

/* ===== Header ===== */
.tm-header{ background:#fff; border-bottom:3px solid var(--tm-ink); box-shadow:0 4px 0 rgba(42,17,25,.06); z-index:1030; }
.tm-logo{ color:var(--tm-ink); font-weight:900; font-size:21px; }
.tm-logo i{ color:var(--tm-brand); }
.tm-nav-link{ color:var(--tm-ink); text-decoration:none; font-weight:800; font-size:14px; padding:8px 11px; border-radius:999px; transition:.15s; white-space:nowrap; }
.tm-nav-link:hover,.tm-nav-link.active{ background:var(--tm-brand); color:#fff; }
.tm-tel{ background:var(--tm-yellow); color:var(--tm-ink)!important; font-weight:900; border-radius:999px; border:var(--tm-bd2); box-shadow:var(--tm-shadow-sm); padding:7px 16px!important; transition:.12s; }
.tm-tel:hover{ background:#ffd75c; color:var(--tm-ink); transform:translate(-1px,-1px); box-shadow:4px 4px 0 rgba(42,17,25,.18); }
.tm-tel:active{ transform:translate(2px,2px); box-shadow:0 0 0 rgba(42,17,25,.18); }
.tm-burger{ font-size:24px; 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%; }
/* 旧ボタンは店舗ごとに色クラスがバラバラ(info/success/warning/danger/primary/default＋独自色#ff1493/#2c3e50)。
   全てブランドピンクのポップボタンに統一。LINE(lin.ee/lineリンク・px-cta-line)だけ緑を維持 */
.tm-sheet .btn,.tm-sheet .px-cta-tel,.tm-sheet .px-cta-line{
  border:var(--tm-bd2)!important; border-radius:14px!important; font-weight:800!important;
  box-shadow:var(--tm-shadow-sm); transition:.12s; }
.tm-sheet .btn,.tm-sheet .px-cta-tel{ background:var(--tm-brand)!important; color:#fff!important; }
.tm-sheet .btn *,.tm-sheet .px-cta-tel *{ color:#fff!important; }
.tm-sheet .btn:hover,.tm-sheet .px-cta-tel:hover{ background:var(--tm-brand-dark)!important; }
.tm-sheet .btn:active,.tm-sheet .px-cta-tel:active,.tm-sheet .px-cta-line:active{ transform:translate(2px,2px); box-shadow:0 0 0!important; }
/* LINE/緑は維持（lin.ee・line.me・line共有リンク・px-cta-line） */
.tm-sheet a[href*="lin.ee"],.tm-sheet a[href*="line.me"],.tm-sheet a[href*="social-plugins.line"],.tm-sheet .px-cta-line{ background:#06C755!important; color:#fff!important; }
.tm-sheet a[href*="lin.ee"] *,.tm-sheet .px-cta-line *{ color:#fff!important; }
.tm-sheet a[href*="lin.ee"]:hover,.tm-sheet .px-cta-line:hover{ background:#05a948!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:26px; }
.tm-entry{ background:#fff; border:var(--tm-bd); border-radius:var(--tm-radius); padding:24px 26px; box-shadow:var(--tm-shadow); border-top-width:8px; }
.tm-entry:nth-child(5n+1){ border-top-color:var(--tm-brand); }
.tm-entry:nth-child(5n+2){ border-top-color:var(--tm-yellow); }
.tm-entry:nth-child(5n+3){ border-top-color:var(--tm-mint); }
.tm-entry:nth-child(5n+4){ border-top-color:var(--tm-purple); }
.tm-entry:nth-child(5n+5){ border-top-color:var(--tm-coral); }
.tm-entry-title a{ color:var(--tm-ink); text-decoration:none; font-size:var(--fs-h3); font-weight:900; line-height:1.45; }
.tm-entry-title a:hover{ color:var(--tm-brand); }
.tm-entry-sub{ display:flex; gap:16px; color:#9c8791; font-size:var(--fs-sm); margin:10px 0 14px; font-weight:700; }
.tm-entry-sub a{ color:#9c8791; text-decoration:none; }
.tm-entry-body{ line-height:1.95; font-size:var(--fs-base); }
/* 記事本文の画像は inline の width/height(例 960x1281) を上書きしてレスポンシブ化（縦伸び防止） */
.tm-entry-body img{ max-width:100%!important; height:auto!important; border-radius:16px; }
.tm-more{ display:inline-block; margin-top:14px; background:var(--tm-brand); color:#fff; font-weight:800; text-decoration:none; padding:8px 18px; border-radius:999px; border:var(--tm-bd2); box-shadow:var(--tm-shadow-sm); }
.tm-more:hover{ background:var(--tm-brand-dark); color:#fff; }
/* ブログ一覧カード（サムネ＋抜粋）。フル本文を出さないので一覧がスッキリ＆短くなる */
.tm-entry-card{ display:flex; gap:16px; align-items:flex-start; text-decoration:none; color:var(--tm-ink); margin-top:4px; }
.tm-entry-thumb{ flex:0 0 116px; }
.tm-entry-thumb img{ width:116px; height:116px; object-fit:cover; border-radius:16px; border:var(--tm-bd2); display:block; }
.tm-entry-excerpt{ flex:1 1 auto; min-width:0; font-size:var(--fs-sm); line-height:1.75; color:#5a3a47; font-weight:500; }
@media (max-width:480px){ .tm-entry-thumb{ flex-basis:90px; } .tm-entry-thumb img{ width:90px; height:90px; } }

/* 記事シェア */
.tm-share{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:28px; padding-top:20px; border-top:3px dashed var(--tm-line); }
.tm-share-label{ font-size:var(--fs-sm); font-weight:800; color:var(--tm-ink); }
.tm-share-btn{ width:46px; height:46px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; text-decoration:none; font-size:19px; border:var(--tm-bd2); box-shadow:var(--tm-shadow-sm); transition:transform .12s; }
.tm-share-btn:hover{ transform:translate(-1px,-1px); color:#fff; }
.tm-share-btn:active{ transform:translate(2px,2px); box-shadow:0 0 0; }
.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:30px; }
.tm-comments-h{ font-size:var(--fs-lg); font-weight:900; }
.tm-comment{ background:#fff; border:var(--tm-bd2); border-radius:16px; padding:14px 18px; margin-bottom:12px; box-shadow:var(--tm-shadow-sm); }
.tm-comment-meta{ font-size:var(--fs-sm); color:#9c8791; } .tm-comment-meta .name{ font-weight:800; color:var(--tm-ink); }

/* ===== Footer ===== */
.tm-footer{ background:var(--tm-ink); color:#f3e3ea; margin-top:36px; border-top:6px solid var(--tm-brand); }
.tm-foot-brand{ font-size:var(--fs-lg); font-weight:900; color:#fff; }
.tm-foot-desc{ font-size:var(--fs-sm); line-height:1.9; margin-top:8px; color:#cdb3bf; }
.tm-foot-sns{ margin-top:12px; display:flex; gap:12px; font-size:24px; }
.tm-foot-sns a{ color:#f3e3ea; } .tm-foot-sns a:hover{ color:var(--tm-yellow); }
.tm-foot-h{ font-weight:900; color:var(--tm-yellow); margin-bottom:10px; font-size:var(--fs-md); }
.tm-foot-tel{ font-size:var(--fs-h3); font-weight:900; color:#fff; text-decoration:none; }
.tm-foot-small{ font-size:var(--fs-sm); color:#cdb3bf; margin-top:4px; }
.tm-foot-link{ display:block; color:#f3e3ea; text-decoration:none; padding:4px 0; font-size:var(--fs-base); font-weight:700; }
.tm-foot-link:hover{ color:var(--tm-yellow); }
.tm-copy{ border-top:2px dashed rgba(255,255,255,.18); margin-top:24px; padding-top:16px; font-size:var(--fs-sm); color:#cdb3bf; text-align:center; }

/* ===== Offcanvas ===== */
.tm-offcanvas-nav a{ display:block; padding:15px 8px; border-bottom:2px solid var(--tm-line); color:var(--tm-ink); text-decoration:none; font-weight:800; font-size:var(--fs-md); }
.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:110px; font-weight:900; color:var(--tm-brand); line-height:1; }
.tm-404-msg{ color:var(--tm-ink); margin:14px 0 24px; font-weight:700; }

/* ===== 共有サイドバー（統一デザイン・ポップ） ===== */
.tm-sb{ display:flex; flex-direction:column; gap:20px; }
.tm-sb-cta{ background:#fff; border:var(--tm-bd); border-radius:var(--tm-radius); padding:16px; box-shadow:var(--tm-shadow); }
.tm-sb-tel{ display:flex; align-items:center; gap:12px; background:var(--tm-brand); color:#fff; text-decoration:none; border:var(--tm-bd2); border-radius:16px; padding:13px 16px; box-shadow:var(--tm-shadow-sm); transition:.12s; }
.tm-sb-tel i{ font-size:22px; }
.tm-sb-tel small{ display:block; font-size:var(--fs-sm); opacity:.95; font-weight:700; }
.tm-sb-tel strong{ display:block; font-size:var(--fs-h3); font-weight:900; letter-spacing:.02em; line-height:1.15; }
.tm-sb-line{ display:flex; align-items:center; justify-content:center; gap:8px; background:#06C755; color:#fff; text-decoration:none; font-weight:900; font-size:var(--fs-md); border:var(--tm-bd2); border-radius:16px; padding:14px; margin-top:10px; box-shadow:var(--tm-shadow-sm); transition:.12s; }
.tm-sb-line:hover,.tm-sb-tel:hover{ transform:translate(-1px,-1px); color:#fff; }
.tm-sb-line:active,.tm-sb-tel:active{ transform:translate(2px,2px); box-shadow:0 0 0; }

.tm-sb-group{ background:#fff; border:var(--tm-bd); border-radius:var(--tm-radius); overflow:hidden; box-shadow:var(--tm-shadow); }
.tm-sb-h{ background:var(--tm-ink); color:#fff; font-weight:900; font-size:var(--fs-md); padding:14px 18px; letter-spacing:.02em; }
.tm-sb-h i{ margin-right:8px; color:var(--tm-yellow); }
.tm-sb-group:nth-of-type(odd) .tm-sb-h{ background:var(--tm-brand); }
.tm-sb-group:nth-of-type(odd) .tm-sb-h i{ color:var(--tm-yellow); }
.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:800; font-size:var(--fs-base); border-top:2px solid var(--tm-line); border-left:5px solid transparent; transition:.15s; }
.tm-sb-group .tm-sb-link:first-of-type{ border-top:0; }
.tm-sb-link i{ color:var(--tm-brand); font-size:15px; }
.tm-sb-link:hover{ background:#ffe6f1; 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:700; font-size:var(--fs-sm); line-height:1.6; color:#5a3a47; }
.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); }
